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

pruxlo

  • Осваиваюсь на форуме
  • 49
  • 0 / 0
Здравствуйте. Проблемка такая, до этого с оформлением справлялся самостоятельно, но сейчас зашел в тупик. Собственно в jshopping есть подкатегории и когда заходишь в главную категорию дальше идет таблица под категорий, смотрите скриншот.
Спойлер
[свернуть]

Так вот таблица эта сделана по топорному и не красиво, хотелось бы её оформить в таком виде, как вид главных категорий.
Спойлер
[свернуть]

За оформление таблицы главных категорий отвечает данный код, в файле шаблона по пути localhost/components/com_jshopping/css/шаблон.css

Цитировать
/* Category list --- */

.ja-category-wrap { float: left; }

.col-first .ja-category { margin-left: 0; margin-right: 0; }

.col-last .ja-category { margin-left: 0; margin-right: 0; }

.ja-category-wrap .ja-category { margin: 2px; min-height: 100%; padding: 15px 8px; }

.ja-category-wrap .ja-category:hover { background: #000; color: #fff; }

.ja-category-short-desc { color: #808080; }

.ja-category-wrap .ja-category:hover .ja-category-short-desc { color: #fff; }

.ja-category-wrap .ja-category h3 {
   font-family: "abelregular",Arial,sans-serif;
   font-size: 140%;
   font-weight: normal;
   margin: 10px 0;
   text-transform: none;
}

.ja-category-wrap .ja-category h3 a { color: #222; text-decoration: none; }

.ja-category-wrap .ja-category h3 a:hover,
.ja-category-wrap .ja-category h3 a:focus,
.ja-category-wrap .ja-category h3 a:active { color: #fff; text-decoration: underline; }

.ja-category-wrap .ja-category:hover h3 a { color: #fff; }

.ja-category .ja-category-image img.jshop_img { background: #fff; border: 1px solid #eee; padding: 5px; margin:0 auto; }

Но к сожалению не могу разобраться, какой CSS отвечает за оформление таблицы под категорий на первом скриншоте. Google Chrome вертел так и эдак, но добиться не смог нужного результата. Есть у кого успешный опыт решения и сможете ли помочь ребята?)
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
надо смотреть шаблон (насколько я понимаю я-тирис) какие стили он пользует
FireBug и напильник...

П.С. часть стилей может быть размещена непосредственно в шаблоне Ж.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

pruxlo

  • Осваиваюсь на форуме
  • 49
  • 0 / 0
Эх как сложно похоже, поэтому и не смог справиться) ну буду смотреть.
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
а че сложного ?
посмотреть в ФБ путь к файлу со стилями?
нууу... тогда да.... еси уже сейчас руки по швам...
а может поднять их (руки)  и ударить по кнопкам в поиске решения, как пользоваться ФаерБагом ?
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

pruxlo

  • Осваиваюсь на форуме
  • 49
  • 0 / 0
Да не в фб дело, стиль найти я могу. За стиль таблицы  <table class="jshop list_category"> отвечает addon.css, и еще понапиханы частички из разных template.css один из самого шаблона, другой в jat3 где то. В том то и проблема, что там все разбросано, а соединить в одно я навряд ли смогу нет достаточных знаний.
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
ну на локале не помогут точно.

а вот за вывод ктегории отвечает
/components/com_jshopping/templates/ШАБЛОН/category/category_default.php
там можно (нужно) подпраивть ;)
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

pruxlo

  • Осваиваюсь на форуме
  • 49
  • 0 / 0
Здорово, спасибо за подсказку. Вот код отвечающий за категорию главную maincategory.php

Спойлер
[свернуть]

А вот category_default.php

Спойлер
[свернуть]

Скопировал из первого во второй и получилось, то что нужно) правда левая колонка уехала вниз почему то, буду смотреть)
Спойлер
[свернуть]

Скриншоты до
Спойлер
[свернуть]

и после)
Спойлер
[свернуть]
*

pruxlo

  • Осваиваюсь на форуме
  • 49
  • 0 / 0
Ух все, методом тыка и копипаста добился результата нужного! Вот рабочий вариант)))

Цитировать
<div class="jshop">
<h1 class="jshop-titleheading"><?php print $this->category->name?></h1>
<?php print $this->category->description?>
<!-- Begin: Sub Category -->

<div class="ja-list-category">
<?php if (count($this->categories)){?>
    <?php foreach($this->categories as $k=>$category) { $count_category +=1; ?>
        <?php if ($k%$this->count_category_to_row==0) print "<div class=\"ja-category-row clearfix\">"; ?>
        <div class="ja-category-wrap <?php if( ($count_category % $this->count_category_to_row) == 1) { echo "col-first"; } elseif( ($count_category % $this->count_category_to_row) == 0) { echo "col-last"; } ?>" style="width: <?php print (100/$this->count_category_to_row)?>%;">
          <div class="ja-category clearfix">
             <a class="ja-category-image" href="<?php print $category->category_link;?>"><img class="jshop_img" src = "<?php print $this->image_category_path;?>/<?php if ($category->category_image) print $category->category_image; else print $this->noimage;?>" alt="<?php print htmlspecialchars($category->name);?>" title="<?php print htmlspecialchars($category->name);?>" /></a>
             <h3 class="ja-category-name"><span><a class="product_link" href = "<?php print $category->category_link?>"><?php print $category->name?></a></span></h3>
             <div class="ja-category-short-desc"><?php print $category->short_description?></div>
           </div>
        </div>   
        <?php if ($k%$this->count_category_to_row==$this->count_category_to_row-1) print '</div>'; ?>
    <?php } ?>
        <?php if ($k%$this->count_category_to_row!=$this->count_category_to_row-1) print '</div>'; ?>   
<?php } ?>
</div>

<?php include(dirname(__FILE__)."/products.php");?>
</div>

nevigen Спасибо за помощь, уже несколько раз обращался на форуме с проблемами и всегда Вы помогали. Теперь под категории красиво выводятся, всё как и хотел))
Спойлер
[свернуть]
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
моя помощь косвенна.
работу Вы сделали сами...
с чем Вас и поздравляю..
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

RichR

  • Новичок
  • 2
  • 0 / 0
ну на локале не помогут точно.

а вот за вывод ктегории отвечает
/components/com_jshopping/templates/ШАБЛОН/category/category_default.php
там можно (нужно) подпраивть ;)


Премного благодарен, две недели ответ искал,... а где плюсики ставить, я не нашел... ^-^
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Разные шаблоны для отдельных категорий и товаров

Автор dmitry.pr

Ответов: 118
Просмотров: 37243
Последний ответ 15.12.2022, 08:57:44
от nevigen
Вырезать вывод категорий с главной страницы магазина maincategory.php удалить)

Автор Evgenii_web

Ответов: 8
Просмотров: 1035
Последний ответ 25.01.2020, 19:27:57
от Evgenii_web
Оформление списка товаров

Автор bakyt

Ответов: 12
Просмотров: 1298
Последний ответ 17.12.2019, 12:43:31
от bakyt
Вывод категорий

Автор helpmeplz

Ответов: 3
Просмотров: 991
Последний ответ 15.05.2019, 11:12:27
от helpmeplz
Удаление Фильтра и Меню с страниц Категорий и Главной магазина.

Автор Timerlan

Ответов: 4
Просмотров: 869
Последний ответ 17.02.2019, 13:21:35
от Timerlan