Новости 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 Пользователей и 2 Гостей просматривают эту тему.
  • 680 Ответов
  • 153793 Просмотров
*

brengilda

  • Новичок
  • 3
  • 0 / 0
Доброго времени суток.
Позвольте вопрос, связанный с работой JS.
Установила компонент. Если захожу как администратор, то открывается форма для добавления вопроса-ответа (уже заданного ранее).
Захожу как просто зарегистрированный пользователь, нажимаю добавить вопрос. Появляется сообщение 500. Если нажать ок, то все зависает, впечатление, что выполняется какой-то бесконечный цикл :(
Как можно исправить? CMS Joomla1.7. Ссылка на сайт http://profit-tm.ru
Спасибо.
« Последнее редактирование: 11.08.2012, 22:59:37 от brengilda »
*

brengilda

  • Новичок
  • 3
  • 0 / 0
Добрый день! Joomla 1.7.0 Поставил SM FAQ 1.7.2 Все работает, но при нажатии на задать вопрос выпадает ошибка 500. Есть решение?
Заранее благодарен!
Подскажите. как решили проблему? Такая же ситуация...
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Подскажите. как решили проблему? Такая же ситуация...
добавьте в в файл components\com_smfaq\smfaq.php строчку
Цитировать
jimport('joomla.form.form');
а еще лучше обновить Joomla, т.к. это была промежуточная версия и на данный момент уже не поддерживается.
*

brengilda

  • Новичок
  • 3
  • 0 / 0
Цитировать
добавьте в в файл components\com_smfaq\smfaq.php строчку
Спасибо огромное, SmokerMan! Теперь вопросы добавляются. А можно еще спросить?
Дело в том, что после заполнения  ответа (неважно с сайта или из админки), нажимаю сохранить и получаю:
"Удаленный сервер или файл не найден

Проверьте, верно ли написан адрес, или попробуйте найти сайт.
Искать в Интернет: Поиск@mail.ru"
И , само собой, ничего не сохраняется :(
Подскажите, пожалуйста, как исправить.
Обновить Joomla пока еще не готова....
« Последнее редактирование: 13.08.2012, 19:56:47 от brengilda »
*

MeTaN

  • Осваиваюсь на форуме
  • 32
  • 1 / 0
Здравсвуйте SmokerMan! Установлен компонент SM FAQ версия 1.7.2, Joomla! 2.5.6, а так-же ваш тестовый плагин для добавления полей. Просветите как добавить мне два текстовых поля.
Я так понял нужно править fields.xml
У вас там так
Код
<?xml version="1.0" encoding="utf-8"?>
<form>
<fieldset name="details">
<field name="my_field" type="text"
   label="MY_FIELD"
   description="MY_FIELD_DESC"
/>
</fieldset>
</form>
Мне нужно добавить поля с телефоном и адресом.
Правлю так
Код
<fieldset name="details">
<field name="my_tel" type="text"
   label="Телефон"
   description="MY_TEL_DESC"
/>
<field name="my_adress" type="text"
   label="Адрес"
   description="MY_ADRESS_DESC"
/>
</fieldset>
</form>
Поля в форме появляются, но форма не отправляется, никаких сообщений об ошибке не выдаёт.
Читал эту ветку форума, но ответа не нашёл.
*

danslash

  • Осваиваюсь на форуме
  • 19
  • 1 / 0
Что такое альтернативный макет в Joomla
Создаем альтернативный макет для категории, файл 'components/com_smfaq/views/category/tmpl/default.php'
меняем в нем
Код
			<div id="q<?php echo $item->id; ?>" class="question" <?php echo $onclick; ?>>
<a name="<?php echo 'p'.$item->id; ?>" class="img"></a>
<?php echo $this->escape($item->question); ?>
            </div>
на приблизительно такое
Код
			<div><?php echo $this->escape($item->question); ?></div>
<div id="q<?php echo $item->id; ?>" class="question" <?php echo $onclick; ?>>
<a name="<?php echo 'p'.$item->id; ?>" class="img"></a>
<span>Читать далее</span>
            </div>
Сохраняем файл в кодировке UTF8 без BOM. И подстраиваем стили как нужно.


Спасибо большое, но что то я такое не вижу в вашем компоненте. Возможно из за того что версия у меня для Joomla 1.5. Не могли бы вы подсказать, как тамсделать. С CSS проблем нету, главное как сделать раскрывание не по вопросу а по ссылочке "Читать далее". Заранее Огромное спасибо
« Последнее редактирование: 22.08.2012, 13:55:48 от danslash »
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Поля в форме появляются, но форма не отправляется, никаких сообщений об ошибке не выдаёт.
Читал эту ветку форума, но ответа не нашёл.
там помимо этого при установки плагина нужно создать еще дополнительное поля в БД для таблицы #__smfaq
пример можно увидеть в архиве плагина файл script.php
Т.е. в вашем случае это будет два поля 'my_tel' и 'my_adress', а в примере задается одно поле 'my_field'.
А так же сделать проверку этих значений если требуется, в файле test.php метод onSmfaqBeforeSend.
Либо просто удалить этот метод если проверок никаких не требуется.
*

cantsave

  • Захожу иногда
  • 215
  • 2 / 0
А можно ли сделать в меню так чтоб ссылка ввела к списку категорий, а не подкатегорий?
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
А можно ли сделать в меню так чтоб ссылка ввела к списку категорий, а не подкатегорий?
Создайте родительскую категории без вопросов, а остальные категории сделайте дочерними. И сделайте пункт меню на родительскую категорию.
*

Zhjeka

  • Новичок
  • 3
  • 0 / 0
Возникли вопросы.
1. Как заменить капчу в форме вопроса на reCaptcha, которая есть в стандартных плагинах.
2. Компонент запоминает значение введенное в поле Имя и e-mail. Так и задумано?
« Последнее редактирование: 24.08.2012, 21:30:23 от Zhjeka »
*

gdX

  • Глобальный модератор
  • 995
  • 128 / 0
  • Открыт к заказам по дизайну
Шаблонизация компонента.
Создаю в шаблоне в папке HTML папку com_smfaq
В ней создаю папку form (нужно скорректировать вид формы)
Копирую туда файл default.php из components/com_smfaq/views/form/tmpl
Меняю его, а на сайте никаких изменений.
Меняю файл в основной папке (components/com_smfaq/views/form/tmpl), тогда изменения видны.
Что не так делаю?
*

Roamer

  • Захожу иногда
  • 150
  • 3 / 0
Нигде не нашел ответ на свой вопрос. Как сделать так, чтобы вопросы автоматически публиковались?
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
Шаблонизация компонента.
Создаю в шаблоне в папке HTML папку com_smfaq
В ней создаю папку form (нужно скорректировать вид формы)
Копирую туда файл default.php из components/com_smfaq/views/form/tmpl
Меняю его, а на сайте никаких изменений.
Меняю файл в основной папке (components/com_smfaq/views/form/tmpl), тогда изменения видны.
Что не так делаю?

У меня те же грабли были, тока я подумал, что я лох, и не стал доставать Аффтара. Присоединяюсь к вопросу!
--
И ещё в качестве предложения - сделать модуль к компоненту с возможностью выбора выводов:
* последние заданные вопросы
* последние отвеченные вопросы
* самые обсуждаемые вопросы.
*

Roamer

  • Захожу иногда
  • 150
  • 3 / 0
И ещё в качестве предложения - сделать модуль к компоненту с возможностью выбора выводов:
* последние заданные вопросы
* последние отвеченные вопросы
* самые обсуждаемые вопросы.
Да! Очень будет полезно! А то я сам создал HTML модуль, который говорит пользователям о существовании возможности задавать вопросы.
*

gdX

  • Глобальный модератор
  • 995
  • 128 / 0
  • Открыт к заказам по дизайну
И ещё в качестве предложения - сделать модуль к компоненту с возможностью выбора выводов:
* последние заданные вопросы
* последние отвеченные вопросы
* самые обсуждаемые вопросы.
Добавил бы сюда модуль формы отправки сообщения.
Иногда нужно поставить ее в другое место.
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Шаблонизация компонента.
Создаю в шаблоне в папке HTML папку com_smfaq
В ней создаю папку form (нужно скорректировать вид формы)
Копирую туда файл default.php из components/com_smfaq/views/form/tmpl
Меняю его, а на сайте никаких изменений.
Меняю файл в основной папке (components/com_smfaq/views/form/tmpl), тогда изменения видны.
Что не так делаю?
да там с формой какие-то не стыковки были, в общем для нее пока шаблонизация не действует))

