Новости Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

👩‍💻 SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla.Компонент - менеджер цифровых проектов для Joomla! CMS. Компонент обеспечивает создание каталога цифровых проектов и предоставляет возможность скачивания, в том числе с использованием лицензионных ключей.👩‍💻 v.2.5.0. Что нового?Схемы структур данных для серверов обновлений. Теперь с SW JProjects вы может создавать сервер обновлений не только для расширений Joomla, но и свои собственные. Например, вам нужно, чтобы структура данных сервера обновлений была другая и формат должен быть, например, не XML, а JSON. Формирование структуры данных для сервера обновлений расширений Joomla вынесено в отдельный плагин. Вы можете создать свой собственный плагин и реализовать в нём нужную вам структуру данных, добавив или наоборот исключив отображаемые данные. Сервер обновлений в компоненте по-прежнему отображает информацию о списке проектов и их версиях, о конкретном проекте и его changelog.Можно выбрать схему данных сервера обновлений глобально для всего компонента, выбрать другую схему данных для категории проектов, а так же выбрать схему в каждом проекте.

Разработчикам в качестве образца можно посмотреть плагин схемы данных для Joomla в составе компонента или же плагин-образец JSON-схемы на GitHub.
Группа плагинов swjprojects. Для нужд компонента создана группа плагинов swjprojects. В частности, в этой группе находится плагин структуры данных Joomla расширений для сервера обновлений.Изменение языковых констант. Изменены некоторые языковые константы в панели администратора. Если вы делали переопределение констант - переопределите их снова.👩‍💻 Joomla 6. Внесены изменения для корректной установки и работы компонента на Joomla 6. Компонент успешно протестирован на Joomla 6-beta2.Минимальная версия Joomla - 5. Подняты минимальные системные требования: Joomla 5.0.0 и PHP 8.1.
- Страница расширения👉 Плагин-образец кастомной JSON-схемы данных для сервера обновлений на GitHub.- GitHub расширения- Документация на GitHub- Joomla Extensions Directory#joomla #расширения

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

👩‍💻 Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод triggerEvent(), с помощью которого раньше вызывались события для плагинов. Теперь чтобы в своём коде вызвать событие для плагина и получить от него результаты нужно:- создать объект класса события- передать в него параметры

use Joomla\CMS\Event\AbstractEvent;use Joomla\CMS\Factory;use Joomla\CMS\Plugin\PluginHelper;// Грузим плагины нужных группPluginHelper::importPlugin('system');// Создаём объект события$event = AbstractEvent::create('onAfterInitUniverse', [    'subject' => $this,    'data'    => $data, // какие-то данные    'article' => $article, // ещё материал вдовесок    'product' => $product, // и товаров подвезли]);// Триггерим событиеFactory::getApplication()->getDispatcher()->dispatch(    $event->getName(), // Тут можно строку передать 'onAfterInitUniverse'    $event);// Получаем результаты// В случае с AbstractEvent это может быть не 'result',// а что-то ещё - куда сами отдадите данные.// 2-й аргумент - значение по умолчанию, // если не получены результаты$results = $event->getArgument('result', []);
Плюсы такого подхода - вам не нужно запоминать порядок аргументов и проверять их наличие. Если вы написали свой класс события, то в плагине можно получать аргументы с помощью методов $event->getArticle(), $event->getData(), $event->getProduct() и подобными - реализуете сами под свои нужды. Если такой класс события написали, то создаёте экземпляр своего класса события и укажите его явно в аргументе eventClass
use Joomla\Component\MyComponent\Administrator\Event\MyCoolEvent;$event = MyCoolEvent::create('onAfterInitUniverse', [    'subject'    => $this,    'eventClass' => MyCoolEvent::class, // ваш класс события    'data'       => $data, // какие-то данные    'article'    => $article, // ещё материал вдовесок    'product'    => $product, // и товаров подвезли]);
Ожидаемо, что класс вашего события будет расширять AbsractEvent или другие классы событий Joomla.🙁 Есть неприятный нюанс - нельзя просто так вызывать событие и ничего не передать в аргументы. Аргумент subject обязательный. Но если вы всё-таки не хотите туда ничего передавать - передайте туда пустой stdClass или объект Joomla\registry\Registry.
@joomlafeed#joomla #php #webdev

0 Пользователей и 1 Гость просматривают эту тему.
  • 2 Ответов
  • 5554 Просмотров
*

Phoenix168

  • Осваиваюсь на форуме
  • 36
  • 4 / 0
Есть задача сделать двухколоночный div-ный макет с фиксированной по ширине колонкой меню.
В качестве теоретического прототипа взял _ttp://htmlbook.ru/content/?id=102.

Код
<body>
<div id="top"><?php mosLoadModules ( 'user3', -2 ); ?></div>
<div id="wrapper">
<div id="main">
<div id="header">
<div id="headerleft">
<div id="headerright">
<div id="headerback">
<div id="logo"></div>
<div id="buildings"></div>
</div>
</div>
</div>
</div>
<div id="content">
<div id="user1"><?php mosLoadModules ( 'user1', -2 ); ?></div>
<?php mosMainBody(); ?>
</div>
<!-- end content -->
<div id="leftnav"><?php mosLoadModules ( 'left', -2 ); ?></div>
<div class="clear"></div>
<!-- end navigation -->
</div><!-- end main -->
</div><!-- end wrapper -->
<div id="footer"><?php include_once('includes/footer.php'); ?></div>
</body>
</html>

Вот эти <div id="content"> и <div id="leftnav">  ведут себя совсем не так как должны судя по статье, а именно несмотря на значительный margin-left у <div id="content">, <div id="leftnav"> все равно не встает слева от него, а находится слева но под <div id="content">.

В CSS нет почти ничего кроме
Код
#leftnav {
float: left;
width: 200px;
}
#content {
margin-left: 210px;
}
*

