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

baskethome

  • Захожу иногда
  • 110
  • 0 / 0
Всем привет! Не могу найти нормально описания по созданию модуля для Joomla 3.
Надо сделать модуль с выводом из 1 таблицы по 2 значениям:
Код
$result=mysql_query('SELECT * FROM `skb01_cin_films` WHERE city REGEXP "(^|[[:space:][:punct:]])0([[:space:][:punct:]]|$)" AND pokaz=0');
выводить все продукты, где в поле city есть 0 и поле pokaz 0. Это у меня просто в php файле.
А как сделать модуль с таким выводом, прошу помощи
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Модуль С выводом данных ИЗ таблицы
« Ответ #1 : 21.01.2015, 21:35:57 »
Взять и написать модуль ) Даже не знаю что сказать, у меня в подписи есть ссылка на конструктор каркаса для модулей, можете базово каркас соорудить, а дальше делать что нужно с ним!
*

baskethome

  • Захожу иногда
  • 110
  • 0 / 0
Re: Модуль С выводом данных ИЗ таблицы
« Ответ #3 : 21.01.2015, 22:26:32 »
Код
// Устанавливаем поля для выборки
$fields = array('name', 'username');

// Конструируем запрос
$query->select($db->quoteName($fields))
->from($db->quoteName('#__users'))
->where($db->quoteName('block'). ' = 0')
->order($db->quoteName('registerDate'). ' DESC');

// Устанавливаем запрос
$db->setQuery($query, 0, $params->get('count', 5));

эту статью видел, просто не очень понятно как в конструктор записать
Код
$result=mysql_query('SELECT * FROM `skb01_cin_films` WHERE city REGEXP "(^|[[:space:][:punct:]])0([[:space:][:punct:]]|$)" AND pokaz=0');
если не сложно, опишите, пожалуйста
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Модуль С выводом данных ИЗ таблицы
« Ответ #4 : 21.01.2015, 22:32:39 »
Цитировать
REGEXP "(^|[[:space:][:punct:]])0([[:space:][:punct:]]|$)
за такое надо сразу по рукам
Как может city соответствовать этому?
*

baskethome

  • Захожу иногда
  • 110
  • 0 / 0
Re: Модуль С выводом данных ИЗ таблицы
« Ответ #5 : 21.01.2015, 22:36:27 »
я знаю мне уже писали об этом, но таблица 1, продукты могут быть в разных городах и поэтому стоит множественный выбор (0,1,2). а с помощью этой записи получается выводить те продукты, где присутствует 1 или 2 ил 0 и т.д.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Модуль С выводом данных ИЗ таблицы
« Ответ #6 : 21.01.2015, 22:45:28 »
Цитировать
1 или 2 ил 0
Код: sql
WHERE city IN (1, 2, 0)
city для меня сущность и должна иметь строковое значение, city_id числовое
*

baskethome

  • Захожу иногда
  • 110
  • 0 / 0
Re: Модуль С выводом данных ИЗ таблицы
« Ответ #7 : 21.01.2015, 22:50:02 »
пробовал, не работает, т.е. работает только на ед вывод. Т.е. если в поле таблицы только одно значение (1 или 0 и тд), а у меня в таблицу записывается (когда несколько городов у товара) - 1,0 или 0,1,2  и тд
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Модуль С выводом данных ИЗ таблицы
« Ответ #8 : 21.01.2015, 23:06:49 »
тогда Неправильная логика записи
создайте еще одну таблицу и пишите туда ид страны и ид фильма. Один ко многим.
*

baskethome

  • Захожу иногда
  • 110
  • 0 / 0
Re: Модуль С выводом данных ИЗ таблицы
« Ответ #9 : 21.01.2015, 23:15:56 »
переписывать заново компонент уже нет времени. Сколько будет стоить сделать такой модуль вывода? Только прошу не заламывать)
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
Re: Модуль С выводом данных ИЗ таблицы
« Ответ #11 : 21.01.2015, 23:29:56 »
эту статью видел, просто не очень понятно как в конструктор записать
Код
$result=mysql_query('SELECT * FROM `skb01_cin_films` WHERE city REGEXP "(^|[[:space:][:punct:]])0([[:space:][:punct:]]|$)" AND pokaz=0');
если не сложно, опишите, пожалуйста
Зачем. Есть у вас модуль, напишите его на чистом php если с конструктором запросов Joomla проблемы. Очистите файл вообще, напишите
Код: php
echo 'мой модуль';
видите вывод во фронтенде? И вперед, на php как умеете.
*

