/** * Add action method * * @return void */ public function add() { $this->prepareView('members/admin/add.phtml'); $this->view->title = 'Members Admin : Add'; $fields = $this->application->config()['forms']['Phire\\Members\\Form\\MembersAdmin']; $roles = \Phire\Table\Roles::findAll(); foreach ($roles->rows() as $role) { $dupe = Table\Members::findBy(['role_id' => $role->id]); if (!isset($dupe->id)) { $fields[0]['role_id']['value'][$role->id] = $role->name; } } $fields[1]['name']['attributes']['onkeyup'] = "phire.createSlug('/' + this.value, '#uri');"; $this->view->form = new Form\MembersAdmin($fields); if ($this->request->isPost()) { $this->view->form->addFilter('htmlentities', [ENT_QUOTES, 'UTF-8'])->setFieldValues($this->request->getPost()); if ($this->view->form->isValid()) { $this->view->form->clearFilters()->addFilter('html_entity_decode', [ENT_QUOTES, 'UTF-8'])->filter(); $member = new Model\MembersAdmin(); $member->save($this->view->form->getFields()); $this->view->id = $member->id; $this->sess->setRequestValue('saved', true); $this->redirect(BASE_PATH . APP_URI . '/members/edit/' . $member->id); } } $this->send(); }
/** * Bootstrap the module * * @param Application $application * @return void */ public static function bootstrap(Application $application) { $members = Table\Members::findAll(); if ($members->hasRows()) { foreach ($members->rows() as $member) { $controllerParams = ['memberName' => $member->name, 'memberUri' => $member->uri, 'roleId' => $member->role_id, 'redirect' => $member->redirect, 'append' => true]; $routes = [$member->uri . '[/]' => ['controller' => 'Phire\\Members\\Controller\\IndexController', 'action' => 'index', 'controllerParams' => $controllerParams], $member->uri . '/login[/]' => ['controller' => 'Phire\\Members\\Controller\\IndexController', 'action' => 'login', 'controllerParams' => $controllerParams], $member->uri . '/register/:id' => ['controller' => 'Phire\\Members\\Controller\\IndexController', 'action' => 'register', 'controllerParams' => $controllerParams, 'acl' => ['resource' => 'member-register']], $member->uri . '/profile[/]' => ['controller' => 'Phire\\Members\\Controller\\IndexController', 'action' => 'profile', 'controllerParams' => $controllerParams, 'acl' => ['resource' => 'member-profile']], $member->uri . '/verify/:id/:hash' => ['controller' => 'Phire\\Members\\Controller\\IndexController', 'action' => 'verify', 'controllerParams' => $controllerParams], $member->uri . '/forgot[/]' => ['controller' => 'Phire\\Members\\Controller\\IndexController', 'action' => 'forgot', 'controllerParams' => $controllerParams], $member->uri . '/unsubscribe[/]' => ['controller' => 'Phire\\Members\\Controller\\IndexController', 'action' => 'unsubscribe', 'controllerParams' => $controllerParams, 'acl' => ['resource' => 'member-unsubscribe']], $member->uri . '/logout[/]' => ['controller' => 'Phire\\Members\\Controller\\IndexController', 'action' => 'logout', 'controllerParams' => $controllerParams]]; $application->router()->addRoutes($routes); } } }
/** * Get count of member admins * * @return int */ public function getCount() { return Table\Members::findAll()->count(); }