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

Hijacker

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
  • начинающий Джумлист
Здравствуйте!
Как сделать заголовок страницы вида "<title>Заголовок - Имя сайта</title>" при помощи стандартных средств Joomla или иных компонентов? Artio не предлагать, из-за него куча проблем на сайте((((
Заранее благодарю!

ЗЫ. было бы отлично редактировать заголовок по маске.
« Последнее редактирование: 06.07.2010, 16:16:41 от PaLyCH »
*

Aleks_El_Dia

  • Moderator
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
В index.php шаблона вставить:
Код: php
<?php 
$document = & JFactory::getDocument();
$config = & JFactory::getConfig();
$curtitle = $document->title.' - '.$config->getValue('sitename');
$document->setTitle( $curtitle );
?>
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

Aleks_El_Dia

  • Moderator
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
C  такими вопросами вам на серчь, этот форум немного другой тематики, не находите?
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

Aleks_El_Dia

  • Moderator
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

Aleks_El_Dia

  • Moderator
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.

У меня в названии сайта содержаться кавычки.
В configuration.php Joomla их записывает в виде hml-ного кода - &quot;
Когда я добавил такую конструкцию, $config->getValue('sitename') берет это название как текст
в рез-те в коде tittle выходит ........ &amp;quot;название&amp;quot; .....
а в заголовке браузера соответственно пишется ... &quot;название&quot; ...

Пока решил проблему ручной правкой configuration.php
написал там кавычки кавычками, благо переменная там в одиночных кавычках заключена, и нигде на сайте мне не требуется чтобы значение переменой sitename было в виде HTML кода.

Но в таком случае мне придется переписывать вручную значение каждый раз, после редактирования настроек сайта через Joomla.

Есть более изящное решение?
Как изменить $config->getValue('sitename') чтобы значение переменной воспринималось в виде уже готового кода, а не текста, который нужно преобразовать в код?
Если вообще убирать кавычки из заголовка, тогда не получиться использовать переменную sitename в дизайне, т.к. название компании в данном случае должно быть в кавычках.
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

proxits

  • Осваиваюсь на форуме
  • 35
  • 6 / 0
  • Я нисколько не лев, и посему - не всегда прав
Подскажите в чем может быть проблема. Сайт http://nevlimonad.ru/. Тексты уникальные, ключевые слова все выделены, теги title для каждой страницы свои, но почему то в поиске яндекса сайт выпадает далеко не на первых местах. Например при наборе "Лимонад", это основной title главной страницы, я его вообще нашел гдето на 20 странице. Может я гдето переборщил с ключевыми словами (выделением)?

Смотрел вот код http://nevlimonad.ru/
Полное совпадение в тегах title & keywords - это плохо, ИМХО
:(

См. справки Я.Вебмастер и Google Инструменты для вебмастеров.

Удачи
*

Aleks_El_Dia

  • Moderator
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
Очень интересное предположение, если еще ктото так думает напишите так ли это и почему? Просто я все сайты так делаю и если это плохо то как тогда лучше написать титл?
Тоесть вы берете тайтлы и ключевые слова успешного конкурента, и не изменяя лепите себе?
Оччень сомнительная политика, тут все логично, даже мануалы читать не обязательно.....
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

Aleks_El_Dia

  • Moderator
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
Это обсуждение выходит за пределы тематики форума. Если вкратце - то ключевые слова и тайтлы в первую очередь должны соответствовать контенту, а не самым посещаевым ключевикам из яндекса.
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

horo

  • Захожу иногда
  • 56
  • 1 / 0
А я вот туплю, не могу вспомнить где title прописывается на главную страницу... подскажите, если не сложно где искать.
*

Aleks_El_Dia

  • Moderator
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
А я вот туплю, не могу вспомнить где title прописывается на главную страницу... подскажите, если не сложно где искать.
В  настройках пункта меню, который установлен у вас как главный.
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

horo

  • Захожу иногда
  • 56
  • 1 / 0
В  настройках пункта меню, который установлен у вас как главный.
Точно, благодарю... с наступающим всех!
*

avgur7

  • Новичок
  • 5
  • 0 / 0
Здравствуйте! Столкнулся с проблемой, не меняется title. Прописываю новый title, так он он у меня выводится через тире после старого, который я удалил. Да еще description не меняется, а остается старый вариант в исходном коде, хотя в админке текст нового. Кто сталкивался с таким? помогите пожалуйста!
*

horo

  • Захожу иногда
  • 56
  • 1 / 0
может кешируется?
*

neut ral

  • Захожу иногда
  • 252
  • 27 / 0
Столкнулся с проблемой, не меняется title. Прописываю новый title, так он он у меня выводится через тире после старого, который я удалил. Да еще description не меняется, а остается старый вариант в исходном коде, хотя в админке текст нового.
скорее-всего в меню параметры-система прописан заголовок страницы
*

avgur7

  • Новичок
  • 5
  • 0 / 0
может кешируется?
если честно, то я новичок и не совсем хорошо разбираюсь в joomle, не знаю что это такое кэшируется, но проблему решил другим способом. Прописал через TAG META и все получилось!
*

avgur7

  • Новичок
  • 5
  • 0 / 0
скорее-всего в меню параметры-система прописан заголовок страницы
посмотрел там ничего не прописано, да вроде и такого поля нету
*

neut ral

  • Захожу иногда
  • 252
  • 27 / 0
посмотрел там ничего не прописано, да вроде и такого поля нету
если "такого поля нету" - значит не там смотрели
надо тут: "Главное меню" > пункт "Главная" > развернуть "Параметры - Система" (справа) > найти пункт "Заголовок страницы" и посмотреть что там...
п.с.: честно-говоря не понял какая связь между тагом "meta" и неправильным "title"... но раз получилось - значит хорошо ))
*

avgur7

  • Новичок
  • 5
  • 0 / 0
если "такого поля нету" - значит не там смотрели
надо тут: "Главное меню" > пункт "Главная" > развернуть "Параметры - Система" (справа) > найти пункт "Заголовок страницы" и посмотреть что там...
п.с.: честно-говоря не понял какая связь между тагом "meta" и неправильным "title"... но раз получилось - значит хорошо ))
Имелось ввиду модуль Tag Meta, через которую прописывают title страниц
*

avgur7

  • Новичок
  • 5
  • 0 / 0
Имелось ввиду модуль Tag Meta, через которую прописывают title страниц
Вернее компонент Tag Meta)))
*

Garry

  • Осваиваюсь на форуме
  • 27
  • 1 / 0
Подскажите в чем может быть проблема. Сайт http://nevlimonad.ru/.
Добрый день, коллега =)

Подскажите пожалуйста где вы такое главное меню взяли:
http://nevlimonad.ru/

Чтобы стрелочки разноцветные и бекграунд за курсором двигается? У меня также но без стрелочек пока что.

Я просто убрал строчку в шаблоне
// set title
$this->setTitle($mainframe->getCfg('sitename'). ' - ' . $this->getTitle());

Вроде стало все правильно отображаться.
http://interprogi.ru/
*

Dimm555

  • Захожу иногда
  • 103
  • 6 / 0
Подскажите, как грамотно исправить этот код:
Код
$document = & JFactory::getDocument();
$config = & JFactory::getConfig();
$fulltitle = $document->title.' - '.$config->getValue('sitename');
$document->setTitle( $fulltitle );
Всё нравиться, кроме главной страницы, где тайтл с тире отображается " - Название сайта", но в других страницах это тире нужно "Статья - Название сайта".
*

sokolart

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
В index.php шаблона вставить:
Код: php
<?php 
$document = & JFactory::getDocument();
$config = & JFactory::getConfig();
$curtitle = $document->title.' - '.$config->getValue('sitename');
$document->setTitle( $curtitle );
?>
Подскажите безграмотному, куда вставить этот код? в начало или конец файла?
*

Steel84

  • Осваиваюсь на форуме
  • 46
  • 0 / 0
В начало
*

dennioushen

  • Захожу иногда
  • 86
  • 0 / 0
  • Don Corleone
Как понимаю нужно вставлять после <body> ?!
Вставил, но в итоге отображение следующие:  <title>Имя сайта - Заголовок - Имя сайта</title>

Спасибо.
*

apelsin

  • Захожу иногда
  • 129
  • 0 / 1
Подскажите как сделать чтобы название сайта добавлялось ко всем страницам кроме главной?
*

Vasiliy111

  • Захожу иногда
  • 248
  • 5 / 0
а можно сделать чтобы  <title>  и заголовак не были одинаковы. Чтобы к  <title> можно было добавлять какой нибудь другой текст. Например
 <title> ключевая фраза + еще текст</title>
 <заголовок в статье> ключевая фраза </заголовок в статье>
SEF компонент использую стандартный.
*

Blyn

  • Новичок
  • 1
  • 0 / 0
Здравствуйте, подскажите каким кодом можно сделать title - название раздела | заголовок страницы | название сайта? Не категории, а именно раздела. Можно ли подправить приведенный выше код для этого?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Чем лучше всего делать резервные копии сайта?

Автор 7Azimuth

Ответов: 115
Просмотров: 57397
Последний ответ 29.11.2023, 14:41:12
от sivers
Joomla 1.5 как убрать кнопку редактировать материант с сайта

Автор andriy465

Ответов: 5
Просмотров: 3651
Последний ответ 12.11.2023, 23:37:03
от all_zer
Как сделать появление случайных картинок из пяти разных категорий?

Автор Katy93

Ответов: 2
Просмотров: 2787
Последний ответ 03.05.2021, 21:34:20
от sivers
Не могу распаковать jpa архив сайта Akeeba backup. ajax error

Автор smadkz

Ответов: 4
Просмотров: 1776
Последний ответ 26.12.2020, 15:15:15
от stendapuss
Версия сайта для слабовидящих

Автор nikos

Ответов: 22
Просмотров: 44206
Последний ответ 27.11.2020, 11:04:18
от chernobyl