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(); }