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

catsub

  • Захожу иногда
  • 76
  • 0 / 0
Здравствуйте! Помогите пожалуйста!
Установлены Joomla 4.4.2, shaper_helixultimate 2.0.13.

Не существующие страницы возвращают код 404 Not Found только в том случае, если адрес имеет расширение .php. Во всех остальных случаях возвращается код 200 OK и идет перенаправление на главную страницу сайта, например:
https://www.aet-group.ru/prod/pokrytieppp.html   код 200 OK
https://www.aet-group.ru/prod/pokrytieppp.php   код 404 Not Found
https://www.aet-group.ru/pokrytieppp   код 200 OK
https://www.aet-group.ru/prod/   код 200 OK

Если перед несуществующим файлом указан существующий раздел, то перенаправление идет не на главную страницу, а на этот раздел, то есть на уровень выше, например:
https://www.aet-group.ru/production/jhkll

Почему это происходит, как исправить?
Спасибо.
*

sivers

  • Живу я здесь
  • 2585
  • 359 / 0
Вероятно, так роутер вашего компонента настроен. Он парсит ссылку пока может. А на остальное не обращает внимание (на нераспарсенный хвост ссылки).
Исправить можно в парсере роутера, добавив генерацию 404 ошибки, в случае, если остались недопарсенные секции ссылки.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

catsub

  • Захожу иногда
  • 76
  • 0 / 0
sivers, спасибо! Только я не очень понимаю, что такое парсер роутера. Можно поподробнее, что конкретно нужно сделать?
*

sivers

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

ProtectYourSite

  • Живу я здесь
  • 2364
  • 137 / 4
  • Безопасность вебсайтов
В шаблоне нужно править файл error.php убирать перенаправление и отдавать 404 код ответа
*

catsub

  • Захожу иногда
  • 76
  • 0 / 0
sivers, поиском нашлось 15 файлов router.php. О каком компоненте речь?

ProtectYourSite, исходный error.php заменен, вот его текст:
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
if($this->error->getCode() == '404'){
    header("HTTP/1.1 404 Not Found");
    echo file_get_contents(JURI::root().'error-404');
    exit;
}

И дополню: правильный код ошибки 404 отдают не только адреса с расширением .php, но также и .txt, .img, .htm (но не .html).
*

sivers

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

catsub

  • Захожу иногда
  • 76
  • 0 / 0
sivers, если товары - то это com_hikashop. Я совершенно не разбираюсь в коде router.php . Помогите пожалуйста.
« Последнее редактирование: 22.01.2024, 22:23:17 от catsub »
*

catsub

  • Захожу иногда
  • 76
  • 0 / 0
Вдогонку - там не только hikashop неправильно работает, там и sp page builder, и вывод простого материала - все работает неправильно. Если не в роутере, то в чем еще может быть причина?
Старая версия сайта, на joomla 3, коды ответа сервера возвращала правильные.
« Последнее редактирование: 22.01.2024, 22:25:20 от catsub »
*

sivers

  • Живу я здесь
  • 2585
  • 359 / 0
В верхней части файла подправьте метод parse
Код
      public function parse(&$segments) {
         $vars = _HikashopParseRoute($segments);

         // Проверка валидности ссылки
         $validLink = Route::_('index.php?'.http_build_query($vars));
         $validLink = explode('?', $validLink)[0];
         $parseLink = explode('?', $_SERVER['REQUEST_URI'])[0];
         if($parseLink != $validLink){
             throw new \Exception('Not Found', 404);
         }
         
         return $vars;
      }

Сверху после defined('_JEXEC') or die('Restricted access'); добавьте строку
Код
use Joomla\CMS\Router\Route;

Проверьте ссылки. Если не поможет или что-то сломается - верните как было.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

sivers

  • Живу я здесь
  • 2585
  • 359 / 0
Вдогонку - там не только hikashop неправильно работает, там и sp page builder, и вывод простого материала - все работает неправильно. Если не в роутере, то в чем еще может быть причина?
Старая версия сайта, на Joomla 3, коды ответа сервера возвращала правильные.
Тогда скорее всего причина не в роутере.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

ProtectYourSite

  • Живу я здесь
  • 2364
  • 137 / 4
  • Безопасность вебсайтов

ProtectYourSite, исходный error.php заменен, вот его текст:
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
if($this->error->getCode() == '404'){
    header("HTTP/1.1 404 Not Found");
    echo file_get_contents(JURI::root().'error-404');
    exit;
}

