Новости 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 можно из объекта приложения

<?php protected function doExecute(InputInterface $input, OutputInterface $output): int { //... $live_site = $this->getApplication()->get('live_site'); //... }

и исходя из этого строить дальнейшую логику.

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

goga_pgasovav

  • Захожу иногда
  • 444
  • 6 / 0
  • Внимательный джумловод
На одном из проектов столкнулся с очень странным глюком, на устранение которого потратил почти целый день.
Поэтому решил создать пост сразу с решением, как для себя, так и для тех, кто, возможно, столкнётся с такой же бедой.

Суть проблемы: в качестве корзины использую модуль Multi basket ajax.
В корзину товары добавляются нормально, количество товаров одной позиции меняется, но вот удалить товар из корзины не получается. Страница перезагружается, и товар опять в корзине. Кроме того, если уйти со страницы товара, то в корзине уже может не быть товара, который туда был добавлен ранее. В общем творилась чертовщина какая-то.

Методом тыка, путём проб и ошибок я (вроде как) докопался до истины.
Дело в том, что я использовал плагин Jshoppingrouter - Full Category Path для JoomShopping. Плагин строит полный путь от главной страницы до товара, включая псевдонимы всех категорий. Для того, чтобы плагин работал как задумано, главной страницей обязательно нужно сделать Главную категорую магазина JoomShopping.
По странному стечению обстоятельств, именно в данной ситуации перестаёт нормально работать модуль Multi basket ajax и начинются глюки, описанные мною ранее.

Решил я это дело следующим образом: создал скрытый пункт меню (допустим «Магазин» c псевдонимом «shop»), а тип этого пункта меню указал как JoomShopping -> Список категорий/Магазин. Т.е. главная страница магазина JoomShopping. После чего всё заработало. Правда за одним исключением: на главной странице сайта (которая так же имеет тип "Список категорий/Магазин") товар по прежнему из корзины не удаляется. Кроме того, в URL'е появляется ещё один сегмент
— /shop/.

Затем я решил попробовать сделать главной страницей сайта обычный материал. И... бинго! Все глюки исчезли.
При этом плагин Full Category Path вроде как работает нормально.

На этом пока всё. Если обнаружатся какие-то глюки, я обязательно дополню этот пост.
Надеюсь для кого-то вся эта писанина окажется полезной.

Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Цифровые товары (для скачивания)

Автор nengyryt

Ответов: 6
Просмотров: 1344
Последний ответ 20.05.2024, 11:26:16
от Vastriet
Как смешать товары в категориях?

Автор art22

Ответов: 23
Просмотров: 2310
Последний ответ 31.08.2023, 08:10:38
от kit2m2
[Решено] Не отображать блок сопутствующих товаров если их всех нет в наличии

Автор goga_pgasovav

Ответов: 3
Просмотров: 1399
Последний ответ 20.03.2023, 19:13:28
от goga_pgasovav
[Решено] Склонение числительных (кол-во товаров) в корзине (Multi basket AJAX)

Автор goga_pgasovav

Ответов: 5
Просмотров: 1611
Последний ответ 14.02.2023, 14:30:56
от goga_pgasovav
[Решено] Не отображать краткое описание товара вместо полного на стр.товара

Автор goga_pgasovav

Ответов: 7
Просмотров: 1491
Последний ответ 30.01.2023, 15:31:24
от kit2m2