Новости Joomla

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

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

  • Живу я здесь
  • 2307
  • 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

  • Живу я здесь
  • 2307
  • 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

  • Живу я здесь
  • 2307
  • 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

  • Живу я здесь
  • 2307
  • 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

  • Завсегдатай
  • 1625
  • 189 / 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

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

zeus07

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

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

zeus07

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

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

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

Фильтр по дополнительному полю - допилить JL Content Fields Filter

Автор antarey

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

Автор mag_num83

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

Автор kochevnik

Ответов: 1
Просмотров: 312
Последний ответ 12.03.2023, 16:26:44
от kochevnik
[Решено] Ссылка на домен и текущий шаблон в блоге категории

Автор goga_pgasovav

Ответов: 2
Просмотров: 358
Последний ответ 06.03.2023, 16:30:23
от goga_pgasovav
[Решено] Получить список тегов каждого материала в блоге категории

Автор goga_pgasovav

Ответов: 1
Просмотров: 411
Последний ответ 02.03.2023, 14:20:21
от goga_pgasovav