myty - Handbuch für Redakteure und Administratoren

Aktuelle Info zu Sicherheitsrisiken: In den aktuellen Versionen ab 4.1. sind keine Sicherheitsprobleme bekannt.  

Vorlagen in myty

modul: basics
Release Info
Version: 3.2
SELECT SQL_CALC_FOUND_ROWS modulesfaq_questions.*, modulesfaq_answers.Version,`modulesfaq_questions`.`id`,`modulesfaq_questions`.`status` FROM `modulesfaq_questions` LEFT JOIN modulesfaq_answers ON modulesfaq_questions.id=modulesfaq_answers.modulesfaq_questions_id AND modulesfaq_answers.id=516 WHERE 1 AND modulesfaq_questions.id=346 AND `modulesfaq_questions`.`language` = 'de' AND `modulesfaq_questions`.status = 'enabled' LIMIT 0,1
Seit myty4 können Vorlagen direkt in der Datenbank des Systems gespeichert werden, aber auch das externe Speichern als Datei ist möglich. Zudem erlaubt myty4 das synchrone Speichern von Vorlagen in bis zu 5 Medientypen (HTML, TXT, XSL-FO, Flash, Mobile).
 
Vorlagen werden im Modul „Vorlagenverwaltung“ gespeichert. Der Vorlagenim-/export erlaubt das Übernehmen von Vorlagen in andere Webs und damit deren Weiternutzung.
An einer Vorlagen werden zudem: Titel, Kategorie, Projekt, Tags, Beschreibung, Autor und ein Screenshot gespeichert, was das Recherchieren und Auffinden von Vorlagen erleichtern soll. Bei der Auswahl einer Vorlage sieht der Redakteur die Vorschau und kann somit sicherstellen, dass er die richtige Vorlage gewählt hat. Bei der Erstellung der Vorlagen sollte diese entsprechend gut vorbereitet sein.
myty unterscheidet seine Vorlagen in: Vorlageseiten und Vorlageschnipsel, wobei die Seiten immer den Quellcode eine kompletten Seite abbilden und Schnipsel nur (nicht selbstständig parsebare) Quellcodebausteine darstellen.
 
a. Vorlageseiten
 
Vorlageseiten können als Quellcode in der Datenbank oder als externe Datei gespeichert werden.
 
extern eingebundene Vorlage-Dateien
 
Achtung! Sofern die Vorlagen als externe Datei gespeichert werden, ist die Einbindung der sog. Prepend und Append Datei zu Beginn und Ende erforderlich (include_once von /tycon/prepend.php zu Beginn und .. append.php am Ende).
 
Hinweis: Die Prepend sorgt unter anderem für das Parsing der myty-Tags und bindet die Werkzeugleiste im Backendmodus ein. Sollte es bei der Templateumsetzung zu Fehldarstellungen kommen, ist dies oft zuerst auf ein fehlerhaftes HTML-Grundgerüst zurückzuführen. Der Quellcode der Werkzeugleiste sorgt dann oft für ein nicht funktionieren der Seitenfunktionen.
 
Quellcode in der Datenbank
 
Die Vorlagen können jedoch auch direkt im myty in die Datenbank geschrieben werden. In einem Textfeld bzw. zuschaltbarem Code-Editor (3rdParty, optional) kann der Code bearbeitet werden. Der Vorteil dieser Methode ist, dass der Quellcode versioniert wird und dass er natürlich automatisch im Backup (nicht von myty verwaltet) der mySQL gesichert wird.
 
Hinweis: Bei besonders komplexen Quellcodes erweist sich diese Methode derzeit jedoch als unpraktisch, weil es keine Vorschlagfunktion bzw. Tag-Ersetzung gibt. In dem Fall schlagen wir vor, erst nach Fertigstellung des Projektes die Vorlagen ins System zu übertragen, um den Versionierungsvorteil zu nutzen.
 
Aufbau des Quellcodes
 
Unter bestimmten Bedingungen kann der Quellcode der Vorlageseite aus HTML/CSS W3C konform, aus myty-Tags, aus Javascript und aus PHP bestehen. Innerhalb von myty-Tags kann PHP nur bedingt verwendet werden, was auf die Reihenfolge des Parsing-Ablaufs zurückzuführen ist. Bitte lesen sie dazu „myty-Tags mit PHP-Code erweitern“.
 
Variablen
 
