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

..С...е...р...ы...й..

  • Захожу иногда
  • 51
  • 110 / 2
Нужна функция или пример как при клике по ссылке показывать скрытый элемент и при повторном клике скрывать снова, подставляя нужный класс или стиль (display:none)

[spoiler title=Подробно]
Появилась идея в визуальном редакторе по умолчанию скрывать панель форматирования, у которой соответственно есть свой класс.
Код: html4strict
<tr class="mceFirst">
   <td class="mceToolbar mceLeft mceFirst mceLast"></td>
</tr>
[/spoiler]
нужно чтоб по умолчанию JS подставлял невидимый класс или стиль, а при клике по ссылке [форматирование], стиль или класс менялся на видимый. В общем нужен самый элементарный эффект спойлера.

*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: [JS] Как менять класс объекта?
« Ответ #1 : 31.12.2009, 14:32:38 »
на Jquery вообще легко, за 5 минут пишется, по клику делаем AddClass с display: hidden и навешиваем событие hide(slow) на клик обратно - убираем класс RemoveClass и опять же эффект плавного появления
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
Re: [JS] Как менять класс объекта?
« Ответ #2 : 31.12.2009, 14:32:55 »
элемент, на который будут кликать - вызывает JS-функцию "CourseDisplay":
Код
<div id="cimg_4" class="jscTreeImg" name="cimg_4">
<img border="0" align="absmiddle" src="/modules/mod_jsc_tree/images/kat_act.png" onclick="CourseDisplay(4); return false;"/>
</div>

сам элемент, который скрывать:
Код
<div id="subcat_4" class="jscTreeAct" name="subcat_4">
Тут текст
</div>

JS, подменяет класс у DIV'а (в одном классе он скрытый, в другом видимый) + подменяет картинку (плюсик/минусик например) (в первом ):
Код
<script type="text/javascript" language="JavaScript">
function CourseDisplay(id) {
d  = document.getElementById('subcat_'+id);
im = document.getElementById('cimg_'+id);
if (d.className == "jscTreeNoAct"){
d.className = "jscTreeAct"
im.innerHTML = '<img onclick="CourseDisplay('+id+'); return false;" border="0" src="/modules/mod_jsc_tree/images/kat_act.png" align="absmiddle">';
} else {
d.className = "jscTreeNoAct"
im.innerHTML = '<img onclick="CourseDisplay('+id+'); return false;" border="0" src="/modules/mod_jsc_tree/images/kat_noact.png" align="absmiddle">';
}
};
</script>

пример CSS для скрытых видимых:
Код
div.jscTreeAct {
  display:block;
  margin-top:0;
  padding:0 0 0 15px;
  width:90%;
}

div.jscTreeNoAct {
 display:none;
 margin-top:0;
 padding:0 0 0 15px;
 width:100%;
}
*

..С...е...р...ы...й..

  • Захожу иногда
  • 51
  • 110 / 2
Re: [JS] Как менять класс объекта?
« Ответ #3 : 01.01.2010, 17:33:03 »
пришлось немного помаяться и доработать эту функцию под конкретно TinyMCE.

CSS:

<style type="text/css">
<!--
#comment_tbl{height:auto !important}      /* фикс: превращает фиксированную высоту таблицы редактора в нормальную */
tr.mceFirst{display:none}            /* скрывает панель форматирования по умолчанию, раньше чем срабатывает скрипт  */
.jscTreeAct{display:block !important}
.jscTreeNoAct{display:none}
-->
</style>



JavaScript:

<script type="text/javascript">
function CourseDisplay() {
   d  = document.getElementById('comment_tbl').getElementsByTagName('TR')[0];    // получает адрес нужной строки по ID таблицы и порядковому расположению строки
   im = document.getElementById('editor_exp');    // получает доступ к ссылке раскрытия спойлера по ID
   if (d.className == "mceFirst jscTreeAct"){
      d.className = "mceFirst jscTreeNoAct"
      im.innerHTML = 'Форматирование';
   } else {
      d.className = "mceFirst jscTreeAct"
      im.innerHTML = 'Свернуть форматирование';
   }
}
</script>



элемент, на который будут кликать - вызывает JS-функцию "CourseDisplay":

<a href="#" id="editor_exp" onclick="CourseDisplay(); return false;">[Форматирование]</a>



сам элемент, который нужно скрывать динамичный, то есть он генерируется непосредственно самим JavaScript редактора, по этому его нельзя увидеть статично в шаблонеформы, только в фаербаге, например, и выглядит этот код примерно так:

<table id="comment_tbl" class="mceLayout">
  <tr class="mceFirst">
      <td class="mceToolbar">  </td>
   </tr>

   <tr class="mceLast">
      <td class="mceIframeContainer>  </td>
   </tr>
</table>
« Последнее редактирование: 01.01.2010, 18:31:13 от С.е.р.ы.й.В.о.л.к »
*

mayra

  • Захожу иногда
  • 52
  • 0 / 5
Re: [JS] Как менять класс объекта?
« Ответ #4 : 04.07.2010, 10:00:31 »
Ребята, подскажите рецептик. Вопщем нужно, чтобы при наведении мыши в нужном месте отображалась картинка-линк. Или подскажите хотябы в каком редакторе это лучше и проще сделать. спасибо.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[РЕШЕНО] Добавить класс при условии JS?

Автор warlocksp

Ответов: 21
Просмотров: 2782
Последний ответ 26.02.2020, 11:07:53
от robert