Hin und wieder möchte man auf zentrale Daten zurückgreifen. Das können beispielsweise Öffnungszeiten oder Adressen sein. Eine Möglichkeit ist das einbinden zentral abgelegter Artikel.
Das nachfolgende Beispiel bindet den ausgewählten Artikel als Block ein. Darüber hinaus wird für eingeloggte Redakteure ein Bearbetungssymbol (fontawsome) eingebaut. Dadurch kann der Redakteur leicht erkennen, dass es sich um einen eingebundenen Artikel handelt und kann direkt ins Backend zur Bearbeitung springen.
Die Abfrage ob wir uns im Backend oder Frontend befinden erfolgt durch if (rex::isBackend() == 1) {...
<div class="form-horizontal">
<div class="form-group">
<label class="col-sm-2 control-label">Artikelauswahl:</label>
<div class="col-sm-8">
REX_LINK[id=1 widget=1]
</div>
</div>
<div class="included">
<?php
// Prüfen ob der aktuelle Artikel mit sich selbst verlinkt ist
if ("REX_ARTICLE_ID" != "REX_LINK[id=1]" && "REX_LINK[id=1]"!="" ) {
// Artikeldatensatz ermitteln
$art = rex_article::get('REX_LINK[id=1]');
// Artikelinhalt auslesen inkl. aktuelle Sprache
$article = new rex_article_content($art->getId(), $art->getClang());
//Weitere Informationen auslesen z.B. Titel, Beschreibung
$art_title = $art->getName();
// Weitere Daten der MetaInfos können wie folgt ausgelesen werden
// z.B. Beschreibung
// $art_description = $art->getValue('art_description');
// Hinweisbox für's Backend
if (rex::isBackend() == 1)
{
echo '<div class="alert alert-info">
<a href="
'.rex_url::backendPage('content/edit',
['mode' => 'edit',
'clang' => rex_clang::getCurrentId(),
'article_id' => 'REX_LINK[id=1]']).'">
<i class="fa fa-pencil-square-o" aria-hidden="true"></i> Eingebundener Artikel: '.$art->getName().'</a>
</div>';
} // Ende Hinweisbox
// Artikel ausgeben, für andere Ctypes Zahl ändern. Für den gesamten Artikel, die 1 entfernen
echo $article->getArticle(1);
}
else { // Was soll passieren wenn der Artikel nicht eingebunden werden kann?
}
?>
</div>