<?php namespace Todaymade\Daux\Format\Base; use Todaymade\Daux\Config; use Todaymade\Daux\ContentTypes\ContentType; use Todaymade\Daux\Tree\Content; abstract class ContentPage extends SimplePage { /** * @var Content */ protected $file; /** * @var Config */ protected $config; /** * @var ContentType */ protected $contentType; protected $generatedContent; public function __construct($title, $content) { $this->initializePage($title, $content); } public function setFile(Content $file) { $this->file = $file; } public function getFile() { return $this->file; } public function setConfig(Config $config) { $this->config = $config; } /** * @deprecated use setConfig instead */ public function setParams(Config $config) { $this->setConfig($config); } /** * @param ContentType $contentType */ public function setContentType($contentType) { $this->contentType = $contentType; } public function getPureContent() { if (!$this->generatedContent) { $this->generatedContent = $this->contentType->convert($this->content, $this->getFile()); } return $this->generatedContent; } protected function generatePage() { return $this->getPureContent(); } public static function fromFile(Content $file, $config, ContentType $contentType) { $page = new static($file->getTitle(), $file->getContent()); $page->setFile($file); $page->setConfig($config); $page->setContentType($contentType); return $page; } }