AbidePreview

Aus Contao Community Documentation


abidePreview - Eine Erweiterung der Vorschau.


Erweiterungs-Übersicht
Name des Entwicklers weke
Version der Erweiterung 0.4.0 rc2
Kompatibilität mit Contao Version 2.9.0 - 2.10.2
Link zum Extension Repository http://www.contao.org/erweiterungsliste/view/abidePreview.html
Abhängig von ff. Erweiterungen keine
Anmerkung Version ist noch ein Release Candidate!


Kurzbeschreibung

Diese Erweiterung ist für alle Contao Installationen mit mehreren "Startpunkten einer Webseite" geeignet, sie kann unter Umständen auch schon in bestimmten Konstellationen mit nur einem Startpunkt interessant sein.

Aufgabe dieser Erweiterung ist es, dass ein Benutzer die Vorschau von jeder Seite aufrufen kann, die er bearbeiten darf. Dieses wird, obwohl es trivial klingt, von Contao nicht vollständig unterstützt. Contao nutzt auch bei der Vorschau ausschließlich die Informationen der Anmeldedomain und der Spracheinstellung des Browsers um die Vorschauseite zu ermitteln.

Diese Erweiterung hebt diese Einschränkung auf und ermöglicht es auch andere Sprachen oder Domains, welche vom Benutzer in der Contao Installation bearbeitet werden können, in der Vorschau anzusehen. Hierbei ist weder eine Neuanmeldung an einer anderen Anmeldedomain, noch ein Sprachwechsel im Browser notwendig.

Bedienung

Nach der Installation von abidePreview erscheint im Infobereich des Backend eine Auswahlliste mit den verfügbaren Startpunkten. Neben der manuellen Auswahl eines Startpunktes für die Vorschau ist per Default die automatische Erkennung vorausgewählt. Diese versucht bei jedem Seitenaufruf im Backend den zugehörigen Startpunkt zu ermitteln.

abidePreview Screenshot der Auswahlliste


Kann kein eindeutiger Startpunkt ermittelt werden (z.B. beim Newsletter), so wird der zuletzt ermittelte Startpunkt weiterhin verwendet. Für diesen Fall kann auch eine manuelle Auswahl des Startpunkts genutzt werden, falls die Vorschau fehlerhaft geöffnet wird.

Anhand des gewählten, bzw. des automatisch ermittelten Startpunktes werden dann für die Vorschau die Spracheinstellungen und Domain dieses Startpunktes genutzt. Welcher Startpunkt aktuell verwendet wird, ist im Backend in der Kopfzeile des Infobereichs zu erkennen. In der Vorschau wird diese Information in der Kopfzeile des Browserfensters (Ergänzung von <title>) angezeigt.


Hinweis.png Hinweis: Falls ein Benutzer nur einen Startpunkt bearbeiten darf, erscheint keine Auswahlliste.


Konfiguration

In den Einstellungen von Contao findet sich unter dem Abschnitt "Globale Einstellung" die Möglichkeit zu definieren, welche Information zum aktuell genutzten Startpunkt angezeigt werden sollen. Handelt es sich beispielsweise um eine Installation, welche nur eine Domain, aber mehrere Sprachen anbietet, so kann die Anzeige auf das Sprachkürzel beschränkt werden. Zur Auswahl stehen die folgenden Angaben:

  • Sprachkürzel
  • Webseiten Titel
  • Seiten ID

Diese Auswahl ist frei kombiniert und sortiert werden. Werden mehrere Elemente ausgewählt, werden sie mit einem Leerzeichen verbunden.

