public function __construct($model) { $this->renderWithType = 'select'; $model = \ntentan\models\Model::load($model); $entity = Ntentan::singular($model->getName()); $this->setLabel(Ntentan::toSentence($entity)); $this->setName("{$entity}_id"); $options = $model->getAll(); foreach ($options as $option) { $this->option((string) $option, $option->id); } }
public function __construct($model, $submodel) { $this->renderWithType = 'select'; $model = \ntentan\models\Model::load($model); $submodel = \ntentan\models\Model::load($submodel); $entity = Ntentan::singular($submodel->getName()); $parentEntity = Ntentan::singular($model->getName()); $this->setLabel(Ntentan::toSentence($entity)); $this->setName("{$entity}_id"); $parentId = "{$parentEntity}_id"; $options = $model->getAll(); foreach ($options as $option) { $suboptions = $submodel->getAll(array('conditions' => array($parentId => $option->id))); foreach ($suboptions as $suboption) { $this->option("{$option} / {$suboption}", $suboption->id); } } }
public function trail_data($data = false) { if ($data === false) { if ($this->trailData === false) { $url = Ntentan::getUrl('/'); $trailData = array(array('url' => $url, 'label' => 'Home')); foreach (explode('/', Ntentan::$requestedRoute) as $route) { $url .= "{$route}/"; $trailData[] = array('url' => $url, 'label' => Ntentan::toSentence($route)); } return $trailData; } else { return $this->trailData; } } else { $this->trailData = $data; return $this; } }
public function createModelField($field) { switch ($field["type"]) { case "double": $element = new api\TextField(ucwords(str_replace("_", " ", $field["name"])), $field["name"]); break; case "integer": if ($field["foreign_key"] === true) { $element = new api\ModelField(ucwords(str_replace("_", " ", substr($field["name"], 0, strlen($field["name"]) - 3))), $field["model"]); $element->name = $field["name"]; } else { $element = new api\TextField(ucwords(str_replace("_", " ", $field["name"])), $field["name"]); } break; case "string": $element = new api\TextField(Ntentan::toSentence($field["name"]), $field["name"]); break; case "text": $element = new api\TextArea(Ntentan::toSentence($field["name"]), $field["name"]); break; case "boolean": $element = new api\Checkbox(Ntentan::toSentence($field["name"]), $field["name"], "", 1); break; case "datetime": case "date": $element = new api\DateField(Ntentan::toSentence($field["name"]), $field["name"]); break; case "": throw new \Exception("Empty data type for {$field['name']}"); default: throw new \Exception("Unknown data type {$field["type"]}"); } if ($field["required"]) { $element->setRequired(true); } $element->setDescription($field["comment"]); return $element; }
/** * A shortcut wrapper around the Ntentan::toSentence method * @param $string */ function s($string) { return Ntentan::toSentence($string); }
public function setPermissions() { $arguments = func_get_args(); $id = array_shift($arguments); $role = $this->model->getFirstWithId($id); if (count($_POST) > 0) { foreach ($_POST as $permissionName => $path) { $permission = Model::load('system.permissions')->getFirst(array('conditions' => array('role_id' => $id, 'permission' => $permissionName))); if ($permission->count() == 0 && $path != 'no') { $permission->setData(array('role_id' => $id, 'permission' => $permissionName, 'path' => $path, 'access' => true)); $permission->save(); } else { if ($path == 'no') { $permission->access = false; $permission->update(); } else { $permission->access = true; $permission->update(); } } } $role->menu_tree = json_encode($this->getMenuTree($role)); $role->update(); } $permissionItems = array(); $baseRoute = implode('/', $arguments) . (count($arguments) > 0 ? '/' : ''); $baseDirectory = Ntentan::$namespace . "/modules/{$baseRoute}"; $dir = dir($baseDirectory); while (false !== ($entry = $dir->read())) { if ($entry == '.' || $entry == '..') { continue; } $path = getcwd() . "/{$baseDirectory}{$entry}"; $class = Ntentan::camelize($entry) . 'Controller'; if (file_exists("{$path}/{$class}.php")) { $controller = Controller::load("{$baseRoute}{$entry}", true); if (is_a($controller, "\\ntentan\\plugins\\wyf\\lib\\WyfController")) { $permissionItem = array('type' => 'permission', 'label' => Ntentan::toSentence($entry), 'permissions' => array(), 'path' => "{$baseRoute}{$entry}"); foreach ($controller->getPermissions() as $permission => $description) { $active = $role->getPermission($permission); $permissionItem['permissions'][] = array('name' => $permission, 'description' => $description, 'active' => $active); } $permissionItems[] = $permissionItem; } continue; } $class = Ntentan::camelize($entry); if (file_exists("{$path}/{$class}.php")) { continue; } if (is_dir($path)) { $permissionItems[] = array('type' => 'link', 'label' => Ntentan::toSentence($entry), 'link' => Ntentan::getUrl("{$this->route}/set_permissions/{$id}/{$entry}")); } } $this->set('permission_items', $permissionItems); $this->set('role', (string) $role); }