public static function update($model, $id, $update_lit = '') { Session::permit_admin(); $success = parent::update(Record::allow($model, ['title', 'name', 'type']), $id, $update_lit); if (isset($model['content'])) { $success = DocContent::create(['doc_id' => $id, 'content' => $model['content']]); } if (isset($model['routes'])) { DocRoute::destroy_all($id); if ($model['routes']) { $routes = []; foreach (explode(',', $model['routes']) as $route_def) { $parts = explode('=>', $route_def); $route = trim($parts[0]); if (strlen($route) == 0 || $route[0] != '/') { $route = '/' . $route; } $handler = count($parts) > 1 ? trim($parts[1]) : null; $routes[] = ['doc_id' => $id, 'route' => $route, 'handler' => $handler ? $handler : null]; } DocRoute::create_all($routes); } } return $success; }
public static function get_routes() { return Filter::array_map(function ($route) { return [$route['selector'] => $route['handler']]; }, DocRoute::read_all()); }