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

SalityGEN

  • Захожу иногда
  • 209
  • 7 / 1
  • Делаю мир лучше
Доброго времени суток, хотел сделать категорию отфильтрованную по тегу, увидел что в модели данная возможность есть, я не пойму как перехватить модель и заставить ее принять значение тега.
Знаю как сделать захардкодив саму модель, но это не путь самурая.
Какие варианты есть, плагин что ли писать? кто делал такое?
Хотелось бы просто в переопределенной вьюхе перехват сделать.

PS:Нужно для реализации вывода списка материалов в категории под конкретный город.
Простым языком мне не видимая фильтрация нужна на бекенде, после чего будет задействован nginx для реализации поддоменов исходя из параметра тега,
таким образом будет одна бд и одна фс.
« Последнее редактирование: 25.10.2021, 05:33:10 от SalityGEN »
*

SalityGEN

  • Захожу иногда
  • 209
  • 7 / 1
  • Делаю мир лучше
Re: Объясните как использовать filter.tag
« Ответ #1 : 25.10.2021, 06:48:05 »
Доброго времени суток, хотел сделать категорию отфильтрованную по тегу, увидел что в модели данная возможность есть, я не пойму как перехватить модель и заставить ее принять значение тега.
Знаю как сделать захардкодив саму модель, но это не путь самурая.
Какие варианты есть, плагин что ли писать? кто делал такое?
Хотелось бы просто в переопределенной вьюхе перехват сделать.

PS:Нужно для реализации вывода списка материалов в категории под конкретный город.
Простым языком мне не видимая фильтрация нужна на бекенде, после чего будет задействован nginx для реализации поддоменов исходя из параметра тега,
таким образом будет одна бд и одна фс.
Все ребят, разобрался  ^-^
Если честно я весь stackowerflow перевернул, и как я понял ответа нужного там нет, либо тишина, либо предлагают сторонние решения\модули\плагины.
В общем, если вы хотите фильтровать материалы категории по тегам, вот решение:

Код
$app = JFactory::getApplication();
use Joomla\Component\Content\Site\Model\CategoryModel; // Подключаем модель категории
$itemid = $app->input->getInt('id', 0).':'.$app->input->getInt('Itemid', 0);
$tags = '2,3,4,5';
$app->setUserState('com_content.category.filter.'.$itemid.'.tag',$tags); // Выполняем фильтрацию
$model = new CategoryModel;
$this->lead_items = $model->getItems();  // Перегружаем переменную с материалами

Данный кусочек кода, нужно вставить в индексный файл шаблона категории (blog.php или  default.php или default_item.php)
Самое забавное, то, что все кто сталкивался с проблемой фильтрации, передавали id тегов в виде массива или числа, а надо было строкой!  *ОХ-Х-Х*
Мне кажется я нашел нечто полезное  ;) плюсики приветсвуются

Сброс фильтра
Код
$session = JFactory::getSession();
$session->clear();
use Joomla\Component\Content\Site\Model\CategoryModel; // Подключаем модель категории
$model = new CategoryModel;
$this->lead_items = $model->getItems();
« Последнее редактирование: 25.10.2021, 07:34:00 от SalityGEN »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться