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

zeus07

  • Давно я тут
  • 723
  • 9 / 0
Всем привет  ^-^

Доработал модуль Новости (mod_article_news) таким образом, чтобы подтягивать контент с другого сайта.
Есть главный сайт, на котором куча статей, и есть другой сайт, на который нужно подтягивать статьи с главного, и выводить их, фильтруя по категории и меткам. Воспользовался документацией по Joomla и настроил подключение к внешней базе данных. Не могу понять, как настроить в модуле фильтр такими образом, чтобы список меток и список категорий подтягивался с главного сайта.

В хелпере подключение и модель выглядят таким образом:
Код
// Get the dbo

$option = array(); //prevent problems

$option['driver']   = 'mysql';
$option['host']     = $params->get('db_host', '');
$option['user']     = $params->get('db_user', '');
$option['password'] = $params->get('db_pass', '');
$option['database'] = $params->get('db_name', '');
$option['prefix']   = $params->get('db_prefix', '');

$db = JDatabase::getInstance( $option );
       
// Get an instance of the generic articles model
$model = JModelLegacy::getInstance('Articles', 'ContentModel', array('ignore_request' => true));
$model->setDbo($db);

Буду рад, если подскажете, как это реализзовать. Заранее спасибо 
*

NewUsers

  • Живу я здесь
  • 2305
  • 215 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Метод getItems выводит массив материалов, а с помощью метода setState можно указывать фильтры sql запроса.
Посмотрите сам файл модели Articles
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

zeus07

  • Давно я тут
  • 723
  • 9 / 0
Метод getItems выводит массив материалов, а с помощью метода setState можно указывать фильтры sql запроса.
Посмотрите сам файл модели Articles

Спасибо за совет, пока что пытаюсь разобраться. Суть в том, что $model вроде как использует внешнюю базу, но значения в фильтре по категории и меткам берутся всё-ттаки из базы текущего сайта
*

NewUsers

  • Живу я здесь
  • 2305
  • 215 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
array('ignore_request' => true)
попробуйте вот так
Код: php
array('ignore_request' => true, 'dbo' => $db)
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

zeus07

  • Давно я тут
  • 723
  • 9 / 0
'dbo' => $db
Добавил, но всё также, в фильтрах значения из БД текущего сайта
*

NewUsers

  • Живу я здесь
  • 2305
  • 215 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
В таком случае проверьте что объект $db подключен именно к другому сайту.
Выполните какой ни будь запрос в таблицу которая есть только на другом сайте, или попробуйте получить запись которая есть только на другом сайте, что бы быть временным что подключение действует именно для другой БД.
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

zeus07

  • Давно я тут
  • 723
  • 9 / 0
В таком случае проверьте что объект $db подключен именно к другому сайту.
Выполните какой ни будь запрос в таблицу которая есть только на другом сайте, или попробуйте получить запись которая есть только на другом сайте, что бы быть временным что подключение действует именно для другой БД.

Да, там однозначно подключено, так как на сайте выводятся заголовки материалов с главного сайта
*

NewUsers

  • Живу я здесь
  • 2305
  • 215 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Используйте класс JDatabaseDriver
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

zeus07

  • Давно я тут
  • 723
  • 9 / 0
Используйте класс JDatabaseDriver
Также не помогло.

Не знаю, может вы не совсем поняли суть. Я говорю вот про эти 2 поля: https://prnt.sc/vh1mor. Вот если попробовать выбрать категорию, либо же метку, то обнаруживается, что список категорий и список меток берётся с текущего сайта, а не оттуда, откуда у нас тянется контент.
« Последнее редактирование: 11.11.2020, 01:31:52 от zeus07 »
*

fbr

  • Завсегдатай
  • 1635
  • 197 / 7
В helper.php стандартного модуля фильтры задаются так:
Код
// Category filter
$model->setState('filter.category_id', $params->get('catid', array()));
// Filer by tag
$model->setState('filter.tag', $params->get('tag', array()));

А параметры задаются в xml:
Код
<field
name="catid"
type="category"
...
extension="com_content"
...
/>

Т.е. поля типа category, tag тянут данные из своей ДБ
По моему, так...


*

zeus07

  • Давно я тут
  • 723
  • 9 / 0
В helper.php стандартного модуля фильтры задаются так:
Код
// Category filter
$model->setState('filter.category_id', $params->get('catid', array()));
// Filer by tag
$model->setState('filter.tag', $params->get('tag', array()));

А параметры задаются в xml:
Код
<field
name="catid"
type="category"
...
extension="com_content"
...
/>

Т.е. поля типа category, tag тянут данные из своей ДБ
По моему, так...




Да, как они задаются, я видел, естественно. Вот интересует, как их изменить таким образом, чтобы тянулись эти данные из внешней БД, к которой уже имеется подключение
*

fbr

  • Завсегдатай
  • 1635
  • 197 / 7
По моему, тут придется создавать свой тип полей, которые будут тянуть из внешней БД...
*

zeus07

  • Давно я тут
  • 723
  • 9 / 0
По моему, тут придется создавать свой тип полей, которые будут тянуть из внешней БД...

Спасибо за заданное направление, в какую сторону хотя бы думать) это получается, что именно свои поля для модуля делать?
*

zeus07

  • Давно я тут
  • 723
  • 9 / 0
Удалось доработать модуль и получать статьи с другого сайта, фильтруя их по метке и по категории. У каждой статьи заголовок является ссылкой.

Единственная проблема - это то, что ссылка на статью на другом сайте не ЧПУ-шная. Может кто-то сможет подсказать, как сформировать её, чтобы была крорректная ЧПУ ссылка?

Сайт: https://consult.artcolorit.com/, модуль вот этот: https://prnt.sc/vl3afe
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Перенести описание категории вниз страницы

Автор jimka

Ответов: 1
Просмотров: 394
Последний ответ 18.07.2024, 08:02:46
от Vastriet
Сортировка по доп. полям на странице списка категории

Автор revil

Ответов: 4
Просмотров: 1045
Последний ответ 02.06.2024, 13:42:45
от tigra-uki
Фильтр по дополнительному полю - допилить JL Content Fields Filter

Автор antarey

Ответов: 20
Просмотров: 1875
Последний ответ 17.03.2024, 21:46:20
от Mitriy
Поиск в Материал- Блог категории

Автор mag_num83

Ответов: 1
Просмотров: 443
Последний ответ 14.09.2023, 20:36:34
от beliyadm
Как назначить пункту меню ссылку на категории К2?

Автор kochevnik

Ответов: 1
Просмотров: 387
Последний ответ 12.03.2023, 16:26:44
от kochevnik