JIP - это быстрый доступ к действиям над объектом.
Все действия, на которые есть права у текущего пользователя, собраны в виде элементов меню, которое отображается при нажатии на кнопку JIP рядом с объектом. При нажатии на такой элемент открывается JIP окно и благодаря технологии AJAX позволяет выполнить действие над объектом не покидая текущую страницу.
Реализация клиентской части JIP состоит из трех Javascript-файлов: prototype.js, effects.js, jip.js
и одного CSS: jip.css. Два последних файла подгружается только при наличии на странице хотя бы одного JIP-меню. Подключение Javascript/CSS файлов, используемых только в JIP-окнах, может располагаться в шаблоне jip.tpl (см. {add}).
Кнопка JIP появляется только когда у текущего пользователя есть хотя бы одно разрешенное действие над объектом.
В качестве JavaScript Framework используется Prototype, существенно облегчающий разработку JavaScript сценариев. Кроме того, используется библиотека script.aculo.us.
JIP имеет каждый DataObject, наследованный от класса simple.
Действия, которые доступны в меню при наличии прав на них, имеют опцию jip со значением 1 в конфигурации действий:
[edit] controller = "edit" jip = "1"
Для отображения кнопки JIP необходимо в шаблоне вызвать метод simple::getJip():
{$news->getJip()}
При нажатии на один из элементов соответствующая страница открывается в JIP-окне.
Также в JIP-окне открываются любые ссылки, принадлежащие CSS-классу jipLink:
<a href="{url route="default" section="news" action="info"}" class="jipLink">Сис. информация</a>
Открываемые в JIP-окне страницы должны содержать как минимум его заголовок. Он определяется HTML-элементом <DIV>, который принадлежит к CSS-классу jipTitle:
<div class="jipTitle">Создать новость</div>
Форму можно отправить через Ajax добавив атрибут onsubmit="return mzzAjax.sendForm(this);":
<form action="/winner/add" method="post" onsubmit="return mzzAjax.sendForm(this);"><br /> Имя: <input size="60" name="name" type="text"><br /> <input type="submit"><br /> </form>
jipWindow.close():
<input type="reset" onclick="jipWindow.close();"> <a href="javascript: void(jipWindow.close());">закрыть</a>