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

maxbat

  • Новичок
  • 5
  • 0 / 0
У кого есть решение модуля который смог бы показывать список похожих материалов сравнивая метки текущего материала с метками материалов заданных категорий. Например находясь на странице с метками(тегами) "красный, бензиновый, bmw" вывести список похожих материалов в которых есть наибольшее совпадение по меткам. Аналогично модулю "Материалы - Связанные материалы", но не по ключевым словам а именно по меткам.

Своими силами получается вот что:
Код
<?php defined('_JEXEC') or die;

// id текущего материала
$id_mat = JFactory::getApplication()->input->getCmd('id', '');

$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array('content_item_id','tag_id'));
$query->from($db->quoteName('#__contentitem_tag_map'));
$db->setQuery($query);
$results = $db->loadRowList();

$a=array();//массив id меток текущего материала
foreach ($results as $val) { if($val[0]==$id_mat) {array_push($a,$val[1]);} }

// определяем макс ID
$max_id=0;
foreach ($results as $val) { if($val[0]>$max_id) $max_id=$val[0]; }
$max_id++;

$z=[]; //массив совпадений
$z=array_pad($z, $max_id,'0');//задаем размер и обнуляем его

foreach ($results as $val) {
    if(array_search($val[1], $a)!==false) {$z[$val[0]]++;}//есть совпадение, увеличиваем ячейку с индексом равным ID материала на 1.
}

$z[$id_mat]=0; // удаляем из массива ID текущего материала


Гуру, помогите дальше пожалуйста!
P.S. Вот только ругать не надо, лучше подскажите как надо. Я ведь не волшебник - я только учусь!
« Последнее редактирование: 26.10.2020, 16:17:48 от maxbat »
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Первое  чего я бы поправил - это заменил вывод результата не в $results = $db->loadRowList();
Код
$db = \Joomla\CMS\Factory::getDbo();
$query = $db->getQuery(true);
$query->select(array('content_item_id','tag_id'));
$query->from($db->quoteName('#__contentitem_tag_map'));
$db->setQuery($query);
$results = $db->loadAssocList();

// И тогда
$a=array();//массив id меток текущего материала
foreach ($results as $val) {
    if($val['content_item_id']==$id_mat) {
        array_push($a,$val['tag_id']);
    }
}

*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
решение Ваше  - простите неправильно !
Нет под рукой Joomla  - сайта !  с метками !
Что там в таблице у вас #__contentitem_tag_map - Срин киньте !
Посмотрим ! - Напомните в личку - сто бы не потерялось !
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Рамка обрамляющая модуль в позиции

Автор alexs64

Ответов: 0
Просмотров: 211
Последний ответ 21.11.2025, 09:02:57
от alexs64
Не удается разблокировать в менеджере материалов.

Автор vityavoluevich

Ответов: 4
Просмотров: 2270
Последний ответ 24.05.2025, 09:20:18
от azm1n
Вывести модуль в модуле

Автор jimka

Ответов: 2
Просмотров: 1775
Последний ответ 18.04.2025, 15:39:36
от fbr
Не работает менеджер материалов, ошибка 500 SSL certificate problem

Автор Екатерина М

Ответов: 5
Просмотров: 2043
Последний ответ 06.04.2025, 09:27:20
от wishlight
Поменять порядок материалов

Автор tatyana34

Ответов: 3
Просмотров: 1033
Последний ответ 11.12.2024, 16:10:41
от nikolakovach8619