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

zorom

  • Осваиваюсь на форуме
  • 45
  • 5 / 0
Нашол такой глюк. Или мои кривые руки )). Короче создал несколько категорий. Все работает, норм. Обратил внимание что в одной категории описание ввел с ошибками грамм. Выбираю в админке эту категории, редактирую поле "Описание" -нажимаю кнопку "Сохранить". А оно мне не редактирует, а создает еще одну категорию точно с таким названием, другой номер ID естественно.  :o. Шо бы это могло значить?
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
ага, встречал такой глюк на 1.8.1, в кишки на предмет исправления не залезал
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Kincher

  • Новичок
  • 6
  • 0 / 0
Ага, и у меня такая пролбема... Решения пока нет?
*

TyT

  • Захожу иногда
  • 81
  • 8 / 3
Аналогичная проблема :(
*

zorom

  • Осваиваюсь на форуме
  • 45
  • 5 / 0
выход нашол пока только такой. (Думаю он наверное пока единственный.). Заходи в phpMyAdmin, находим в нашей базе таблицу jos_datsogallery_catg. Открываем ее, удаляем лишнюю категорию, в той категории правим описание на то что нам нужно. Вот и все - все красиво. И без жертв. Кста если кто знаком с SQL, можна столько интересного сделать. Например перед запуском сайта, я не нашол в админке как сбросить количество просмотров картинок. А с помощью одного запроса мона сразу всем сбросить на ноль., и не только просмотр, все что угодно. Только делать акуратно.))). Может кому интересно будет, незнаю.
*

TyT

  • Захожу иногда
  • 81
  • 8 / 3
Ну я так пока и правлю, через PhpMyAdmin, и ID меняю меняю у категорий... да это не только к компоненту применимо, так и новости создавать можно и админка в таком случае не нужна, но метод не совсем корректен и ошибки связанной с обновлением категории не объясняет...
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
Наверно вместо INSERT нада гдето вставить UPDATE :) только хоть убейте немогу найти где...
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
вот исправление.
Открываем файл administrator\components\com_datsogallery\admin.datsogallery.php
находим строки для функции function saveCatg($option,$task) примерно 1791
Код: php
   if ($row->cid = 0) {
      $mainframe->redirect("index.php?option=".$option."&task=showcatg",_DG_SUBCAT_SELECT_ERROR);
    }
и удаляем
После этого сохранение редактируемой категории и создание новой проходит корректно. Единственно но - таким образом мы убрали и проверку на привязанность категории к самой себе - потому при создании\редактировании категории не указывайте ее саму в списке "Корневая категория:", иначе сервер повесится в почти бесконечной рекурсии :)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
beliyadm, аналогично упёрся в эту функцию... Вот причину ошибки найти немогу. т.е. при редиректе _GET передаётся повторно или что вообще ??
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Wertos - ну так попробуй просто удалить указанные строки с проверкой, я погонял локально на 1.8.1 - редактируется корректно, создается корректно, главное случайно само себя родителем не указать и все будет хорошо. Глубже лезть пока лень, хватает такого решения

Во первых в этой функции совершенно неправильная проверка, в строке if ($row->cid = 0) переменной $row->cid присваивается значение 0, а не проверяется на равенство, ну а дальше тоже есть ньюанс, но это уже тонкости, предложенный мной вариант должен работать
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
beliyadm, да я проверил ) работает... также проверил как быстро хостер блочит сайт :) достаточно быстро... поэтому какбы для меня это не выхо :)
Рою дальше...
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
достаточно быстро... поэтому какбы для меня это не выхо :)
в смысле? Если при редактировании категории не указывать ее же в качестве родителя - никаких проблем нет, соответственно и нагрузка на хостера не выше стандартной при использовании данного компонента
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
beliyadm, дык я специально указал....
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
beliyadm, дык я специально указал....
что указал? я так понимаю у тебя была проблема с созданием новой категории при редактировании существующей, так мы это исправили - какая еще проблема есть?
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
beliyadm, да ты непонял просто... я специально попробовал присвоить саму себе :)
PS снеси посты чтоб не путать пользователей...
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
beliyadm, да ты непонял просто... я специально попробовал присвоить саму себе :)
ну дык я про это предупреждал в своем решении, что сервер повесится, не надо так делать и все будет хорошо. А вообще бы надо в список категорий родительских добавить условие, чтобы текущая категория в нем не отображалась - и вообще будет хорошо
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
С галереей не знаком, поэтому могу не в тему, но что-то мне подсказывает, что вот это
 if ($row->cid = 0) и создает лишнюю категорию, попробуйте  if ($row->cid == 0) .
