Der HomeController wickelt den Arbeitsprozess des CMS für die Startseite des CMS ab.
HTML und CSS (Demo) - Moderne Web-Technologien für moderne Websites! In diesem Standardwerk gibt Ihnen Jürgen Wolf alle Werkzeuge an die Hand, die sie für einen starken Auftritt im Web benötigen. Lernen Sie alle Grundlagen von HTML, CSS und JavaScript kennen und erweitern Sie Ihr Wissen mit diesem umfassenden Lern- und Nachschlagewerk.
Wichtiger Hinweis: Je nach verwendetem Werbenetzwerk, musst du hier einen geeigneten Hinweis anbringen, der dem Leser anzeigt, das du mit Affiliate-Marketing Geld verdienst (ggf. in den Teilnahmenbedingungen des betreffenden Werbepartners nachlesen).
Inhalt
Der HomeController der Startseite
Der HomeController regelt die Verarbeitung des CMS wenn sich der Leser auf der Startseite des Content Management Systems befindet. Er greift über das entsprechende Model auf Daten zu und wickelt die Anzeige am Browser ab.
class HomeController
{
function __construct()
{
global $pd, $pde;
$pages_model = new PagesModel(str_replace('/','',CONTENT_DIR));
$categories_model = new CategoriesModel(CONTENT_DIR.'*');
$index_file_content = file_get_contents(CONTENT_DIR.'index'.CONTENT_EXT);
foreach (Dipper::parse(Page::meta($index_file_content)) as $key=>$value)
{
$template_token_name = strtolower($key);
$template_token_content = $value;
Flight::view()->set($template_token_name, $template_token_content);
}
$index_content_section = $pde->text(Page::content($index_file_content));
$index_content_section = Flight::hook('afterParseContent', $index_content_section);
Flight::view()->set('pages', $pages_model->pages);
Flight::view()->set('categories', $categories_model->categories);
Flight::view()->set('content', $index_content_section);
Flight::render('home');
}
}
Version 2.4.01
In der magischen Methode __construct() wird die Verarbeitung durch dieses Script initiiert und beginnt damit, die benötigten externen Komponenten, wie Parsedown(), ParsedownExtra(), Dipper(), PagesModel() und das CategoriesModel() in den Arbeitsspeicher zu laden. Mit file_get_contents() wird der Inhalt der index.md des Content-Verzeichnis eingelesen.
Die foreach() Schleife nutzt den YAML-Parser Dipper, um die interne Struktur des Beitrags index.md in einzelne Tokens wie beispielsweise Title, Description, Author usw. aufzuteilen, dabei wird der Token-Name und der Token-Inhalt mit Flight::view() in die View kopiert, die später mit Flight::render() geladen und im Browser angezeigt wird.
Damit die View auch in der Lage ist die Beiträge unterhalb der Startseite anzuzeigen, wird pages mit einem Array aus dem PagesModel.php gefüllt, ebenso werden verfügbare Kategorien mit dem Template-Token categories in die View kopiert und konnen dann im Template nach belieben iteriert und mit HTML-Befehlen gestaltet werden.
