In-Portal Developers Guide

This is a wiki-based Developers Guide for In-Portal Open Source CMS. The purpose of this guide is to provide advanced users, web developers and programmers with documentation on how to expand, customize and improve the functionality and the code the In-Portal software. Please consider contributing to our documentation writing effort.

EventHandler:OnSave

From In-Portal Developers Guide

Jump to: navigation, search
События во временных таблицах События во временных таблицах
Статьи в этой категории

Данное событие:

Для копирования данных это событие вызывает метод kTempTablesHandler::SaveEdit, который копирует данные и стирает временные таблицы по завершении процесса копирования. После выполнения данного события окно редактирования закрывается автоматически.

Contents

Вызывается из шаблона

Данное событие вызывается при нажатии кнопки "Save" на панели инструментов в шаблоне редактирования главной записи. Если нажать на аналогичную кнопку на шаблоне редактирования подчинённой записи то будет вызвано событие OnCreate или OnUpdate. Какое конкретно будет выполнено событие определяется тэгом SaveEvent.

Входные параметры

название описание
master_ids (array) Необязательный параметр, позволяющий указать ID, которые будут скопированы из временных таблиц в оригинальные. Если его не передать (как обычно и происходит), то будут скопированы все данные, находящиеся во временных таблицах на момент вызова данного события.
ids (string) Только после завершения своей работы в событии становиться доступен параметр "ids", содержащий в себе строку из IDs (разделённых запятой), которые были скопированы в оригинальные таблицы (только IDs записей из главной таблицы, без подчинённых). Данный параметр может использоваться для массовой обработки сохранённых записей.

Вызывает события

Для сохранения данных с формы редактирования во временные таблицы вызывается событие OnPreSave. Вызываемый далее метод kTempTablesHandler::SaveEdit в свою очередь косвенно может вызывать следующие события (события перечислены в порядке вызова):

Потенциальное применение

Данное событие можно переписывать с целью работы с данными тогда, когда они уже полностью скопированы в оригинальные таблицы (см. параметр ids). Например для рассылки почтовых извещений после сохранения записей в оригинальную таблицу. События OnAfterItemCreate и OnAfterItemUpdate для этого не подходят, т.к. при работе со временными таблицами они будут вызываться когда данные будут меняться только во временных таблицах. В таком случае если пользователь нажмёт кнопку "Cancel" (событие OnCancelEdit) на панели инструментов главной записи, то данные не будут сохранены в оригинальные таблицы.

Ограничения

Данное событие можно вызывать только при работе с временными таблицами, в противном случае произойдёт фатальная ошибка.

См. также