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

Uzbagoitel

  • Захожу иногда
  • 70
  • 4 / 0
За ссылку спасибо.
Не за что.
Обращайся если что, чем смогу, помогу...
Никого не хочу обидеть, но сейчас редко встретишь адекватного программера с прямыми руками и без гипертрофированной самооценки! ))
*

Lincom

  • Новичок
  • 1
  • 0 / 0
Ребят вопрос по модулю поиска.
очень долго думает после выбора той или иной категории, jquery обновил до 2.1.0.
Не подскажите как увеличить быстродействие?
*

vadimiopc

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Кто подскажет как отключить проверку на уникальность названия объекта. + добавлять автоматом к алиасу id объекта
*

ganiev_rf

  • Осваиваюсь на форуме
  • 16
  • 2 / 0
Ребят вопрос по модулю поиска.
очень долго думает после выбора той или иной категории, jquery обновил до 2.1.0.
Не подскажите как увеличить быстродействие?
Сколько секунд думает поиск? Напишите ссылку, если сайт уже в интернете. Попробуйте отключить все модули, кто ещё использует эту библиотеку в своей работе и посмотрите даст ли положительный результат. Можно ещё установить плагин JB Library. Он позволяет контролировать, чтобы библиотека jquery загружалась только один раз.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Ничего этого делать не надо. Если jQuery загружается несколько раз, то что-то перестает работать, замедлиться ничего не может. Чтобы определить причину нужен пациент.
*

ganiev_rf

  • Осваиваюсь на форуме
  • 16
  • 2 / 0
Кто подскажет как отключить проверку на уникальность названия объекта. + добавлять автоматом к алиасу id объекта
Я решил для себя этот вопрос следующим образом: 1) Чтобы убрать проверку на уникальность, я в файле administrator/components/com_properties/tables/products.php закомментировал строчки в следующих условиях:
if ($table->load(array('name'=>$this->name)) && ($table->id != $this->id || $this->id==0)) {
         //$this->setError(JText::_('COM_PROPERTIES_ERROR_UNIQUE_NAME'));
         //return false;
      }
      
      if ($table->load(array('alias'=>$this->alias)) && ($table->id != $this->id || $this->id==0)) {
         //$this->setError(JText::_('COM_PROPERTIES_ERROR_UNIQUE_ALIAS'));
         //return false;
      }
2) Чтобы в alias объекта подставлялся id объекта необходимо в настройках компонента зайти во вкладку ссылки и в параметре "Alias, REF или ID в URL" выбрать нужный вам вариант. Я себе поставил ID-Alias.
*

Uzbagoitel

  • Захожу иногда
  • 70
  • 4 / 0
2) Чтобы в alias объекта подставлялся id объекта необходимо в настройках компонента зайти во вкладку ссылки и в параметре "Alias, REF или ID в URL" выбрать нужный вам вариант. Я себе поставил ID-Alias.

Не совсем так...
В алиас при этом, на самом деле, подставляться ничего не будет.
Правильно будет сказать, что с выбранными параметрами будет генерироваться ссылка на объект.
*

xucc

  • Новичок
  • 9
  • 0 / 0
/components/com_properties/controllers/modulesearchajax.php

Спасибо большое за ответ! Но у меня не получается что-то поменять :( Даже правки в этом файле. Подозреваю, что неправильно установил компоненты. Не могли бы вы просто ради интереса таким образом поменять местами пункты поиска? Я уже разуверился в своих силах (руки не оттуда)
*

alex_a_k

  • Захожу иногда
  • 381
  • 21 / 0
Спасибо большое за ответ! Но у меня не получается что-то поменять :( Даже правки в этом файле.
Странно...
Я для примера именно в этом файле поменял местами "цену" и "площадь".
Смотрите в поиске на сайте из шапки.
А еще я там 3 восклицательных знака поставил, чтобы точно доказать правильность правки этого файла.

Подозреваю, что неправильно установил компоненты. Не могли бы вы просто ради интереса таким образом поменять местами пункты поиска? Я уже разуверился в своих силах (руки не оттуда)
Неверная установка компонентов, скорее всего, здесь ни причём. Сайт же работает!
Возможно вам не хватает квалификации для верной правки. Может вы не можете разобраться потому что там применяется AJAX?
Не жмитесь на "+" в репу!
А так же на мелкий donate. ))
*

