Задался я тут вопросом. А раз вопрос, а есть ли готовый механизм или инструмент для создания
модальных окон а Amiro.CMS на публичной части, есть - ищем ответ! Для справки: Что такое модальное окно?
В графическом интерфейсе пользователя модальным называется окно, которое блокирует работу пользователя с родительским приложением до тех пор, пока пользователь это окно не закроет. Модальными преимущественно реализованы диалоговые окна. Также модальные окна часто используются для привлечения внимания пользователя к важному событию или критической ситуации. По материалам ru.wikipedia.org До текущей версии 5.12.4.0 (на момент публикации), если была необходимость в этом, модальные окна реализовывались через jQuery, а до знакомства с jQuery, использовались сторонние библиотеки и наработки. Казалось бы, что Amiro.CMS, следуя тенденциям современного рынка разработки сайтов, должна предложить удобный инструмент для разработчиков в создании таких окон. Тем более, что на самом сайте amiro.ru такие решения уже есть: на главной странице "ОНЛАЙН КОНСУЛЬТАНТ". Есть еще несколько мест на этом же сайте, если внимательно посмотреть. Правда билд у них на данный момент 5.12.4.2. Пишем вопрос в СТП АмироОтвет краток и без какой-либо недосказанности: Здравствуйте.
На данный момент такой механизм отсутствует.
В
последующих обновлениях такой механизм будет добавлен как для админской части,
так и для внешней(фронтовой) части.
На данный момент возможно
использовать сторонние скрипты для создания таких окон. Стало быть - в руки jQuery и пошли плясать по старой))) Или ковырять HTML код:
<script type="text/javascript">
function quickFormShow(evt) { var xx = Math.round(AMI.Browser.getWindowWidth() / 2 - AMI.find("#contact_form").offsetWidth / 2); var oStart = new Object(); var oEnd = new Object(); if(AMI.find("#contact_form").style.left != (("-" + (AMI.find("#contact_form").offsetWidth-36)) + "px")) { AMI.UI.Effects.animate(AMI.find("#contact_form"), {'left': AMI.find("#contact_form").offsetLeft}, {'left': -(AMI.find("#contact_form").offsetWidth-36)}, 400); } else { AMI.UI.Effects.animate(AMI.find("#contact_form"), {'left':AMI.find("#contact_form").offsetLeft}, {'left':xx}, 400); } }
AMI.Browser.Event.addHandler(window, 'load', function(evt){ var yy = Math.round(AMI.Browser.getWindowHeight() / 2 - AMI.find("#contact_form").offsetHeight / 2); AMI.find('#contact_form').style.left = -360 + "px"; AMI.find('#contact_form').style.top = yy + "px"; AMI.Browser.Event.addHandler( AMI.find("#open_close_contact"), "click", function(evt) { quickFormShow(evt)}); AMI.Browser.Event.addHandler( AMI.find("#zapros_but"), "click", function(evt) { quickFormShow(evt)}); } );
</script>
Комментарии излишни ... поэтому с напильником в руках пойдем изучать и творить. Что из этого получилось или нет, возможно напишу позже.
UPD от 2011-10-08:
Новая версия 5.12.8.2, пока релиза нет. Модальные окна предположительно сделали, пример можно посмотреть
при попытке авторизации с левыми или пустыми данными на странице http://www.amiro.ru/members. Доступный функционал: перетаскивание окна, крестик - закрыть окно, закрытие по тайм-ауту, анимация fadein и fadeout. За деталями: _shared/code/js/ami.ui.popups.js (AMI.UI.Popup и AMI.UI.PopupManager) и _shared/code/js/ami.ui.alert.js (AMI.UI.Alert)
|