baskethome

  • Захожу иногда
  • 110
  • 0 / 0
Re: Модуль С выводом данных ИЗ таблицы
« Ответ #12 : 21.01.2015, 23:40:41 »
Да, уже подумывал об этом,  только получается, что надо будет прописывать подключение к бд??
Код
$sdd_db_host='localhost'; 
$sdd_db_name='prosto';
$sdd_db_user='root';
$sdd_db_pass='';
@mysql_connect($sdd_db_host,$sdd_db_user,$sdd_db_pass);
@mysql_select_db($sdd_db_name);

$result=mysql_query('SELECT * FROM `skb01_cin_films` WHERE city REGEXP "(^|[[:space:][:punct:]])1([[:space:][:punct:]]|$)" AND pokaz=1');
 
и т.д.

p.s. извиняюсь, если глупый вопрос, только учусь)
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
Re: Модуль С выводом данных ИЗ таблицы
« Ответ #13 : 22.01.2015, 00:00:13 »
Дай бог памяти вроде как-то так
Код: php
$db = JFactory::getDBO();
$sql = 'SELECT * FROM `skb01_cin_films` WHERE city REGEXP "(^|[[:space:][:punct:]])1([[:space:][:punct:]]|$)" AND pokaz=1';
$db->setQuery($sql);
$result = $db->loadObjectList();
var_dump($result);
*

baskethome

  • Захожу иногда
  • 110
  • 0 / 0
Re: Модуль С выводом данных ИЗ таблицы
« Ответ #14 : 22.01.2015, 00:53:05 »
Спасибо. Щас попробую. А ещё один вопрос. Можно ли сделать так, чтобы в модуле было поле, в него вписать запрос и этот запрос подставить в обработку.
Пример:в поле модуля вбиваю SELECT * FROM `skb01_cin_films` WHERE city REGEXP "(^|[[:space:][:punct:]])1([[:space:][:punct:]]|$)" AND pokaz=1 и это выводится в $sql.
А в php - $sql = '$zapros'; Это просто как пример.

В идеале кончено бы 2 поля чтобы можно было ввести 0 или 1 или 2 в поле city и поле pokaz

Просто модуль не один раз повторяться будет на сайте и разные выводы для городов
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Модуль С выводом данных ИЗ таблицы
« Ответ #15 : 22.01.2015, 09:16:20 »
Чтобы поля в админке были или во фронте? Фронт - это форма, в модуле получаете из реквеста, через JInput. Админка - имхо, в параметрах модуля можно, по приведенной ссылке в #2 ответе есть пример использования параметров.
*

baskethome

  • Захожу иногда
  • 110
  • 0 / 0
Re: Модуль С выводом данных ИЗ таблицы
« Ответ #16 : 22.01.2015, 11:51:20 »
Народ, спасайте. Попробовал написать модуль с полями. Сделал 2 поля cityfilm текстовое и pokazfilm список с 2 значениями.
Запрос на простом php $result=mysql_query('SELECT * FROM `skb01_cin_films` WHERE city REGEXP "(^|[[:space:][:punct:]])1([[:space:][:punct:]]|$)" AND pokaz=1');


файл XML
Код

<files>
<filename>mod_films.xml</filename>
<filename module="mod_films">mod_films.php</filename>
<filename>helper.php</filename>
<filename>index.html</filename>
<folder>tmpl</folder>
<folder>assets</folder>
<folder>language</folder>
</files>
<languages folder="language">
<language tag="ru-RU">ru-RU.mod_films.ini</language>
<language tag="ru-RU">ru-RU.mod_films.sys.ini</language>
</languages>