oleggrz

  • Захожу иногда
  • 435
  • 76 / 3
  • Только начал учиться.
Фрагменты из статьи на основе которой вы все это делали:
При формировании двухколонного макета левая или правая колонка устанавливается в заданное место через абсолютное позиционирование, а соседняя колонка освобождает для нее место за счет применения отступов. Для лучшего понимания рассмотрим пример, когда левая колонка имеет заданную ширину 200 пикселов, а ее положение определяется от левого верхнего угла окна браузера. Стиль для таких колонок приведен в примере 3.
...Значение absolute свойства position позволяет задавать положение слоя относительно края окна браузера независимо от наличия и местоположения других слоев. Сами координаты устанавливаются с помощью параметров left, top, right и bottom, которые соответственно определяют расстояние от левого, верхнего, правого и нижнего края окна. Чтобы левая и правая колонка не накладывались друг на друга, следует добавить отступ слева (margin-left) для слоя rightcol, как показано в данном примере. Значение этого отступа включает расстояние от левого края (параметр left) и ширину левой колонки (width) плюс дистанция между колонками.
*

Phoenix168

  • Осваиваюсь на форуме
  • 36
  • 4 / 0
Мне больше подходит вариант верстки без применения абсолютного позиционирования. В статье это то что идет после заголовка «Использование плавающих элементов» до заголовка «Применение позиционирования».  ^-^

Отдельно от шаблона J! — пример №1 из статьи работает.
P.S. появилась идея поменять дивы местами.. будем пробовать...

Update:
Вобщем все выходит просто внимательнее смотреть надо и знать мат.часть в области того как браузеры html-код верстки обрабатывают:
Достаточно поменять местами дивы <div id="content"> и <div id="leftnav"> — и все работает ::).
Всем спасибо за внимание.

« Последнее редактирование: 13.08.2008, 12:54:43 от Phoenix168 »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как поправить макет блога?

Автор wishlight

Ответов: 4
Просмотров: 1007
Последний ответ 26.04.2019, 10:35:57
от wishlight
Элемент flexbox выходит за края родителя [РЕШЕНО]

Автор dm-krv

Ответов: 3
Просмотров: 10105
Последний ответ 05.04.2019, 16:07:44
от dm-krv
Резиновый слайдер в jm-services

Автор k790

Ответов: 0
Просмотров: 927
Последний ответ 07.12.2017, 16:40:28
от k790
css: Резиновый модуль поиска

Автор slepoy

Ответов: 1
Просмотров: 1918
Последний ответ 08.02.2017, 21:23:22
от beliyadm
Список выходит за пределы экрана

Автор -sdr-

Ответов: 0
Просмотров: 1443
Последний ответ 18.01.2016, 08:17:07
от -sdr-