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

oopros

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
На сайте используем модуль RD Add PHP, в котором подключаем php файлы.
Если в одном модуле мы добавили один php файл, в котором объявлена переменная(получили из базы данные).
То в другом модуле(который подключается ниже), пытаемся в php файле получить доступ к переменно, которая была объявлена в php файле модуля выше - то переменной такой нет.
Попробовали global - не помогло.
В чем может быть проблема?
Приходится делать одинаковые запросы к MySQL в файлах php, что снижает производительность сайта.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Глобальная переменная в RD Add PHP
« Ответ #1 : 06.02.2019, 15:10:43 »
Сохраните ее в сессии до того, как она будет нужна.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

oopros

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Re: Глобальная переменная в RD Add PHP
« Ответ #2 : 06.02.2019, 16:44:59 »
Сохраните ее в сессии до того, как она будет нужна.
Т.е хранить в сессиях эти данные? Это будет корректно?
И после использования обязательно ее удалять?
*

oopros

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Re: Глобальная переменная в RD Add PHP
« Ответ #3 : 06.02.2019, 17:01:56 »
$_SESSSION['cat']=$list1;

В следующем файле попробовал Print_r($_SESSSION['cat']); - ничего не выводит, пусто.

*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Глобальная переменная в RD Add PHP
« Ответ #4 : 06.02.2019, 18:10:44 »
Т.е хранить в сессиях эти данные? Это будет корректно?
Ну, это относительное понятие. Я бы на вашем месте задал себе вопрос, корректно ли все, что вы делали до этого.
$_SESSSION['cat']=$list1;
В следующем файле попробовал Print_r($_SESSSION['cat']); - ничего не выводит, пусто.
Во-первых, используйте JSession, если вас так заботит безопасность.
Во-вторых,
Сохраните ее в сессии ДО того, как она будет нужна.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

oopros

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Re: Глобальная переменная в RD Add PHP
« Ответ #5 : 07.02.2019, 13:55:30 »
попробовал так записывать сессию:
$session = JFactory::getSession();
$session->set( 'mySessionVar', 100 );

вот так выводить:
$session = JFactory::getSession();
$s=$session->get('mySessionVar', '');
print_r($s);

Обычную переменную, в которой текст - нормально работает. Но с массивом не получается. Массив нельзя сохранить в эту сессию?
*

oopros

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Re: Глобальная переменная в RD Add PHP
« Ответ #6 : 07.02.2019, 18:18:29 »
была ошибка, передавал пустой массив, все работает, спасибо!
*

oopros

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Re: Глобальная переменная в RD Add PHP
« Ответ #7 : 08.02.2019, 11:20:45 »
еще такой вопрос возник с данными переменными. Включен плагин - Кэш.
Сделал запись данных запроса в Сессию. В другом файле получаю и вывожу информацию.
Иногда на страничках информация не выводится - чищу кэш Joomla - появляется. Потом опять замечаю в каком-то месте нет информации - опять чищу весь кэш Joomla - появляется. В чем проблема?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Глобальная переменная в RD Add PHP
« Ответ #8 : 08.02.2019, 16:22:32 »
опять чищу весь кэш Joomla - появляется
Вы сами уже ответили на свой вопрос :)
Не будь паразитом, сделай что-нибудь самостоятельно!
*

oopros

  • Осваиваюсь на форуме
  • 20
  • 0 / 0
Re: Глобальная переменная в RD Add PHP
« Ответ #9 : 08.02.2019, 16:57:01 »
Вы сами уже ответили на свой вопрос :)
Да, но почему-то после чистки кэша - иногда появляется проблема повторно на других страницах. Кэш очистил - и там появилось.
Я же изначально очистил весь кэш.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Переменная города посетителя в тексте

Автор timssky

Ответов: 3
Просмотров: 600
Последний ответ 04.10.2021, 18:16:16
от varX
Переменная PageClassSuffix в шаблоне и php 7.2

Автор kik84

Ответов: 2
Просмотров: 764
Последний ответ 01.10.2018, 21:26:49
от dmitry_stas
Переменная PHP из модуля

Автор genkey

Ответов: 8
Просмотров: 986
Последний ответ 10.08.2017, 15:43:10
от genkey
Переменная в названии позиции модуля

Автор usmdamir

Ответов: 1
Просмотров: 756
Последний ответ 13.06.2017, 14:29:51
от usmdamir
Переменная imgfloat в mod_articles_news

Автор kik84

Ответов: 3
Просмотров: 869
Последний ответ 29.07.2016, 20:26:19
от FitMe