In der Vorlagendefinition können zusätzlich Variablen definiert werden, die bei der Verwendung der Vorlage vom Redakteur verwendet werden können, um zusätzliche Funktionen zu aktivieren. Zum Beispiel können über Variablen eine Farbset-Selektion erfragt werden, ein Ordner für eine Banner-Rotation ausgewählt werden oder Abfragen auf Datentabellen oder ggf. Kategorie Einschränkungen vorgenommen werden. Letztlich schaffen diese Variablen ein unbegrenztes Maß an Flexibilität mit nur einer Vorlage.
 
Variablen Dateien (includes)
 
Sofern die Funktionalität der Variablenabfrage über eine einfache Felddefinition hinaus geht, bzw. dort noch nicht abgebildet werden kann (Relationsabfragen, Dateimanager-Abfrage usw.) ist man auch in der Lage Dateien einzubinden in denen dieser Quellcode abgelegt wird.
 
Der Zugriff auf diese Attribute im Quellcode der Vorlage erfolgt über die Ersetzung von XXX realisiert.
 
Areas und Vorlagenschnipsel-Zuweisung
 
In einer Vorlage können, sofern Areas verwendet werden, aller erlaubten Schnipsel zugewiesen werden. Dazu muss die Vorlage erstmalig gespeichert werden, damit die Area-IDs ausgelesen werden können. Die zuzuweisenden Vorlagenbausteine müssen ebenfalls bereits vorhanden sein, damit sie Area-spezifisch zugewiesen werden können. Der Redakteur kann bei der Pflege der Inhalte dann nur die erlaubten Bausteine in die Area einfügen.
 
  1. Vorlageschnipsel/-bausteine

 
Vorlagenschnipsels/-bausteine sind nur Quellcode-Stücke, die für sich selbst nicht voll funktionsfähig sein, weil ihnen zum Beispiel Typ-deklarationen (Head, Body, Format etc.) fehlen. Vorlagenbausteine können sich jedoch auf Funktionen, Variablen aus Vorlageseiten-vorgaben beziehen oder von anderen Bausteinen. Praktischerweise können Javascripts schon im Head einer Vorlageseite definiert werden, worauf ein Baustein dann auch zugreifen kann. Diese Form kann jedoch auch ineffizient sein, weil der Baustein vielleicht gar nicht zum Einsatz kommt und deshalb ein Javascript unnötig geladen wird. Das Javascript kann also auch am Baustein sinnvoll sein. In myty4.1 wird das Vorlagenmanagement im bereich Javcript-Vorlagen erweitert, dort ist es dann möglich vorhanden Scripts den Bausteinen zuzuweisen, damit sie nur bei Verwendung überhaupt geladen werden. Das Prinzip entspricht dem des CSS-Moduls, was Styles auch nur lädt, wenn sie der Vorlageseite zugweisen sind.
 
i.      Einsatz von Schnipseln
 
Das Schnipsel-System bringt schier unbegrenzte Flexibilität in das Layout eines Projektes. myty schafft hier im besonderen Maße kreativen Spielraum, der bei der Umsetzung von Vorlagenkonzepten bedacht werden sollte. Je weniger im Rahmen der Seitenvorlage definiert wird, desto mehr Spielraum kann der Redakteur durch die Verwendung von Vorlagenbausteinen in Areas erhalten. Wenn gewünscht ist, dass der Redakteur sich in einem engen gestalterischen Rahmen bewegt, dann sollten Definitionen so gut wie möglich über die Vorlageseite abgebildet werden. Der Aufwand für den Redakteur erhöht sich proportional mit der Schaffung von Gestaltungsspielraum.
 
Vorlagen-Sets
 
Vorlagensets reduzieren den Aufwand durch Definition von Seiten mit bereits definierten Bausteinkombinationen. Der Redakteur wählt dann nicht eine Vorlage aus (ohne aktivierte Bausteine), sondern ein Vorlagen-Set mit Bausteinen und ggf. Inhalten in den verschiedenen Areas.
 
Baustein-Anordnung
 
Vorlagenbausteine werden der Reihenfolge nach innerhalb der Area, der sie zugewiesen worden sind, angezeigt. Die Reihenfolge kann der Redakteur jederzeit selbst bestimmen und verändern.
 
Hinweis: Innerhalb einer Area können Bausteine synchron, sprachbezogen aktiviert werden. Sollten Inhalte in einer bestimmten Region also nicht Verfügbar sein, wird der Baustein für diese Sprache einfach deaktiviert.
 
