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

zvi

  • Захожу иногда
  • 392
  • 4 / 0
как вставить модуль в код нужной страницы php (нужно вставить в компонент)
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
Вставка по позиции модуля:
Код: php
$modules = JModuleHelper::getModules( 'position_name' );
foreach ( $modules as $module ) {
echo JModuleHelper::renderModule( $module, array( 'style' => 'xhtml' ) );
}

Вставка по названию модуля (второй параметр title модуля в менеджере модулей, если модуль не создан просто JModuleHelper::getModule('mod_menu'); )
Код: php
$module = JModuleHelper::getModule('mod_menu', 'Main menu');
echo JModuleHelper::renderModule( $module, array( 'style' => 'xhtml' ) );
*

zvi

  • Захожу иногда
  • 392
  • 4 / 0
Вставка по позиции модуля:
Код: php
$modules = JModuleHelper::getModules( 'position_name' );
foreach ( $modules as $module ) {
echo JModuleHelper::renderModule( $module, array( 'style' => 'xhtml' ) );
}

Вставка по названию модуля (второй параметр title модуля в менеджере модулей, если модуль не создан просто JModuleHelper::getModule('mod_menu'); )
Код: php
$module = JModuleHelper::getModule('mod_menu', 'Main menu');
echo JModuleHelper::renderModule( $module, array( 'style' => 'xhtml' ) );
  title это название модуля ? а это чтоmod_menu?
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
 title это название модуля ? а это чтоmod_menu?
title это то как вы назовете модуль в менеджере меню
mod_menu - тип модуля(в папку /modules/ загляните)
*

nick71

  • Завсегдатай
  • 1145
  • 12 / 12
  • Сайты любой сложности - обращайтесь
только не забываем что надо  дописать в начале и конце
<?php $modules = JModuleHelper::getModules( 'ПозицияМодуля' );
foreach ( $modules as $module ) {
   echo JModuleHelper::renderModule( $module, array( 'style' => 'xhtml' ) );
} ?>
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Позволю себе предложить универсальное решение
Код: php
<?php
$pos = 'position_name';
$modules = JModuleHelper::getModules($pos);
if (count($modules))
{
?>
<div class="tm-<?php echo $pos; ?>">

<?php
$attr = array('style' => 'none');

foreach ($modules as $module) {

$mod_params = json_decode($module->params);
$mod_title_class = (trim($mod_params->header_class)? ' class="'.trim($mod_params->header_class).'"' : '');
$mod_title_tag = (!empty($mod_params->params->header_tag)? $mod_params->params->header_tag : 'h3');
$mod_title = ($module->showtitle ? '<'.$mod_title_tag.$mod_title_class.'>'.$module->title.'</'.$mod_title_tag.'>' : '');
$mod_class = (trim($mod_params->moduleclass_sfx)? ' '.trim($mod_params->moduleclass_sfx) : '');
?>
<div class="tm-<?php echo $pos.'-mod'.($module->id).' tm-'.$mod_class; ?>">
<?php echo $mod_title; ?>
<?php echo JModuleHelper::renderModule($module, $attr); ?>
</div>
<?php } ?>

</div>
<?php } ?>
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
Позволю себе предложить универсальное решение:

все что ты написал сворачивается в это:
Код: php
[code=php]function renderModules( $position, $style = '' )
{
$modules = JModuleHelper::getModules( $position );
foreach ( $modules as $module ) {
echo JModuleHelper::renderModule( $module, array( 'style' => $style ) );
}
}
И дергается так:
Код: php
<?php echo renderModules('position_name', 'style_name');  ?>
Обертка определяется в templates/tmp_name/html/modules.php! В том числе можно дергать системные обертки: 'none', 'html5','table','horz', 'xhtml','rounded', 'outline' или те которые идут в поставку с шаблоном сайта!

Это и будет универсальное решение, потому что можно будет  дернуть кучу раз в куче разных мест с разными стилями модулей! У тебя же на каждый стиль модуля придется пихать такую простыню )[/code]
« Последнее редактирование: 11.04.2016, 10:38:49 от Istaan »
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
я каждый модуль оборачиваю в отдельную див-обертку со всеми доп.классами из общих параметров всех модулей, при необходимости выводу заголовок (который по дефолту рендером не выводится)
див-обертка верстается уже по месту индивидуально, это кастомное решение
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модернизировать модуль

Автор kurz

Ответов: 4
Просмотров: 535
Последний ответ 13.09.2022, 15:35:31
от kurz
Вывод таблицы, деление на страницы

Автор March Cat

Ответов: 6
Просмотров: 1068
Последний ответ 09.01.2019, 18:49:15
от dmitry_stas
[SP Page Builder] Модуль ajax contact в модальном окне

Автор TW-WEB

Ответов: 2
Просмотров: 3014
Последний ответ 24.02.2018, 17:34:50
от TW-WEB
Меню схлопывается после перезагрузки страницы

Автор onelawyer

Ответов: 10
Просмотров: 1518
Последний ответ 11.10.2017, 14:50:48
от effrit
Модуль авторизации OpenId

Автор greytm

Ответов: 7
Просмотров: 3225
Последний ответ 04.11.2016, 00:04:31
от KypuHa9_Hora