Blog 4 Umbraco 2.0.23 - Neue Beiträge vom Dashboard schreiben

Mittwoch, 23. Dezember 2009 von Immo Wache
Kategorien: Umbraco  Blog  deutsch  C#  Weihnachtskalender 

Original von Niels Hartvig

Mit der Bedienoberfläche im Umbraco - Back Office ist ist es ein Kinderspiel die Inhalte zu bearbeiten und zu verwalten. Dagegen sind doch eine Reihe von Schritte zu erledigen, bis ein neuer Blog-Beitrag im Back Office erstellt und veröffentlicht ist. Obwohl das Blog 4 Umbraco Package automatisch einen Content-Channel einrichtet, um Inhalte und Blog-Beiträge mit Microsoft Word, Live Writer oder jedem Tool anderer Anbieter, welches das MetaBlog API unterstützt, schreiben zu können, so wollen wir heute einen anderen Weg einschlagen. Das Ziel soll darin bestehen, uns einfach im Back Office anzumelden, sofort einen Blog-Beitrag schreiben zu können und dann nur noch auf einen Knopf "Veröffentlichen" drücken zu müssen. Und das natürlich mit voller Unterstützung für alle dynamischen Inhalte unseres Dokumenttyps für die Blog Posts.

Das Dashboard und die DataType API als Retter - und noch ein paar Hacks

Wieder einmal bildet das einfach zu konfigurierende und erweiterbare Dashboard von Umbraco die Lösung. Wir platzieren einfach ein Steuerelement "Blog-Beiträge erzeugen" auf dem Dashboard und veranlassen, dass der entsprechende Reiter sofort nach der Anmeldung im Back Office sichtbar wird. Das sieht dann in etwa so aus:

image_1

Zu beachten ist, dass die Eingabefelder genauso aussehen, als würden wir den Blogbeitrag auf einer Standardseite bearbeiten. Das liegt daran, dass wir die Einstellungen des Dokumenttyps benutzen und darauf über das DataType API zugreifen, um alle Metadaten der einzelnen Eigenschaften abzufragen. Das bedeutet aber auch, falls wir zusätzliche Eigenschaften in den Dokumenttyp für Blogbeiträge einfügen oder diese verändern, dass auch diese automatisch hier übernommen werden. Im großen und ganzen ist das eine ganz einfache Geschichte, und exakt die selbe Technik, die bei AutoForm oder Doc2Form (und nebenbei bemerkt auch beim Standard-Editor) verwendet wird. Es ist wirklich ganz einfach - wären da nicht die komplexeren Datentypen Rich Text Editor und Tagging - beide weit entwickelt und beide mit fürchterlich unglücklichen Design-Entscheidungen. Es war einfach nicht möglich, die Werkzeugleiste für den Rich Text Editor zur Anzeige zu bringen und seltsame Fehlermeldungen produzierte auch der Tagging Datentyp.

Zum Glück ist Umbraco aber ein Open Source System, und so können wir natürlich den Grund finden, warum all das passiert. Der Rich Text Editor wollte einfach nicht verstehen, wo er sich befindet. Er war weder auf der gewöhnlichen Editorseite (wie beim Editieren von Dokumenten, Medien oder Mitgliedern) noch war er im Canvas-Modus. Daher konnte er keinen Platz finden, wo er denn nun die Werkzeugleiste einblenden kann. Glücklicher weise ist er komplett konfigurierbar und wir waren endlich in der Lage es ihm zu sagen. Dazu haben wir die Config-Kollektion in der tinymce-Klasse angepasst - Problem gelöst. Das einzige, was oben noch fehlt, ist der linke 140px Rand, aber das ist ein Job für einen späteren jQuery-Hack :-)

Mit dem Tagging-Datentyp war es ein bisschen schwieriger. Dieser benutzt eine ungewöhnliche Methode um herauszufinden, welche der existierenden Tags bereits markiert sind: Entweder ruft er die Abfrage-Kollektion für die Ermittlung der Id auf (wenn der Datentyp als Eingabefeld auf einer Standardseite erscheint) oder er benutzt eine Node Factory wenn es im Canvas-Modus bearbeitet wird. Dies ist offensichtlich ein altes "Erbstück" im Quelltext, da Datentypen schon lange einen einfachen Weg besitzen, um die aktuelle Id der gerade bearbeiteten Position zu ermitteln. Das hilft uns allerdings hier leider wenig, wenn das Problem im Datentyp auf die falsche Weise angegangen wurde. Glücklicherweise können wir mit Hilfe von Reflection die Abfrage-Kollektion modifizieren (das ist jetzt wirklich ein Hack!), die Id hinzufügen und voilà: Das Tagging Eingabefeld arbeitet auch.

Alles in allem war es etwas schwieriger als gedacht, und das Vorgehen hat auch hier Bereiche in Umbraco aufgedeckt, die noch weiter zu verbesseren sind. Gleichzeitig waren wir aber sehr zufrieden mit dem Endresultat und wir glauben, dass es eine sehr nützliche Technologie ist, um wie gezeigt die Editor-Funktionalität in einer Umbraco Installation weiter zu verbessern. Diese Technologie kann z.B. einfach verwendet werden, um einen Neuigkeiteneditor oder ähnliches zu erstellen. Überall wo es darum geht, schnell und einfach neue Dokumente eines bestimmten Typs zu erzeugen werden die Arbeitsabläufe für den Bearbeiter damit deutlich beschleunigt.

5 Kommentar(e) zu “Blog 4 Umbraco 2.0.23 - Neue Beiträge vom Dashboard schreiben”

  1. Jaylon schrieb:
    Kudos to you! I hadn't tohguht of that!
  2. Andi schrieb:
    You’ve got it in one. Couldn’t have put it bteter.
  3. Brandywine schrieb:
    That’s really srehwd! Good to see the logic set out so well.
  4. lcxzms schrieb:
    ffW60c , [url=http://nxburcvrsplg.com/]nxburcvrsplg[/url], [link=http://fnerechvmkrn.com/]fnerechvmkrn[/link], http://oiglutnhqxik.com/
  5. jbarwduee schrieb:
    NvJ0ys , [url=http://aqzuvrnowdcb.com/]aqzuvrnowdcb[/url], [link=http://vpkorjafjtrb.com/]vpkorjafjtrb[/link], http://eufjwnkfresf.com/

Beitrag kommentieren:


wird nicht angezeigt


optional - bitte mit http://



Bitte geben Sie den im darüberliegenden Bild erkennbaren Sicherheitscode ein, um einen SPAM-Missbrauch des Formulars zu verhindern.