LeoBlack

  • Новичок
  • 3
  • 0 / 0
Уважаемые форумчане, помогите пожалуйста плизз добавить в модуль карусель показ объектов по статусу "Свободен" (details_market).. В программировании не бум, но где что поправить найду :)
*

vadimiopc

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Никто не сталкивался с торможениея админки при большом количестве объектов недвижимости? у меня 3000 объектов и список в одминке очень долго открывается. но если изменить в файле administrator\components\com_properties\models\products.php часть кода

// Join over the Image
$query->select('i.name AS image_name');
$query->join('LEFT', '`#__properties_images` AS i ON i.parent = a.id AND i.ordering = 1');
$query->where('i.ordering = 1');
 так работает  быстро, но не показывает объекты баз картинок.
что же делать?


*

sova

  • Захожу иногда
  • 135
  • 22 / 1
Как в свойствах недвижимости вставить видео или  youtube?
При попытке сохранить вырезается код.
Поживу - увижу, доживу - узнаю, выживу - учту
*

Ilfat2

  • Новичок
  • 1
  • 0 / 0
Доброго времени форумчане. Тоже добрался до данного компонента. Основные проблемы вроде победил. Но есть несколько вопросов, ответ на которые пока так и не нашел.
1. Есть ли возможность при регистрации пользователя средствами Joomla или к примеру CommunityBuilder, создавать профиль агента в компоненте недвижимости. Предполагается что каждый зарегистрированный пользователь будет подавать объявления.
Нашел где примерно копать, но пока не получается разобраться до конца.
Один из видимых путей решения. В плагине пользователей в функции saveSafely() добавить код обновляющий таблицу #__property_profiles, но пока не нашел что и где добавлять.
2. Ищу как можно вынести добавление объектов недвижимости в лицевую часть сайта. Вроде есть ссылка в форме в админке. Но не нашел  пока всех взаимосвязанных файлов.
*

LeoBlack

  • Новичок
  • 3
  • 0 / 0
Уважаемые форумчане, помогите пожалуйста пожалуйстаз добавить в модуль карусель показ объектов по статусу "Свободен" (details_market).. В программировании не бум, но где что поправить найду :)
совсем никто не поможет?!
*

AntPro

  • Новичок
  • 1
  • 0 / 0
Захожу в компоненты, Real Estate Manager, Объекты, заполняю, но на сайте не отображается краткое описание. Там только картинка и кнопка подробнее. Почему?
*

ganiev_rf

  • Осваиваюсь на форуме
  • 16
  • 2 / 0
Доработка коснулась вывода кол-во объектов в каждом разделе пути хлебных крошек. Следующим этапом доработок будет: 1) В пункте с объектами сделать представление списка объектов в виде таблицы, и сделать возможность сортировки, нажимая на названия столбцов.
Понятно.
Саму таблицу сделать не сложно. Я помогал человеку реализовать подобное (один из примеров здесь).
Сложность представляет настройка вывода разных колонок в разных типах недвижимости. К примеру для земельных участков нужно выводить одно, для квартир другое, а для гаражей - третье.
Сортировка по заголовкам - тоже хорошая идея.
Что сказать, вечно до подобных вещей не доходят руки. ))

Я реализовал табличное представление для разных видов недвижимости. Плюс сделал изменение вида с таблицы на фото. Добавил возможность настраивать кол-во выводимых объектов. В табличном виде, при наведении на значок фото объекта всплывает уменьшенное фото. Сортировку по заголовкам столбцов делать не стал.
*

sasa1975

  • Осваиваюсь на форуме
  • 40
  • 1 / 0
Подскажите пожалуйста, как реализовать, чтобы можно было добавлять несколько объектов с одним и тем же именем. Сейчас при попытке добавить объект с тем же именем что уже есть, пишет "Сохранить не удалось из-за ошибки: Another Property has the same name"
*

ganiev_rf

  • Осваиваюсь на форуме
  • 16
  • 2 / 0
