/** * Registers node routes */ public function onRequest() { $site = App::module('system/site'); $frontpage = $site->config('frontpage'); $nodes = Node::findAll(true); uasort($nodes, function ($a, $b) { return strcmp(substr_count($a->path, '/'), substr_count($b->path, '/')) * -1; }); foreach ($nodes as $node) { if ($node->status !== 1 || !($type = $site->getType($node->type))) { continue; } $type = array_replace(['alias' => '', 'redirect' => '', 'controller' => ''], $type); $type['defaults'] = array_merge(isset($type['defaults']) ? $type['defaults'] : [], $node->get('defaults', []), ['_node' => $node->id]); $type['path'] = $node->path; $route = null; if ($node->get('alias')) { App::routes()->alias($node->path, $node->link, $type['defaults']); } elseif ($node->get('redirect')) { App::routes()->redirect($node->path, $node->get('redirect'), $type['defaults']); } elseif ($type['controller']) { App::routes()->add($type); } if (!$frontpage && isset($type['frontpage']) && $type['frontpage']) { $frontpage = $node->id; } } if ($frontpage && isset($nodes[$frontpage])) { App::routes()->alias('/', $nodes[$frontpage]->link); } else { App::routes()->get('/', function () { return __('No Frontpage assigned.'); }); } }
/** * Registers permalink route alias. */ public function onConfigureRoute($event, $route) { if ($route->getName() == '@userprofile/profiles/id') { App::routes()->alias(dirname($route->getPath()) . '/{slug}', '@userprofile/profiles/id', ['_resolver' => 'Bixie\\Userprofile\\UrlResolver']); } $name = $route->getName(); foreach ($this->nodes as $node) { if ($name == "@userprofile/profiles/{$node->slug}/id") { App::routes()->alias(dirname($route->getPath()) . '/{slug}', "@userprofile/profiles/{$node->slug}/id", ['_resolver' => 'Bixie\\Userprofile\\UrlResolver']); } } }
/** * Registers permalink route alias. */ public function onConfigureRoute($event, $route) { $name = $route->getName(); if ($name == '@download/id') { App::routes()->alias(dirname($route->getPath()) . '/{slug}', '@download/id', ['_resolver' => 'Bixie\\Download\\FileUrlResolver']); } if (stripos($name, '@download/category/file/') === 0) { App::routes()->alias($route->getPath() . '/{slug}', $name, ['_resolver' => 'Bixie\\Download\\FileUrlResolver']); } if ($name == '@download/file/id') { App::routes()->alias(dirname($route->getPath()) . '/{slug}', '@download/file/id', ['_resolver' => 'Bixie\\Download\\FileUrlResolver']); } }
/** * Registers category routes */ public function onRequest() { $categories = Category::findAll(true); uasort($categories, function ($a, $b) { return strcmp(substr_count($a->path, '/'), substr_count($b->path, '/')) * -1; }); $node = Node::query()->where(['link' => '@download'])->first(); foreach ($categories as $category) { if ($category->status !== 1) { continue; } $route = ['label' => $category->title, 'defaults' => ['_node' => $node->id, 'id' => $category->id], 'path' => $node->path . $category->path]; //category views App::routes()->add(array_merge(['name' => '@download/category/' . $category->id, 'controller' => 'Bixie\\Download\\Controller\\SiteController::categoryAction'], $route)); //file view App::routes()->add(array_merge(['name' => '@download/category/file/' . $category->id, 'controller' => 'Bixie\\Download\\Controller\\SiteController::fileAction'], $route)); } }
/** * Registers permalink route alias. */ public function onConfigureRoute($event, $route) { if ($route->getName() == '@portfolio/id') { App::routes()->alias(dirname($route->getPath()) . '/{slug}', '@portfolio/id', ['_resolver' => 'Bixie\\Portfolio\\UrlResolver']); } }
/** * Registers permalink route alias. */ public function onConfigureRoute($event, $route) { if ($route->getName() == '@blog/id' && UrlResolver::getPermalink()) { App::routes()->alias(dirname($route->getPath()) . '/' . ltrim(UrlResolver::getPermalink(), '/'), '@blog/id', ['_resolver' => 'Pagekit\\Blog\\UrlResolver']); } }