====== Версионный контроль контентных объектов ====== Каждый контентный объект Limb поддерживает версионность. Когда пользователь изменяет контентный объект (например, статью или документ), номер версии объекта увеличивается, а копия объекта помещается в БД. Некоторые формы имеют флаг 'Незначительные изменения', который сообщает действию edit не создавать новую версию объекта. Метод Update контентного объекта получает логический флаг надо ли создавать новую версию или нет: content_object :: update((bool) $new_version); В настоящее время версионное поведение по умолчанию может быть переопределено созданием потомка form_edit_site_object_action и заменой в нем метода _update_object_operation(): class your_action extends form_edit_site_object_action { [...] function _update_object_operation() { if(!$this->object->update(false)) return false; else return true; } } Чтобы просмотреть список версий объекта и проверить его состояние для любой версии Вам необходимо добавить дополнительное действие к контроллеру контентного объекта: class document_controller extends site_object_controller { function _define_actions() { return array( [...] 'admin_detail' => array( 'template_path' => '/admin/object_detail_info.html', 'popup' => true, 'JIP' => true, 'img_src' => '/shared/images/admin_detail.gif', 'action_name' => strings :: get('detail_info'), ), ); } } //Системный шаблон 'object_detail_info.html' отображает содержание системную информацию о контентном объекте о список версий.// Чтобы востановить версию или просмотреть все атрибуты контентного объекта для любой версии Вам необходимо иметь доступ к контентному объекту /root/version (в частности к действиям display и recover). Действие восстановление (recover action) создает новую версию контентного объекта на основе указанной версии, то есть если Вы восстанавливаете версию 5, а текущая версия - 7, то 5-я версия копируется в новую 8-ю версию. //Система версионности в Limb2 находится на начальной стадии развития. Она обеспечивает простое и тем не менее эффективное решение для предметной области с простыми объектами. It provides a simple yet effective solution for the domain of simple objects. Все более сложное требует ручной обработки.//