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

LyalyaChornaya

  • Захожу иногда
  • 236
  • 15 / 1
Вопрос следующий: Зачем в модуле нужен helper.php?
Хочу попробовать разработать модуль калькулятора для сайта - расчет стоимости стекла. Сразу возник вопрос, не могу найти ответ на него (хэлловорд, как пример, на всех сайтах с обучением ответа, естественно на него не даст). Просмотрела все стандартные модули Joomla, тоже не помогло, они работают с компонентом com_content. Конечно, я понимаю, если модуль берет данные из таблицы компонента, то он нужен, но у меня будет в админке администратор вводит цены на стекло, коэффициент на сложность, цену на отверстия и т.д., а уж с фронтэнда пользователь будет вводить размер и и выбирать нужные данные из формы. Хотелось бы с самого начала сделать по всем правилам, то есть с этим хэлпером, тогда сразу возникает следующий вопрос, что туда вписывать.
Ну написала я обязательное defined( '_JEXEC' ) or die; а вот дальше что?
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
helper.php в модуле просто дополнительный файл в который вынесли бизнес логику!

Ну написала я обязательное defined( '_JEXEC' ) or die; а вот дальше что?
А дальше создаете нужный вам класс либо функции и используете их в шаблоне, или точке вызова модуля...
*

LyalyaChornaya

  • Захожу иногда
  • 236
  • 15 / 1
Istaan, вот это
Цитировать
вынесли бизнес логику
для меня пока набор слов. Опытному программисту это, конечно, может, и смешно, но все когда-то начинали. Я у вас на сайте попробовала сделать модуль, в хэлпере этом получилось следующее:
Цитировать
<?php

// No direct access
defined( '_JEXEC' ) or die;

class ModuleTestHelper
{

   /**
    * getData method
    * @param $params
    * @return array
    */
   static function getData( $params )
   {
      $db = JFactory::getDbo();
      return array();
   }

}
$db = JFactory::getDbo(); - это ведь модуль обращается к БД или я ошибаюсь?
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Istaan, вот это  для меня пока набор слов. Опытному программисту это, конечно, может, и смешно, но все когда-то начинали.
ну бизнес логика скажем так это вы в отдельный файл выносите работу с базой данный, обработку этих данных, подготовка к выводу что бы не мешать в одном файле с отображением данных, тоесть грубо говоря если вы посмотрите в шаблоны модулей то вы не заметите там запросов в базу например, банально вывод например данных, пару условий, и т.д. все потому что данные подготовленны уже в helper!

Я у вас на сайте попробовала сделать модуль, в хэлпере этом получилось следующее:$db = JFactory::getDbo(); - это ведь модуль обращается к БД или я ошибаюсь?
Ну не обращается к БД, а получает объект класса JDatabaseDriver с помощью которого вы можете выполнять запросы в БД..
сделано у меня это банально для того что бы меньше писанины было ) кому не надо работаать в модуле с базой - удалит.. кому надо допишет функционал )
*

LyalyaChornaya

  • Захожу иногда
  • 236
  • 15 / 1
Ладно, для чего нужен хэлпер, я вроде бы разобралась. Он делает выборку из БД и (или) присваивает значения переменным из манифеста. Что там писать, я так и не поняла, хотя хотелось бы разобраться. Ну написала defined( '_JEXEC' ) or die;, ну написала class modCalcglassHelper и что дальше? Поймите, хочу разобраться, а не тупо переписывать готовый код у других, не понимая смысла. Только очень прошу, если кто-то из программистов мне ответит, помните, что отвечаете человеку, который только пытается научиться и не программист, без всяких страшных слов, ладно?

Теперь вопрос уже конкретно по калькулятору.
mod_calcglass.xml
Код
<field name="otvsm" type="text" label="Цена за 1 отверстие д.15-20мм" default="60"/>
<field name="otvmed" type="text" label="Цена за 1 отверстие д.26-42мм" default="130"/>
<field name="otvlar" type="text" label="Цена за 1 отверстие свыше 42мм" default="200"/>

default.php
Код
<script type="text/javascript">
otvsmall = eval(form.otvsmall.value); //Присваиваем otvsmall значение из поля otvsmall
otvmedium = eval(form.otvmedium.value); //Присваиваем otvmedium значение из поля otvmedium
otvlarge = eval(form.otvlarge.value); //Присваиваем otvlarge значение из поля otvlarge
result = otvsmall*60+otvmedium*130+otvlarge*200;
form.total1.value = result; //выдаем результат
</script>

<form name="form" style="display: block;" class="calc" action="" method="post" onClick="calculate(this.form); return false;">
   <p>Введите кол-во отверстий д.15-20мм: <input type="text" name="otvsmall" value="0"></p>
   <p>Введите кол-во отверстий д.26-42мм: <input type="text" name="otvmedium" value="0"></p>
   <p>Введите кол-во отверстий д.свыше 42мм: <input type="text" name="otvlarge" value="0"></p>
</form>

Как в javascript передать значения 60,130,200 из mod_calcglass.xml? Попытка вставить
Код
<?php $otvsm ?>
вместо чисел не прокатила.
Кстати, есть у меня в форме еще селект, хотела вставить вместо
Код
<option value="1300">
(к примеру)
Код
<option value=<?php $price_t8 ?>>
не прокатило тоже. Я догадываюсь, что я что-то не так делаю, но что не так - даже божественный Google не помог.
*

fsv

  • Живу я здесь
  • 2781
  • 411 / 2
var x = "<?php echo $otvsm ?>";
<option value="<?php echo $price_t8 ?>">
Веб-разработка: заказ. Только новая разработка.
*

LyalyaChornaya

  • Захожу иногда
  • 236
  • 15 / 1
В том-то и дело, что такая запись почему-то не действует
Код
<option value="<?php echo $price_t8; ?>"><?php echo JText::_('MOD_CALCGLASS_PRICET8'); ?></option>
В исходном коде страницы получается
Код
<option value="">Толщина 8мм</option>
То есть JText все нормально, а вот вместо переменной просто нет ничего
И вот эта запись не подействовала
Код
var x = "<?php echo $otvsm ?>";
Более того, когда я просто на странице вывожу
Код
<?php echo $otvsm ?>
, ну чтобы проверить, действует ли вообще такая запись, так вот и нет, не действует, пусто на странице. Я подозреваю, что это колдунство связано с самой Joomla, то ли в хэлпере нужно что-то прописать очень важное (поэтому я так к нему и привязалась), то ли класс какой-то должен быть добавлен, ну типа JText, только что-то другое. Пересмотрела все стандартные модули самой Joomla, они связаны с компонентами и выборка идет из БД. А вот так, чтобы в админке пользователь вносил данные, а на выходе они попадали в javascript, таких нет совсем.
*

LyalyaChornaya

  • Захожу иногда
  • 236
  • 15 / 1
Уважаемый модератор! тему можно закрывать. Как обычно, не дождалась ответа. Перерыла инет, сделала модуль калькулятора с внесением цен из админки на Javascript. Спасибо всем, кто попытался помочь
*

varX

  • Живу я здесь
  • 2466
  • 141 / 5
  • разработка компонентов
Уважаемый модератор! тему можно закрывать. Как обычно, не дождалась ответа. Перерыла инет, сделала модуль калькулятора с внесением цен из админки на Javascript. Спасибо всем, кто попытался помочь

Плохо смотрели
http://joomlaforum.ru/index.php/topic,228015.0.html
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

LyalyaChornaya

  • Захожу иногда
  • 236
  • 15 / 1
Нет, уважаемый lcd25, смотрела я хорошо, более того, я его тестировала. Такой калькулятор моему заказчику не нужен. Мне нужен был такой калькулятор, чтобы пользователь зашел в админку сайта и поменял цены, не залезая в формулы и код, прямо в форме ввода. Я его сделала, о чем теперь говорить-то
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модернизировать модуль

Автор kurz

Ответов: 4
Просмотров: 650
Последний ответ 13.09.2022, 15:35:31
от kurz
[SP Page Builder] Модуль ajax contact в модальном окне

Автор TW-WEB

Ответов: 2
Просмотров: 3108
Последний ответ 24.02.2018, 17:34:50
от TW-WEB
Модуль авторизации OpenId

Автор greytm

Ответов: 7
Просмотров: 3263
Последний ответ 04.11.2016, 00:04:31
от KypuHa9_Hora
Как вставить модуль в контент компонента

Автор sava36

Ответов: 21
Просмотров: 18500
Последний ответ 15.06.2016, 09:55:51
от Ilja93
Как вставить модуль в код нужной страницы php?

Автор zvi

Ответов: 7
Просмотров: 3714
Последний ответ 12.04.2016, 19:36:55
от AlekVolsk