Actions c условиями в admin generator в Symfony 1.4

К сожалению, стандартная настройка админ генератора Symfony 1.4 не позволяет использовать для объекта разные actions в зависимости от условия или же свойств самого объекта. Максимум что может генератор — не показывать action в зависимости от прав пользователя. Для того чтобы генератор поддерживал возможность условных object actions, нам нужно провести следующие модификации.

1.В админ-генераторе мы задаем свойства самого экшена:

actionName:
  label:          actionLabel
  action:         executeAction
  condition:
    # function - метод модели, которая должна возвращать булев
    function:     functionName
    # params - параметры для метода
    params:       "$model->getDbField(), $sf_user, 'test'"
    # нужно ли инвертировать результат функции
    invert:       false

2. Меняем шаблон дмин-генератора (templates/_list_td_actions.php)

<!--?php if ($this--->getParameterValue('list.object_actions')): ?></pre>
<ul class="sf_admin_td_actions">
<ul class="sf_admin_td_actions">[?php if ( <!--?php echo ( isset( $params['condition']['invert'] ) && $params['condition']['invert'] ? '!' : '') . '$' . $this--->getSingularName( ) . '->' . $params['condition']['function'] ?>( <!--?php echo ( isset( $params['condition']['params'] ) ? $params['condition']['params'] : '' ) ?--> ) ): ?]</ul>
</ul>
<pre>

</pre>
<ul class="sf_admin_td_actions">
<ul class="sf_admin_td_actions">[?php endif; ?]</ul>
</ul>
<pre>

<!--?php endif; ?-->

Важно!

Нужно менять не шаблон сгенерированный в кэше а именно шаблон для генератора (lib/plugins/sfDoctrinePlugin/data/generator/sfDoctrineModule/admin/template/templates) или же создать свою custom тему генератора, где внести соответствующие изменения.

Источник для вдохновления: http://snippets.symfony-project.org/snippets/tagged/condition/order_by/date

Теги:

Вы можете оставить комментарий или подписаться на RSS feed

Коментарии

Нет коментариев.

Leave a comment

(обязательно)

(обязательно)