Условное положение и диапазон модуля Joomla

У меня проблемы с настройкой позиции и диапазона условного модуля joomla.
Хотя я понимаю HTML, у меня проблемы с php. Согласно учебникам, я должен добавить

<?php if ($this->countModules( 'user1' )) : ?>
<div class="user1">
<jdoc:include type="modules" name="user1" style="rounded" />
</div>
<?php endif; ?>

Хотя, когда я добавляю что-то подобное, я получаю сообщение об ошибке.

Код, который я хочу изменить:

 <?php
//no direct accees
defined ('_JEXEC') or die('resticted aceess');

class Helix3FeatureTitle {

private $helix3;

public function __construct($helix){
$this->helix3 = $helix;
$this->position = 'title';
}

public function renderFeature() {

$app        = JFactory::getApplication();
$menuitem   = $app->getMenu()->getActive(); // get the active item

if($menuitem) {

$params     = $menuitem->params; // get the menu params

if($params->get('enable_page_title', 0)) {

$page_title          = $menuitem->title;
$page_title_alt      = $params->get('page_title_alt');
$page_subtitle       = $params->get('page_subtitle');
$page_title_bg_color = $params->get('page_title_bg_color');
$page_title_bg_image = $params->get('page_title_bg_image');

$style = '';

if($page_title_bg_color) {
$style .= 'background-color: ' . $page_title_bg_color . ';';
}

if($page_title_bg_image) {
$style .= 'background-image: url(' . JURI::root(true) . '/' . $page_title_bg_image . ');';
}

if( $style ) {
$style = 'style="' . $style . '"';
}

if($page_title_alt) {
$page_title      = $page_title_alt;
}

$output = '';

$output .= '<div class="sp-page-title"'. $style .'>';
$output .= '<div class="container" id="pagetitle">';
$output .= '<div class="row">';
$output .= '<div class="col-md-6 col-sm-8">';
$output .= '<h1>'. $page_title .'</h1>';

if($page_subtitle) {
$output .= '<p class="lead">'. $page_subtitle .'</p>';
}
$output .= '</div>';

$output .= '<div class="col-md-6 col-sm-4 hidden-xs">';
$output .= '<jdoc:include type="modules" name="datetime" style="none" />';
$output .= '</div>';

$output .= '</div>';
$output .= '</div>';
$output .= '</div>';

return $output;

}

}

}
}

и что я хочу сделать, это сказать шаблону, что, когда позиция модуля «datetime» пуста, позиция «title» должна иметь 12span и быть «text-center».
В противном случае, если позиция модуля «datetime» имеет модуль, позиция «title» должна иметь 6span и быть «text-left».

Я пробовал разные методы и каждый раз получаю разные ошибки. Вот почему я не упомянул о существенной ошибке. Например, если я использую этот метод:

if($this->countModules('datetime')) { $output .= '<div class="col-md-6 col-sm-4 hidden-xs">'; $output .= '<jdoc:include type="modules" name="datetime" style="none" />'; $output .= '</div>'; };

Я получаю следующую ошибку:

Fatal error: Call to undefined method Helix3FeatureTitle::countModules() in ...

Я был бы очень признателен за помощь. Спасибо.

0

Решение

Проблема в том, что вы пытаетесь нам countModules() в месте, где он не будет работать, потому что этот метод из другого класса.

Судя по всему, этот метод генерирует шаблон Joomla.

Так что вы можете сделать, это

  $output .="<?php if ($this->countModules( 'user1' )) : ?>";
$output .= '<div class="col-md-6 col-sm-4 hidden-xs">';

$output .= '<jdoc:include type="modules" name="datetime" style="none" />';

$output .= '</div>';
$output .= '<?php endif; ?>';

Так что он сгенерирует код для условия. Я не проверял, потому что у меня нет класса, который вы используете, но он должен работать.

Обновлено для исправления цитирования.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]