Added a content type system to be able to extend the conversion mechanism
This commit is contained in:
71
libs/Format/Base/ContentPage.php
Normal file
71
libs/Format/Base/ContentPage.php
Normal file
@ -0,0 +1,71 @@
|
||||
<?php namespace Todaymade\Daux\Format\Base;
|
||||
|
||||
use Todaymade\Daux\Config;
|
||||
use Todaymade\Daux\Format\Base\ContentTypes\ContentType;
|
||||
use Todaymade\Daux\Tree\Content;
|
||||
|
||||
abstract class ContentPage extends SimplePage
|
||||
{
|
||||
/**
|
||||
* @var Content
|
||||
*/
|
||||
protected $file;
|
||||
|
||||
/**
|
||||
* @var Config
|
||||
*/
|
||||
protected $params;
|
||||
|
||||
/**
|
||||
* @var ContentType
|
||||
*/
|
||||
protected $contentType;
|
||||
|
||||
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 setParams(Config $params)
|
||||
{
|
||||
$this->params = $params;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ContentType $contentType
|
||||
*/
|
||||
public function setContentType($contentType)
|
||||
{
|
||||
$this->contentType = $contentType;
|
||||
}
|
||||
|
||||
protected function convertPage($content)
|
||||
{
|
||||
return $this->contentType->convert($content);
|
||||
}
|
||||
|
||||
protected function generatePage()
|
||||
{
|
||||
return $this->convertPage($this->content);
|
||||
}
|
||||
|
||||
public static function fromFile(Content $file, $params, ContentType $contentType)
|
||||
{
|
||||
$page = new static($file->getTitle(), $file->getContent());
|
||||
$page->setFile($file);
|
||||
$page->setParams($params);
|
||||
$page->setContentType($contentType);
|
||||
|
||||
return $page;
|
||||
}
|
||||
}
|
Verwijs in nieuw issue
Block a user