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

vellod

  • Новичок
  • 3
  • 0 / 0
Добрый день. В joomle новечек. Настроил модуль выводи превью материала при помощи K2 content модуль.
Необходимо было произвольное размещение дополнительных полей. Все сделал согласно этой инструкции.
http://joomlaforum.ru/index.php/topic,217536.0.html
Но вот проблема. Если в предыдущем материале некоторые поля небыли заполнены, то при создании нового материала, эти доп поля наследуют значение полей вновь созданного материала. Не пойму в чем ошибка.
Код
<!-- extra fields-->
<?php if($extrafields[1]): ?>
<div class="ext_dest">
<?php echo $extrafields[13];?><br><?php echo $extrafields[10];?>
</div>
<div class="ext_image_company">
<?php/*echo $extrafields[1];*/?>
</div>
<div class="ext_price">
от <?php echo $extrafields[6];?> <?php echo $extrafields[12];?>
</div>
<div class="ext_date">
<div class="ext_sale_date">
Авиабилеты в продаже с <?php echo $extrafields[2];?> по <?php echo $extrafields[3];?>
</div>
<div class="ext_fly_date">
перелет возможен с <?php echo $extrafields[4];?> по <?php echo $extrafields[5];?>
</div>
</div>
<div class="ext_brief">
<?php echo $extrafields[9];?> от <?php echo $extrafields[6];?> <?php echo $extrafields[12];?>, <?php echo $extrafields[14];?>
</div>
<?php endif; ?>
 
 
 
      <?php if($params->get('itemIntroText')): ?>
      <?php echo $item->introtext; ?>
      <?php endif; ?>


      </div>
      <?php endif; ?>

<?php if($extrafields[1]): ?>

<?php if ($extrafields[15] != ''): ?>
<div class="ext_not_valid">
Тариф не действителен с <?php echo $extrafields[15];?> по <?php echo $extrafields[16];?>
</div>
<?php endif;?>
<?php endif; ?>

<div class="ext_order">
Купить авиабилет <a rel="nofollow" href="http://avia.bilet.kh.ua/">онлайн</a>  или <a href="/how-avia.html">заказать по телефону</a>
</div>

Пытался скрыть текст при помощи
Цитировать
<?php if ($extrafields[15] != ''): ?>
               <div class="ext_not_valid">
               Тариф не действителен с <?php echo $extrafields[15];?> по <?php echo $extrafields[16];?>
               </div>
            <?php endif;?>
Получается, но когда создаю новый материал, поля старого материала вновь отображаются. доп полями нового материала.
Может кто нить еще подскажет, как вывести name extrafields, как-то коряво получается, текст в теле файла, хотелось бы конечно в админку поместить.
*

jurassik

  • Давно я тут
  • 692
  • 52 / 1
Re: Дополнительные поля в K2 contetnt module
« Ответ #1 : 25.02.2013, 19:48:33 »
какая версия компонента?
сам шучу - сам смеюсь
*

vellod

  • Новичок
  • 3
  • 0 / 0
Re: Дополнительные поля в K2 contetnt module
« Ответ #2 : 26.02.2013, 12:53:55 »
Joomla 2.5.8 и K2 2.6.5
*

jurassik

  • Давно я тут
  • 692
  • 52 / 1
Re: Дополнительные поля в K2 contetnt module
« Ответ #3 : 26.02.2013, 14:08:15 »
что-то я не понял, зачем все эти хаки.
у меня все работает стандартно через алиасы доп.поля
сам шучу - сам смеюсь
*

vellod

  • Новичок
  • 3
  • 0 / 0
Re: Дополнительные поля в K2 contetnt module
« Ответ #4 : 27.02.2013, 00:09:23 »
Мне конкретно нужно вывести доп поля в модуле K2 contetnt module. Конструкция
<?php echo $this->item->extraFields->АЛИАС->name?>
<?php echo $this->item->extraFields->АЛИАС->value ?>
насколько мне известно предназначена для вывода доп полей в теле материала.
Эта конструкция у меня в модуле не сработала. Выдает ошибку. просто для материала не пробовал еще.
пока я вышел из ситуации. Значение в полях выставляю 0 и скрываю при помощи
<?php if ($extrafields[id-поля] != '0'): ?>
                <?php echo $extrafields[id-поля];?>
<?php endif;?>
но хотелось бы не такой кривой способ. может кто знает.
ну и name extrafields тоже не выводится в модуле. Выкрутился - вставил текст в файл шаблона
*

jurassik

  • Давно я тут
  • 692
  • 52 / 1
Re: Дополнительные поля в K2 contetnt module
« Ответ #5 : 27.02.2013, 01:58:21 »
<?php echo $this->item->extraFields->АЛИАС->name?>
<?php echo $this->item->extraFields->АЛИАС->value ?>
видимо так:
Код
$item->extraFields->АЛИАС->value
см. переменную цикла
Код
foreach ($items as $item): 
сам шучу - сам смеюсь
*

apatiger

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Re: Дополнительные поля в K2 contetnt module
« Ответ #6 : 07.07.2014, 16:26:19 »
Подскажите, а то что-то вокруг да около, столько информации перелопатил и ничего кроме намеков не нашел, а можно ли не в окружении Контента (itemFullText), а именно в нем, внутри, расставлять альясы, не в шаблоне, а прямо в тексте контента? Попробовал, у меня не подхватывает, а если бы можно было, то, мне представляется, это бы открыло еще один огромный уровень возможностей. Только, если возможно, пожалуйста с примером кода вставки в шаблон материала, а то лично я к РНР отношусь с большим уважением, то есть никак...
*

jurassik

  • Давно я тут
  • 692
  • 52 / 1
Re: Дополнительные поля в K2 contetnt module
« Ответ #7 : 07.07.2014, 17:24:55 »
нет.
но можно попробовать через "одно местно":
вставить в контенте материала слово AliaS_Price
потом в шаблоне
Код
echo str_replace(AliaS_Price,$this->item->extraFields->price->value,$this->item->fulltext)
« Последнее редактирование: 08.07.2014, 03:56:20 от jurassik »
сам шучу - сам смеюсь
*

apatiger

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Re: Дополнительные поля в K2 contetnt module
« Ответ #8 : 08.07.2014, 08:27:33 »
нет.
но можно попробовать через "одно местно":
вставить в контенте материала слово AliaS_Price
потом в шаблоне
Код
echo str_replace(AliaS_Price,$this->item->extraFields->price->value,$this->item->fulltext)
Нет, у меня эта конструкция не сработала. Но именно что-то такое бы и нужно, чем обвешивать все вокруг кусками, эти куски украшать css-ми. Чтобы система искала в тексте ключевые слова, а вид вывода этих полей уже доводился правилами текста контента. Тогда бы идея шаблона ушла бы вообще, шаблоном бы стал сам контент, а тут бы было целое поле для творчества прямо тут и на месте. Можно конечно спорить, что в формате шаблона лучше и удобнее, но я за наглядность чего пишешь в редакторе и за голимый HTML.
*

jurassik

  • Давно я тут
  • 692
  • 52 / 1
Re: Дополнительные поля в K2 contetnt module
« Ответ #9 : 08.07.2014, 10:22:16 »
Нет, у меня эта конструкция не сработала.
она  не может не работать, ищите ошибку
сам шучу - сам смеюсь
*

apatiger

  • Осваиваюсь на форуме
  • 42
  • 1 / 0
Re: Дополнительные поля в K2 contetnt module
« Ответ #10 : 08.07.2014, 19:48:56 »
она  не может не работать, ищите ошибку
Да вроде никаких ошибок. Единственно что может быть, это неверное мною понимание Вашего объяснения - я к программированию же не имею никакого отношения по жизни, так потихоньку поднаторел в мелочах. Как я понял в Вашем варианте AliaS_Price является кодовым словом, которое должно меняться в тексте, так? А название альяса price, так? Если так, то я ошибок вроде никаких не сделал. Может кодовое слово надо обернуть во что в тексте?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Точный поиск JA K2 Filter and Search Module

Автор Abez

Ответов: 1
Просмотров: 936
Последний ответ 25.02.2020, 19:58:47
от Abez
JA K2 Filter and Search Module и разные шаблоны для items

Автор Abez

Ответов: 0
Просмотров: 991
Последний ответ 24.02.2020, 11:43:10
от Abez
Ограничить длину заголовков К2

Автор Yura Vakulenko

Ответов: 23
Просмотров: 7008
Последний ответ 15.02.2019, 17:46:30
от Slava77
Joomcar K2 Filter and Search module 1.5

Автор lalalag

Ответов: 0
Просмотров: 1107
Последний ответ 19.10.2017, 18:20:56
от lalalag
Адаптированный список материалов катего

Автор fil

Ответов: 1
Просмотров: 1273
Последний ответ 06.08.2017, 17:47:12
от fil