Новости 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 Гость просматривают эту тему.
  • 2 Ответов
  • 1931 Просмотров
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Доброго времени суток!

Попробовал обновиться с VM 2.0.18a до VirtueMart 2.6.0a на локальном сервере XAMPP 1.7.7(PHP 5.3.8 ) и в процессе установки aio пакета допрасширений получил такие сообщения:
Цитировать
•   JFolder: :delete: Путь ведёт не к каталогу. Путь: локальный_путь\administrator\components\com_virtuemart_allinone\languageBE
•   JFolder: :delete: Путь ведёт не к каталогу. Путь: локальный_путь\administrator\components\com_virtuemart_allinone\languageFE

далее шло следующее:
Цитировать
com_virtuemart_allinoneInstallerScript:: VirtueMart2 update #__virtuemart_payment_plg_standard
Table updated: Tablename ytgb1_virtuemart_payment_plg_standard dropped: 0 altered: 0 added: 1
com_virtuemart_allinoneInstallerScript:: VirtueMart2 update #__virtuemart_payment_plg_paypal
Table updated: Tablename ytgb1_virtuemart_payment_plg_paypal dropped: 0 altered: 0 added: 2
com_virtuemart_allinoneInstallerScript:: VirtueMart2 update #__virtuemart_shipment_plg_weight_countries
Установка компонента успешно завершена.
alterTable ADD ytgb1_virtuemart_payment_plg_standard.email_currency : ALTER TABLE `ytgb1_virtuemart_payment_plg_standard` ADD email_currency char(3) FIRST
alterTable ADD ytgb1_virtuemart_payment_plg_paypal.paypal_method : ALTER TABLE `ytgb1_virtuemart_payment_plg_paypal` ADD paypal_method varchar(200) FIRST
alterTable ADD ytgb1_virtuemart_payment_plg_paypal.paypal_fullresponse : ALTER TABLE `ytgb1_virtuemart_payment_plg_paypal` ADD paypal_fullresponse text AFTER paypal_method
Checking VirtueMart modules...Installing VirtueMart Administrator modules
VirtueMart2 modules already installed
VirtueMart2 pdf moved to the Joomla libraries folder
Installing VirtueMart Plugins and modules Success.

You may directly uninstall this component. Your plugins will remain. But we advice to keep the AIO installer for updating
Т.е. вроде как успешно (Installing VirtueMart Plugins and modules Success.)
Ошибка критична или только время и опыт покажут?

P.S. Сейчас попробую тоже самое сделать на XAMPP поновее... нет, на XAMPP 1.8.2(PHP 5.4.27) тоже самое...
« Последнее редактирование: 16.05.2014, 12:25:32 от borro »
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²

Была такая ситуация!!
Это из-за неправильного Абсолютного пути.....

чтоб понять какой путь правильный в шаблоне index.php после <body> допиши
Код
<?php echo __FILE__; ?>
в верху страницы смотрим путь к файлу
Копируем и правим
вместо /template/........ и тд. до конца вставляем /tmp/

Далее в настройках сайта путь к временным файлам ставим эту строчку
Путь к папке логов ставим тоже самое только в место /tmp/ ставим /log/

Все обновления будут становиться!

Цитировать
Путь: локальный_путь\administrator\components\com_virtuemart_allinone\languageBE
Такое бывает из-за отсутствия префикса языка ru-RU
Это в Расширения/ Менеджер Языков/ языки контента/ нужно создать ru-RU тоже самое желательно чтоб было и для языков панели Админа!
PS/
Если помогло ставишь +  ;D
[/quote]
*

kolodiazniy

  • Захожу иногда
  • 110
  • 13 / 0
А что значит "в шаблоне index.php"?
Может быть вы имели ввиду "в файле index.php вашего шаблона"?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как собрать инсталлятор VirtueMart 4 самостоятельно вручную из репозитория

Автор okrym

Ответов: 0
Просмотров: 2597
Последний ответ 31.05.2023, 02:36:06
от okrym
Регистрация через VirtueMart

Автор cmd2017

Ответов: 8
Просмотров: 2980
Последний ответ 03.11.2019, 20:58:18
от Viclingvolive
Выход новой версии Virtuemart

Автор mmc

Ответов: 99
Просмотров: 7636
Последний ответ 25.09.2019, 23:24:15
от yrygvay
Обновление VirtueMart 3.2.14 до 3.4.0

Автор Stasweb

Ответов: 1
Просмотров: 3555
Последний ответ 20.09.2018, 21:48:47
от Sandruk1
Joomla + VirtueMart

Автор tromba

Ответов: 6
Просмотров: 3010
Последний ответ 07.09.2018, 18:13:21
от voland