tlegat
I'm new here

HTML Vorschau validiert nicht mit editorId

Jump to solution

Hallo Community,

verwendet man die editorId()-Funktion, wird das HTML an dieser Stelle mit Attributen erweitert, die nicht validieren, z.B. fs-attrs, fs-editor-type.

Das hat diverse hintergründige Auswirkungen in der Arbeit:

  • das Anzeigen des Quelltextes dauert bei mir eine ganze Weile, weil ich hierbei eine automatische Validierung nutze und der Code hunderte Fehlermeldungen wirft.
  • Ich bin gezwungen, erst Seiten zu generieren, um die Seiten validieren zu können. Das erscheint mir aus konzeptioneller Sicht unglücklich, wenn man es vermeiden kann.
    • Es könnte sein, dass eine Generierung Minuten oder länger dauert, so etwas wäre für jeglichen Entwicklungs-Workflow inakzeptabel
    • Es könnte sein, dass es kein Testsystem gibt und die generierten Daten direkt live sind
  • In meinen Augen sollte sich keine Software der Entwicklung in den Weg stellen, wenn es anders geht.

  1. Könnte man nicht z.B. einen Namespace mit eigenem DTD registrieren, um diese Attribute validieren zu können?
  2. Könnte man nicht bei Verwendung von HTML5 data-Attribute verwenden?

Sicherlich müsste das CMS "herausfinden", ob eben HTML5 z.B. verwendet wird und wo das <html> Tag zur Registrierung des DTD steht, aber das wäre doch machbar, oder?

Wir haben darüber hinaus an einigen Stellen den Fall, dass wir editorId() mehrfach in einem Tag aufrufen, einmal ohne Parameter und direkt danach mit Parametern (editorName, meta). Das führt dazu, dass gleichnamige Attribute mehrfach in ein Element geschrieben werden.

