Новости Joomla

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!Файловый менеджер Quantum — одно...

Файловый менеджер Quantum — одно из самых популярных решений для Joomla, созданное разработчиком из сообщества Joomla, Дмитрием Цымбалом (@tsymbalmitia). Он делает Quantum удобным, безопасным и современным, обновляет его, исправляет уязвимости и отвечает пользователям — всё это в свободное от основной работы время.

Теперь настал момент для следующего шага: развитие проекта требует больше времени и ресурсов.

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

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 - Срин киньте !
Посмотрим ! - Напомните в личку - сто бы не потерялось !
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не удается разблокировать в менеджере материалов.

Автор vityavoluevich

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

Автор jimka

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

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

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

Автор tatyana34

Ответов: 3
Просмотров: 1005
Последний ответ 11.12.2024, 16:10:41
от nikolakovach8619
Сортировка по доп. полям на странице списка категории

Автор revil

Ответов: 4
Просмотров: 1663
Последний ответ 02.06.2024, 13:42:45
от tigra-uki