FAQ

  • Warum ist die Auswahl des Startpunktes nicht auch in der Vorschau möglich?
    Da die aufgerufene Vorschau in der Regel bereits eine konkrete Seite adressiert, würde bei einem Wechsel des Startpunktes in der Vorschau in vielen Fällen eine Fehlermeldung kommen (Seite nicht gefunden). Um die Verwirrung hierbei zu vermeiden wurde bewusst auf dieses Feature verzichtet.
  • Kann die Auswahlbox komplett ausgeblendet werden?
    Nein, da nicht immer ein eindeutiger Startpunkt ermittelt werden kann, soll die Auswahlbox stets die alternative Darstellen, den Startpunkt manuell zu wählen.
  • Gibt es bei Benutzern mit Bearbeitungsrechten für nur einem Startpunkt keine Probleme bei der automatischen Ermittlung?
    Das sollte eigentlich nicht sein, da sich die Automatik hier nur zwischen einem Startpunkt entscheiden muss.
  • Kann ein Benutzer hiermit Seiten in der Vorschau sehen, die er sonst nicht sehen könnte?
    Eigentlich Nein! Der Benutzer kann nur die Seiten in der Vorschau sehen, die zu einem Startpunkte gehören in dem der Benutzer eine Seite in seiner Pagemount hat. D.h. er kann alle Seite sehen, die zu einer Startseite gehören, auch wenn er nur eine einzige Seite in diesem Baum bearbeiten darf. Das ist der Standard bei Contao und wird mit dieser Erweiterung nicht aufgehoben.
    Diese Erweiterung bewirkt eher das Gegenteil. Während in Contao sich ein Benutzer an einer anderen Domain zu dieser Installation anmelden kann, in denen der Benutzer eigentlich keine Bearbeitungsrechte hat und sich dann die Vorschau anzeigen lassen kann. Mittels abidePreview wird beim Anmelden an einer "falschen" Domain der erste Startpunkt des Benutzers ermittelt, in der der Benutzer Bearbeitungsrechte hat.
  • Kann ein Benutzer mit Hilfe dieser Erweiterung die Anmeldung eines Mitgliedes simmulieren?
    NEIN ! Das kann weiterhin nur ein Administrator. Der hat dann auch immer die Berechtigung alle Startpunkte zu bearbeiten.
  • Wie kann ich für einen Benutzer die Auswahl an Startpunkten einschränken?
    Die Liste wird automatisch auf die Startpunkte beschränkt, in der ein Benutzer mindestens eine Seite bearbeiten darf. Dieses erfolgt über die Pagemount des Benutzers.

Technisches

Wie funktioniert diese Erweiterung?

Es wird bei jeder Aktion im Backend versucht den zugehörigen Startpunkt zu ermitteln. Hierzu wird im Automatikmodus zuerst anhand eines evtl. gesetzten Breadcrumb in der Artikel oder Seitenstruktur gesucht. Ist dieser nicht gesetzt (Auswahl 'Alle'), so wird anhand des aktuellen Artikels oder der aktuellen Seite selektiert. Kann keinen Startpunkt ermittelt werden, so wird der zuletzt ermittelte Startpunkt genutzt. Sollte seit der Anmeldung noch kein Startpunkt ermittelt worden sein, so wird der Startpunkt zum ersten Pagemount des angemeldeten Benutzers gewählt. Somit ist gewährleistet, dass immer ein Startpunkt ermittelt werden kann.

Sollte die automatische Erkennung nicht zum gewünschten Ergebnis führen, so kann in der Infoleiste eine manuelle Auswahl erfolgen. Welcher Startpunkt automatisch erkannt, bzw. manuell festgelegt ist, kann in der Kopfzeile der Infoleiste, bzw. in der Titelzeile der Vorschau angezeigt werden. Welche Informationselemente zum Anzeigen der Startseite genutzt werden soll, kann in den Einstellungen angepasst werden. Wird jetzt das Frontend aufgerufen, solange der Benutzer im Backend angemeldet ist, wird der Browser request mit den Einstellungen des aktuellen Startpunktes überschrieben. So wird z.B. die Sprachauswahl des Browsers mit der Sprache des aktuellen Startpunktes überschrieben.

Diese Erweiterung modifiziert zwei Dateien im Core, um fehlende Zugriffsmöglichkeiten nachzurüsten. In den Datein system/libraries/System.php und system/modules/backend/Backend.php werden die Klassennamen von System zu System_org und Backend zu Backend_org umbenannt. Zusätzlich wird eine alternative Backend und System Klasse per include eingebunden. Diese Alternativen Klassen überschreiben ein paar wenige Funktionen und erben jeweils von der *-_org Klasse. Hierdurch werden in der System-Klasse die Funktionen redirect und reload erweitert, sowie in der Backend-Klassen die Funktionen createPageList und doCreatePageList. Mit Hilfe dieser Funktionen wird die Anzeige der verschiedenen Domains, bzw. eine korrigierte Auflistung der Veweisziele im Backend erreicht.

Aufgrund von einen gemeldeten Problemfall ist aktuell nicht sicher, ob diese Erweiterung mit allen anderen Erweiterungen fehlerfrei arbeitet.

Was noch?

Neben der Vorschau wird der aktuelle gewählte Startpunkt einer Webseite auch für die Filterung von createPageList verwendet. Diese wird z.B. beim Anlegen eines Hyperlinks in dem Tool Fenster zur Link-Adresse genutzt. Statt nur die Ziele passend zur aktuellen Anmeldedomain zu zeigen, wird jetzt passend zur aktuellen Startseite gefiltert.

Zusätzlich wird bereits die fehlerhafte Ermittlung der Backend::createPageList für nicht Admins (siehe Ticket #2387) korrigiert.

Ansichten
Meine Werkzeuge

Contao Community Documentation

Andreas, leg dich da hinten hin und schlaf, dann kommen wir vorwaerts.

Tristan Lins
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge