Лучший Ответ 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