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

zeus07

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

  • Завсегдатай
  • 1985
  • 177 / 0
Метод getItems выводит массив материалов, а с помощью метода setState можно указывать фильтры sql запроса.
Посмотрите сам файл модели Articles
Занимаюсь создание расширений только для Joomla 3.x.x | Доработка и настройка сайтов. Работаю по факту (без всяких предоплат). Оплата только на Яндекс.Деньги. Помогу с переездом на PHP 7.x и исправлю ошибки PHP
*

zeus07

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

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

NewUsers

  • Завсегдатай
  • 1985
  • 177 / 0
array('ignore_request' => true)
попробуйте вот так
Код: php
array('ignore_request' => true, 'dbo' => $db)
Занимаюсь создание расширений только для Joomla 3.x.x | Доработка и настройка сайтов. Работаю по факту (без всяких предоплат). Оплата только на Яндекс.Деньги. Помогу с переездом на PHP 7.x и исправлю ошибки PHP
*

zeus07

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

NewUsers

  • Завсегдатай
  • 1985
  • 177 / 0
В таком случае проверьте что объект $db подключен именно к другому сайту.
Выполните какой ни будь запрос в таблицу которая есть только на другом сайте, или попробуйте получить запись которая есть только на другом сайте, что бы быть временным что подключение действует именно для другой БД.
Занимаюсь создание расширений только для Joomla 3.x.x | Доработка и настройка сайтов. Работаю по факту (без всяких предоплат). Оплата только на Яндекс.Деньги. Помогу с переездом на PHP 7.x и исправлю ошибки PHP
*

zeus07

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

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

NewUsers

  • Завсегдатай
  • 1985
  • 177 / 0
Используйте класс JDatabaseDriver
Занимаюсь создание расширений только для Joomla 3.x.x | Доработка и настройка сайтов. Работаю по факту (без всяких предоплат). Оплата только на Яндекс.Деньги. Помогу с переездом на PHP 7.x и исправлю ошибки PHP
*

zeus07

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

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

fbr

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

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

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

zeus07

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

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

zeus07

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

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

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

Закрепление материала в категории

Автор Wak

Ответов: 7
Просмотров: 135
Последний ответ 13.01.2021, 13:01:38
от Театрал
Картинка категории - вывести рядом с названием категории в блоге

Автор AlexB

Ответов: 1
Просмотров: 191
Последний ответ 14.12.2020, 11:17:12
от AlexB
Текстовое поле - фильтр (безопасный хмтпл)

Автор Evgenii_web

Ответов: 2
Просмотров: 101
Последний ответ 18.11.2020, 15:56:18
от Evgenii_web
Не выводятся доп. поля категории материалов Joomla

Автор Damarkuzz

Ответов: 0
Просмотров: 367
Последний ответ 09.11.2020, 01:40:15
от Damarkuzz
Разные Title и Descriptions всем страницам блога категории

Автор hmarno

Ответов: 8
Просмотров: 1118
Последний ответ 07.11.2020, 17:53:48
от stimyl