Der Quellcode der Vorlagenbausteine wird ohne zusätzlichen Code von myty aneinandergereiht. D.h. Designs mit „float“-Ansatz sind damit genau so möglich, wie normal untereinander angeordnete Objekte. Sofern die Area in einem fest definierten Rahmen stattfindet, sollten die zugewiesenen Bausteine HTML/CSS-seitig darauf optimiert sein. myty übernimmt dafür kein Controlling oder irgendwelche Manipulationen. Objekte mit absoluter Position können nicht ohne zu erwartende Darstellungsfehler in Standard-Areas verwendet werden. Das Area-Modul geht von einem dynamisch wachsenden Ansatz aus. D.h. im Normalfall sind alle Area in der Lage mindestens nach unten zuwachsen. Unter Umständen kann eine Area auch in der Breite wachsen, je nach HTML/CSS Modell
 
ii.      Area-Matrix
 
Die Area-Matrix ist eine Innovation von myty und erlaubt erstmalig auch das absolute Positionieren von Objekten in einem zuvor definierten Bereich.
In diesem Fall werden dem Area-Tag Wert für das Raster und das Ausmaß der Area mitgeliefert. Diese Designform bedingt, dass die Area einen festen Rahmen vorgibt, ist derzeit deshalb auch nicht dynamisch wachsend. Da die Einstellungen derzeit vom Vorlagenentwickler vorgenommen werden, kann der Redakteur derzeit keinen Einfluss auf die Größe dieses Bereiches nehmen.
 
Das Funktionsprinzip: Die Bausteine entsprechen denen einer normalen Area. Verwendet werden dürfen nur relative Positionen innerhalb eines Objektes des Bausteins. Der Baustein wird durch die Area-Funktion am Raster positioniert und erhält dynamisch eine absolute Positionierung durch ein entsprechendes Objekt (DIV). Der Redakteur ist in der Lage die Position des Bausteins im Backend selbst festzulegen. Damit der das Objekt per Drag’n’Drop an die richtigen Stelle bewegen kann, ist es erforderlich, dass das Objekt im „Vorschau-Modus“ bereits mit greifbaren Inhalt ausgestattet ist, d.h. bei einem ty:image muss ein default-Bild sichtbar sein, damit er dieses Bild „greifen“ kann. Bei Text-Feldern sollte ebenfalls Beispieltext vorhanden sein, der dann positioniert werden kann.
 
Achtung! Das Positionieren von Inhalten erfolgt WYSIWYG, d.h. der Redakteur kann nur anhand aktuell sichtbarer Inhalte entscheiden, ob die Anordnung Layout konform ist. Dynamisch wachsende Bausteine empfehlen sich in solchen Fällen nur bedingt, da sie schnell andere positionierte Elemente überlappen könnten, was in dem Falle das bearbeiten deren Inhalte im Editier-Modus unmöglich macht.
 
Positionierung von absoluten Elementen
 
Die Positionierung erfolgt durch den Redakteur WYSIWYG im Area-Popup des Backends. Da bei absoluten Element die Stapelung, also der Index entscheidend ist, wird die Reihenfolgenfunktion im Area-Modul nun dazu verwendet, den Index zu setzen. Dabei ist der erste Baustein der Liste (oben) auch über allen anderen absolut positioniert.
 
iii.      IDs in Bausteinen, Wechselbarkeit von Bausteinen
 
myty-Tags erfordern zur Identifizierung immer eine eindeutige ID. Auch innerhalb eines Bausteines darf die ID nicht mehrfach vorkommen. Während die IDs innerhalb einer Vorlageseite 1:1 in der Datenbank referenziert werden, werden den IDs innerhalb einer Area Area-spezifische Zusatz-Kennungen vergeben.
 
Erklärt am Beispiel: Die ID eines Textfeldes ist id=“text“, ist das Textfeld Bestandteil einer Vorlagenseite, so wird zu Identifikation nur noch das Topic, sowie die Sprache in der Datenbank abgespeichert. Der Text „Bitte lesen Sie auf der folgenden Seite weiter“ wird also unter: id=“text“ topic=“Newsliste“ language=“de“ in der Datenbank gespeichert. Ein Textfeld mit derselben ID innerhalb eines Bausteins in einer Area würde wie folgt abgespeichert: id=“textAreaContent1“ topic“Newsliste“ lang=“de“.
 
