Example #1
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;
     }
 }
 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;
 }
 /**
  * @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;
     }
 }
Example #4
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());
 }
Example #5
0
 /**
  * Renders a page in its entirety, including component initialization.
  * AJAX will be disabled for this process.
  * @param string $pageFile Specifies the CMS page file name to run.
  * @param array  $parameters  Routing parameters.
  * @param \Cms\Classes\Theme  $theme  Theme object
  */
 public static function render($pageFile, $parameters = [], $theme = null)
 {
     if (!$theme && !($theme = Theme::getActiveTheme())) {
         throw new CmsException(Lang::get('cms::lang.theme.active.not_found'));
     }
     $controller = new static($theme);
     $controller->getRouter()->setParameters($parameters);
     if (($page = Page::load($theme, $pageFile)) === null) {
         throw new CmsException(Lang::get('cms::lang.page.not_found_name', ['name' => $pageFile]));
     }
     return $controller->runPage($page, false);
 }
 public function testNamespaces()
 {
     $theme = Theme::load('test');
     $page = Page::load($theme, 'code-namespaces.htm');
     $this->assertNotEmpty($page);
     $parser = new CodeParser($page);
     $info = $parser->parse();
     $this->assertInternalType('array', $info);
     $this->assertArrayHasKey('filePath', $info);
     $this->assertArrayHasKey('className', $info);
     $this->assertArrayHasKey('source', $info);
     $this->assertFileExists($info['filePath']);
     $controller = new Controller($theme);
     $obj = $parser->source($page, null, $controller);
     $this->assertInstanceOf('\\Cms\\Classes\\PageCode', $obj);
     $referenceFilePath = base_path() . '/tests/fixtures/cms/reference/namespaces.php';
     $this->assertFileExists($referenceFilePath);
     $referenceContents = $this->getContents($referenceFilePath);
     $referenceContents = str_replace('{className}', $info['className'], $referenceContents);
     $this->assertEquals($referenceContents, $this->getContents($info['filePath']));
 }