<config>
<fields name="params">
<fieldset name="basic">
<field name="cityfilm" type="text" default="" label="MOD_FILMS_FIELD_CITY_LABEL" description="MOD_FILMS_FIELD_CITY_DESC" filter="raw" />
<field name="pokazfilm" type="list" label="MOD_FILMS_FIELD_POKAZ_LABEL" description="MOD_FILMS_FIELD_POKAZ_DESC">
<option value="nowfi">MOD_FILMS_FIELD_POKAZ_TODAY</option>
<option value="soonfi">MOD_FILMS_FIELD_POKAZ_SOON</option>
</field>
</fieldset>
<fieldset
name="advanced">
<field
name="layout"
type="modulelayout"
label="JFIELD_ALT_LAYOUT_LABEL"
description="JFIELD_ALT_MODULE_LAYOUT_DESC" />

<field
name="moduleclass_sfx"
type="textarea" rows="3"
label="COM_MODULES_FIELD_MODULECLASS_SFX_LABEL"
description="COM_MODULES_FIELD_MODULECLASS_SFX_DESC" />

<field
name="cache"
type="list"
default="1"
label="COM_MODULES_FIELD_CACHING_LABEL"
description="COM_MODULES_FIELD_CACHING_DESC">
<option
value="1">JGLOBAL_USE_GLOBAL</option>
<option
value="0">COM_MODULES_FIELD_VALUE_NOCACHING</option>
</field>
<field
name="cache_time"
type="text"
default="900"
label="COM_MODULES_FIELD_CACHE_TIME_LABEL"
description="COM_MODULES_FIELD_CACHE_TIME_DESC" />
<field
name="cachemode"
type="hidden"
default="static">
<option
value="static"></option>
</field>
</fieldset>
</fields>
</config>
</extension>

файл default
Код
<?php

defined('_JEXEC') or die;
?>


<?php if (!empty($name)) : ?>
<ul class="films><?php echo $moduleclass_sfx ?>">
<?php foreach ($names as $name) : ?>
<li>
<?php echo $name->name; ?>
</li>
<?php endforeach;  ?>
</ul>
<?php endif; ?>

файл helper

Код
<?php

defined('_JEXEC') or die;

class ModFilmsHelper
{

public static function getFilms($params)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select('*')
->order('id DESC')
->from('#__cin_films')
->where('city REGEXP "(^|[[:space:][:punct:]])$cityfilm([[:space:][:punct:]]|$)" AND pokaz=$pokazfilm');
$films = JFactory::getFilms();


$db->setQuery($query, 0, $params->get('cityfilm'));
$db->setQuery($query, 0, $params->get('pokazfilm'));
$result = $db->loadObjectList();



return (array) $result;
}

}

файл модуль php
Код
<?php

defined('_JEXEC') or die;

require_once __DIR__ . '/helper.php';

$cityfilm = $params->get('cityfilm');
$pokazfilm = $params->get('pokazfilm');
$moduleclass_sfx = htmlspecialchars($params->get('moduleclass_sfx'));

require JModuleHelper::getLayoutPath('mod_films', $params->get('layout', 'default'));

*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Модуль С выводом данных ИЗ таблицы
« Ответ #17 : 22.01.2015, 12:37:28 »
вот это бред:
$db->setQuery($query, 0, $params->get('cityfilm')); - установили запрос
$db->setQuery($query, 0, $params->get('pokazfilm')); - установили новый запрос, убив то что устанавливали строкой выше (эта команда не дополняет! Только заменяет!)
$result = $db->loadObjectList();
*

baskethome

  • Захожу иногда
  • 110
  • 0 / 0
Re: Модуль С выводом данных ИЗ таблицы
« Ответ #18 : 22.01.2015, 14:47:51 »
блин, парни, поправьте, что не так, пжл. Время на исходе, денег особо нет, могу если что на телефон кинуть, как спасибо. Выручайте.
всё ночь сидел смотрел ролик искал в инете как делают, но там примеры только по меню, а начинаю на примере делать, не работает
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Модуль С выводом данных ИЗ таблицы
« Ответ #19 : 22.01.2015, 15:07:58 »
Приведи значения столбца city.
Ибо REGEXP "(^|[[:space:][:punct:]])$cityfilm([[:space:][:punct:]]|$)" кроме как гoвнокодом назвать нечем. Тебе сколько человек сказало это
Столбцы по которым должна быть выборка должны быть индексируемыми (это тебе на заметку), чтобы запрос отрабатывал быстрее
*

baskethome

  • Захожу иногда
  • 110
  • 0 / 0