Da Inhalte immer mit der ID und dem Topic einer Vorlage/Bausteins verknüpft sind, könnte man also die Vorlage problemlos austauschen, wenn sie am Textfeld die gleiche ID benutzt. Sollte solche Vorgehensweise erwünscht sein, sollte für die ID-Vergabe eine klare Vorgehensweise definiert werden. Auch ein Schnipsel, der mit id=“text“ und somit mit resultierender „textAreaContent1“ id in der Area erscheint, kann durch ein Schnipsel ausgetauscht werden, welches ebenfalls id=“text“ besitzt. Alle Inhalte werden also unverändert weiter angezeigt. Gleiches gilt natürlich für ty:image, ty:imagebutton.
 
iv.      CSS von Schnipseln
 
Stylesheets können auf ebenfalls zwei Wegen in myty zum Einsatz gebracht werden. Der klassische Weg ist das Einbinden der CSS Datei/en in den Vorlageseiten. Da dort derzeit noch der gesamte Head-Bereich eingebunden wird, bleiben dem Vorlagendesigner alle bekannten Möglichkeiten offen. Stylesheets können aber auch im gleichnamigen myty Modul gespeichert werden. Dort legt man die Stylesheets Klassenweise an und weist jede Klasse direkt den gewünschten Vorlageseiten zu. Die Vorlagen erscheinen in einer Liste und stehen zur Auswahl bereit (multiselect ist möglich). Damit die Styles besser zu finden sind, werden sie zusätzlich Betitelt und Kategorisiert. Die Kategorien haben eine weitere Bewandtnis, so können zum Beispiel Zeichen- und Absatzformate direkt für die Werkzeugleiste freigeschalten und dem Redakteur zur Verfügung gestellt werden. Erforderlich ist dies beim myty web to print Workflow und eine hervorragende Hilfe ist es bei HTML Vorlageseiten.
 
Hinweis: Der XML Vorlageseiten-Import/Export ist ebenfalls in der Lage Stylesheets zu transportieren.
 
v.      Schnipsel den Areas zuordnen
 
Sofern Vorlageseiten Areas aufweisen, kann der Redakteur innerhalb einer Area auf Vorlagenbausteine zugreifen. Damit der Redakteur nicht jeden beliebigen Baustein in eine vielleicht zu kleine Area einsetzen kann, sollten die Vorlagenbausteine den entsprechenden Areas zugewiesen werden. Dies muss für jede Vorlagenseite erneut erfolgen. Sofern keine Vorlagenbausteine zugewiesen sind, werden alle angezeigt.
 
Achtung! Die Zuweisung der Vorlagenbausteine zu Areas in der Vorlageseite erfolgt in der Vorlagenverwaltung > Detailansicht einer Vorlage. Dort werden automatisch alle Areas angezeigt, die myty innerhalb der Vorlage erkennen konnte. Beim Neuanlegen einer Area muss zunächst einmal gespeichert werden, damit die Areas eingelesen werden können. Erst dann erscheinen die Area-Baustein-Zuweisungsboxen.
 
vi.      Schnipsel-Vorschau
 
Derzeit wird von myty keine eigene Schnipselvorschau generiert. Der Vorlagendesigner ist somit aufgefordert vom fertigen, ggf. mit Beispielinhalten gefüllten Vorlagenbaustein einen Screenshot anzufertigen und diesen dann nachträglich mit der Vorlage zu verknüpfen. Da es bei größeren Projekten schnell zu einer Vielzahl von Vorlagenbausteinen kommen kann, raten wir dringend zu dieser hilfreichen Nachbereitung des Projektes.
 
c. Medientypen
 
Neu in myty4 ist die Möglichkeit Vorlagen syncron in diversen Medientypen abzuspeichern. Die Idee hinter dieser Funktion ist simpel aber wirkungsvoll. Am Beispiel Newsletter-Mail soll es näher erläutert werden:
 
Ein HTML-Newsletter wird als Vorlageseite mit spezifischen Vorlagenbausteinen definiert. Die Text-Version dieses Newsletters enthält im Gegensatz dazu jedoch nur Textelemente und bei Tabellen-Elementen eine listenartige Form. Die Seitenvorlage und ihre Bausteine werden also parallel (Umschalten auf Text-Quellcode) gepflegt. Dynamische Bereich werden, sofern tatsächlich nutzbar eingebettet, so dass sie adequat in die Textmail geparst werden können. Zu beachten ist in diesem Fall allerdings, dass ein Richtext-Editor im HTML-Modus natürlich HTML-Text speichert und dieser dann in einer Textmail nicht korrekt angezeigt wird. Sinnvoll ist es in diesem Fall für die Inhaltsbereiche den html=“false“ Modus zu verwenden, damit die Inhalte neutral gespeichert werden. Die Textversion der Vorlage bildet also die volle Dynamik bei reduziertem/angepasstem Vorlagencode ab.
 
