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

megavovan

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Добрый день.
Возникла необходимость вставки своего РНР-кода в статьи чтобы выводить в них обработанные результаты запросов MySQL. Я был очень рад замечательному решению Sourcerer. Но радость была не долгой.
Подскажите как получить id пользователя который в настоящий момент залогинен? Не обязательно id, я имею ввиду как вообще узнать кто залогинен чтобы выводить именно его данные. Я так понимаю нужно подключиться к API Joomla? Или я Неправильно понимаю?
*

voland

  • Легенда
  • 11028
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Переадресуйте вопрос.
Программисты не юзают sourcerer
*

varX

  • Живу я здесь
  • 2465
  • 141 / 5
  • разработка компонентов
Не знаю, что такое Sourcerer, для вставки кода в статьи, использую PPF-2. Если не нужно подключать мерчанты платежных систем, то вполне подойдет и бесплатная версия.

Получить id текущего пользователя можно так
Код: php
$user =  JFactory::getUser();
$id = $user->get('id');
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Вставки своего РНР-кода также не делаем.  ^-^
Но если нужно создайте альтернативный макет любого модуля, удобно mod_custom. Вывод компонента в качестве модуля
Код: php-brief
$user = JFactory::getUser(); // если он залогинен иначе $user = JFactory::getUser(42); // 42 - ид пользователя, смотри в админке
// и в нужном месте выводим имя юзера :
echo $user->get('name') ; //или echo $user->name;
// или логин :
$user->get('username') ; //или echo $user->username;
// подробнее
echo '<pre>';
print_r($user);
echo '</pre>';
Если нужны данные плагина - профиль пользователя
Код: php-brief
jimport( 'joomla.user.helper' );
$userProfile = JUserHelper::getProfile();
var_dump($userProfile);
*

megavovan

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Огромное спасибо! То что нужно! А где-то можно почитать что еще можно вытащить из JFactory? А может и еще чего есть? Я сишник, но так случилось что приходится PHP изучать. Пока ни капельки не пожалел... :)
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
Я сишник, но так случилось что приходится PHP изучать. Пока ни капельки не пожалел... :)
Ещё не вечер  ;D
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Создание релиза компонента средствами GitHub

Автор SkyAn

Ответов: 4
Просмотров: 954
Последний ответ 01.11.2019, 17:42:04
от Septdir
Вопрос на засыпку

Автор Aleks.Denezh

Ответов: 5
Просмотров: 952
Последний ответ 10.03.2019, 23:15:22
от Aleks.Denezh
Создание таблиц средствами компонента

Автор spirit1086

Ответов: 3
Просмотров: 1286
Последний ответ 18.08.2015, 10:17:09
от spirit1086
Вопрос к создателям модулей и компонентов. Стилевое оформление модулей.

Автор master-smeta

Ответов: 5
Просмотров: 1222
Последний ответ 12.02.2015, 17:19:45
от master-smeta
Вопрос по JFormField

Автор Hol1killer

Ответов: 11
Просмотров: 2367
Последний ответ 26.01.2015, 14:39:41
от robert