Новости 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 Ответов
  • 3116 Просмотров
*

Stasweb

  • Завсегдатай
  • 1500
  • 24 / 0
Доброго времени суток форумчане! Не могу побороть проблемы с устранением ошибок при переходе на php 8. Давно не работал с php, помогите разобраться.
Имею вот такой код
Код
public static function cfHex2bin($h)
    {
        $filter = JFilterInput::getInstance();
        $h = (string) $h;
        // only hex allowed
        $hex_match = preg_match('/^[a-fA-F0-9]+$/', $h, $matches);

        if ((is_string($h) && $matches[0])) {
            $r = '';
            for ($a = 0; $a < strlen($h); $a += 2) {
                $r .= chr(hexdec($h{$a} . $h{($a + 1)}));
            }
            $r = $filter->clean($r, 'string');
            return $r;
        }
        return;
    }
данный код на версии 7,4 работает без ошибок, как только переключаю на версию 8,0 получаю ошибку
Код
Fatal error: Array and string offset access syntax with curly braces is no longer supported in /components/com_customfilters/include/tools.php on line 444
строка 444  $r .= chr(hexdec($h{$a} . $h{($a + 1)}));Правлю так
Код
        public static function cfHex2bin($h)
    {
        $filter = JFilterInput::getInstance();
        $h = (string) $h;
        // only hex allowed
        $hex_match = preg_match('/^[a-fA-F0-9]+$/', $h, $matches);

        if ((is_string($h) && $matches[0])) {
            $r = '';
            for ($a = 0; $a < strlen($h); $a += 2) {
               // $r .= chr(hexdec($h{$a} . $h{($a + 1)}));
                $r .= chr(hexdec($h[$a] . $h[($a + 1)]));
            }
            $r = $filter->clean($r, 'string');
            return $r;
        }
        return;
    }
Получаю 0 - Undefined constant "php" подскажите пожалуйста, что не так
*

ProtectYourSite

  • Живу я здесь
  • 2364
  • 137 / 4
  • Безопасность вебсайтов
В какой строке?
Наверняка это уже другая ошибка в другом месте вылезла
*

Stasweb

  • Завсегдатай
  • 1500
  • 24 / 0
В какой строке?
Fatal error: Array and string offset access syntax with curly braces is no longer supported in /components/com_customfilters/include/tools.php on line 444, строка 444  $r .= chr(hexdec($h{$a} . $h{($a + 1)}));
Наверняка это уже другая ошибка в другом месте вылезла
Ошибку получил 0 - Undefined constant "php" (так белый экран а данную ошибку взял с title) Больше ошибок нет просто белый экран, если возвращаю 444 строку к прежнему виду со скобками {} то опять получаю Fatal error, если ставлю скобки [] то получаю белый экран с title - 0 - Undefined constant "php"
*

ProtectYourSite

  • Живу я здесь
  • 2364
  • 137 / 4
  • Безопасность вебсайтов
Включите дебаг и будет полный стэк ошибки
*

Stasweb

  • Завсегдатай
  • 1500
  • 24 / 0
что-то непонятное творится, поставил на поддомен сайт и вот как он работает
Главная _https://update.lik-astana.kz/ открывается без проблемКатегория _https://update.lik-astana.kz/poligrafiya/kalendari.html появляется экран категории и сразу пропадаетТовар отображается _https://update.lik-astana.kz/poligraficheskie-uslugi/uslugi-dizajnera/dizajn-detail.html
стоит VirtueMart, извиняюсь что не в той ветке пишу но изначально было необходимо обновить только версию PHP, на данном этапе обновил VM до последний версии. Версию PHP еще не менял.Подскажите пожалуйста, с чем может связанна такая работа категории. Понятно что может быть установлено много разных расширений но куда копать, с чего начать поиск проблемы. Сообщение об ошибках включено для разработчиков.
*

Stasweb

  • Завсегдатай
  • 1500
  • 24 / 0
В коде страниц категории добавляется display: none в тег HTML
Код
<html slick-uniqueid="3" style="display: none;">
откуда он берется понять не могу, все ставил чистое, ворьоза нет
*

sivers

  • Живу я здесь
  • 2585
  • 359 / 0
Теги HTML и body скрыты. Вероятно, после загрузки страницы js должен был снять скрытие (предзагрузка такая?), но из-за ошибок он не отрабатывает и потом страница остается скрытой.
Причем, скрытие тоже делает JS. А открыть потом уже ошибки мешают.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Stasweb

  • Завсегдатай
  • 1500
  • 24 / 0
По ошибкам, ругается вот на этот код
         
