Concrete5: Entwicklung mit Concrete5: Themen verstehen/erweitern: Allgemeines zu Themen


Allgemeines zu Themes

Bearbeiten

Bei der Neuanlage einer concrete5-Seite muss zunächst ein Seitentyp angegeben werden. Eine gewöhnliche c5-Installation enthält bereits verschiedene Seitentypen mit bearbeitbaren Bereichen. Einem bestimmten Seitentypen können viele verschiedene Bereiche zugeordnet werden, z.B. Kopf-, Haupt-, und Seitenleiste. Entwickler können jedoch auch einfach neue Seitentypen, inklusive Meta-Informtionen und Vorschaubildern über das Dashboard erstellen. Diese Zusatzinformationen erleichtern anschließend die Identifikation des jeweiligen Seitenbereiches. Themes sind Vorlagensammlungen mit einem eigenen Unterordner im Themes-Verzeichnis.

Jedes Theme kann darüber hinaus eigene Unterverzeichnisse zur Ablage von Bildern, CSS-Styles und PHP-Skripten, etc. enthalten.

Liegt bereits ein Grundlayout im HTML-Format vor, kann dieses problemlos als ein Theme mit dazugehöriger Vorlage in Ihre Seite integriert werden. Stellen Sie sich die Vorlagen als View im Model/View/Controller-Pattern vor, und das Theme als eine Vorlagensammlung. Vorlagen nehmen, abgesehen von der Dateiendung .php, denselben Namen wie deren Seitentypen an. Haben Sie beispielsweise einen Seitentypen "produktinfo" hinzugefügt, dann sollte Ihr Theme dementsprechend auch die "produktinfo.php"-Vorlage enthalten. Ausnahmen bilden Seiten, bei denen Sie sicher sind, dass diese niemals mit dem Theme versehen werden sollen.

Zu guter Letzt, sprich beim Rendern einer Seite, überprüft concrete5 (besser gesagt der Controller aus dem MVC Ablaufplan) alle Instanzen einer erstellten Seite, um festzustellen welches Theme diese verwenden. Anschließend vergleicht concrete5 im Theme Verzeichnis, ob ein Template Dateinamen mit dem Seitentyp übereinstimmt. Falls keiner existiert, wird das default.php Template verwendet, welches in jedem Theme vorhanden sein muss.

Was sollte ein Seitentyp, was sollte ein Theme sein?

Bearbeiten

Es gibt keinen absolut richtigen Weg dies aufzuteilen. In früheren Versionen von concrete gab es nur Seitentypen, und es wurden teilweise dutzende reduntante Seitentypen erstellt (z.B.: Artikel blau, Artikel grün, etc.). Mit concrete5 gibt es die Möglichkeit, eine Matrizenbeziehung herzustellen, mit der viele Probleme durch mehrere Wege gelöst werden können.

Wenn sich entscheidet, wie man eine Seite baut, sollten folgende Überlegungen gemacht werden:

Zuerst, welches Grundgerüst hat man für dieses Design? Ein Blick in deren Dokumentation hilft, um herauszufinden ob es einzigartige Datenanforderungen einer Seite gegenüber einer anderen gibt. Falls ja, sollten diese absolut einzigartige Seitentypen sein. Wenn man Profil-, Produktseiten und Pressemitteilungen in einer Sitemap sieht, ist es einfach anzunehmen, dass diese einzigartige Seitentypen benötigen, da sie sich nicht nur im Aussehen voneinander unterscheiden, sondern da diese tatsächlich einzigartige Daten, wie Größe oder die Farbe eines Produktes, Datum und Textfelder für Pressemitteilungen haben werden. Also finden sie zuerst heraus, was alles einzigartig sein muss und dann sehen sie, was übrig bleibt.

Es macht einen kleinen Unterschied für einen Programmierer, ob es sich um eine Profilseite oder eine Serviceseite handelt, wenn beide nur einen langen Textinhalt mit einer Seitennavigation haben. Betrachtet man alle Instanzen und möchte diese Seitentypen im Verlauf der Zeit an einer anderen Stelle der Webseite wiederverwenden, ist es sehr wahrscheinlich, auf einen Seitentypen mit ein paar Themen zu blicken.