d. Quellcode
 
Bei der Umsetzung von myty ist unser erstes Ziel, dass myty nur geringfügig eigenen Code generiert. Die myty Funktionen dienen vor allem dazu, Inhalte aus der Datenbank auszugeben. Die Darstellung soll durch ein klassisches HTML-Gerüst der Vorlage hergestellt werden. Dafür ist zu 99% der Vorlagendesigner zuständig. Suchmaschinentaugliche und barrierearme Webseiten zu entwickeln, ist also nicht Teil von myty, sondern liegt allein in der Umsetzung der Vorlageseiten und Bausteine. Deren Qualität bestimmt daher den Erfolg in Suchmaschinen und besonderen Browsern. Diese Herangehensweise erlaubt Vorlagendesignern jederzeit ihr Projekt auf neue Anforderungen der Suchmaschinen zu optimieren. 
 
i.      myty Tags
 
Die für die jeweilige Version verfügbaren myty-Tags können in der Tag-Bibliothek unter http://tags.myty.de recherchiert werden. Die Modul
 
ii.      Javascript
 
Javascript kann auf die übliche Art in die Vorlage oder wenn es sinnvoll erscheint auch im Vorlagenbaustein eingebunden werden.
 
iii.      PHP
 
PHP kann jederzeit außerhalb von myty-Tag-Verschachtelungen eingesetzt werden. Innerhalb von myty-Tags muss das Tag ty:php verwendet werden, damit das Parsing das PHP zur rechten Zeit verarbeiten kann.
 
e. Vorlagenmerkliste
 
Es gibt eine weitere innovative Funktion, die auf Basis der Area-Bausteine beruht. Die Area-Inhalte-Merkliste erlaubt das Speichern von kompletten Vorlagenbausteinen mit Inhalten in einer auf der Webseite erscheinenden Merkliste für den Seitennutzer (Sessionabhängig). Die Idee ist, dass diese Inhalte zum Beispiel als Wissensblöcke zusammengefasst druckbar gemacht werden können oder als eMail an Freunde verschickt werden. Diese Funktion erlaubt völlig neue Konzepte im Bereich Content-Sharing und Arbeit mit einer Webseite.
 
f. Import/Export von Vorlagen und Vorlagenbausteinen
 
myty bietet eine Import-/Export-Funktion, die es erleichtern soll einmal angelegte Vorlagenbausteine in mehreren Projekten zu nutzen. In anderen CMS wird hier bereits von Plugins gesprochen. Das Abbilden z.B. einer Newsfunktion wird in myty jedoch nur durch ein Tabellensetup und 2 Vorlageseiten/Bausteine mit CSS realisiert. myty spricht daher nicht von Plugins oder Modulen.
Der Exportfunktion ist so angelegt, das eine Vorlage und die ihr zugewiesenen Vorlagenbausteine in einer XML samt CSS und zusätzlich Vorlagenscreenshots gespeichert werden.
Autor: Denis Bartelt
letzte Änderung: 01.09.2011
Keywords:
Vorlagen, Tag, Bibliothek
Kommentare 0
Fragen von Nutzern 0
ähnliche Themen 12

Kommentieren

 

Stellen Sie eine Frage

 

offene Fragen

Zu diesem Beitrag existieren keine offenen Fragen.

SELECT modulesfaq_questions.*, (SELECT modulesfaq_answers.id FROM modulesfaq_answers WHERE modulesfaq_answers.status='enabled' AND modulesfaq_answers.modulesfaq_questions_id = modulesfaq_questions.id ORDER BY modulesfaq_answers.Version DESC Limit 1) AS answer, (SELECT modulesfaq_answers.id FROM modulesfaq_answers WHERE modulesfaq_answers.modulesfaq_questions_id = modulesfaq_questions.id ORDER BY modulesfaq_answers.Version DESC Limit 1) AS answerCount, (SELECT COUNT(*) FROM modulesfaq_questions AS MQ WHERE MQ.Modul = modulesfaq_questions.Modul GROUP BY MQ.Modul) AS questionsByModul FROM modulesfaq_questions WHERE 1 AND modulesfaq_questions.language = 'de' AND modulesfaq_questions.status = 'enabled' AND modulesfaq_questions.Modul = 'basics' ORDER BY modulesfaq_questions.Modul, modulesfaq_questions.pos, modulesfaq_questions.Frage

Alle Beiträge zum Thema

Auf Facebook teilen