Должно помочь.
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Lex - тогда прикол в том, что если мы создаем новую категорию, ей в процессе где то присваивается значение 0 и соответственно компонент ругается на то что нельзя себя же делать родителем. Я первое на что обратил внимание - на эту неправильную проверку, потому остановился пока на полном удалении условия
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
beliyadm, а если сделать чтоб эта категория неотображалось в списке категорий... т.е. делаем например так...
Код
    if ($row->cid = 0) {
      $mainframe->redirect("index.php?option=".$option."&task=showcatg",_DG_SUBCAT_SELECT_ERROR);
    }

меняем на
Код
    if ($row->cid == 0) {
      $mainframe->redirect("index.php?option=".$option."&task=showcatg",_DG_SUBCAT_SELECT_ERROR);
    }
и чтото типа этого в функции ShowDropDownCategoryList в запросе
Код
$query="select *, cid AS id from #__datsogallery_catg and cid != '.$cat.' ORDER BY ordering DESC";
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
в принципе это и имел в виду, попробуй так пропатчить ShowDropDownCategoryList и отпишись по результатам (но мне кажется по старым версиям что эта функция использовалась не только в этом месте, потому могут всплыть проблемы в других местах)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
Как я понял это и есть список выпадающий...
Код
$options[]=JHTML :: _('select.option' ,$item->id,$item->treename);
Я незнаю как присвоить знвчение disabled в options... ну незнаю я Joomla :(
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Ну да. Только трех параметров не хватает. Вообще-то целиком он выглядит так
$treelist[] = JHTML::_('select.option',$treeitem->id, $treeitem->title, 'id', 'title',$disable);
Шестой параметр $disable определяет будет ли пункт списка доступен для выбора в выпадающем списке true - недоступен, false - доступен, по умолчанию - false.
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
'id', 'title'  это откуда брать ?
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Поставь имена соответствующих полей в БД. А вообще-то это значит что будет создан stdClass такого вида:
        $obj = new stdClass;                        
        $obj->id    = $treeitem->id;                      
        $obj->title    = $treeitem->title;                                
        $obj->disable        = $disable;
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
Осталось вытянуть как-то id редактируемой категории в функции ShowDropDownCategoryList
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Осталось вытянуть как-то id редактируемой категории в функции ShowDropDownCategoryList
$row->cid - если 0 (или пусто) - значит категория только создается
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
неповеришь.... оно всегда пусто, даже если редактировать...
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
в всяком случае в функцию saveCatg именно оно и передается (сделай банальный alert на js) вместо редиректа - увидишь
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
сделал... пусто...
*

beliyadm

  • Moderator
  • 9758
  • 1665 / 66
  • Севастополь, Россия
в function saveCatg закомментировал строку редиректа
Код: php
$mainframe->redirect("index.php?option=".$option."&task=showcatg");
и добавил
Код: php
echo "<script> alert('" . $row->cid . "'); </script>\n";
после
Код: php
$row=new DatsoCategories($db);
При сохранении редактируемой категории получаю ее ID, если новая - то 0
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Есть ли достойная замена для DatsoGallery?

Автор vbulletinX

Ответов: 5
Просмотров: 4717
Последний ответ 14.07.2022, 20:00:50
от marbert
В какую галерею перенести все фото из DatsoGallery?

Автор darkknight

Ответов: 5
Просмотров: 3083
Последний ответ 08.12.2021, 18:45:41
от sergeytolkachyov
Как реализовать меню -> категории?

Автор VadimY

Ответов: 2
Просмотров: 4534
Последний ответ 19.12.2018, 18:21:54
от NewsPR666
[download] Datso Gallery (Download DatsoGallery free all version)

Автор beliyadm

Ответов: 354
Просмотров: 177783
Последний ответ 10.08.2018, 14:43:21
от pH43
cache заполняется DatsoGallery

Автор relat

Ответов: 3
Просмотров: 3393
Последний ответ 05.03.2018, 17:56:11
от beliyadm