Wird eine Erweiterung für concrete5 erstellt, die ein Dutzend einzigartige Datenansichten (z.B.: ein Forum) benötigt, sollten den Anforderungen entsprechende Seitentypen für die Anwendungsansichten definiert werden und die Benutzer diese Datenpräsentation mit Themen individuell anpassen.

Zu viele Seitentypen in einer normalen Installation machen es allerdings schwierig die Übersicht in Hinsicht auf das Einfügen der Seitentypen an bestimmten Stellen der Webseite zu behalten.(was jedoch mit den erweiterten Berechtigungen begrenzt werden kann.) Ausserdem tendiert dies dazu, dass es im Nachhinein schwierig werden kann, seitenspezifische Anpassungen vorzunehmen. Man kann Blöcke einem Seitentypen im Dashboard per default hinzufügen, so dass diese beim Erstellen einer neuen Seite dieses Seitentypes dann automatisch eine Kopie des Blocks erhält. Diese Bulk Applikation ist sehr mächtig, aber verlangt etwas Planung in Hinsicht auf das, was letzten Endes wirklich ein einzigartiger Seitentyp sein soll.

Wie arbeiten Themen und Seitentypen?

Bearbeiten

Wird eine Webseite geladen, wird zuerst das Theme für die bestimmte Seite ermittelt. Anschließend, wird die Template Datei die zum aktuellen Seitentypen gehört bestimmt und eingefügt, falls einer dem jeweiligen Themenverzeichnis existiert. Falls kein passender Dateiname gefunden werden konnte, wird "default.php" geladen.

Die Template Datei ist HTML, CSS und PHP. Diese beinhaltet kurze PHP Aufrufe, welche die existierenden Blockbereiche für diesen Seitentyp bestimmt.

Normalerweise wird ein Entwickler als ersten Schritt sein Design in statische HTML Dateien mit einigen Bilder- und Layoutverzeichnissen packen. In concrete5 kann die ganze Verzeichnisstruktur komplett in ein neues Themenverzeichnis gestellt und schnell zur Seite hinzugefügt werden.


  1. Packen Sie Ihre komplette Seite in ein funktionierendes HTML Verzeichnis.
  2. Erstellen Sie für jeden Seitentypen eine eigene "meinseitentyp.php" Datei im Templateverzeichnis.
  3. Falls gewünscht, kann dem Verzeichnis eine 120x90 Pixel große Thumbnail Grafik hinzugefügt werden. Diese Datei sollte "thumbnail.png" genannt werden.
  4. Fügen Sie ein Datei namens "description.txt" Themenverzeichnis hinzu. Der Titel des Themes sollte in der ersten, die Beschreibung in der zweiten Zeile stehen.
  5. Laden Sie Ihr Themeverzeichnis in "/themes/new_theme" Verzeichnis Ihres Webseiten concrete5 Verzeichnis.
  6. Bewegen Sie sich im Dashboard zu Themen.
  7. Dort sollte nun das Theme angezeigt werden, mit dem jeweiligen Thumbnail als Bild unter "Themen zur Installation verfügbar."
  8. Klicken Sie auf den Installations Button.
  9. Ist das Theme installiert, wird man zum zweiten Schritt mit dem Titel "Inspect Theme" weitergeleitet. Dort kann automatisch bestimmt werden, welche Seitentypen die im Templateverzeichnis gefunden wurden, ertellt werden sollen. Beinhaltet das Theme derzeit keine speziellen Templatedateien, klicken Sie auf "Return to Themes" um zur Themenansicht zurückzukehren.
  10. Ihr Theme ist nun installiert und sollte wie die anderen unter verfügbare Themen aufgelistet werden.
  11. Um Ihr Theme für Ihre ganze Webseite zu übernehmen, klicken Sie auf den "Activate" Button und bestätigen Sie. (**Hinweis: Diese Aktion kann nicht rückgängig gemacht werden und überschreibt alle einzelnen Themenwahlen, die bei bestimmten Seitentypen gemacht worden sind.)


Falls ein Theme entfernt werden soll, klicken Sie auf den "Remove" Button neben seinem Thumbnail. Damit wird das Theme vom von concrete5's Dashboard entfernt, und sein Verzeichnis im "files/trash/" Verzeichnis abgelegt.

Jetzt sollte an jeder Stelle wenn auf den "Design" Button klickt, der entsprechende Themen Thumbnail im Themenscroller angezeigt werden, und es sollte auf allen Seiten einer Webseite verwendt werden können.