Новости Joomla

Загадочный параметр $live_site в configuration.php Joomla

Загадочный параметр $live_site в configuration.php Joomla

👩‍💻 Загадочный параметр $live_site в configuration.php Joomla. Зачем он нужен?Давным-давно, когда Joomla ещё была маленькой, в неё внедрили параметр $live_site. В ней хранился домен текущего сайта на случай, если Joomla не могла его определить из-за неверной настройки сервера. Нужно это было для разных SEO-компонентов, для использования редиректов и т.д.Со временем для работы собственно сайта этот параметр перестал быть нужным. Уже в начале 2010-х стали встречаться рекомендации оставлять этот параметр пустым, дабы оный не привёл к лишним проблемам и путанице. Тем более, в web-админке нет места, где его можно указать или посмотреть его значение. Только в configuration.php, а туда смотрят не часто.Однако, параметр всё же остался в ядре Joomla. Зачем он нужен? А нужен он в 2-х случаях:- для работы класса Joomla\CMS\Uri\Uri, который часто используется в коде Joomla для работы методов

Uri::root() и
Uri::base(), а значит может влиять и на работу в том числе ajax-скриптов.- для работы Joomla в CLI - командной строке сервера. В случае если вы используете в вашем CLI-плагине методы опять-таки класса Uri, то CLI ничего не знает о текущем домене, так как запускается вне web-сервера. Поэтому домен нужно указывать принудительно. Либо с помощью параметра командной строки
--live-site, например,
—live-site=https://site.ru/. Со слешем на конце, иначе в CLI адрес сайта станет
https://site.rujoomla.php.Либо в параметре
$live_site в файле configuration.php, так как
CliApplication берёт настройку оттуда, если параметр команды не указан или пуст.⚠️ Иначе в качестве хоста и url класса Uri будет установлено
https://joomla.invalid/set/by/console/application. В самом же коде команды получить параметр
$live_site можно из объекта приложения

protected function doExecute(InputInterface $input, OutputInterface $output): int    {         //...              $live_site = $this->getApplication()->get('live_site');         //...    }
и исходя из этого строить дальнейшую логику.@joomlafeed#joomla #разработка #php #cli

Вышел плагин AllVideos v.7.0 от JoomlaWorks

Вышел плагин AllVideos v.7.0 от JoomlaWorks

Вышел плагин AllVideos v.7.0 от JoomlaWorks.Этот контент-плагин - одно из старейших расширений для Joomla. Его задача - преобразовывать шорт-коды вида

{YOUTUBE}...{/YOUTUBE},
{MP3}parth/to/file.mp3{/MP3} и подобные во встроенные видео или аудио.👩‍💻 v.7.0.0. Что нового?- Добавлена поддержка Youtube Shorts. Просто скопируйте полный url видео и вставьте его внутри тегов
{YOUTUBE}...{/YOUTUBE}.- Поддержка Joomla 5.x без плагина обратной совместимости. PHP 5, PHP 7, PHP 8. - Индексация умным поиском в CLI. В Joomla 5 плагин перестал вызывать ошибку при индексации контента умным поиском через CLI,Заметьте, что этот один и тот же пакет для всех версий Joomla, начиная с 1.5.x и заканчивая 5.x. Технически "под капотом" код плагина по сути не менялся, а для поддержки следующих версий Joomla авторы вставляют "заплатки". Плагин всё ещё использует старую архитектуру файлов и классов Joomla, что, к сожалению, заставляет прибавлять к его описанию слова "пока ещё" - "пока ещё работает".
Страница расширенияGitHub расширенияJoomla Extensions Directory👩‍💻 За ссылку спасибо самому внимательному участнику нашего сообщества - Ринату Кажетову (@rkazhet).@joomlafeed#joomla #расширения

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

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

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

zeus07

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

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

NewUsers

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

zeus07

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

NewUsers

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

zeus07

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

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

NewUsers

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

zeus07

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

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

fbr

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

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

zeus07

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

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

zeus07

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

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

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

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

Автор jimka

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

Автор revil

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

Автор antarey

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

Автор mag_num83

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

Автор kochevnik

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