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

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Всем кривет!
Пытаюсь воспользоваться механизмом тегов для организации галереи, но вот как настроить количество элементов на странице - не понимаю.
Хочется получить на выходе 12 итемов на странице и не зависеть при этом от значения в configuration.php.
Вообще, не понимаю, почему у компонентов тегов нет собственной настройки для конкретного пункта меню под это дело. Это же жесть как не удобно.
Может, можно как-то перехватить значение $list_limit и поменять на свое конкретно для нужного пункта меню?
*

sivers

  • Живу я здесь
  • 2585
  • 359 / 0
Компоненты - Метки - Настройки - Закл. "Параметры выбора"- Кол-во элементов (по умолч. 200)

не оно?
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
не, это типа максимальный лимит какой-то, видимо, защита от убийственных запросов.
а количество на странице наследуется от системных настроек.
при этом из админки их не задать в нужном количестве, т.к. значение списка кратно 5.
и эта настройка влияете потом на все списки, даже в админке. типа, в списке статей по дефолту будет тоже 12, если в конфиге руками прописать.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Компоненты - Метки - Настройки - Закл. "Параметры выбора"- Кол-во элементов (по умолч. 200)

не оно?
это если отсутствует пагинация, только 1 страница

как настроить количество элементов на странице
можно попробовать что то из
1. задать количество жестко в шабе Joomla
2. создать свой layout и там добавить параметр количества на странице
3. сделать это плагином
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
при этом из админки их не задать в нужном количестве, т.к. значение списка кратно 5.
это вообще самая дурацкая дурацкость :) я не могу понять почему количество кратно 5 при том что сетка строится исходя из 1-2-3-х элементов в строке :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
можно попробовать что то из
1. задать количество жестко в шабе Joomla
2. создать свой layout и там добавить параметр количества на странице
3. сделать это плагином
Это не подходит, потому что студент - тупой!
нужен конкретный ответ  ;D
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
ну а что именно пробуем то? :) в шабе жумлы прописать просто количество норм будет?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
тогда пробуем так
Цитировать
$app  = JFactory::getApplication();
if ($app->input->getRaw('option') == 'com_tags' && $app->input->getRaw('view') == 'tag') {
    $app->set('list_limit', 12);
}
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
собственное, вот так в ядре задается в
\components\com_tags\models\tag.php
Код
$limit = $params->get('display_num', $app->get('list_limit', 20));
$limit = $app->getUserStateFromRequest('global.list.limit', 'limit', $limit, 'uint');

может на мысль натолкнет
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
вот же шорт, забыл что компонент выполняется раньше шаба... а системного плагина своего (ну который не затрется при обновах) нет случайно, куда это можно вставить?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
попробовать в onAfterDispatch
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
не, вот тут проканало
Код
public function onAfterRoute()
{
$app  = JFactory::getApplication();
if ($app->input->getRaw('option') == 'com_tags' && $app->input->getRaw('view') == 'tag') {
$app->set('list_limit', 12);
}
}

берем свой системный плагин, ищем там секцию onAfterRoute(), если её нет, вставляем на том же уровне, что и другое function on...
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
а, ну да, логично, onAfterDispatch это ж уже после обработки. ну славно :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
сам же все и сделал, я то тут при чем? :) главное - поговорить ))
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
Код
$limit = $params->get('display_num', $app->get('list_limit', 20));
А это не означает, что где то в настройках есть?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
угу, есть, но во-первых только в Список элементов (компактный), а во-вторых там опять таки 5,10,20 выбор
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

ukrart

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Нашел эту тему, обрадовался, так как очень нужно решить именно эту проблему. Но не понял, где использовать указанный код, в каком файле шаблона/плагина.
Объясните, пожалуйста, подробнее.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
использовать в системном плагине внутри этого события
Код
public function onAfterRoute()

плагин может быть чей-то или ваш. вот тут можно сгененировать болванку с нужным типом события и потом внутрь вставить код
https://alex-d.site/sozdanie-plagina.html
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Вывод значений из custom fields материала в модуле по имени поля

Автор goga_pgasovav

Ответов: 3
Просмотров: 982
Последний ответ 30.12.2024, 13:22:11
от goga_pgasovav
[Решено] Получить category description image в index.php шаблона

Автор goga_pgasovav

Ответов: 6
Просмотров: 1024
Последний ответ 12.07.2024, 17:06:14
от goga_pgasovav
Шорткоды baforms в кастомном компоненте

Автор oxbeat

Ответов: 2
Просмотров: 746
Последний ответ 20.02.2024, 00:41:29
от oxbeat
[Решено] Перестали работать переходы по меню сайта

Автор AlexP750

Ответов: 12
Просмотров: 1639
Последний ответ 06.02.2024, 12:42:26
от AlexP750
Вывод даты материала в списке тегов

Автор androv77

Ответов: 2
Просмотров: 1738
Последний ответ 09.11.2023, 16:33:08
от denxio