Скрытая форма и показ ее в modal
Ранее я писал здесь о том, как сделать, чтобы картинка в статье Joomla открывалась во всплывающем окне при нажатии на нее. Сегодня я покажу, как можно делать скрытые блоки (div) на сайте и отображать их в модальных окнах, используя тот же behavior.modal или boostrap в контенте Joomla. На самом деле вы можете отображать таким способом любой элемент во всплывающем фрейме, но в данном случае вам нужно создать и отобразить элемент, который не видно в теле вашей статьи. Суть та же, что и при отображении картинки. Однако разница есть: допустим, вы хотите создать форму обратной связи прямо в статье или картинку с описанием, но вам лениво писать соответствующий плагин или модуль к Joomla. Вам будет куда проще быстренько сверстать форму, поместить ее в <div>, который не будет виден пользователям (display:none;) и, при необходимости, его показать (когда пользователь нажимает на ссылку). Сейчас мы рассмотрим пример:
Для начала нам понадобится скрытый контент:
<div style="display: none;">
<div id="test">
<h1 style="text-align: center;">Заголовок....</h1>
<p style="text-align: center;">Какой-то ваш текст. Пишите тут, что хотите и размещаете тоже</p>
<p><img style="display: block; margin: 0 auto;" src="/images/test.jpg" alt="" width="200" height="200" /></p>
<a href="/" class="btn">Можно и другие элементы</a>
</div>
</div>
Ну и осталось добавить саму ссылку на этот контент, которая откроет нам модальное окно с волшебным содержимым:
<a class="modal" href="#test">Показать окошко</a>
Теперь рассмотрим вариант с бутстрапом. Нам необходимо, чтобы были подключены стили и библиотека bootstrap. Если вы пользуютесь стандартным шаблоном joomla 3 - protostar, то все необходимые библиотеки будут уже подключены. В противном же случае нужно вручную подключить необходимые компоненты, скопировав их в ваш шаблон и подключив в head часть вашего шаблона. Или проще воспользоваться
JHtml::_('bootstrap.framework');
JHtml::_('bootstrap.loadCss', true, $this->direction);
Ну и затем нужно так же создать содержимое всплывающего окна и кнопку вызова:
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
Вызвать окошко
</button>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="Название окошка" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">Modal title</h4>
</div>
<div class="modal-body">
Ты ж программист, вот и размести сам тут контент :)
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Закрыть</button>
<button type="button" class="btn btn-primary">Что-то сделать..</button>
</div>
</div>
</div>
</div>
Как-то так.