по поводу модуля товарищ какой-то что-то делал http://color-rain.ru/11-blog/develop/27-modul-voprosov-otvetov-sm-faq. Если есть желание можно поглядеть, я правда его сам не смотрел))
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
*

efemerid

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Здравствуйте! Поставил последнюю версию компонента, создал категорию, в меню Список вопросов в категории, выбрал категорию. В результате на странице сайта при переходе - 404 - Категория не найдена
*

Al20009

  • Новичок
  • 1
  • 0 / 0
а не подскажете скрипт для переноса из версии для j1.5 в новую версию?

UPD: Накидал скриптик, может кому пригодится, переносит необходимые мне поля (остальные которые мне не были нужны заменяет дефолтными значениями)

Код
<?php
$host="";
$user="";
$password="";
mysql_connect($host,$user,$password);

mysql_query ("set character_set_results='utf8'");
mysql_query ("SET character_set_client='utf8'");
mysql_query("SET character_set_connection='utf8'");


mysql_select_db("db1");
$copy_table=mysql_query('SELECT * FROM jos_smfaq ORDER BY id') or die("status1=".mysql_error());

mysql_select_db("db2");

while ($copy_table_f=mysql_fetch_array($copy_table)) {

$id = NULL;
$catid = $copy_table_f[catid];
$question = $copy_table_f[question];
$answer = $copy_table_f[answer];
$checked_out = '0';
$checked_out_time = '0000-00-00 00:00:00';
$ordering = $copy_table_f[id];
$published = '1';
$created = $copy_table_f[created];
$created_by = $copy_table_f[created_by];
$user_id = '0';
$created_by_email = '';
$ip = '';
$answer_created_by_id = '62';
$answer_created = $copy_table_f[created];
$answer_state = '1';
$answer_email = '0';
$access = '1';
$metadesc = '';
$metakey = '';

mysql_query("INSERT INTO j17_smfaq (
id, catid, question, answer, checked_out, checked_out_time, ordering, published, created, created_by, user_id, created_by_email, IP, answer_created_by_id, answer_created, answer_state, answer_email, access, metadesc, metakey
) VALUES (
'$id', '$catid', '$question', '$answer', '$checked_out', '$checked_out_time', '$ordering', '$published', '$created', '$created_by', '$user_id', '$created_by_email', '$ip', '$answer_created_by_id', '$answer_created', '$answer_state', '$answer_email', '$access', '$metadesc', '$metakey'
)") or die("status=".mysql_error());

}

mysql_close();

?>

зы кстати, Joomla! 2.5.1 Stable + SM FAQ  версия 1.6.0 - полет нормальный

Приветствую.
Очень нужна помошь переношу сайт с Joomla 1.5 на 2.5, и сообшений около 500 где то... подскажи пожалуйста куда и как запускать этот скрипт.
Если пошагово распишешь буду благодарен.
*

zaur111

  • Захожу иногда
  • 233
  • 6 / 0
  • Заур Магомедов
Скажите, а есть ли для smfaq плагин для карты сайта Xmap? Joomla 2.5...
*

intcorp

  • Захожу иногда
  • 456
  • 12 / 0
Но в breadcrumbs вопроса мы получаем: Главная -> категория (без ссылки)
Не всем пользователям понятно как вернутся обратно в категорию или подкатегорию.

Возможно както так сделать: Главная -> категория (ссылка) -> подкатегория (ссылка) -> назва вопроса (без сылки + опционально, в настройках можно отключать)
Помнится мне, данный функционал все же был реализован, но решение не расписано. Можно выложить необходимые правки для версии 1.7.2 чтобы хотя бы категории и подкатегории были в брэдкрамб?
*

sharp

  • Завсегдатай
  • 1173
  • 97 / 2
Не могу добавить в меню "список всех категорий" есть только "Список вопросов в катагории"
Joomla 2.5 SM FAQ 1.7.2
у МЕНЯ одного так ?
Хочешь знать правду!? читай таблицу умножения.
Поисковое продвижение или раскрутка сайта!
*

Hot_Gomer

  • Захожу иногда
  • 296
  • 12 / 0
  • sudo su
задался вопросом как сделать в админке сортировку вопросов по дате(последние первыми) по умолчанию


