Инструменты пользователя

Инструменты сайта


limb2:ru:content_objects_version_control

Версионный контроль контентных объектов

Каждый контентный объект 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. Все более сложное требует ручной обработки.

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
  _____ ______     __     __   ____
 / ___//_  __/ __ / / __ / /  / __/
/ (_ /  / /   / // / / // /  / _/  
\___/  /_/    \___/  \___/  /___/
 
limb2/ru/content_objects_version_control.txt · Последние изменения: 2010/11/10 10:02 (внешнее изменение)