Подскажите пожалуйста, как реализовать, чтобы можно было добавлять несколько объектов с одним и тем же именем. Сейчас при попытке добавить объект с тем же именем что уже есть, пишет "Сохранить не удалось из-за ошибки: Another Property has the same name"
Решение в моем предыдущем посте:
Цитировать
Я решил для себя этот вопрос следующим образом: 1) Чтобы убрать проверку на уникальность, я в файле administrator/components/com_properties/tables/products.php закомментировал строчки в следующих условиях:
if ($table->load(array('name'=>$this->name)) && ($table->id != $this->id || $this->id==0)) {
         //$this->setError(JText::_('COM_PROPERTIES_ERROR_UNIQUE_NAME'));
         //return false;
      }
     
      if ($table->load(array('alias'=>$this->alias)) && ($table->id != $this->id || $this->id==0)) {
         //$this->setError(JText::_('COM_PROPERTIES_ERROR_UNIQUE_ALIAS'));
         //return false;
      }
2) Чтобы в alias объекта подставлялся id объекта необходимо в настройках компонента зайти во вкладку ссылки и в параметре "Alias, REF или ID в URL" выбрать нужный вам вариант. Я себе поставил ID-Alias.
*

sasa1975

  • Осваиваюсь на форуме
  • 40
  • 1 / 0
Решение в моем предыдущем посте:
спасибо, помогло
*

LeoBlack

  • Новичок
  • 3
  • 0 / 0
Уважаемые форумчане, помогите пожалуйста пожалуйстаз добавить в модуль карусель показ объектов по статусу "Свободен" (details_market).. В программировании не бум, но где что поправить найду :)
а мне, а мне... ну помогите кто нибудь а?
*

alex_a_k

  • Захожу иногда
  • 381
  • 21 / 0
Я реализовал табличное представление для разных видов недвижимости.
Оно как-то настраивается или привязано жёстко?

Плюс сделал изменение вида с таблицы на фото. Добавил возможность настраивать кол-во выводимых объектов. В табличном виде, при наведении на значок фото объекта всплывает уменьшенное фото. Сортировку по заголовкам столбцов делать не стал.
Интересно взглянуть на результат...
Можно личкой.
« Последнее редактирование: 15.02.2014, 22:28:47 от alex_a_k »
Не жмитесь на "+" в репу!
А так же на мелкий donate. ))
*

ganiev_rf

  • Осваиваюсь на форуме
  • 16
  • 2 / 0
Цитировать
Цитировать
Цитата: ganiev_rf от 09.02.2014, 11:38:31
Я реализовал табличное представление для разных видов недвижимости.
Оно как-то настраивается или привязано жёстко?
У меня 2 вида табличного представления: 1) Только для жилой недвижимости (квартиры, комнаты)

2) И общее представление для всех видов недвижимости:


Цитировать
Цитировать
Цитата: ganiev_rf от 09.02.2014, 11:38:31
Плюс сделал изменение вида с таблицы на фото. Добавил возможность настраивать кол-во выводимых объектов. В табличном виде, при наведении на значок фото объекта всплывает уменьшенное фото. Сортировку по заголовкам столбцов делать не стал.
Интересно взглянуть на результат...
Можно личкой.
Результат можно увидеть у меня на сайте nu-ber.ru. Сегодня ещё добавил, возможность просмотра на сайте всех объектов агента. В описании агентов О компании-Сотрудник в описании добавил кол-во объектов у этого сотрудника. И там есть ссылка на все объекты этого сотрудника.
*

alex_a_k

  • Захожу иногда
  • 381
  • 21 / 0
У меня 2 вида табличного представления: 1) Только для жилой недвижимости (квартиры, комнаты)
2) И общее представление для всех видов недвижимости:
В целом понятно. Простое, но вполне достойное решение решение.
Есть небольшие замечание к оформлению...
IMHO миниатюты фоток вместо иконки смотрятся лучше - пользователь сразу видит где фото присутствуют, а где нет.
Как, к примеру, я помогал сделать таблицу здесь.
В вашем случае можно выводить иконку цветного (с фотками) и серого или перечёркнутого фотика (без фото).
К тому же тултип с всплывающей фоткой смотрится какт-то "топорно".
Вы хотя бы рамочки и небольшие отступы там сделали, смотрелось бы лучше.
Ещё в подробном описании в нижней части экрана в модуле "похожие объекты" перепутаны направление движения слайдера при нажатии на стрелки. IMHO должно быть наоборот.
А так, в целом, совсем недурно!