CMS_SET(set_st_editorId, if(#global.preview, editorId() + " " + editorId(editorName:"meta_packagemember",meta:true), ""))$

<div class="box" $CMS_VALUE(set_st_editorId)$>

Handelt es sich dabei um einen Implementierungs, bzw. Verständnisfehler unsererseits oder ist auch dies ein Punkt, der zu behandeln ist?

Viele Grüße,

Tibor Legat

0 Kudos
1 Solution

Accepted Solutions

Hallo Tibor,

genau. Wenn im Server-Manager das Metadaten-Template gesetzt ist, kann man im ContentCreator unter Inhalte > Metadaten bearbeiten die jeweiligen Metadaten der aktuellen Seite verändern.

In Bezug auf Seiten ist das, wie Du richtig bemerkt hast, redundant, aber Du kannst meta:true auch auf Absatzvorlagen (Sectiontemplates) und Medien anwenden (s.Dokumentation, Parameter für editorId()-Aufrufe: http://www.e-spirit.com/odfs51/Vorlagenentwicklung/Vorlagensyntax/Funktionen/in-Anweisungen/editorId...).

Außerdem: Wenn Du den editorName angibt, dann nimmt er auch das entsprechende Formular. Insofern sehe ich da keine Unstimmigkeit, sondern nur mehere Wege, die nach Rom führen Smiley Wink.

Grüße Marian

View solution in original post

0 Kudos
5 Replies
marza
I'm new here

Hallo Tibor,

welchen HTML-Validator verwendest Du?

Zu Deinem Code-Auszug:

- #global.preview ist an der Stelle nicht nötig, weil die editorId nie im Endergebnis bei einer HTML-Seite auftauchen wird, sondern nur im ContentCreator

- Es müsste folgender Code reichen: [...]<div class="box" $CMS_VALUE(editorId(editorName:"meta_packagemember",meta:true))$>[...]

Weitere Informationen zum EditorId findest Du in der offizielen Dokumentation:

http://www.e-spirit.com/odfs51/Vorlagenentwicklung/Vorlagensyntax/Funktionen/in-Anweisungen/editorId...

Grüße

Marian Zaplatynski

Hallo Marian,

ich nutze das Firefox Plugin HTML Validator (0.9.5.8) mit Tidy Algorithmus. Prinzipiell sollte aus meiner Sicht - wie gesagt - auch der Content Creator Code vernünftig aufgebaut sein, so dass man nicht erst generieren muss.

Danke für den Hinweis bzgl. der einfacheren Implementation von editorId. Nur um es besser zu vestehen, wie editorId funktioniert:

- der Aufruf ohne Parameter erlaubt eigtl. das Content Highlighting und InEdit auf der Absatz-, bzw. Seitenvorlage, richtig?

- der o.g. Aufruf ermöglicht das Editieren von Metainformationen auf dem Element meta_packagemember (was bei uns über den Metadaten-Reiter auf jeder Seite vorhanden ist).

Sind das nicht zwei unterschiedliche Funktionen?

Viele Grüße,

Tibor Legat

0 Kudos

Hallo Tibor,

aus der Dokumentation (http://www.e-spirit.com/odfs51/Vorlagenentwicklung/Vorlagensyntax/Funktionen/in-Anweisungen/editorId...), Deine Annahme ist richtig:

"Wird kein Parameter übergeben, wird automatisch der aktuelle Kontext verwendet (z. B. der Absatz oder die Seite)."

Die EditorId versucht immer auf die passende Komponente zum Bearbeiten zurückzugreifen. Sollte das mal nicht wie gewünscht funktionieren, so muss man weitere Parameter hinzugeben wie meta (in deinem Fall), entity, template oder editorName, um den Kontext einzugrenzen bzw. entsprechende Hinweise liefern (s. o.g. Link).

Man sollte auch nur eine EditorId pro HTML-(Block)-Tag verwenden.

Der ContentCreator verbindet eine WYSIWYG-Ansicht mit der Quick-Edit-Eigenschaft und ist daher der beste Kompromis aus beiden Welten (Vorschau und Editor).

Für Entwickler ist der SiteArchitect interessanter, auch weil hier zwischen Inhalt, Struktur und Templates getrennt wird. Ebenfalls ist die Vorschau (wahlweise mit Firefox) im SiteArchitect sehr nahe an dem, was beim Generieren als Endresultat erzeugt wird.

Kleiner Tipp am Rande: Mit Rechte-Maus-Klick im SiteArchitect beim Betrachten der Vorschau einer Seite öffnet sich ein externer Browser, z.B. Firefox, mit dem man dann die Seite betrachten oder auch validieren kann.

Wenn Dir Features wie die Integration von Tidy oder Aufruf des W3C-Validators in FirstSpirit fehlen, steht es Dir natürlich frei, einen Feature-Request zu stellen. Ggf. kannst Du natürlich so etwas auch selbst (als Plugin) implementieren, diese Möglichkeit besteht auch:

http://www.e-spirit.com/odfs51/Plugin-Entwicklung/?community

Grüße Marian

Verstehe ich das richtig, dass ich das meta-Attribut und den gesamten Aufruf nur benötige, wenn ich die Metadaten nicht bereits im Servermanager > ContentCreator für die entsprechenden Bereiche ergänzt habe?

Da wir das getan haben, kann ich scheinbar auf den parametrisierten Aufruf verzichten, und erhalte dennoch die Möglichkeit, die Metadaten zu editieren. Ist das ein stimmiges Vorgehen?

Schönes Wochenende,

Tibor

0 Kudos

Hallo Tibor,

genau. Wenn im Server-Manager das Metadaten-Template gesetzt ist, kann man im ContentCreator unter Inhalte > Metadaten bearbeiten die jeweiligen Metadaten der aktuellen Seite verändern.

In Bezug auf Seiten ist das, wie Du richtig bemerkt hast, redundant, aber Du kannst meta:true auch auf Absatzvorlagen (Sectiontemplates) und Medien anwenden (s.Dokumentation, Parameter für editorId()-Aufrufe: http://www.e-spirit.com/odfs51/Vorlagenentwicklung/Vorlagensyntax/Funktionen/in-Anweisungen/editorId...).

Außerdem: Wenn Du den editorName angibt, dann nimmt er auch das entsprechende Formular. Insofern sehe ich da keine Unstimmigkeit, sondern nur mehere Wege, die nach Rom führen Smiley Wink.

Grüße Marian

0 Kudos