Der Redaktionsassistent dient zur Verwaltung von Artikeln in einer separaten yform Tabelle. Dabei bleiben die Inhalte wie gehabt in REDAXO Artikeln. Die Tabelle im Redaktionsassistenten kann zum schnellen Zugriff auf Artikel genutzt werden. Sie lässt sich für Notizen zum Bearbeitungsstand verwenden und man kann schnell den aktuellen Stand aller Artikel einsehen und filtern. Insbesondere für Seiten, die Inhalte wie Blogartikel darstellen, kann der Redaktionsassistent wertvolle Dienste leisten. Die Tabelle kann um eigene Felder erweitert werden.
Voraussetzung für die Verwendung des Redaktionsassistenten sind die Standard Metainfo Felder für den Artikel art_online_from
, art_online_to
und art_description
. Wenn diese noch nicht vorhanden sind, werden sie bei der Installation des Redaktionsassistenten angelegt. Weiterhin wird das AddOn structure_plus vorausgesetzt. In diesem AddOn wird die Farbeinstellung für die Darstellung (geplant, Veröffentlichung in der Zukunft, online, offline, abgelaufen) konfiguriert. Der Status gesperrt wird berücksichtigt, wenn das AddOn accessdenied eingesetzt wird.
Der Redaktionsassistent vergibt für jeden Artikel eine eigene Id. Dies ist nicht die Artikel-Id des REDAXO Artikels sondern die Id des Datensatzes der yform Tabelle vom Redaktionsassistent. Durch die eigene Rewriter Klasse wird diese Id an die Url angehängt. Damit können auch Artikel mit gleichem Namen verwendet werden. Es entsteht kein Konflikt bei Artikeln mit gleichem Namen.
Damit REDAXO Artikel für die Verwaltung im Redaktionsassistenten verfügbar sind, müssen sie über die Funktion "Artikel anlegen" im jeweiligen Datensatz vom Redaktionsassistenten angelegt werden. Wenn ein Artikel über den Redaktionsassistent angelegt ist, kann er direkt aus der Liste zur Bearbeitung geöffnet werden.
Ein Artikel, der über den Redaktionsassistenten angelegt wurde, kann wie ein normaler REDAXO Artikel bearbeitet werden. Er kann auch verschoben oder umbenannt werden. Auch der Wert im art_online_from Feld kann direkt im Artikel geändert werden. Die Änderungen werden in den Datensatz des Redaktionsassistenten synchronisiert.
Für die Ausgabe gibt es Helper Funktionen. Diese sind als Vorlage gedacht und können den eigenen Projektanforderungen angepasst werden.
Zunächst dass structure_plus AddOn installieren, anschließend den Redaktionsassistenten installieren. Jeweils hierfür das Repository herunterladen und in das AddOn Verzeichnis kopieren. Sobald das AddOn ausreichend getestet und entwickelt ist, kommt es auch in den Installer. Im structure_plus AddOn die gewünschten Farben einstellen.
Mit dem Redaktionsassistenten wird eine weitere yform Tabelle installiert. Diese Tabelle kann verwendet werden, um unterschiedliche Artikelarten zu definieren. Zu jeder Artikelart kann zusätzlich entweder ein REDAXO Template oder ein REDAXO Artikel zugeordnet werden. Wenn ein Artikel zugeordnet wird, so wird dieser als Vorlage bei der Erstellung eines neuen Artikels verwendet. Dabei werden alle Inhalte des Vorlagenartikels in den neuen Artikel übernommen.
Ist nicht getestet.
Mit diesem Code im Modul des Startartikels einer Kategorie bekommt man eine Liste mit Artikelobjekten. In dieser Liste ist bereits berücksichtigt: art_online_from, art_online_to und status. Der Startartikel der Kategorie ist in der Liste nicht enthalten.
$articles = ra_helper::find_newest_articles(0, rex_category::getCurrent()->getId());
dump($articles);
- Menüpunkt "Redaktionsassistent" aufrufen
- neuen Datensatz anlegen
- Zielkategorie auswählen
- Name eintragen
- Datensatz übernehmen (Verwaltungs Id wird angelegt)
- Artikel anlegen
Die Ausgabe der Artikel erfolgt ganz normal über Module. In den Übersichten können Funktionen aus dem Redaktionsassistenten verwendet werden. Somit kann auch bei der Ausgabe eine automatische Sortierung nach Online-Datum (oder einem anderen Feld) umgesetzt werden.
Folgender vereinfachter Modulcode kann als Blaupause verwendet werden:
<?php
$articles = ra_helper::find_newest_articles(0, rex_category::getCurrent()->getId());
?>
<ul>
<?php foreach ($articles as $art) : ?>
<li>
<p><?= date('d.m.Y', $art->getValue('art_online_from'))) ?></p>
<h3><?= $art->getName() ?></h3>
<p><?= $art->getValue('art_description') ?></p>
<p><a href="<?= $art->getUrl() ?>">Mehr erfahren ...</a></p>
</li>
<?php endforeach ?>
</ul>
Für die Ausgabe steht ein einfaches Yorm Objekt zur Verfügung, welches in eigenen Funktionen und Erweiterungen genutzt werden kann.
Angenommen, es wird in der Verwaltungstabelle des Redaktionsassistenten ein zusätzliches Feld important
als Checkbox hinzugefügt, kann folgender Modulcode auf der Startseite die wichtigsten Teaser anzeigen:
<?php
// Yorm Query holen
$query = ra_helper::get_ra_query();
// Query erweitern
$query
->orderBy('important', 'desc')
->orderBy('art_online_from', 'desc')
;
$query->limit(0,3);
// Daten holen
$items = $query->find();
?>
<ul>
<?php foreach ($items as $item) : ?>
<li>
<p><?= date('d.m.Y', $item->rex_art_online_from) ?></p>
<h3><?= $item->name ?></h3>
<p><?= $item->rex_art_description ?></p>
<p><a href="<?= rex_getUrl($item->rex_article) ?>">Mehr erfahren ...</a></p>
</li>
<?php endforeach; ?>
</ul>
Bei letzterem Modulcode werden die wichtigsten Artikel bevorzugt (durch die Sortierung important = desc). Anschließend wird mit den neuesten Artikel auf die gewünschte Anzahl von 3 Einträgen (limit(0,3)) aufgefüllt. Das Yorm Objekt berücksichtigt bereits art_online_from, art_online_to und status. Da es als Query zur Verfügung steht, kann es über beliebige Yorm Funktionen erweitert werden.
- flexible Synchronisation weiterer Metainfos implementieren (z.B. für besondere Hervorhebung bzw. Ausgabe auf der Startseite usw.).
- Yakamara für REDAXO!
- Polarpixel für das gemeinsame Projekt, das dieses AddOn initiiert und zum Teil finanziert hat
- Der Community für die großartige Unterstützung in allen Lebenslagen (es wären zu viele Namen um alle zu nennen)
- Christoph Böcker für den coolen Tipp https://friendsofredaxo.github.io/tricks/addons/yform/im-addon
- Kunden Felix & Oliver für die coole Idee und die kooperative Entwicklung