Попробуйте в этом файле вывести произвольный текст( это лучше тестить без кеширования). Если текст выведется, то надо проверять условия и от этого подгонять, иначе все таки дело в роутере выходит
*

catsub

  • Захожу иногда
  • 76
  • 0 / 0
sivers, сделала, как Вы сказали, проверила - без результата, вот начало файла:

<?php
/**
 * @package   HikaShop for Joomla!
 * @version   4.7.5
 * @author   hikashop.com
 * @copyright   (C) 2010-2023 HIKARI SOFTWARE. All rights reserved.
 * @license   GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
use Joomla\CMS\Router\Route;
?><?php

$jversion = preg_replace('#[^0-9\.]#i','',JVERSION);
if(version_compare($jversion,'4.0.0','>=')) {
   class hikashopRouter extends Joomla\CMS\Component\Router\RouterBase {

      public function build(&$query) {
         return _HikashopBuildRoute($query);
      }

      public function parse(&$segments) {
         $vars = _HikashopParseRoute($segments);

         // Проверка валидности ссылки
         $validLink = Route::_('index.php?'.http_build_query($vars));
         $validLink = explode('?', $validLink)[0];
         $parseLink = explode('?', $_SERVER['REQUEST_URI'])[0];
         if($parseLink != $validLink){
             throw new \Exception('Not Found', 404);
         }
         
         return $vars;
      }

   }
}

ProtectYourSite, вставила текст, он выводится, когда чтраница возвращает код 404. Но проблема-то в том, что несуществующие страницы возвращают код 200, в этих случаях обращения к error.php нет.
*

sivers

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

catsub

  • Захожу иногда
  • 76
  • 0 / 0
День добрый! Совсем больше никаких мыслей? :o
А Вы можете рассказать, в каком месте, в каком файле формируется перенаправление несуществующей страницы на главную?
*

sivers

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

catsub

  • Захожу иногда
  • 76
  • 0 / 0
sivers, сделала. Ничего не изменилось. Пробовала также поменять на .htaccess от старой версии сайта, в которой коды ответа формируются правильно - тоже ничего не поменялось.
*

catsub

  • Захожу иногда
  • 76
  • 0 / 0
Alex_gs, Ваша ссылка рассказывает про создание страницы 404. Но моя проблема в другом - несуществующие страницы возвращают код 200, а не 404. То есть обращения к странице 404 не происходит вообще. К тому же моя страница 404 уже создана именно по этой методике.
*

ProtectYourSite

  • Живу я здесь
  • 2364
  • 137 / 4
  • Безопасность вебсайтов
Ну как говорил выше, значит проблема в роутере, необходимо понимать, какой компонент так обрабатывает и в нем искать решение.
Есть еще небольшая гипотеза, что проблема в шаблоне и его плагинах, попробуйте воспроизвести проблему на стандартном шаблоне (желательно взять чистую Joomla и компонент магазина, без посторонних плагинов)
*

catsub

  • Захожу иногда
  • 76
  • 0 / 0
Уф, проблема решена. Да, она была в роутере. Точнее в двух роутерах - в компонентах hikashop и в sp page builder. sivers, после того, как подправила метод parse также и в sp page builder, то есть в сумме правила два файла, сервер стал отдавать правильные ответы.

Всем большое спасибо за помощь!
*

sivers

  • Живу я здесь
  • 2585
  • 359 / 0
Уф, проблема решена.
С чем Вас и поздравляю! )
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как всё-таки создать страницы сайта на Joomla?

Автор donaire

Ответов: 4
Просмотров: 747
Последний ответ 14.02.2025, 12:22:41
от Tavol
Torbo страницы для Joomla 4

Автор Serebro2009

Ответов: 6
Просмотров: 834
Последний ответ 17.10.2024, 17:39:37
от web1
Отменить разбиение на страницы

Автор willart

Ответов: 9
Просмотров: 829
Последний ответ 27.04.2024, 21:10:43
от web1
Как убрать слово "ГЛАВНАЯ" с главной страницы?

Автор Северянин23

Ответов: 2
Просмотров: 922
Последний ответ 10.12.2023, 14:00:55
от Северянин23
Турбо-страницы и редактирование CSS

Автор Serebro2009

Ответов: 1
Просмотров: 546
Последний ответ 07.11.2023, 18:34:21
от Serebro2009