Решение:
/administrator/components/com_smfaq/models/smfaqlist.php
Ищем строчку parent::populateState('a.question', 'asc');
и заменяем значение в скобках на нужное.
я заменил на parent::populateState('a.id', 'desc'); - сортировка по ID от большего к меньшему, т.е. теперь последний заданный вопрос всегда будет сверху.

« Последнее редактирование: 14.10.2012, 19:33:08 от Hot_Gomer »
Joomla, Drupal, Ruby on Rails -
что может быть лучше?)
*

tminov

  • Осваиваюсь на форуме
  • 14
  • 1 / 0
1. Как в форму, добавить строку для ввода номера телефона?
2. в Ответах не отображается Имя задавшего и ответившего на вопрос.
*

dauren

  • Осваиваюсь на форуме
  • 15
  • 0 / 2
Здравствуйте! Пожалуйста прошу не ругать, что не по теме спрашиваю, у меня сайт селъхозтехники - http://www.cxm.kz там на главной странице размещены объявления, свежие появляются лишь в 3 колонках сверху, а те что внизу не уходят. Хотелось бы сделать чтоб свежие объявления уходили вниз... Помогите пожалуйста мне,буду безгранично благодарен!
*

Dobreff

  • Захожу иногда
  • 214
  • 10 / 4
Не приходят уведомления на email о новых вопросах Супер юзеру  :( в правах стоит "Разрешено"
не подскажите?
« Последнее редактирование: 13.10.2012, 02:31:08 от Dobreff »
*

Dobreff

  • Захожу иногда
  • 214
  • 10 / 4
1. Как в форму, добавить строку для ввода номера телефона?
2. в Ответах не отображается Имя задавшего и ответившего на вопрос.
Скачай плагин (тестовый). У автора на сайте. В нем есть доп. поле, на основе его, я так понимаю, можно делать дополнительные
*

tminov

  • Осваиваюсь на форуме
  • 14
  • 1 / 0
Скачай плагин (тестовый). У автора на сайте. В нем есть доп. поле, на основе его, я так понимаю, можно делать дополнительные
Скачал, поставил, никаких полей в нем нету...
,,,, на сайте автора написано - Тестовый плагин - предназначен для ознакомления с возможностями расширения компонента. - тоесть это совсем не то что нам нужно!

... ещё один вопрос, как сделать, чтобы когда приходил вопрос он либо дублировался на почту, либо, на почту приходило сообщение о том что поступил вопрос !
« Последнее редактирование: 30.09.2012, 00:43:00 от tminov »
*

Dobreff

  • Захожу иногда
  • 214
  • 10 / 4
Скачал, поставил, никаких полей в нем нету...
Почему нету? Еще как есть!
после поля ИМЯ и EMAIL - третье поле MY_FIELD
p.s. Вы хоть плагин подключили, в менеджере плагинов? ;) или только установили и все?
*

tminov

  • Осваиваюсь на форуме
  • 14
  • 1 / 0
Нету там ничего такова!
Хотя ответа на предыдущие вопросы не поступило, появились дополнительные!
1. на странице вопроса, сам вопрос идет в теге h1, как изменить его на обычный параграф?
2. на первой странице с формой и списком уже отвеченных вопросов, выводится весь вопрос целиком! Как и где задавать длину выводимого текста вопроса?

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

WT Telegram bot - отправка данных из Joomla в Telegram-бота

Автор sergeytolkachyov

Ответов: 4
Просмотров: 2863
Последний ответ 01.08.2025, 09:26:57
от sergeytolkachyov
Модуль вывода новостей. Joomla 3.x

Автор fbr

Ответов: 54
Просмотров: 28681
Последний ответ 22.07.2025, 10:13:22
от fbr
JL Like - Социальные кнопки для Joomla (новый взгляд)

Автор zikkuratvk

Ответов: 636
Просмотров: 106746
Последний ответ 07.07.2025, 11:00:34
от zikkuratvk
Плагин для закрытия ссылок в Joomla 3 - noExternalLinks

Автор buyanov

Ответов: 65
Просмотров: 18914
Последний ответ 06.04.2025, 02:51:35
от azm1n
SW JProjects - Менеджер цифровых проектов для Joomla! CMS™

Автор Septdir

Ответов: 59
Просмотров: 9095
Последний ответ 24.03.2025, 13:06:54
от sergeytolkachyov