Новости 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 Гость просматривают эту тему.
  • 5 Ответов
  • 2283 Просмотров
*

bmf1982

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
yjk2slider VS K2 2.6.5
« : 28.02.2013, 12:49:33 »
Доброго времени суток!

ситуёвина у меня сложилась такая. дернул я плагин YJk2slider, однако он работает корректно только на k2 2.6.2. по глупости залил себе К2 2.6.5. и тут начались проблемы:
1. при попытке скормить изображения слайдеру, открывается окно медиаменеджера, но не S-боксом, а в родительском окне. кнопки "Вставить" и "Отмена" приводят к остановке сценария с непонятной для меня формулировкой "window.parent.jInsertFieldValue is not a function"

в чем именно загвоздка и почему такое произошло при переходе на К2 2.6.5?

<button onclick="window.parent.jInsertFieldValue(document.id('f_url').value,'YJK2slider_image0');window.parent.SqueezeBox.close();" type="button">Вставить</button>

что нашел, ковыряясь в yjk2slider.php:

Код

// Build the script.
$script = array();
$script[] = ' function jInsertFieldValue(value, id) {';
$script[] = ' var old_id = document.id(id).value;';
$script[] = ' if (old_id != id) {';
$script[] = ' var elem = document.id(id)';
$script[] = ' elem.value = value;';
$script[] = ' elem.fireEvent("change");';
$script[] = ' }';
$script[] = ' }';

// Add the script to the document head.
JFactory::getDocument()->addScriptDeclaration(implode("\n", $script));


на сколько мне позволяет судить мой слабенький уровень знаний PHP и java - кусочек тот, но что с ним делать теперь?

исходный код страницы, где у меня происходит остановка сценария:

Код
<body class="contentpane">

<div id="system-message-container">
</div>

<script type='text/javascript'>
var image_base_path = 'images/';
</script>
<form action="index.php?option=com_media&amp;asset=com_k2&amp;author=" id="imageForm" method="post" enctype="multipart/form-data">
<div id="messages" style="display: none;">
<span id="message"></span><img src="/media/media/images/dots.gif" alt="..." width="22" height="12" /> </div>
<fieldset>
<div class="fltlft">
<label for="folder">Каталог</label>
<select id="folderlist" name="folderlist" class="inputbox" size="1" onchange="ImageManager.setFolder(this.options[this.selectedIndex].value, 2, 0)" >
<option value="">/</option>
<option value="banners">/banners</option>
<option value="sampledata">/sampledata</option>
<option value="sampledata/fruitshop">/sampledata/fruitshop</option>
<option value="sampledata/parks">/sampledata/parks</option>
<option value="sampledata/parks/animals">/sampledata/parks/animals</option>
<option value="sampledata/parks/landscape">/sampledata/parks/landscape</option>
</select>
<button type="button" id="upbutton" title="На уровень выше">Вверх</button>
</div>
<div class="fltrt">
<button type="button" onclick="window.parent.jInsertFieldValue(document.id('f_url').value,'YJK2slider_image0');window.parent.SqueezeBox.close();">Вставить</button>
<button type="button" onclick="window.parent.SqueezeBox.close();">Отменить</button>
</div>
</fieldset>

<iframe id="imageframe" name="imageframe" src="index.php?option=com_media&amp;view=imagesList&amp;tmpl=component&amp;folder=&amp;asset=com_k2&amp;author="></iframe>

<fieldset>
<table class="properties">
<tr>
<td><label for="f_url">Адрес (URL) изображения</label></td>
<td><input type="text" id="f_url" value="" /></td>
</tr>
</table>

<input type="hidden" id="dirPath" name="dirPath" />
<input type="hidden" id="f_file" name="f_file" />
<input type="hidden" id="tmpl" name="component" />

</fieldset>
</form>

что делал:
1. чистая Joomla! 2.5.7
2. k2 2.6.2
3. yj k2 image slider

в таком построении всё работало отлично, потом установил k2 2.6.5 -грабли

быть может, кто либо сталкивался уже с такими граблями? подскажите пожалуйста как их обходить?
*

paternoster

  • Давно я тут
  • 506
  • 24 / 1
Re: yjk2slider VS K2 2.6.5
« Ответ #1 : 28.02.2013, 14:33:11 »
Писать разработчику...))0 С требованием пофиксить баг для новой версии компонента.Обычно в течении 2-3 дней такое исправляется....)))
*

bmf1982

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Re: yjk2slider VS K2 2.6.5
« Ответ #2 : 01.03.2013, 23:39:25 »
ну что ж, пока разработчик прочитает моё сообщение к нему, я плавненько сполз на К2 2.6.2, и надеюсь всё же на ответ.
*

paternoster

  • Давно я тут
  • 506
  • 24 / 1
Re: yjk2slider VS K2 2.6.5
« Ответ #3 : 02.03.2013, 13:58:39 »
Просто разработчики не поддерживают стыренный варез, вы хотите сказать?))0 Ну так этого и следовало ожидать.))) А если серьезно, то тут больше занимаются проблемами самого компонента, чем приложений для него.И потому совет написать разрабам хотя бы на форуме..или лучше даже почитать еще форум ( а вдруг уже нашлись исправления? ) по прежнему актуален.
*

PicassoWeb

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: yjk2slider VS K2 2.6.5
« Ответ #4 : 20.04.2013, 18:19:18 »
у меня таже проблема для k2 2.6.6
*

iuranemo

  • Осваиваюсь на форуме
  • 13
  • 1 / 0
Re: yjk2slider VS K2 2.6.5
« Ответ #5 : 12.11.2013, 20:43:27 »
1. Скачиваем файл -http://ge.tt/5bcgLay/v/0
2. Загружаем файл в папку /plugins/k2/yjk2slider/src/ с заменой оригинального.

Проверено на К2 версии 2.6.7
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться