Новости Joomla

Метод registerListeners() в CMSPlugin в плагинах планируется удалить в Joomla 7.0

Метод registerListeners() в CMSPlugin в плагинах  планируется удалить в Joomla 7.0

👩‍💻 Метод registerListeners() в CMSPlugin в плагинах планируется удалить в Joomla 7.0.Этот метод регистрирует устаревшие слушатели событий в диспетчере, имитируя работу плагинов Joomla! 3.x и ниже для Joomla 4+. По умолчанию этот метод ищет все общедоступные методы, название которых начинается с on. Он регистрирует лямбда-функции (замыкания), которые пытаются преобразовать аргументы отправленного события в аргументы вызова метода и вызвать ваш метод on<Что-то>. Результат передаётся обратно событию в его аргумент result.Теперь этот слой совместимости с устаревшей Joomla 3 помечен к удалению в Joomla 7.0, которая должна выйти осенью 2027 года. Это означает, что те уникальные расширения от Joomla 2.5 / Joomla 3, которые ещё работали на Joomla 4-6 скорее всего окончательно перестанут работать на Joomla 7. Предполагается, что активные разработчики планомерно и постепенно избавляются от технического долга и обновляют свои расширения. @joomlafeed#joomla #разработка #php

0 Пользователей и 1 Гость просматривают эту тему.
  • 8 Ответов
  • 2982 Просмотров
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Всем привет!
Такая задача возникла: проверить, есть ли у товара хоть одна характеристика (если да, то выполнить условие вывода характеристик).
Кроме того, характеристики разбиты на несколько групп. Прежде, чем выводить название группы этих характеристик, так же хотелось бы узнать, ести ли в этой группе хоть одна х-ка. Не пойму как это сделать до цикла
Код
<?php foreach($this->product->extra_field as $extra_field){ ?>
т.е. цикла, который уже непосредственно обрабатывает каждую из характеристик.

Надеюсь понятно объяснил  ^-^
Заранее благодарю всех за помощь и ответы!
*

kit2m2

  • Живу я здесь
  • 3371
  • 276 / 0
  • Беру сайты на полное сопровождение
Такая задача возникла: проверить, есть ли у товара хоть одна характеристика (если да, то выполнить условие вывода характеристик).
Код
        <?php if (is_array($this->product->extra_field) && !empty($this->product->extra_field)){?>
            <?php foreach($this->product->extra_field as $extra_field){?>
                        Тут вывод характеристик и их опций...
            <?php }?>
        <?php }?>
« Последнее редактирование: 30.12.2022, 18:12:08 от kit2m2 »
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

kit2m2

  • Живу я здесь
  • 3371
  • 276 / 0
  • Беру сайты на полное сопровождение
Кроме того, характеристики разбиты на несколько групп. Прежде, чем выводить название группы этих характеристик, так же хотелось бы узнать, ести ли в этой группе хоть одна х-ка. Не пойму как это сделать до цикла
Тут нужно подумать, ведь характеристик есть группа, а не наоборот (у группы - характеристики)
« Последнее редактирование: 30.12.2022, 18:18:14 от kit2m2 »
Расширения для JoomShopping | Ссылка на Телеграм-канал | Сайты и магазины под ключ: Дизайн, Верстка, Программирование (расширения на заказ), СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ (5+) и JoomShopping 5+
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Код
!empty($this->product->extra_field)

Вот за это огромное спасибо! Что-то я никак не мог додуматься и сидел тупил.

А что касается групп, то я придумал такую вот, возможно немного глуповатую конструкцию...
Код
            <?php $first = true; ?>
            <?php foreach ($this->product->extra_field as $extra_field) { ?>
            <?php if ($extra_field['groupname'] != NULL && $extra_field['groupname'] == 'analogs' && $first) { ?>           
            <div class="options_group"> ... Тут начало кода группы ...
            <?php $first = false; } ?>
            ... Тут обработка всех характеристик группы ...
            <?php $first = true; ?>
            <?php foreach ($this->product->extra_field as $extra_field) { ?>
            <?php if ($extra_field['groupname'] != NULL && $extra_field['groupname'] == 'analogs' && $first) { ?>           
            </div> ... Тут конец кода группы ...
            <?php $first = false; } ?>

Получается, что надо для каждой группы аж три раза foreach вызвать :dry:
Благо у меня их всего две, и характеристик совсем немного, но выглядит как гигантская подпорка для падающей башни  *suicide*
« Последнее редактирование: 31.12.2022, 00:29:01 от goga_pgasovav »
*

sivers

  • Живу я здесь
  • 2597
  • 360 / 0
так вставьте все ИФы в один цикл - в чем проблема? А группы можно в массив писать (имена групп) потом и после цикла сможете проверить была ли конкретная группа. Функция in_array()
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
так вставьте все ИФы в один цикл - в чем проблема? А группы можно в массив писать (имена групп) потом и после цикла сможете проверить была ли конкретная группа. Функция in_array()
Спасибо за ответ. Слишком сложно для меня звучит :(
Мне бы простой пример на пальцах, чтобы я потом смог под себя переделать.
Про in_array я знаю, но как его тут применить не понимаю.
*

sivers

  • Живу я здесь
  • 2597
  • 360 / 0
Код
$bygroup = array();
foreach ($this->product->extra_field as $ef => $extra_field){
    $group = !empty($extra_field['groupname']) ? $extra_field['groupname'] : '';
    $bygroup[$group][$ef] = &$this->product->extra_field[$ef];
}

/* если группа analogs не пустая */
if(!empty($bygroup['analogs'])){
    /*... (начало группы analogs) */
    foreach($bygroup['analogs'] as $extra_field){
       
    }
    /*... (конец группы analogs) */
}
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

goga_pgasovav

  • Захожу иногда
  • 445
  • 6 / 0
  • Внимательный джумловод
Ого! Ну такое я сам точно не осилил бы!
sivers, огромное вам спасибо! В который раз выручаете  :D
*

sivers

  • Живу я здесь
  • 2597
  • 360 / 0
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Характеристики товара без всплывающей формы

Автор shop-user

Ответов: 2
Просмотров: 1452
Последний ответ 04.04.2025, 21:40:09
от victorantoniak
Вывести определённую характеристику отдельно от списка характеристик товара

Автор Silent_Breeze

Ответов: 52
Просмотров: 12922
Последний ответ 23.11.2023, 12:31:08
от YuryNew
Автоматическая генерация Кода товара

Автор geral

Ответов: 4
Просмотров: 2642
Последний ответ 17.03.2023, 13:21:43
от geral
Вывод характеристик товара в списке товаров (категории)

Автор voland

Ответов: 4
Просмотров: 4038
Последний ответ 17.09.2022, 13:21:03
от victorantoniak
Изменение характеристик при выборе атрибутов

Автор jimka

Ответов: 10
Просмотров: 3415
Последний ответ 06.06.2022, 19:55:57
от Mister Shadow