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

eugenes

  • Новичок
  • 4
  • 0 / 0
Доброго времени суток, уважаемые форумчане  ^-^ В Joomla еще совсем новичек, до этого работал с другими CMS, вроде битрикса или Wordpressа. С-но вопрос - пишу модуль, с созданием и получением параметров модуля я разобрался, теперь следующий вопрос: необходимо по настройкам модуля генерировать оформление. Т.е. если пользователь выбрал, что текст должен быть красного цвета, то получаем этот параметр и в шаблоне выводим текст красного цвета. Я вижу следующие решения: генерировать css-ник, который подключается через JHTML::stylesheet($filename, $path), либо прописывать в месте вывода текста через style=""
Второй вариант проще, но он менее красивый+насколько я знаю через style="" нельзя прописать псевдоклассы, например hover и т.п.
Следовательно необходимо по параметрам модуля генерировать CSS и подключать его. Но тут встает следующая проблема: допустим, человек захочет, чтобы на сайте было две копии модуля, но при этом по-разному оформлены, например в первом модуле текст будет выводится зеленым цветом, во втором красным. Получается, я генерирую css-ник первым модулем, второй его затирает и генерирует свои настройки. Следующий вариант: генерировать уникальный css-ник, но на чем основывать его уникальность? Вариант который пришел в голову - прибавлять к имени файла id-шник модуля, но пока не разобрался, можно ли изнутри модуля получить id-шник. Если кто знает, буду очень признателен, если поможете. У этого метода тоже есть минус - если пользователь удалит модуль, то после него останется неиспользуемый CSS. Но пока другого не придумал. Буду очень-очень благодарен, если кто подскажет куда рыть, т.к. у меня есть чувство, что рою не в том направлении
Заранее огромное спасибо
« Последнее редактирование: 16.11.2014, 18:27:27 от eugenes »
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Усложняете. Достаточно присвоить отличительный класс параметром из админки, а оформление всех вариантов писать в одном подключаемом файле. Также, правилом хорошего тона будет возможность НЕ подключать внешний CSS. Допустим у вас селектом выбирается цветовая схема: красный/жёлтый/зелёный. Тогда всему контейнеру модуля назначаем класс div class="<?php echo $colorclass"…, а затем в стилях прописываем:
Код: css
.colorred {backgroung:…
.colorred p {color:…
.colorred h3…

.colorgreen {backgroung:…
.colorgreen p {color:…
.colorgreen h3…
*

eugenes

  • Новичок
  • 4
  • 0 / 0
Спасибо большое за ответ!
Допустим у вас селектом выбирается цветовая схема: красный/жёлтый/зелёный.
Немного не так - есть ссылка, при нажатии на которую открывается форма. Соответственно, есть такие параметры, как цвет ссылки, шрифт, подчеркивание, цвет при наведении. Т.е. не выпадающий список, а формы выбора цвета, чекбоксы и т.п.
Насчет подключения внешнего CSS - Вы правы, но остается вопрос с уникальностью стилей, прописанных в хедере... Если прибавлять к имени класса, например значение цвета, то может получится, что значение цвета в модулях будет одинаковым, а все остальное разным.
Может в параметрах модуля есть возможность генерировать уникальный ключ?
*

fbr

  • Завсегдатай
  • 1662
  • 206 / 7
Просто приведу код, как я делал у себя:
Код: php
//создаем имя
$cssPath = '/modules/mod_combonews/css/mod-combonews-' . $module->id . '.css';

//генерируете файл с этим именем
...
//подключаем
jimport('joomla.filesystem.file');
$document = JFactory::getDocument();
$document->addStyleSheet($cssPath);
Получаем файл стилей с уникальным именем, включающим id  для каждого экземпляра модуля
*

eugenes

  • Новичок
  • 4
  • 0 / 0
$module->id . '.css';
Подскажите пожалуйста ламеру, как получить id-шник модуля внутри модуля
*

fbr

  • Завсегдатай
  • 1662
  • 206 / 7
так и получаете))

$id_module = $module->id;
*

eugenes

  • Новичок
  • 4
  • 0 / 0
$id_module = $module->id;
Огромное спасибо)
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Подскажите пожалуйста ламеру, как получить id-шник модуля внутри модуля
Код: php
echo $module->id;
« Последнее редактирование: 03.12.2018, 20:27:48 от era »
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

sivers

  • Живу я здесь
  • 2585
  • 359 / 0
Да и вообще много интересного внутри модуля:
var_dump($module);
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Да и вообще много интересного внутри модуля:
var_dump($module);
Мало что интересного!
Код
stdClass Object
(
    [id] => 93
    [title] => Верхнее левое меню
    [module] => mod_menu
    [position] => navbar-header-left
    [content] =>
    [showtitle] => 0
    [params] => {"menutype":"top-left-menu","base":"","startLevel":"1","endLevel":"1"}
    [menuid] => 0
    [name] => menu
    [style] =>
)

Даже параметры выводятся отдельно!
Код
Joomla\Registry\Registry Object
(
    [data:protected] => stdClass Object
        (
            [menutype] => top-left-menu
            [base] =>
            [startLevel] => 1
            [endLevel] => 1
        )

    [initialized:protected] => 1
    [separator] => .
)
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
А так?
Код
var_dump(json_decode($module->params, true));
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Зависает установка Joomla на создании таблиц (на 4 шаге)

Автор usersyslog

Ответов: 16
Просмотров: 62589
Последний ответ 30.06.2021, 15:44:51
от AlexFans
[FAQ] Как сделать заголовок модуля ссылкой?

Автор SmokerMan

Ответов: 23
Просмотров: 25612
Последний ответ 14.05.2016, 21:19:26
от umbabaraumba
[Решено] Отключить двухэтапную авторизацию через MySQL

Автор amino_2012

Ответов: 3
Просмотров: 20896
Последний ответ 07.10.2015, 09:55:58
от amino_2012
[Решено] Как создать сборку на базе Joomla 3.3 ?

Автор Ghash

Ответов: 14
Просмотров: 25215
Последний ответ 17.12.2014, 10:00:13
от b2z
[Решено] Вывод вступительного изображения в модуле Материалы - Новости

Автор kik84

Ответов: 5
Просмотров: 24308
Последний ответ 09.11.2014, 22:23:17
от kik84