Лучший Ответ zeus07 , 22 April 2016 - 13:04
Разобрался. В ссылку забыл добавить ещё один атрибут data-target.
При инициализации аккордеона toggle должен быть в значении false, тогда аккордеоны по умолчанию будут свёрнуты.
Перейти к сообщению
Лучший Ответ zeus07 , 22 April 2016 - 13:04
Разобрался. В ссылку забыл добавить ещё один атрибут data-target.
При инициализации аккордеона toggle должен быть в значении false, тогда аккордеоны по умолчанию будут свёрнуты.
Перейти к сообщению
Отправлено 21 April 2016 - 14:19
Здравствуйте!
Был когда-то древний элемент аккордеона от Likrion. Решил переделать вывод на бутстрапе.
Функция рендеринга выглядит следующим образом:
protected function _render($params = array()) {
$id = $this->key();
return
$html[] ='<div class="panel panel-default"><div class="panel-heading">
<h4 class="panel-title"><a data-toggle="collapse" data-parent="#accordion" href="#collapse-'.$id.'">'.$this->get('value', '').'</a></h4></div><div id="#collapse-'.$id.'" class="panel-collapse collapse"><div class="panel-body"><p>'.$this->getText().'</p></div></div></div>';
}
Мне необходимо содержимая массива $html вложить в див аккордеона. Попытался сделать файл default.php с таким кодом:
<?php
defined('_JEXEC') or die('Restricted access');
echo '<div class="panel-group" id="accordion">';
echo $html;
echo '</div>';
?>
Но такая конструкция не работает. Подскажите пожалуйста как правильно это реализовать.
Отправлено 21 April 2016 - 15:16
Немного не понял где именно её нужно применить
Отправлено 21 April 2016 - 15:33
Если у вас $html это массив то его необходимо implode("", $html) превратить в строку. Посмотрите любой элемент JBZoo/Zoo например 'njn^
\media\zoo\elements\itemprevnext\itemprevnext.php
почти везде увидите конструкцию:
if ($layout = $this->getLayout()) {
return $this->renderLayout($layout, compact('prev', 'prev_link', 'next', 'next_link'));
}
Которая будет подключать шаблон. А у же в шаблоне верстка. А сейчас у вас просто возвращается массив.
Отправлено 21 April 2016 - 15:34
А всё, дошло, спасибо. Значит сейчас переделаю.
Отправлено 21 April 2016 - 16:28
Так, переделал функцию рендера, но что-то вообще содержимое не отображается. Функция вот такая:
protected function _render($params = array()) {
//init params
$params = $this->app->data->create($params);
$id = $this->key();
// render layout
if ($layout = $this->getLayout()) {
return $this->renderLayout($layout, $id);
}
return null;
}
Шаблон вывода также сделал
<div class="panel-group" id="accordion">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapse-<?php echo $id; ?>"><?php echo $this->get('value', ''); ?></a>
</h4>
</div>
<div id="#collapse-<?php echo $id; ?>" class="panel-collapse collapse">
<div class="panel-body">
<p><?php echo $this->getText(); ?></p>
</div>
</div>
</div>
</div>
Отправлено 22 April 2016 - 11:14
Шаблон положил в папку tmpl и назвал default.php. Сейчас проверю, что возвращает
Сообщение отредактировал zeus07: 22 April 2016 - 11:15
Отправлено 22 April 2016 - 11:20
В вашем случае название шаблона должно совпадать с названием элемента
Точно! Спасибо, совсем забыл про это...
И ещё небольшой вопрос. Подскажите пожалуйста, почему аккордеон не раскрывается? Смотрю консоль - никаких ошибок вообще нет.
Ссылка: http://terra.artcolo...m/ih-malta-gozo