Код
  VirtueMart.updateCartListener=function()
            {
                VirtueMart.product(
                /**jQuery(".product**/
                jQuery(".product")
                jQuery('body')
                .trigger('updateVirtueMartProductDetail');
                }
dynupdate.js:29:45 но тут вроде не скрывается контент
*

sivers

  • Живу я здесь
  • 2585
  • 359 / 0
но тут вроде не скрывается контент
после вылета ошибки, остальной код уже не отрабатывает
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Stasweb

  • Завсегдатай
  • 1500
  • 24 / 0
Все обновил, ошибку исправил, категории отображаются. На данном этапе при увеличении версии php до 8,0 получаю ошибку 404, в логах
Код
2023-03-29 14:26:33    Error    85.117.124.143    500    GET / HTTP/1.0    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0    2.19 К    Доступ к Apache SSL/TLS
в title висит 0 - Undefined constant "php"
.htaccess
Спойлер
[свернуть]
*

sivers

  • Живу я здесь
  • 2585
  • 359 / 0
посмотрите в каком файле/строке (в логах написано обычно)
возможно, в
Код
<?php
пропущен вопросительный знак или добавлен после него пробел
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Stasweb

  • Завсегдатай
  • 1500
  • 24 / 0
В логах этой информации не вижу
пропущен вопросительный знак или добавлен после него пробел
Как еще можно найти этот файл, поиском в Notepad++ <? php, < ?php, <php результата нет
*

sivers

  • Живу я здесь
  • 2585
  • 359 / 0
В логах этой информации не вижу
значит смотрите не там. на сервере ищите

если ошибка не фатальная и выдается макетом шаблона error.php. то можно прописать в нем
Код
print_r($this->error);
и увидеть подробности

а если фатальная, то только в логах хостинга (не в тех, которые среди папок сайта).
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Stasweb

  • Завсегдатай
  • 1500
  • 24 / 0
а если фатальная, то только в логах хостинга (не в тех, которые среди папок сайта).
Так я там и смотрю
если ошибка не фатальная и выдается макетом шаблона error.php. то можно прописать в нем Код print_r($this->error);
тут есть результат но ошибки я не нашел
Спойлер
[свернуть]
*

sivers

  • Живу я здесь
  • 2585
  • 359 / 0
Покажите этот файл:
/modules/mod_modul_kontaktov_v_modalnom_okne/tmpl/devepmen_kubrina.php

Можете скинуть его. Написано, что в нем ошибка.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Stasweb

  • Завсегдатай
  • 1500
  • 24 / 0
Вот данный файл
Спойлер
[свернуть]
заметил 
<?php// } 
?>
ошибки нет, но и сайт не отображается

Логи на сервере
Спойлер
[свернуть]
« Последнее редактирование: 29.03.2023, 13:12:40 от Stasweb »
*

sivers

  • Живу я здесь
  • 2585
  • 359 / 0
добавьте пробел после php в той строчке
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Stasweb

  • Завсегдатай
  • 1500
  • 24 / 0
да я исправил, ошибка ушла. сейчас просто белый экран и ошибок нет, в логах сервера 500-я.
*

sivers

  • Живу я здесь
  • 2585
  • 359 / 0
500 - ошибка синтаксиса в PHP, возможно.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Stasweb

  • Завсегдатай
  • 1500
  • 24 / 0
500 - ошибка синтаксиса в PHP, возможно.
Как определить ошибку
*

sivers

  • Живу я здесь
  • 2585
  • 359 / 0
Как определить ошибку
тут либо смотреть внимательно update.lik-astana.kz.errors.log
либо методом исключения искать файл с ошибкой (что дольше). макеты переопределенные можно поочереди переименовывать и смотреть. сторонние расширения отключать.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

ProtectYourSite

  • Живу я здесь
  • 2364
  • 137 / 4
  • Безопасность вебсайтов
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблемы с комментариями в Komento

Автор Stasweb

Ответов: 2
Просмотров: 841
Последний ответ 25.11.2020, 12:05:00
от Stasweb
Обнаружены проблемы

Автор anvitalij

Ответов: 3
Просмотров: 2634
Последний ответ 02.07.2019, 13:24:57
от Slavnaya
Проблемы с языковыми файлами в PHP 7

Автор interregional

Ответов: 4
Просмотров: 1029
Последний ответ 16.10.2017, 12:24:07
от ProtectYourSite
Проблемы в компоненте RSBlog 1.13.3

Автор Ishti39

Ответов: 1
Просмотров: 1225
Последний ответ 02.09.2017, 00:27:22
от Ishti39
проблемы с отображением Блога категорий

Автор yacovets

Ответов: 3
Просмотров: 1126
Последний ответ 08.12.2016, 15:14:31
от yacovets