Форум русской поддержки Joomla!® CMS
08.12.2016, 15:59:30 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Как вставить модуль в код нужной страницы php?

 (Прочитано 782 раз)
0 Пользователей и 1 Гость смотрят эту тему.
zvi
Завсегдатай
*****

Репутация: +4/-0
Offline Offline

Сообщений: 409


« : 07.07.2014, 23:25:05 »

как вставить модуль в код нужной страницы php (нужно вставить в компонент)
Записан
Aleks.Denezh
Практически профи
*******

Репутация: +372/-4
Online Online

Пол: Мужской
Сообщений: 2762



« Ответ #1 : 08.07.2014, 00:23:58 »

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

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

Репутация: +4/-0
Offline Offline

Сообщений: 409


« Ответ #2 : 08.07.2014, 00:58:28 »

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

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

Репутация: +372/-4
Online Online

Пол: Мужской
Сообщений: 2762



« Ответ #3 : 10.07.2014, 19:40:39 »

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

Репутация: +10/-12
Offline Offline

Пол: Мужской
Сообщений: 1113


Сайты любой сложности - обращайтесь


« Ответ #4 : 08.04.2016, 09:57:48 »

только не забываем что надо  дописать в начале и конце
<?php $modules = JModuleHelper::getModules( 'ПозицияМодуля' );
foreach ( $modules as $module ) {
   echo JModuleHelper::renderModule( $module, array( 'style' => 'xhtml' ) );
} ?>
Записан
AlekVolsk
Профи
********

Репутация: +317/-3
Offline Offline

Пол: Мужской
Сообщений: 6460



« Ответ #5 : 11.04.2016, 01:50:00 »

Позволю себе предложить универсальное решение
Код
	<?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
Практически профи
*******

Репутация: +372/-4
Online Online

Пол: Мужской
Сообщений: 2762



« Ответ #6 : 11.04.2016, 11:32:10 »

Позволю себе предложить универсальное решение:

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

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

Репутация: +317/-3
Offline Offline

Пол: Мужской
Сообщений: 6460



« Ответ #7 : 12.04.2016, 20:36:55 »

я каждый модуль оборачиваю в отдельную див-обертку со всеми доп.классами из общих параметров всех модулей, при необходимости выводу заголовок (который по дефолту рендером не выводится)
див-обертка верстается уже по месту индивидуально, это кастомное решение
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet