Создаём своё модальное окно

Sam Jack

Капитан-Узурпатор
Команда форума
Созидатель
5 Май 2015
13.917
4.894
113
Россия
null-prog.ru
Для того, что бы реализовать модальное окно (например, как "обратная связь") с собственным произвольным содержимым, необходимо, что бы содержимое это было частью форума. Т.е. должно иметь внутреннюю ссылку.
Принцип такой же, как при создании собственных произвольных страниц.

И так, приступим.
Включаем режим отладки. (файл library/config.php)
$config['debug'] = true;
Создаем новое дополнение (admin.php?add-ons/add)
ID дополнения: MyModalWindow
Заголовок: Мое модальное окно
Информация о версии: 1.0
Номер версии: 1
Разумеется ID и заголовок можно указать свои.

В папке library создадим папку MyAddons.
В папке MyAddons создадим папку ModalWindow.
В папке ModalWindow создадим папки Route и ControllerPublic.
В папке ControllerPublic создадим файл index.php со следующим содержимым:
<?phpclass MyAddons_ModalWindow_ControllerPublic_index extends XenForo_ControllerPublic_Abstract{
public function actionIndex()
{
return $this->responseView('MyAddons_ModalWindow_ViewPublic_Index', 'my_modal_template');
}
}
(my-link - имя нашей будущей ссылки на произвольное содержимое)

С файлами разобрались. Теперь возвращаемся в админку и создаем префикс роутинга (admin.php?route-prefixes/add)
Префикс роутинга: my-link
Тип роутинга: Публичный
Класс роутинга: MyAddons_ModalWindow_Route_Prefix_link
Использовать класс для генерации ссылки: Никогда
Дополнение: Мое модальное окно
Создадим шаблон с нашим содержимым. (admin.php?templates/add&style_id=0)
Имя шаблона: my_modal_template
Дополнение: Мое модальное окно
Содержимое (необходимое вам, разумеется):
<xen:title>Заголовок окна</xen:title>

<div class="formOverlay">

<p>Произвольный контент</p>

</div>
Теперь осталось создать ссылку на это содержимое в желаемом месте.
Ссылка должна быть завернута в класс OverlayTrigger
HTML:
<a href="my-link" class="OverlayTrigger ">Моя ссылка на модальное окно</a>
6901316.png