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

nnnata

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Добрый день. Проблема: сайт на Joomla 2.5. После перехода на https, rel=canonical продолжает использовать адреса с http. Я так поняла, что в Joomla 3 это решается путем выбора соответствующего домена в настройках плагина Система - SEF.
Может быть в Joomla 2.5. можно сделать что-то подобное, подправив где-то в ручную?
Или есть какое-то другое решение?
заранее спасибо за помощь
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
А каким способом вы каноникал прописывали?
Создание сайтов, шаблонов, помощь в решении проблем.
*

nnnata

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
стыдно сказать, но это было так давно, что не помню. вопрос более, чем резонный, сама пыталась найти/вспомнить.
нашла у себя плагин System - Metagenerator, при его отключении, отключается каноникал на главной и страницах материалов, но в VirtueMart остается.
еще стоит sh404SEF. но в настройках "оптимизация ссылок" отключено. хотя все компоненты/плагины/модули в списке расширений, включены. побоялась отключать, т.к. не понимаю последствий.
точно включен системный SEF

что мне посмотреть, чтоб нормально ответить на ваш вопрос?
надеялась, что это какая-то типовая проблема с простым решением :)
ссылка на сайт-пациент https://bit.ly/2LNTj0K

извиняюсь за то, что я такой дуб-дерево в этих вопросах :)
« Последнее редактирование: 25.07.2018, 14:08:21 от nnnata »
*

Efanych

  • Глобальный модератор
  • 4683
  • 644 / 0
  • Меняю свою жизнь на 360°!
Ну, пройдитесь поиском по файлам по слову canonical
Создание сайтов, шаблонов, помощь в решении проблем.
*

nnnata

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
canonical
прошлась. есть упоминание каноникл
1. в файлах sh404SEF
но вот еще здесь читаю, что sh404SEF не  обрабатывает домен https://weeblr.com/helpdesk/sh404sef/2791-from-http-to-https и нужно рыть Система-SEF/ если правильно поняла
2. есть в файлах VirtueMart
Код
// Add the product link  for canonical
$product->canonical = 'index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' . $this->_id . '&virtuemart_category_id=' . $productCategory;


Код
// Set Canonic link
if (!empty($tpl)) {
$format = $tpl;
} else {
$format = JRequest::getWord('format', 'html');
}
if ($format == 'html') {
$document->addHeadLink( JRoute::_('index.php?option=com_virtuemart&view=category&virtuemart_category_id='.$categoryId), 'canonical', 'rel', '' );
}

Код
// Set Canonic link
$format = JRequest::getWord('format', 'html');
if ($format == 'html') {
$document->addHeadLink ($product->link, 'canonical', 'rel', '');
}

Код
// Set Canonic link
    $document->addHeadLink(JRoute::_($product->canonical, true, -1), 'canonical', 'rel', '');

Код
/* Set Canonic link */
$format = JRequest::getWord('format', 'html');
if ($format == 'html') {
$document->addHeadLink( $product->link , 'canonical', 'rel', '' );

3. и еще здесь:    www\plugins\system\metagenerator\metagenerator.php
Код
$usecanonical = $this->params->def('usecanonical', 0);
$categorytitle = $this->params->def('categorytitle', 0);
$sitedomain = $this->params->def('sitedomain','');
$pageTitle = $document->getTitle();
$sitename = $mainframe->getCfg('sitename');
$sitename = str_replace('&','&',$sitename);
$sep = str_replace('\\','',$this->params->def('separator','|')); //Sets and removes Joomla escape char bug.
 
        $option = JRequest::getVar('option', '');
                $view = JRequest::getVar('view','');
                if($usecanonical==0){
                 $thestart = JRequest::getInt('start',0);
                 $limitstart = JRequest::getInt('limitstart',0);
                 $start="";
                 if($thestart>0) {
                   $start = '?start='.$thestart;
                 } elseif($limitstart>0) {
                   $start = '?limitstart='.$limitstart;
                 }
                }
                $db =  $database = JFactory::getDBO();
                if($option == 'com_content') {
  if($view=='article') {
    if($usecanonical==0 || $categorytitle==0){
$id = JRequest::getInt('id');
if($id>0) {
                           $query = "SELECT b.title as cattitle,".
                                    " CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(':', a.id, a.alias) ELSE a.id END as slug,".
                                    " CASE WHEN CHAR_LENGTH(b.alias) THEN CONCAT_WS(':', a.catid, b.alias) ELSE a.catid END as catslug".
                                    " FROM #__content AS a LEFT JOIN #__categories AS b ON b.id = a.catid WHERE a.id = $id";
                           $row = $db->SetQuery($query);
                           $row = $db->loadObject();                         
                           if($usecanonical==0){
                            $ucanonical = $sitedomain.JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catslug));
                           }                   
                           if($categorytitle==0 && $row->cattitle!='') {
                             $sitename = $row->cattitle;
   }
}
     }
   }
                  if($view=='category' && $usecanonical==0) {
                      $ucanonical = $sitedomain.JRoute::_(ContentHelperRoute::getCategoryRoute(JRequest::getInt('id')));
                      if(strpos($ucanonical, '&')!== 0) {
                       $start = str_replace('&','?',$start);
                      }
                      $ucanonical = $ucanonical.$start;
  }
}
              if ($this->isFrontPage() && $usecanonical==0) {
                 if($start!=''){
                   $ucanonical = $sitedomain.JRoute::_('index.php').$start;
                 } else {
                   $ucanonical = $sitedomain;
                 }
               }
               if(isset($ucanonical) && $ucanonical!='')$document->addHeadLink( $ucanonical, 'canonical', 'rel', '' );


\www\plugins\system\metagenerator\metagenerator.xml
Код
       <field name="spacer6" type="spacer" default="PLG_METAGENERATOR_CANONICAL_META_TAG" label="PLG_METAGENERATOR_CANONICAL_META_TAG" description="" />
        <field name="usecanonical" type="radio" default="0" label="PLG_METAGENERATOR_USE_CANONICAL_META_TAG" description="PLG_METAGENERATOR_USE_CANONICAL_META_TAG_DESC">
  <option value="0">PLG_METAGENERATOR_YES</option>
  <option value="1">PLG_METAGENERATOR_NO</option>

4. \www\plugins\system\shmobile\shmobile.php
Код
// 2 - add a canonical tag to the page, to avoid search engines penalties
global $shCanonicalTag;
$pageInfo = sh404sefFactory::getPageInfo();
$shCanonicalTag = $pageInfo->currentSefUrl;
$shCanonicalTag = shCleanUpVar($shCanonicalTag, 'sh404sef_override_mobile_detection');

надеюсь, это что-то прояснит
*

nnnata

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
в общем, уже неактуально. наняла мальчика - исправил
*

vitzer

  • Захожу иногда
  • 303
  • 5 / 0
Ошибся разделом
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться