Пример #1
0
 public function getParentOptions()
 {
     $ParentOptions = array('' => '-- chose one --');
     $pages = Page::sortBy('baseFileName')->lists('baseFileName', 'baseFileName');
     $ParentOptions = array_merge($ParentOptions, $pages);
     return $ParentOptions;
 }
Пример #2
0
 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);
 }
Пример #4
0
 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;
 }
Пример #5
0
 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;
     }
 }
Пример #6
0
 /**
  * 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.
         }
     }
 }
Пример #7
0
 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];
 }
Пример #9
0
 /**
  * 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);
 }
Пример #10
0
 /**
  * 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;
 }
Пример #11
0
 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;
 }
Пример #12
0
 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);
 }
Пример #13
0
 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());
 }
Пример #14
0
 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;
 }
Пример #15
0
 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;
 }
Пример #16
0
 /**
  *
  * 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;
 }
Пример #17
0
 /**
  * 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);
 }
Пример #18
0
 /**
  * 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";
 }
Пример #19
0
 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;
 }
Пример #20
0
 /**
  * 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();
     });
 }
Пример #21
0
 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;
 }
Пример #22
0
 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');
     });
 }
Пример #23
0
 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;
 }
Пример #24
0
 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;
 }
Пример #25
0
 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');
     });
 }
Пример #26
0
 /**
  * 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);
         }
     });
 }
Пример #27
0
 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;
     }
 }
Пример #28
0
 /**
  * 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;
 }
Пример #29
0
 /**
  * @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;
     }
 }
Пример #30
0
 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;
 }