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

Pazys

  • Завсегдатай
  • 1738
  • 241 / 4
  • <a>А где я ошибся-то?</b>
Re: Текст выходит за рамки шаблона
« Ответ #30 : 16.01.2013, 10:37:32 »
Там какой-то файлообменник. Зачем? Можно же фотку вложить ....
Я, например, никогда не качаю такие штуки ...

Вот так можно вложить:
Спойлер
[свернуть]
Ишак меня нюхал ...
Если помог - плюсуйте в карму.
*

olaf

  • Захожу иногда
  • 225
  • 23 / 0
Re: Текст выходит за рамки шаблона
« Ответ #31 : 16.01.2013, 10:44:36 »
Уже писал:
Посмотрел еще раз, действительно, правкой стиля всех проблем не решить. ... Там верстка накосячена.
Вот смотрите код ваших статей - они все внутри таблицы с классом blog
Код
<table cellspacing="0" cellpadding="0" class="blog">
<tbody>
 <tr>
  <td valign="top">

   <div> /*первая статья-открывающий див*/
/*статья1 - заголовок*/
    <table class="contentpaneopen">
    <tbody>
     <tr>
      <td width="100%" class="contentheading">
<a class="contentpagetitle" href="/chitaj-gorod/my-rekomenduem/219-tajna-ischeznuvshej-tsivilizatsii.html">
Тайна исчезнувшей цивилизации</a>
      </td>
     </tr>
    </tbody>
    </table>
/*статья1 - тело*/
    <table class="contentpaneopen">
    <tbody>
     <tr>
      <td valign="top" colspan="2">
       <p></p>
      <table border="0">
      <tbody>
       <tr>
        <td><img width="200" height="311" style="float: left;" alt="atlantida" src="/images/chitay_gorod/atlantida.jpg">
            <p>Человечеству не так уж много лет, но оно успело обрести множество тайн и загадок.
Одна из самых больших &ndash; Атлантида, материк или остров, исчезнувший под водой.</p>
        </td>
        </tr>
/*статья1 - подробнее*/
        <tr>
         <td colspan="2">
   <a class="readon" href="/chitaj-gorod/my-rekomenduem/219-tajna-ischeznuvshej-tsivilizatsii.html">
Подробнее...</a>
</td>
        </tr>
       </tbody>
       </table>
/*статья1 - разделитель*/    
       <span class="article_separator">&nbsp;</span>
/*статья1 - закончена*/
/*ГДЕ ЗАКРЫВАЮЩИЙ div ?*/

      <div>  /*вторая статья-открывающий див*/
       <table class="contentpaneopen">
       <tbody>
        <tr>
<td width="100%" class="contentheading">
<a class="contentpagetitle" href="/chitaj-gorod/knizhnye-novinki/218-zolotoj-xix-vek.html">
Золотой XIX век</a>
</td>
        </tr>
       </tbody>
       </table>
       <table class="contentpaneopen">
       <tbody>
        <tr>
         <td valign="top" colspan="2">
          <p><img width="200" height="316" style="float: left;" alt="bal" src="/images/chitay_gorod/bal.jpg">
<span style="font-family: arial, helvetica, sans-serif;"><em><span style="font-size: 12pt;">В последнее время в России
необычайно возрос интерес к истории русских балов, новая книга доктора исторических наук, профессора
<b>О.Ю. Захаровой&nbsp; «Бальная эпоха первой половины </b><b>XIX века»</b>&nbsp; знакомит читателей
&nbsp; с историей бальной культуры России. Автор посвятила книгу героям 1812 года:
«Каждое поколение имеет своих кумиров, властителей дум, в России XIX столетия это были представители
Армии, для которых служение Отечеству являлось основой жизненной позиции. Героям 1812 года,
подлинной элите российской нации, посвящается эта книга».</span></em></span></p>
         </td>
        </tr>
        <tr>
<td colspan="2">
 <a class="readon" href="/chitaj-gorod/knizhnye-novinki/218-zolotoj-xix-vek.html">
Подробнее...</a>
  </td>
        </tr>
        </tbody>
        </table>
        <span class="article_separator">&nbsp;</span>
      </div> /*статья3 - закрывающий див*/


      <div>  /*статья3 - открывающий див*/
      <table class="contentpaneopen">
      <tbody>
       <tr>
<td width="100%" class="contentheading">
<a class="contentpagetitle" href="/chitaj-gorod/my-rekomenduem/113-lyubov-vsegda.html">
Любовь всегда права.</a>
</td>
       </tr>
      </tbody>
      </table>

      <table class="contentpaneopen"> /*начало таблицы 1*/
      <tbody>
       <tr>
        <td valign="top" colspan="2">
           <p></p>

         <table border="0" align="left" style="width: 637px;"> /*начало таблицы 2 (почему-то задана ширина)*/
         <tbody>
          <tr>
           <td>
            <p style="margin-bottom: .0001pt; text-align: justify; text-indent: 36.0pt; line-height: normal;" class="MsoNormal">
<span style="font-size: 14.0pt; mso-bidi-font-size: 10.0pt; font-family: 'Times New Roman','serif';
mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: RU;"><img width="200" height="278" alt="10"
src="/images/chitay_gorod/10.jpg" style="float: left; margin: 3px;">Как-то в перерыве между съёмками сериала
«Петербургские тайны» режиссер, сценарист, актер и писатель <b style="mso-bidi-font-weight: normal;">
Вадим Зобин</b> написал<span style="mso-spacerun: yes;">&nbsp; </span>роман с поэтическим названием
<b style="mso-bidi-font-weight: normal;">«Счастье ты мое». </b>Его прочитали в студии, он произвел фурор,
а сценарист Александр Адабашьян и режиссёр Леонид Эйдлин решили<span style="mso-spacerun: yes;">
&nbsp; </span>снять фильм с более поэтическим названием «Любовь одна любовь».</span></p>
           </td>
          </tr>
          <tr>
  <td colspan="2">
       <a class="readon" href="/chitaj-gorod/my-rekomenduem/113-lyubov-vsegda.html">
Подробнее...</a>
  </td>
          </tr>
         </tbody>
         </table> /*конец таблицы 2*/

         <span class="article_separator">&nbsp;</span>    
        /*статья3 закончена, ГДЕ КОНЕЦ ТАБЛИЦЫ 1 ? */  

        <div>  /*статья4 - открывающий див*/
<table class="contentpaneopen">
<tbody><tr>
<td width="100%" class="contentheading">
..... и т.д.

Из кода видно, что дело даже не в Wordовских стилях, типа mso-spacerun и не в том, как "приверстано" "редмо" (Подробнее), а в том, что при создании шаблона допущены ошибки: открываются и не закрываются таблицы и дивы!
Результат непредсказуем, хотя и видим.
Резюме: надо смотреть шаблоны вывода контента и править их, или вообще попытаться удалить чтобы система брала свои по умолчанию.
« Последнее редактирование: 29.01.2013, 12:25:11 от olaf »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как вывести путь до шаблона с помощью API Joomla?

Автор elche

Ответов: 13
Просмотров: 15804
Последний ответ 11.09.2018, 23:48:50
от DK-Scorp
Стили шаблона

Автор karkan25

Ответов: 12
Просмотров: 4533
Последний ответ 21.05.2017, 16:40:32
от karkan25
Проблема с изменением логотипа штатного шаблона rhuk_milkyway Joomla_1.5

Автор Porohok

Ответов: 6
Просмотров: 4862
Последний ответ 22.03.2017, 10:34:23
от Porohok
Настройка неадаптивного шаблона

Автор Zegeberg

Ответов: 4
Просмотров: 4585
Последний ответ 21.06.2016, 00:21:06
от Zegeberg
Редактирование шаблона

Автор gdmitry

Ответов: 1
Просмотров: 4413
Последний ответ 04.06.2016, 20:25:32
от Taatshi