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

pedrosoft

  • Захожу иногда
  • 367
  • 113 / 7
Как использовать sefRelToAbs?
« : 01.07.2007, 14:04:16 »
Подскажите пожалуйста вот например есть ссылка:
Код
$gimmeback.="<a href=index.php?option=com_comprofiler&task=userProfile&user=".$ofanid."&Itemid=27>".$ofaname."</a> ";
Как к ней прикрутить sefRelToAbs? Пробывал разные варианты но не работает...руки видно очень кривы
Интернет Хостинг Центр: отличные цены, лучшее качество, расположение в дата-центре «Оверсан-Меркурий»
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Как использовать sefRelToAbs?
« Ответ #1 : 01.07.2007, 14:24:15 »

$gimmeback 
.= '<a href="'
sefRelToAbs('index.php?option=com_comprofiler&task=userProfile&user='.$ofanid.'&Itemid=27').'">'
$ofaname.'</a>';
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

pedrosoft

  • Захожу иногда
  • 367
  • 113 / 7
Re: Как использовать sefRelToAbs?
« Ответ #2 : 01.07.2007, 14:59:55 »
Благодарю!
Интернет Хостинг Центр: отличные цены, лучшее качество, расположение в дата-центре «Оверсан-Меркурий»
*

pedrosoft

  • Захожу иногда
  • 367
  • 113 / 7
Re: Как использовать sefRelToAbs?
« Ответ #3 : 16.07.2007, 02:23:22 »
userxp а не мог бы ещё раз подсказать с такой ссылкой $hrefs[] = $mosConfig_live_site."/index.php?option=com_content&task=view&id=".$row->id."&Itemid=".$mainframe->getItemid($row->id);
Интернет Хостинг Центр: отличные цены, лучшее качество, расположение в дата-центре «Оверсан-Меркурий»
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Как использовать sefRelToAbs?
« Ответ #4 : 16.07.2007, 02:30:09 »
что подсказать?
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

pedrosoft

  • Захожу иногда
  • 367
  • 113 / 7
Re: Как использовать sefRelToAbs?
« Ответ #5 : 16.07.2007, 12:20:49 »
Как прикрутить к ней функцию sefRelToAbs
Интернет Хостинг Центр: отличные цены, лучшее качество, расположение в дата-центре «Оверсан-Меркурий»
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Как использовать sefRelToAbs?
« Ответ #6 : 16.07.2007, 12:33:29 »
а из предыдущего, разве, не следует как?
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

pedrosoft

  • Захожу иногда
  • 367
  • 113 / 7
Re: Как использовать sefRelToAbs?
« Ответ #7 : 16.07.2007, 17:59:42 »
Никак не могу следствие вывести...
А можно последний раз подсказать больше спрашить не буду (по этой теме)
Интернет Хостинг Центр: отличные цены, лучшее качество, расположение в дата-центре «Оверсан-Меркурий»
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Как использовать sefRelToAbs?
« Ответ #8 : 16.07.2007, 18:43:50 »
Никак не могу следствие вывести...
а что ссобственно непонятно? что надо ссылку передать в качестве параметра в функцию? или что?
*

Alex_B

  • Захожу иногда
  • 196
  • 39 / 0
Re: Как использовать sefRelToAbs?
« Ответ #9 : 16.07.2007, 21:43:17 »
$hrefs[] = $mosConfig_live_site."/index.php?option=com_content&task=view&id=".$row->id."&Itemid=".$mainframe->getItemid($row->id);


$hrefs 
$mosConfig_live_site."/index.php?option=com_content&task=view&id=".$row->id."&Itemid=".$mainframe->getItemid($row->id);

$hrefs sefRelToAbs($hrefs);
$link'<a href="'$hrefs .'">ссылка</a>';


Так??
*

Dry7

  • Осваиваюсь на форуме
  • 12
  • 13 / 2
  • Разработчик ruBook
Re: Как использовать sefRelToAbs?
« Ответ #10 : 17.07.2007, 10:59:02 »

$hrefs 
$mosConfig_live_site."/index.php?option=com_content&task=view&id=".$row->id."&Itemid=".$mainframe->getItemid($row->id);
$hrefs sefRelToAbs($hrefs);
$link'<a href="'$hrefs .'">ссылка</a>';


Так??

нет, без $mosConfig_live_site

вот так

$hrefs
[] = sefRelToAbs"index.php?option=com_content&task=view&id=".$row->id."&Itemid=".$mainframe->getItemid($row->id) );


то есть линк должен начинаться с index.php
*

pedrosoft

  • Захожу иногда
  • 367
  • 113 / 7
Re: Как использовать sefRelToAbs?
« Ответ #11 : 17.07.2007, 12:23:15 »

$hrefs 
$mosConfig_live_site."/index.php?option=com_content&task=view&id=".$row->id."&Itemid=".$mainframe->getItemid($row->id);

$hrefs sefRelToAbs($hrefs);
$link'<a href="'$hrefs .'">ссылка</a>';


Так??
Там же был массив а вы от него избавились :)
нет, без $mosConfig_live_site

вот так

$hrefs
[] = sefRelToAbs"index.php?option=com_content&task=view&id=".$row->id."&Itemid=".$mainframe->getItemid($row->id) );


то есть линк должен начинаться с index.php
Спасибо. Т.ё. фунция sefRelToAbs сама добавляет адрес сайта(http://site.ru/)
Интернет Хостинг Центр: отличные цены, лучшее качество, расположение в дата-центре «Оверсан-Меркурий»
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Как использовать sefRelToAbs?
« Ответ #12 : 17.07.2007, 12:54:41 »
фунция sefRelToAbs сама добавляет адрес сайта(http://site.ru/)
да, именно  так
*

Dry7

  • Осваиваюсь на форуме
  • 12
  • 13 / 2
  • Разработчик ruBook
Re: Как использовать sefRelToAbs?
« Ответ #13 : 17.07.2007, 22:58:18 »
ага, а если в линке присутствует адрес сайта, то функция обрабатывает его как ссылку на другой сайт, то есть не трогает.
*

zaboich

  • Осваиваюсь на форуме
  • 37
  • 11 / 0
Re: Как использовать sefRelToAbs?
« Ответ #14 : 01.08.2007, 12:21:54 »
Тут много бился с передачей параметров с русскими символами например:
Код
$search = "русский текст";
$option = "com_component";
$link = 'index.php?option=$option&searchword=$search";

Для передачи символов в русских кодировках требуется произвести преобразование передаваемой строки функцией urlencode(), т.е.
Код
$search = urlencode($search);

и если вставить в ...html.php:
Код
echo "<a href=\"$link\">
то на странице получим ссылку
<a href="index.php?option=com_component&searchword=%F0%F3%F1%F1%EA%E8%E9+%F2%E5%EA%F1%F2">
, которая будет вполне корректно работать (но некрасиво, хотим лучше  :P ).

А если использовать функцию sefRelToAbs():
Код
$link = sefRelToAbs($link);
, то получим строку
<a href="/option,com_component/searchword,русский текст/">
, которую нормально послать может (насколько я понял только FireFox)

После долгих попыток, я нашел способ - двойное кодирование:
Код
$search = urlencode( urlencode( $search ) );

Тогда из
Код
$link = sefRelToAbs($link);
будет в IE и Opere
<a href="/option,com_component/searchword,%F0%F3%F1%F1%EA%E8%E9+%F2%E5%EA%F1%F2/">
а в FF будет
<a href="/option,com_component/searchword,русский текст/">
И все будут довольны


Но понять почему так работает не смог. Особенно учитывая что в самой sefRelToAbs() я не нашел никакой работы по преобразованию кодировок.
Кто нибудь может объяснить почему так?  !!!???!!!

PS хорошо, хоть как-то работает :)
« Последнее редактирование: 01.08.2007, 13:10:24 от zaboich »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться