- Шаблони Joomla!
- 16 Жовтня 2016 року о 15:22
- 73
Доволі часто виникає необхідність додати модульну позицію у компонет Joomla. Розглянемо необхідні дії на прикладі стандартного компонента Joomla! com_content.
В першу чергу нам слід убезпечити себе від того, що після оновлення всі зроблені нами зміни зникнуть. Для цього робимо наступні кроки – у теці шаблону створюємо теку html (якщо її ще немає), в ній створюємо теку com_content, в ній створюємо теку article в яку кладемо файл default.php, який беремо звідси: /components/com_content/views/article/tmpl/default.php. І от до нього ми будемо вносити зміни.
Стандартна конструкція,
<jdoc:include type="modules" name="footer" style="xhtml" />
яка згадувалася у попередньому матеріалі на цю тему, тут працювати не буде. Ця конструкція працює лише у шаблоні. Для компоненту існує інша конструкція. Щоб додати модульну позиція для одного модуля, вставте у потрібне місце цей код:
{<?php
jimport( 'joomla.application.module.helper' ); // підключаємо потрібний клас, один раз на сторінці, перед першимм виводом
$module = JModuleHelper::getModules('your-module-position'); // отримуємо в масив всі модулі з даної позиції
$attribs['style'] = 'xhtml'; // задаємо оболонку модулів (module chrome)
echo JModuleHelper::renderModule($module[0], $attribs); // виводимо перший модуль з даної позиції
?>
А для виводу кількох модулів слід скористатися наступним кодом:
<?php
jimport( 'joomla.application.module.helper' );
$modules = JModuleHelper::getModules('your-module-position'); // змінили назву змінної з одниної на множину
$attribs['style'] = 'xhtml';
foreach($modules as $module){ // перебираємо та виводимо всі модулі в позиції
echo JModuleHelper::renderModule($module, $attribs);
}
?>
В яке місце вставляти дані коди – вирішувати вам. Я собі вставив після заголовку та перед пагінацією.