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
Коментарии
// Begin Comments & Trackbacks ?>Нет коментариев.
Leave a comment