Re: Модуль С выводом данных ИЗ таблицы
« Ответ #20 : 22.01.2015, 16:13:45 »
спасибо) критика это хорошо)))) я не особо знаю пока все эти нюансы, т.к. пока ещё учусь этому. Всё приходит с опытом. ну вроде выводит всё.
Только проблема осталась с полями настройки модуля. Выводит только через такую запись

Код
->where('city REGEXP "(^|[[:space:][:punct:]])0([[:space:][:punct:]]|$)" AND pokaz=1');

надо, чтобы были типа как переменные из 2-х полей параметра модуля

Тут 2 поля текстовое город и select показ

mod_films.xml
Код
<fields name="params">
<fieldset name="basic">
<field name="cityfilm" type="text" default="" label="MOD_FILMS_FIELD_CITY_LABEL" description="MOD_FILMS_FIELD_CITY_DESC" filter="raw" />
<field name="pokazfilm" type="list" label="MOD_FILMS_FIELD_POKAZ_LABEL" description="MOD_FILMS_FIELD_POKAZ_DESC">
<option value="nowfi">MOD_FILMS_FIELD_POKAZ_TODAY</option>
<option value="soonfi">MOD_FILMS_FIELD_POKAZ_SOON</option>
</field>
</fieldset>

helper

Код
<?php

class ModFilmsHelper
{

public static function getFilms($params)
{
$pokazfilm = $params->get('pokazfilm');
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select('*')
->order('id DESC')
->from('#__cin_films')
->where('city REGEXP "(^|[[:space:][:punct:]])0([[:space:][:punct:]]|$)" AND pokaz=1');
$user = JFactory::getUser();



$db->setQuery($query, 0, $params->get('cityfilm'));
$result = $db->loadObjectList();

return (array) $result;
}
}


default

Код
<?php

defined('_JEXEC') or die;
?>


<?php if (!empty($names)) : ?>
<div class="cols"><?php echo $moduleclass_sfx ?>
<?php foreach ($names as $name) : ?>
<div class="col">
<img src="<?php echo $name->izo; ?>" alt="" />
<div class="title-film"><a href="index.php?option=com_cinema&view=films&id=<?php echo $name->id; ?>"><?php echo $name->name.((isset($name->category_id) && isset($name->params) && $name->category_id and $name->params->get('show_category'))? (' ('.$name->category_id.')') : '');  ?></a></div>
<div class="janr"><?php echo $name->janr; ?></div>
</div>
<?php endforeach;  ?>
</div>
<?php endif; ?>

mod_.php

Код
<?php

defined('_JEXEC') or die;

require_once __DIR__ . '/helper.php';

$cityfilm = $params->get('cityfilm');
$names = ModFilmsHelper::getFilms($params);
$pokazfilm = $params->get('pokazfilm');
$moduleclass_sfx = htmlspecialchars($params->get('moduleclass_sfx'));

require JModuleHelper::getLayoutPath('mod_films', $params->get('layout', 'default'));
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Модуль С выводом данных ИЗ таблицы
« Ответ #21 : 22.01.2015, 23:10:48 »
Приведи значения столбца city.
Не привел данные из таблицы.
Ок. Сможешь тогда рассказать принцип работы регулярного выражения
REGEXP "(^|[[:space:][:punct:]])0([[:space:][:punct:]]|$)"
что оно по твоему ищет, откуда появляются записи удовлетворяющие условию
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Отправка файлов через ajax в модуль Joomla

Автор hemicide

Ответов: 19
Просмотров: 2113
Последний ответ 11.04.2022, 08:44:33
от sivers
Прописать условие для сохранения данных в БД

Автор semen1707

Ответов: 0
Просмотров: 486
Последний ответ 14.04.2021, 00:59:44
от semen1707
Пример представления компонента с выводом списка с фильтром по связанной таблице

Автор borro

Ответов: 36
Просмотров: 2529
Последний ответ 14.10.2020, 11:59:15
от b2z
Модель для представления, которое показывает списки данных разных типов

Автор borro

Ответов: 27
Просмотров: 1238
Последний ответ 06.05.2020, 11:57:12
от Septdir
Модуль обратной связи. Как использовать свойство context в ajax запросе

Автор ushangi

Ответов: 0
Просмотров: 682
Последний ответ 15.02.2020, 22:08:12
от ushangi