/** * getUrl * * @return string */ protected function getUrl() { $package = PackageHelper::getPackage($this->package); $package = $package ?: Ioc::get('current.package'); $route = $this->get('route', $this->route) ?: $this->view; $query = $this->get('query', $this->query); return $package->router->html($route, array_merge(array('layout' => 'modal', 'selector' => '#' . $this->getId() . '-wrap', 'function' => 'Natika.Field.Modal.select'), $query)); }
/** * onAfterRouting * * @param Event $event * * @return void */ public function onAfterRouting(Event $event) { $app = Ioc::getApplication(); $controller = Ioc::get('main.controller'); if ($controller->getPackage() instanceof AdminPackage) { // Check is logged-in or redirect to login page UserHelper::checkLogin(); } }
/** * onBeforeRouting * * @param Event $event * * @return void * * @throws \Exception */ public function onAfterRouting(Event $event) { $app = Ioc::getApplication(); $controller = Ioc::get('main.controller'); $route = $app->get('uri.route'); if (trim($route, '/')) { return; } Ioc::getContainer()->share('main.controller', $controller); }
/** * router * * @return void */ public static function router() { if (!static::inited(__METHOD__)) { static::addJS(static::phoenixName() . '/js/phoenix/router.min.js'); $uri = static::getJSObject((array) Ioc::get('uri')); static::internalJS(<<<JS Phoenix.Uri = {$uri}; JS ); } }
/** * Execute the controller. * * @return mixed Return executed result. * * @throws \LogicException * @throws \RuntimeException */ public function execute() { $model = new PostsModel(); $blog = Ioc::get('current.blog', 'front'); $author = (new DataMapper('authors'))->findOne(['blog' => $blog->id, 'owner' => 1]); $user = (new DataMapper('users'))->findOne(['id' => $author->user]); $this->data['blog'] = $blog; $this->data['ownerUser'] = $user; $this->data['ownerAuthor'] = $author; $this->data['user'] = User::get(); $this->data['author'] = Author::get($user->id, $blog->id); // Statics $model['blog.id'] = $blog->id; $model['list.start'] = null; $model['list.limit'] = null; $model['blog.published'] = true; $model['post.type'] = 'static'; $model['post.ordering'] = 'id asc'; $this->data['statics'] = $model->getItems(); $this->data['blog']->link = 'http://' . $this->data['blog']->alias . '.windspeaker.co'; $this->data['blog']->params = new Registry($this->data['blog']->params); $this->data['meta'] = new Data(); return $this->doExecute(); }