Сегодня ещё добавил, возможность просмотра на сайте всех объектов агента. В описании агентов О компании-Сотрудник в описании добавил кол-во объектов у этого сотрудника. И там есть ссылка на все объекты этого сотрудника.
С этого места поподробнее.
В штатном дистрибутиве были наработки этого модуля (\models\agentlisting.php), но руки всё не доходили...
Ты реализовал всё "с нуля"? Не поделишься секретом (хотя бы общими принципами)?
Просто лень глубоко копаться - в этом уже нет необходимости (наверное старый я уже стал. ))), но чисто из принципа "прикольная фича", поиметь её можно.
Не жмитесь на "+" в репу!
А так же на мелкий donate. ))
*

alex_a_k

  • Захожу иногда
  • 381
  • 21 / 0
Сегодня ещё добавил, возможность просмотра на сайте всех объектов агента. В описании агентов О компании-Сотрудник в описании добавил кол-во объектов у этого сотрудника. И там есть ссылка на все объекты этого сотрудника.

Кажись я догнал, как ты сделал это.
Ты не реализовывал отдельный модуль или пункт меню.
Ты, наверное, просто добавил в штатный вывод списка недвижимости ещё один критерий фильтрации - агента.
Верно?
Самая простая для реализации вещь.
Не жмитесь на "+" в репу!
А так же на мелкий donate. ))
*

ganiev_rf

  • Осваиваюсь на форуме
  • 16
  • 2 / 0
Кажись я догнал, как ты сделал это.
Ты не реализовывал отдельный модуль или пункт меню.
Ты, наверное, просто добавил в штатный вывод списка недвижимости ещё один критерий фильтрации - агента.
Верно?
Самая простая для реализации вещь.
Да всё верно. Я просто добавил выборку по агентам. И сделал процедуру для подсчета кол-ва объектов. По оформлению я ещё дорабатываю.
« Последнее редактирование: 17.02.2014, 15:42:29 от ganiev_rf »
*

tsimba

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Для того, чтобы выбирать тип в меню сделал все по инструкции, все заработало, но при редактировании или создание нового объекта выдает ошибку:
Код
 Parse error: syntax error, unexpected $end in /home/a7205449/public_html/administrator/components/com_properties/models/fields/producttype.php on line 1

Помогите решить проблему
*

alex_a_k

  • Захожу иногда
  • 381
  • 21 / 0
Для того, чтобы выбирать тип в меню сделал все по инструкции, все заработало, но при редактировании или создание нового объекта выдает ошибку:
Код
 Parse error: syntax error, unexpected $end in /home/a7205449/public_html/administrator/components/com_properties/models/fields/producttype.php on line 1

Помогите решить проблему
А что у тебя внутри этого файла?
Не жмитесь на "+" в репу!
А так же на мелкий donate. ))
*

tsimba

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Спасибо, разобрался сам. Просто при сохранение неккоректно код сохранялся
*

optimist

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Алекс, личное сообщение послать не могу, видимо давно тут не появлялся.проверь свою почту, пожалуйста!
*

Karyuudo

  • Захожу иногда
  • 354
  • 0 / 0
Здравствуйте.
Ищу доску объявлений недвижимости. Это как понимаю компонент для компаний, сами пользователи не могут просто зайти и разместить свою собственное объявление?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Анплюс Недвижимость: Готовый сайт для агентства недвижимости

Автор howks

Ответов: 40
Просмотров: 16461
Последний ответ 27.08.2025, 14:05:29
от howks
PPF 3 – компонент для продажи электронных товаров

Автор varX

Ответов: 0
Просмотров: 3051
Последний ответ 20.08.2022, 20:22:19
от varX
Импорт YML в Joomla 4

Автор Вадим НН

Ответов: 6
Просмотров: 3546
Последний ответ 11.07.2022, 11:35:15
от Вадим НН
Компонент недвижимости OS Property

Автор Ingener

Ответов: 110
Просмотров: 42223
Последний ответ 01.08.2021, 02:02:37
от cepseu
Систему биллинга для Joomla

Автор timofe

Ответов: 0
Просмотров: 3396
Последний ответ 23.03.2021, 14:00:52
от timofe