Das Model bleibt unverändert
Da die Klasse Model.php
die Aufgabe hat auf die physikalischen Daten des Seiteninhalts, in Ihrem eigenen CMS zuzugreifen, kommt es mit der Template-Engine Smarty nicht in Berührung, daher ist der Code fast unverändert geblieben. Als einzige Änderung wurde das Feld Template
mit aufgenommen, denn dies soll zukünftig berücksichtig werden.
class Model
{
public $logo;
public $title;
public $content;
public $description;
public $template;
function __construct($url)
{
$this->pd = new Parsedown();
$file_content = file_get_contents($url);
$this->logo = Dipper::parse(explode('–––', $file_content)[1])['Logo'];
$this->title = Dipper::parse(explode('–––', $file_content)[1])['Title'];
$this->description = Dipper::parse(explode('–––', $file_content)[1])['Description'];
$this->template = Dipper::parse(explode('–––', $file_content)[1])['Template'];
$this->content = $this->pd->text(explode('–––', $file_content)[2]);
}
function __get($value)
{
return $this->$value;
}
function __set($key, $value)
{
return $this->$key = $value;
}
}
Code des Model ist unverändert
Auch wenn die Klasse im ersten Teil schon beschirben wurde, hier noch einmal eine grobe Zusammenfassung - der Dateiinhalt wird mit file_get_contents($url)
geladen und von Dipper
in ein Array konvertiert, damit stehen alle Meta-Attribute des Beitrags wie Title
, Description
, Logo
und Template
als Klassenvariable dem Model zur Verfügung. Zwar ist deren Gültigkeitsbereich public
, kann aber gerne auf private
umgeändert werden, um Zugriff ausschließlich über den Getter zu garantieren.