Опять модальные окна

Есть ли какой-то ясный мануал по использованию модальных окон в LS? Всё что нашел поиском — не срабатывает или относится к старым версиям движка…
Пытался вставить модальное окно в блок, не появляется ничего даже если тупо из шаблона копировать какое-то уже существующее окно, например окно write или login.
Может при использовании внутри блоков есть какая-то особенность?

6 комментариев

avatar
А зачем модальное окно в блок копировать?
Для примера возьмем окно входа. Шаблон window_login.tpl вставляется в header.tpl
{include file='window_login.tpl'}

Само окно c id=«window_login_form» активируется в js\templates.js
$('#window_login_form').jqm();
и подключается к обработке(onclick) для js-registration-form-show и js-login-form-show
$('.js-registration-form-show').click(function(){
		if (ls.blocks.switchTab('registration','popup-login')) {
			$('#window_login_form').jqmShow();
		} else {
			window.location=aRouter.registration;
		}
		return false;
	});

	$('.js-login-form-show').click(function(){
		if (ls.blocks.switchTab('login','popup-login')) {
			$('#window_login_form').jqmShow();
		} else {
			window.location=aRouter.login;
		}
		return false;
	});

на «кнопки» в header_top.tpl
<ul class="auth">
			{hook run='userbar_item'}
			<li><a href="{router page='registration'}" class="js-registration-form-show">{$aLang.registration_submit}</a></li>
			<li><a href="{router page='login'}" class="js-login-form-show sign-in">{$aLang.user_login_submit}</a></li>
		</ul>
avatar
Спасибо за ответ.
А зачем модальное окно в блок копировать?
Ну, что я могу сказат? Надо! )))
Приведённый вами пример я смотрел в стандартном шаблоне, но как перенести эти возможности в блок я так и не понял. Банальное копирование
{include file='window_login.tpl'}
в любую другую позицию кроме хидера ни к чему не приводит, в месте инклюд просто пустое пространство и всё. Т.е. мне важно понять именно логику. Я правильно понял, модальное окно следует добавлять в шаблоне ещё до вывода линка, а затем ниже уже на самом линке указывать класс? Т.е., грубо говоря вот так:
//Пример блока ссылок типа логин
<div>
    <ul>
        <li>
            {include file='window_login.tpl'}
            <a href="{router page='login'}" class="js-login-form-show sign-in">{$aLang.user_login_submit}</a>
        </li>
        <li>
            {include file='window_login.tpl'}
            <a href="{router page='login'}" class="js-login-form-show sign-in">{$aLang.user_login_submit}</a>
        </li>
    </ul>
<div>
avatar
Можно и из блока вызывать. Главное чтоб javascript вызывался правильно и обрабатывал модальное окно.
Покажите свой код
avatar
Всё, спасибо, я пока рассуждал в верхнем ответе принцип понял. )))
Но может вы как программист сможете мне подсказать, а возможно ли в templates.js добавлять свои окна и обработчики не руками, а через плагин или может можно в заголовке блоке тупо прописать свой скрипт через {literal}?
avatar
а через плагин или может можно в заголовке блоке тупо прописать свой скрипт через {literal}?
Через плагин можно
$this->Viewer_AppendStyle(Plugin::GetTemplatePath(__CLASS__)."/css/styles.css"); // Добавление своего CSS
$this->Viewer_AppendScript(Plugin::GetTemplatePath(__CLASS__)."/js/scripts.js"); // Добавление своего JS

Через literal — тоже можно но не красиво
avatar
!!! Отлично. Спасибо.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.