public function executePolyModuleForm(sfWebRequest $request) { $route = $request->getParameter('r', false); if ($request->isMethod('post')) { $perfil_acceso = $request->getParameter('perfil_acceso'); if (!$route || !$perfil_acceso) { return $this->renderText('ERROR'); } $conn = sfContext::getInstance()->getDatabaseManager()->getDatabase('doctrine')->getDoctrineConnection(); try { $conn->beginTransaction(); ModulesPolymorphismTable::getInstance()->findBySource($route)->delete(); foreach ($perfil_acceso as $sf_guard_permission_id => $form) { $mp = new ModulesPolymorphism(); $mp->setSfGuardPermissionId($sf_guard_permission_id); $mp->setSource($route); $mp->setDestination($form['destination']); $mp->setUseDestinationTitle(isset($form['use_destination_title'])); $mp->save(); } $conn->commit(); return $this->renderText('OK'); } catch (Doctrine_Exception $e) { $conn->rollback(); return $this->renderText('ERROR'); } } $polymorphisms = AdvancedLayout::getModules('', true, true); $modules_permissions = AdvancedLayout::getModulesPermissions(); if (!count($polymorphisms) || !$route || !isset($polymorphisms[$route])) { die; } $data = array(); $data['module'] = $polymorphisms[$route]; $data['permissions'] = AdvancedLayout::getModulesPermissions(); return $this->renderPartial('form_polymodule', $data); }
<?php $modules_permissions = AdvancedLayout::getModulesPermissions(); $modules_poly = AdvancedLayout::getModulesPolymorphism(); $polymorphisms = $sf_data->getRaw('polymorphisms'); $modules = AdvancedLayout::getModules('', true); ?> <table class="table table-bordered"> <thead> <tr> <th>Módulo</th> <th>Perfil de Acceso</th> <th>Actúa como</th> <th></th> </tr> </thead> <tbody> <?php foreach ($polymorphisms as $mo) { ?> <tr> <td rowspan="<?php echo max(1, count($modules_permissions[$mo['route']])); ?> "><i class="fa fa-fw fa-<?php echo $mo['icon']; ?> "></i> <?php echo $mo['title']; ?> </td>