public function getParentOptions() { $ParentOptions = array('' => '-- chose one --'); $pages = Page::sortBy('baseFileName')->lists('baseFileName', 'baseFileName'); $ParentOptions = array_merge($ParentOptions, $pages); return $ParentOptions; }
public function getCmsPageOptions() { if (!($theme = Theme::getEditTheme())) { throw new ApplicationException('Unable to find the active theme.'); } return Page::listInTheme($theme)->lists('fileName', 'fileName'); }
public function getPropertyOptions($property) { if ($property == 'eventPage') { return Page::sortBy('baseFileName')->lists('baseFileName', 'baseFileName'); } return self::getPropertyOptions($property); }
public function getUrlPageName() { if (static::$urlPageName !== null) { return static::$urlPageName; } /* * Cache */ $key = 'urlMaker' . $this->urlComponentName . crc32(get_class($this)); $cached = Cache::get($key, false); if ($cached !== false && ($cached = @unserialize($cached)) !== false) { $filePath = array_get($cached, 'path'); $mtime = array_get($cached, 'mtime'); if (!File::isFile($filePath) || $mtime != File::lastModified($filePath)) { $cached = false; } } if ($cached !== false) { return static::$urlPageName = array_get($cached, 'fileName'); } $page = Page::useCache()->whereComponent($this->urlComponentName, 'isPrimary', '1')->first(); if (!$page) { throw new ApplicationException(sprintf('Unable to a find a primary component "%s" for generating a URL in %s.', $this->urlComponentName, get_class($this))); } $baseFileName = $page->getBaseFileName(); $filePath = $page->getFullPath(); $cached = ['path' => $filePath, 'fileName' => $baseFileName, 'mtime' => @File::lastModified($filePath)]; Cache::put($key, serialize($cached), Config::get('cms.parsedPageCacheTTL', 1440)); return static::$urlPageName = $baseFileName; }
public function onRun() { $theme = Theme::getActiveTheme(); $page = Page::load($theme, $this->page->baseFileName); $this->page["hasBlog"] = false; if (!$page->hasComponent("blogPost")) { $this->seo_title = $this->page["seo_title"] = empty($this->page->meta_title) ? $this->page->title : $this->page->meta_title; $this->seo_description = $this->page["seo_description"] = $this->page->meta_description; $this->seo_keywords = $this->page["seo_keywords"] = $this->page->seo_keywords; $this->canonical_url = $this->page["canonical_url"] = $this->page->canonical_url; $this->redirect_url = $this->page["redirect_url"] = $this->page->redirect_url; $this->robot_follow = $this->page["robot_follow"] = $this->page->robot_follow; $this->robot_index = $this->page["robot_index"] = $this->page->robot_index; $settings = Settings::instance(); if ($settings->enable_og_tags) { $this->ogTitle = empty($this->page->meta_title) ? $this->page->title : $this->page->meta_title; $this->ogDescription = $this->page->meta_description; $this->ogUrl = empty($this->page->canonical_url) ? Request::url() : $this->page->canonical_url; $this->ogSiteName = $settings->og_sitename; $this->ogFbAppId = $settings->og_fb_appid; } } else { $this->hasBlog = $this->page["hasBlog"] = true; } }
/** * Initialize. * * @return void * @throws \Krisawzm\DemoManager\Classes\DemoManagerException */ protected function init() { $backendUser = BackendAuth::getUser(); $baseTheme = $this->theme = Config::get('krisawzm.demomanager::base_theme', null); if ($backendUser) { if ($backendUser->login == Config::get('krisawzm.demomanager::admin.login', 'admin')) { $this->theme = $baseTheme; } else { $this->theme = $backendUser->login; } } else { if (UserCounter::instance()->limit()) { $action = Config::get('krisawzm.demomanager::limit_action', 'reset'); if ($action == 'reset') { DemoManager::instance()->resetEverything(); // @todo queue/async? $this->theme = $this->newDemoUser()->login; } elseif ($action == 'maintenance') { $theme = Theme::load($baseTheme); Event::listen('cms.page.beforeDisplay', function ($controller, $url, $page) use($theme) { return Page::loadCached($theme, 'maintenance'); }); } elseif ($action == 'nothing') { $this->theme = $baseTheme; } else { throw new DemoManagerException('User limit is reached, but an invalid action is defined.'); } } else { $this->theme = $this->newDemoUser()->login; // @todo Remember the username after signing out. // Could prove useful as some plugins may // have some different offline views. } } }
public static function getDetaultPaymentPage($params = []) { $settings = self::instance(); if (empty($settings->default_payment_page)) { return null; } return Page::url($settings->default_payment_page, $params); }
public function getSpecificOptions() { $renderType = Request::input('render'); // Load the country property value from POST $pages = Page::sortBy('baseFileName')->lists('baseFileName', 'baseFileName'); $Options = ['none' => [], 'settings' => [], 'parent' => [], 'specific' => $pages]; return $Options[$renderType]; }
/** * Returns the URL for the master object of given ID * * @param MenuItem $item Master object iD * * @return string */ public function getUrl(MenuItem $item) { $params = []; if (!empty($item->data['params'])) { $params = (array) json_decode($item->data['params']); } return Pg::url(Pg::find($item->master_object_id)->fileName, $params); }
/** * Get a list of all pages. Prepend an empty option to the start * * @return array */ public function getUrlOptions() { $allPages = Page::sortBy('baseFileName')->lists('title', 'baseFileName'); $pages = array('' => 'No page link'); foreach ($allPages as $key => $value) { $pages[$key] = "{$key}"; } return $pages; }
private function spoofPageCode() { // Spoof all the objects we need to make a page object $theme = Theme::load('test'); $page = Page::load($theme, 'index.htm'); $layout = Layout::load($theme, 'content.htm'); $controller = new Controller($theme); $parser = new CodeParser($page); $pageObj = $parser->source($page, $layout, $controller); return $pageObj; }
public function testLists() { // Default theme: test $pages = Page::lists('baseFileName'); sort($pages); $this->assertEquals(["404", "a/a-page", "ajax-test", "authors", "b/b-page", "blog-archive", "blog-post", "code-namespaces", "component-custom-render", "component-partial", "component-partial-nesting", "component-partial-override", "cycle-test", "index", "no-component", "no-component-class", "no-layout", "no-partial", "optional-full-php-tags", "optional-short-php-tags", "throw-php", "with-component", "with-components", "with-content", "with-layout", "with-partials", "with-placeholder"], $pages); $layouts = Layout::lists('baseFileName'); sort($layouts); $this->assertEquals(["a/a-layout", "ajax-test", "content", "cycle-test", "no-php", "partials", "php-parser-test", "placeholder", "sidebar"], $layouts); $pages = Page::inTheme('NON_EXISTENT_THEME')->lists('baseFileName'); $this->assertEmpty($pages); }
public function testTargetCmsPageRedirect() { $page = Page::load(Theme::getActiveTheme(), 'adrenth-redirect-testpage'); if ($page === null) { $page = new Page(); $page->title = 'Testpage'; $page->url = '/adrenth/redirect/testpage'; $page->setFileNameAttribute('adrenth-redirect-testpage'); $page->save(); } $redirect = new Redirect(['match_type' => Redirect::TYPE_EXACT, 'target_type' => Redirect::TARGET_TYPE_CMS_PAGE, 'from_url' => '/this-should-be-source', 'cms_page' => 'adrenth-redirect-testpage', 'requirements' => null, 'status_code' => 302, 'from_date' => Carbon::now(), 'to_date' => Carbon::now()->addWeek()]); self::assertTrue($redirect->save()); $rule = RedirectRule::createWithModel($redirect); self::assertInstanceOf(RedirectRule::class, $rule); $manager = RedirectManager::createWithRule($rule); self::assertInstanceOf(RedirectManager::class, $manager); $result = $manager->match('/this-should-be-source'); self::assertInstanceOf(RedirectRule::class, $result); self::assertEquals('http://localhost/adrenth/redirect/testpage', $manager->getLocation($result)); self::assertTrue($page->delete()); }
public function getPagesDropDown() { if (!$this->pages) { $theme = Theme::getEditTheme(); $pages = Page::listInTheme($theme, true); $this->pages = []; foreach ($pages as $page) { $this->pages[$page->baseFileName] = $page->title . ' (' . $page->url . ')'; } } return $this->pages; }
public function pages() { if (!$this->pages) { $theme = Theme::getEditTheme(); $pages = Pg::listInTheme($theme, true); $options = []; foreach ($pages as $page) { $options[$page->baseFileName] = $page->title . ' (' . $page->url . ')'; } asort($options); $this->pages = $options; } return $this->pages; }
/** * * Generates url for the item to be resolved * * @param int $year - year number * @param string $pageCode - page code to be used * @param $theme * @return string */ protected static function getUrl($year, $pageCode, $theme) { $page = CmsPage::loadCached($theme, $pageCode); if (!$page) { return ''; } $properties = $page->getComponentProperties('blogArchive'); if (!isset($properties['yearParam'])) { return ''; } $paramName = $properties['yearParam']; $url = CmsPage::url($page->getBaseFileName(), [$paramName => $year]); return $url; }
/** * Scans the theme templates for message references. * @return void */ public function scanForMessages() { $messages = []; foreach (Layout::all() as $layout) { $messages = array_merge($messages, $this->parseContent($layout->markup)); } foreach (Page::all() as $page) { $messages = array_merge($messages, $this->parseContent($page->markup)); } foreach (Partial::all() as $partial) { $messages = array_merge($messages, $this->parseContent($partial->markup)); } Message::importMessages($messages); }
/** * Execute the console command. * @return void */ public function fire() { $this->output->writeln('Hello world!'); $crmusers = CRMUser::isNotUpdated()->isHaveEmail()->get(); echo "Processing Users: \n"; $crmusers->each(function ($user) { $validator = \Validator::make(['email' => $user->email], ['email' => 'email']); if ($validator->fails()) { echo $user->email . " not valid email! [-]" . "\n"; } else { $cmsuser = CMSUser::firstOrNew(['username' => $user->email]); echo $user->email . " "; $cmsuser->fill($user->toArray()); if (!$cmsuser->is_activated) { $pass = str_random(12); $cmsuser->password = $pass; $cmsuser->password_confirmation = $pass; echo ": " . $pass; } $user->is_updated = true; $user->save(); $cmsuser->save(); if (!$cmsuser->is_activated) { $code = implode('!', [$cmsuser->id, $cmsuser->getActivationCode()]); $link = Page::url('personal', ['code' => $code]); $data = ['name' => $cmsuser->name, 'link' => $link, 'code' => $code]; Mail::send('abnmt.mrc::mail.activate', $data, function ($message) use($cmsuser) { $message->to($cmsuser->email, $cmsuser->name); }); } // if (!$cmsuser->is_activated) { // try { $cmsuser->attemptActivation($cmsuser->activation_code);} catch (\Exception $e) {echo " EXCEPTION!";} // } // \Mail::sendTo($this, 'backend::mail.invite', [ // 'name' => $user->name, // 'email' => '*****@*****.**', // 'password' => $pass, // ]); echo " [+]\n"; } }); echo "\n"; $cmsusers = CMSUser::count(); // echo "\n"; // print_r($crmusers); // echo "\n"; // print_r($cmsusers); // echo "\n"; }
private static function listPages() { if (!($theme = Theme::getEditTheme())) { throw new ApplicationException(Lang::get('cms::lang.theme.edit.not_found')); } $pages = Page::listInTheme($theme, true); $result = []; foreach ($pages as $page) { if ($page->show_menu == "1") { $result[$page->menu_order] = ['text' => $page->menu_text, 'path' => $page->getBaseFileName(), 'order' => $page->menu_order]; } } ksort($result); return $result; }
/** * Boot stuff for Backend * * @return void */ public function bootBackend() { Page::extend(function (Page $page) { $handler = new PageHandler($page); $page->bindEvent('model.beforeUpdate', function () use($handler) { $handler->onBeforeUpdate(); }); $page->bindEvent('model.afterDelete', function () use($handler) { $handler->onAfterDelete(); }); }); Event::listen('redirects.changed', function () { PublishManager::instance()->publish(); }); }
public function onRun() { if (!($theme = Theme::getEditTheme())) { throw new ApplicationException(Lang::get('cms::lang.theme.edit.not_found')); } $currentPage = $this->page->baseFileName; $pages = Page::listInTheme($theme, true); $this->pagesList = $this->buildPagesList($pages); $breadcrumbList = $this->buildCrumbTrail($currentPage); $currentCrumb = array_slice($breadcrumbList, -1, 1, true); $currentCrumb = array_shift($currentCrumb); $this->page['breadcrumbs'] = $breadcrumbList; $this->page['currentCrumb'] = $currentCrumb; return; }
public function register() { \Event::listen('backend.form.extendFields', function ($widget) { if (!$widget->model instanceof \Cms\Classes\Page) { return; } if (!($theme = Theme::getEditTheme())) { throw new ApplicationException(Lang::get('cms::lang.theme.edit.not_found')); } $pages = Page::all()->sort(function ($a, $b) { return strcasecmp($a->title, $b->title); }); $pageOptions = $this->buildPageOptions($pages); $widget->addFields(['settings[child_of]' => ['label' => 'Child Of', 'type' => 'dropdown', 'tab' => 'Breadcrumbs', 'span' => 'left', 'options' => $pageOptions, 'comment' => 'The parent of this page. Set to "None" if root page'], 'settings[hide_crumb]' => ['label' => 'Hide Breadcrumbs', 'type' => 'checkbox', 'tab' => 'Breadcrumbs', 'span' => 'right', 'comment' => 'Hide the breadcrumb trail on this page'], 'settings[crumb_title]' => ['label' => 'Crumb Title (Optional)', 'type' => 'text', 'tab' => 'Breadcrumbs', 'span' => 'left', 'comment' => 'Title text for this pages crumb, by default will use page title'], 'settings[remove_crumb_trail]' => ['label' => 'Remove From Breadcrumbs', 'type' => 'checkbox', 'tab' => 'Breadcrumbs', 'span' => 'right', 'comment' => 'Do not show this page in the breadcrumb trail'], 'settings[crumbElementTitle]' => ['label' => 'Crumb Title From Id (Optional)', 'type' => 'text', 'tab' => 'Breadcrumbs', 'span' => 'left', 'comment' => 'Use a DOM element as the crumb title for this page. Must be a a unique #id on the page.'], 'settings[crumb_disabled]' => ['label' => 'Disabled', 'type' => 'checkbox', 'tab' => 'Breadcrumbs', 'span' => 'right', 'comment' => 'Disable the link and add the disabled class to this crumb item in the breadcrumb list']], 'primary'); }); }
public function getPageUrlOptions() { $currentTheme = Theme::getEditTheme(); $allThemePages = Page::listInTheme($currentTheme, true); $options = []; foreach ($allThemePages as $p) { $options['url=' . $p->url . '&type=cms_pages'] = $p->title; } $tree = StaticPageClass::buildMenuTree($currentTheme); foreach ($tree as $key => $page) { if (isset($page['title']) && isset($page['url'])) { $options['url=' . $page['url'] . '&type=pages_plugin'] = $page['title']; } } return $options; }
private static function listPages() { if (!($theme = Theme::getEditTheme())) { throw new ApplicationException(Lang::get('cms::lang.theme.edit.not_found')); } $pages = Page::listInTheme($theme, true); $result = []; foreach ($pages as $page) { $page->fill(['menu_text']); $page->fill(['menu_order']); if ($page->not_show_menu != "1" && !empty($page->menu_order)) { $result[$page->menu_order] = ['text' => $page->menu_text != '' ? $page->menu_text : $page->title, 'path' => $page->getBaseFileName(), 'order' => $page->menu_order != '' ? $page->menu_order : 1]; } } ksort($result); return $result; }
public function register() { /* * Defer event 2 levels deep to let others contribute before this registers. */ Event::listen('backend.form.extendFieldsBefore', function ($widget) { $widget->bindEvent('form.extendFieldsBefore', function () use($widget) { EventRegistry::instance()->registerFormFieldReplacements($widget); }); }); /* * Handle translated page URLs */ Page::extend(function ($page) { $page->extendClassWith('RainLab\\Translate\\Behaviors\\TranslatablePageUrl'); }); }
/** * Bootstrap the module events. * * @return void */ public function boot() { parent::boot('cms'); Event::listen('pages.menuitem.listTypes', function () { return ['cms-page' => 'CMS Page']; }); Event::listen('pages.menuitem.getTypeInfo', function ($type) { if ($type == 'cms-page') { return CmsPage::getMenuTypeInfo($type); } }); Event::listen('pages.menuitem.resolveItem', function ($type, $item, $url, $theme) { if ($type == 'cms-page') { return CmsPage::resolveMenuItem($item, $url, $theme); } }); }
public function onRun() { $url = ""; $status = '302'; if ($this->property('redirectInternal') !== null) { $url = Page::url($this->property('redirectInternal')); } if ($this->property('redirectExternal') !== null) { $url = $this->property('redirectExternal'); } if ($this->property('statusCode') !== null) { $status = $this->property('statusCode'); } if (!!strlen($url)) { header("Location: " . $url, true, $status); exit; } }
/** * Creates a CMS page from a static page and configures it. * @param string $url Specifies the static page URL. * @return \Cms\Classes\Page Returns the CMS page object or NULL of the requested page was not found. */ public function initCmsPage($url) { $router = new Router($this->theme); $page = $router->findByUrl($url); if (!$page) { return null; } $viewBag = $page->viewBag; $cmsPage = CmsPage::inTheme($this->theme); $cmsPage->url = $url; $cmsPage->apiBag['staticPage'] = $page; /* * Transfer specific values from the content view bag to the page settings object. */ $viewBagToSettings = ['title', 'layout', 'meta_title', 'meta_description', 'is_hidden']; foreach ($viewBagToSettings as $property) { $cmsPage->settings[$property] = array_get($viewBag, $property); } return $cmsPage; }
/** * @return bool|string * @throws \SystemException */ public function getContent() { switch ($this->popup->content_type) { case 'imageUrl': return "<img src='{$this->popup->content_image_url}'>"; break; case 'imageUpload': return '<img src="' . MediaLibrary::instance()->getPathUrl($this->popup->content_image_upload) . '">'; break; case 'page': /** @var Page $page */ $page = Page::load(Theme::getActiveTheme(), $this->popup->content_page); $cms = new CmsController(); return $cms->run($page->url)->getContent(); break; case 'markdown': return \Markdown::parse($this->popup->content_markdown); break; } }
public function loadEvents() { $MyEvents = []; if ($this->usePermissions) { $this->loadPermissions(); $query = MyEvents::whereIn('id', CategorysEvents::whereIn('category_id', Category::whereIn('permission_id', $this->permarray)->lists('id'))->lists('event_id'))->whereNotIn('id', CategorysEvents::whereIn('category_id', Category::where('permission_id', Settings::get('deny_perm'))->lists('id'))->lists('event_id'))->published(); } else { $query = MyEvents::published(); } $events = $query->past($this->dayspast)->future($this->daysfuture)->orderBy('date')->orderBy('time')->get(); $maxLen = $this->property('title_max', 100); $linkPage = $this->property('linkpage', ''); foreach ($events as $e) { $title = strlen($e->text) > 50 ? substr(strip_tags($e->text), 0, $maxLen) . '...' : $e->text; $link = $e->link ? $e->link : ($linkPage ? Page::url($linkPage, ['slug' => $e->id]) : '#EventDetail" data-request="onShowEvent" data-request-data="evid:' . $e->id . '" data-request-update="\'Events::details\':\'#EventDetail\'" data-toggle="modal" data-target="#myModal'); $MyEvents[$e->year][$e->month][$e->day][] = ['name' => $e->name . ' ' . $e->human_time, 'title' => $title, 'link' => $link, 'id' => $e->id, 'owner' => $e->user_id]; } return $MyEvents; }