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

zeus07

  • Давно я тут
  • 722
  • 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

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

zeus07

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

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

NewUsers

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

zeus07

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

NewUsers

  • Живу я здесь
  • 2250
  • 202 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
В таком случае проверьте что объект $db подключен именно к другому сайту.
Выполните какой ни будь запрос в таблицу которая есть только на другом сайте, или попробуйте получить запись которая есть только на другом сайте, что бы быть временным что подключение действует именно для другой БД.
Занимаюсь создание расширений для Joomla 3.9.x или выше | Доработка и настройка сайтов. Работаю по факту (без всяких предоплат). Оплата только на ЮMoney (бывшие Яндекс.Деньги). Помогу с переездом на PHP 7.x и исправлю ошибки PHP.
Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

zeus07

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

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

NewUsers

  • Живу я здесь
  • 2250
  • 202 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Используйте класс JDatabaseDriver
Занимаюсь создание расширений для Joomla 3.9.x или выше | Доработка и настройка сайтов. Работаю по факту (без всяких предоплат). Оплата только на ЮMoney (бывшие Яндекс.Деньги). Помогу с переездом на PHP 7.x и исправлю ошибки PHP.
Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

zeus07

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

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

fbr

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

  • Давно я тут
  • 722
  • 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

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

zeus07

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

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

zeus07

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

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

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

Список материалов категории открыт, полные тексты для зарегистрированных - как?

Автор Аня

Ответов: 0
Просмотров: 91
Последний ответ 13.04.2022, 18:37:43
от Аня
Навигация внутри &quot;Блога категории&quot;

Автор RomanA

Ответов: 8
Просмотров: 217
Последний ответ 12.04.2022, 15:46:01
от marksetter
Превью в блоке материалов категории

Автор vetkrs

Ответов: 7
Просмотров: 200
Последний ответ 31.03.2022, 11:54:46
от marksetter
Передать значения полей категории блога материалу

Автор Zelyonkin

Ответов: 4
Просмотров: 197
Последний ответ 24.02.2022, 18:05:47
от Zelyonkin
Как передать значения полей категории в значения полей материала?

Автор Upps_J

Ответов: 4
Просмотров: 227
Последний ответ 27.01.2022, 08:59:25
от Upps_J