コード例 #1
0
ファイル: Controller.php プロジェクト: jfkz/aquarel-cms
 public function editGroupAction($id = null)
 {
     $conf = \Control\Core::conf();
     $id = intval($id);
     $group = $this->repUserGroup->find($id);
     if (empty($group)) {
         return 'Группа не найдена';
     }
     $data = new \Data\Data();
     $data->setName('UserGroup');
     $form = new \Control\Forms();
     $form->setTitle('Редактировать группу пользователей');
     $form->setTemplate('tabs');
     $modules = $this->em->getrepository('Modules\\Entities\\Module')->findBy(array());
     $modules_data = array();
     foreach ($modules as $module) {
         $modules_data[$module->name] = $module->title;
     }
     $form->addTab('Общие данные');
     $form->setTabTemplate('form');
     $fields = $this->em->getrepository('Data\\Entities\\DataField')->findBy(array('data_name' => 'UserGroup', 'active' => 1), array('num' => 'ASC'));
     foreach ($fields as $field) {
         $field_name = $field->name;
         $field->id = 'users_' . $field->name;
         $field->value = $group->{$field_name};
         $field->caption = $field->title;
         $form->addTabObject($field);
     }
     $form->addTab('Разрешения');
     $form->setTabTemplate('default');
     $modules = $this->em->getrepository('Modules\\Entities\\Module')->findBy(array('active' => 1));
     foreach ($modules as $module) {
         $permissions = $this->repUserPermission->findBy(array('module' => $module->name));
         if (!empty($permissions)) {
             $link = new \stdClass();
             $link->type = 'link';
             $link->action = "if (\$('#module_permissions_" . $module->name . "').css('display')=='block') \$('#module_permissions_" . $module->name . "').hide(); else \$('#module_permissions_" . $module->name . "').show();";
             $link->text = $module->title;
             $link->style = "padding:0; border-bottom:1px dashed grey; text-decoration:none";
             $form->addTabObject($link);
             $form->addTabHTML('<br/><ul id="module_permissions_' . $module->name . '" style="display:block; list-style:none">');
             foreach ($permissions as $permission) {
                 $form->addTabHTML('<li>');
                 $perm = new \stdClass();
                 $perm->type = 'checkbox';
                 $perm->id = $permission->id;
                 $perm->value = $permission->access_mask & $id ? 1 : 0;
                 $perm->label = $permission->title;
                 $perm->attributes = 'class="checkbox Users_permissions"';
                 $form->addTabObject($perm);
                 $form->addTabHTML('</li>');
             }
             $form->addTabHTML('</ul><br/>');
         }
     }
     $form->addFooter(array('type' => 'button', 'id' => 'ok', 'value' => 'Готово', 'action' => "users_group_edit('{$id}','" . $data->fields_str . "','listGroups')"));
     $form->addFooter(array('type' => 'button', 'id' => 'save', 'value' => 'Сохранить', 'action' => "users_group_edit('{$id}','" . $data->fields_str . "')"));
     $form->addFooter(array('type' => 'button', 'id' => 'cancel', 'value' => 'Отмена', 'action' => '#Users/listGroups'));
     return $form->render();
 }