Blog



Podcasting mit ewm

In meinem privatem Blog [Link entfernt, weil Linkziel leider nicht mehr verfügbar] habe ich eine kleine Podcastreihe [Link entfernt, weil Linkziel leider nicht mehr verfügbar] gestartet. D. h. neben dem Blog-Beitrag soll immer eine MP3-Datei mitgeschickt werden. Das ist mit ewm Bordmitteln zu machen. Hier will ich erklären wie. 8-)

Zuerst muss die Datei mal hochgeladen werden. Das passiert einfach über Dateien unter einem beliebigen Namen. Um den Namen dann beim Beitrag angeben zu können, machen wir einen insertcode Bereich in der Blog-Vorlage. Diese soll dann einfach den Namen der Datei aufnehmen. Ist ein Name angegeben, dann wird er benutzt, sonst bleibt alles beim Alten. Es zählt dabei der selbst vergebene Name und nicht der Dateiname.

Im Blog soll die Datei zum Download angeboten werden, aber auch direkt ein Flash-Player zum abspielen. Ich habe einen freien Player im Internet gefunden und die SWF-Datei als Datei flashmp3player hochgeladen. Die Parameter (flashvars) sind darauf angepasst.

Beispielcode:
{if="insertcode:audiofilename"}
<object width="240" height="64" codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">
  <param name="movie" value="{file="flashmp3player"}"/>
  <param name="quality" value="high"/>
  <param name="flashvars" value="src={[0]file=""}&amp;autostart=no&amp;loop=no">
  <embed width="240" height="64" src="{file="flashmp3player"}" quality="high" flashvars="src={[0]file=""}&amp;autostart=no&amp;loop=no" />
</object><br/>
<a href="{[0]file=""}">MP3 Download</a> ({[0]filesize=""} Byte)
{end}

Die eckigen Klammern geben die Priorität der Tags an. Zuerst muss jeweils der Dateiname über insertcode eingefügt werden, dann erst die file-Tags bearbeitet werden. Deswegen die höhere Priorität bei insertcode.

Im RSS-Feed soll die Datei dann als enclosure mitgeschickt werden. Hier ändern wir das item-Template einfach wie folgt ab:
<item>
   <title><![CDATA[{title}]]></title>
   <description><![CDATA[{main}{if="insertcode:audiofilename"}
<br /><a href="{[0]file="{[9]insertcode="audiofilename"}"}">MP3 Download</a> ({[0]filesize="{[9]insertcode="audiofilename"}"} Byte)
{end}]]></description>
   <link><![CDATA[{link="url:full;type:static;"}]]></link>
   <pubDate>{pubdate}</pubDate>
   <guid isPermaLink="true">{link="url:full;type:static;"}</guid>{if="insertcode:audiofilename"}
   <enclosure url="{[0]file="{[9]insertcode="audiofilename"}"}" length="{[0]write="exchange('{[3]filesize="{[9]insertcode="audiofilename"}"}','.','')"}" type="audio/mpeg" />
{end}</item>

So, damit bekommt der Feed auch einen Download-Link und zusätzlich die Datei über den enclosure-Tag mitgeschickt. Podcatcher können so die Dateien automatisch herunterladen.

Das ist übrigens so alles fest auf MP3 Dateien festgelegt. Natürlich könnte man das auch für verschiedene Medientypen anpassen und mit dem fileext-Tag je nach Typ verschieden behandeln.

Dieser Artikel wurde veröffentlicht am 22.09.2007 um 16:24 Uhr. Noch kein Kommentar.

Vorbelegung neuer Seiten

Das Update von heute bringt als wichtigste Neuerung die Vorbelegung einiger Daten bei neuen Seiten. Wie zur Zeit üblich, hat das wieder was mit bloggen zu tun. 8-)

Fängt man einen neuen Artikel im Blog an, so soll der erstmal nicht sichtbar sein, bis er fertig ist und publiziert wird. Theoretisch könnte sonst auch bei einem halbfertigen Artikel der RSS-Feed abgerufen werden. Daher ist es sinnvoll, Aktiv bei neuen Artikel abzuschalten. Außerdem gibt es für Blog-Artikel eine eigene Vorlage und auch ein eigenes Schema, wo die statischen Seiten abgelegt werden. Zumindest bei mir.

Nun trägt man in tree.ini Beispielsweise ein:
[Blog]
Template=main-blog
InMenu=0
Aktiv=0
static_file=/blog/{name}.html

Das führt dazu, dass bei neuen Unterpunkten zu Blog die Vorlage main-blog gewählt wird. Die neue Seite ist nicht aktiv und nicht im Menü. Außerdem ist der Name der statischen Seite /blog/ + Name der Seite + .html. Zusätzlich zu {name} könnte man auch noch {lfd} verwenden. Etwas anderes habe ich erstmal nicht gemacht. Wenn jemand Sonderwünsche hat, bitte her damit.

Einen neuen Blog-Eintrag startet man nun also einfach durch Auswahl der Blog-Startseite im Baum und Klick auf Neu. Fehlt eigentlich nur noch der Publish-Knopf und es wäre richtig komfortabel. 8-)

Dieser Artikel wurde veröffentlicht am 14.08.2007 um 16:33 Uhr. Noch kein Kommentar.

ewm und TAS

Nachdem Thomas es bereits verraten hat [Link entfernt, weil Linkziel leider nicht mehr verfügbar], will ich nun auch nicht weiter mit Infos geizen. Es gibt eine Integration von TAS innerhalb ewm. Konkret bedeutet das, man kann TAS-Code innerhalb von Seiten verwenden, die mit ewm erstellt werden. Also Beispielsweise einfach eine Datenbanktabelle anzeigen.

Die entsprechenden Seiten werden dann mit der Endung esp gespeichert und immer dynamisch vom tdb Application Server (=TAS) ausgeführt.

Dabei ist zu beachten, das ewm nicht TAS enthalten wird, sondern lediglich die Benutzung erlaubt. D. h. es wird quasi TAS unterhalb einer ewm Installation betreiben und ist weitgehend unabhängig davon. Das hat den Vorteil, dass beides relativ unabhängig voneinander gewartet werden kann.

Geplant ist diese Funktion für ewm5, aber bereits in ewm4 enthalten. Allerdings ist das inoffiziell, verraten Sie es einfach nicht weiter. 8-)


TAS-Modus Aktivieren

Um mit TAS/ESP innerhalb von ewm arbeiten zu können, muss ein vollständiger TAS in das ewm-Verzeichnis kopiert werden und der TAS-Modus aktiviert werden.

  • Legen Sie eine lauffähige TAS-Installation an
  • Erzeugen Sie einen Context ewm ohne Authentifizierung und mit ../../database/ als DatabaseLocation
  • Kopieren Sie das komplette Verzeichnis in das ewm-Verzeichnis
  • Achten Sie darauf, dass Verzeichnisse vor unberechtigtem Zugriff geschützt sind
  • Tragen Sie in ini/eforia.ini ein:
    [tas]
    enabled=1
  • Tragen Sie in ini/cms.ini ein:
    [SYSTEM]
    esp=1
  • Tragen Sie in ini/editor.ini unterhalb von [PANEL]
    esp=1
    ein
  • Legen Sie in der .htaccess-Datei im Hauptverzeichnis die folgende ReWrite-Regel an:
    RewriteEngine on
    RewriteRule (text\/)?(.*\.esp)$ programm/esp.prg?ewm/$2 [L,QSA]

Funktionsweise:
Wenn Sie eine Seite als ESP kennzeichnen, wird diese vor der Ausgabe durch esp.prg aus dem TAS ausgewertet. Bei statischen Seiten, werden diese mit der Endung esp in webapps/ewm statt text gespeichert, wobei ewm so tut, als lägen die Dateien wie gewohnt im Verzeichnis text. Die entprechende ReWrite-Regel sorgt dann dafür, dass diese Seiten über den TAS ausgeliefert werden.


Hinweise zur main-Vorlage

Normalerweise baut der TAS aus einer ESP-Seite eine komplette HTML-Seite. D. h. es ist nicht notwendig eine komplette HTML-Seite zu erzeugen, sondern lediglich der Teil innerhlab des HTML-BODY muss angegeben werden.

Verwaltet man eine Website mit ewm, ist es jedoch oft gewünscht auch weiterhin den Rahmen durch die main-Vorlage ausgeben zu lassen. Das ist möglich, wenn der TAS angewiesen wird im sogenannten plain-Modus zu arbeiten. Dieser wird aktiviert mit <#document.mode=plain#>.Allerdings sollte man dann gewisse Platzhalter in den HEAD der Vorlage einfügen, um alle Funktionen des TAS benutzen zu können.

Dies ist auch sehr einfach dynamisch möglich so, dass die Vorlage sowohl bei aktiverten als auch deaktiviertem ESP-Modus richtig arbeitet. Fügen Sie dazu einfach im HEAD-Bereich der main-Vorlage folgenden Code ein:
{if="getrfield(cms_web,'ESP')=1"}
{::espDefaultCSS::}
{::espDefaultJS::}
{::espCustomCSS::}
{::espCustomScript::}
<#document.mode=plain#>
{end}


Wichtig: Der Codeblock darf nicht innerhalb eines Style oder Script-Blockes stehen.


Der Lohn der Mühe ist dann z. B. sowas wie Thomas hier mit einer Tabelle [Link entfernt, weil Linkziel leider nicht mehr verfügbar] oder einem Formular [Link entfernt, weil Linkziel leider nicht mehr verfügbar] zeigt. Normalerweise gestaltet er ja schöner, aber ist ja nur eine Demo. 8-)

Dieser Artikel wurde veröffentlicht am 14.08.2007 um 14:06 Uhr. 2 Kommentare.

Pingback

Das heutige Update ermöglicht ewm5 das senden von Pingbacks. Das ist im Prinzip sowas ähnliches wie Trackbacks und dient dazu, verlinkte Webseiten über den Link zu informieren. Bei der automatischen Trackback-URL Erkennung werden Pingback-URls mit einem ping: angezeigt.

Empfangen kann ewm Pingbacks noch nicht. Ich bin momentan noch nicht mal sicher ob das überhaupt wichtig ist.

Eine weitere Einschränkung gibt es: Die Zielseite kann die Pingback-URL im Head-Bereich der Seite oder im HTTP-Header übergeben. Der HTTP-Header wird im Moment noch nicht durchsucht.


Dieser Artikel wurde veröffentlicht am 13.08.2007 um 14:42 Uhr. Noch kein Kommentar.

Beta-Update: Neues Modul FeedPeek

Heute gab es wieder mal ein kleines Update für die ewm5-Beta. Der Viewer (o.prg) kann nun auch mit Angabe der Laufenden-Nummer der anzuzeigenden Seite aufgerufen werden. Also .../programm/o.prg?lfd=123.

Das ging zwar bisher auch im Format .../programm/o.prg?pos=lfd:123, aber der Doppelpunkt im Parameter ist eigentlich nicht ganz Standardgemäß.

Warum das Ganze?

Das Comment-Modul hat bisher per pos= verlinkt. Hat man aber einen neuen Blog-Beitrag eingefügt, änderte sich die Position der folgenden Einträge. Die statische Seite bekommt das nicht mit und das Formular läuft ins Leere. Genau das ist Cem Basman [Link entfernt, weil Linkziel leider nicht mehr verfügbar] passiert, der es freundlicherweise mir gemeldet hat.

FeedPeek

Die eigentliche Neuheit ist aber das kleine Modul feedpeek. Das zeigt Einträge aus dem RSSReader an. Damit kann man also beispielsweise Feeds von anderen Seiten abfragen und auf der Eigenen anzeigen. Ich mache das nun auf der Startseite von tdb.de. Wie das aussieht, kann man dem Screenshot (die Leiste die hier links kommt) entnehmen.

Sidebar auf tdb.deUm FeedPeek benutzen zu können, muss allerdings erstmal der RSS-Reader installiert werden. Dieser ist Teil von eforia-Base [Link entfernt, weil Linkziel leider nicht mehr verfügbar] und liegt dort im schedul-Verzeichnis. Er bringt die 2 Datenbanken rssf und rssfi mit und benötigt außerdem iconv im system-Verzeichnis.

Empfehlenswert sind 2 Einträge in schedul.ini, damit der RSSReader auch die Feeds aktuell hält aber nicht zu viele Einträge ansammelt. Das kann dann so aussehen:

program_7=rssreader.prg -refresh -doublecheck
dir_7=../schedul
next_start_7=08.08.2007 17:00
every_min_7=60

program_8=rssreader.prg -garbagecollection maxitem=20
dir_8=../schedul
next_start_8=09.08.2007 03:00
every_min_8=1440


Um neue Feeds aufzunehmen auf Kommandozeilenebene den Reader mit Option add starten. Beispiel:
../bin/tdbengine rssreader.prg -add http://www.eforia.de/custprg/rss.prg


So, damit sind die Feeds vorhanden, fehlt noch die Anzeige mit FeedPeek.

FeedPeek benötigt eine Vorlage. Wir nennen diese feedpeek/blog. Diese ist sehr simpel aufgebaut:
{block}
{date} {time} Uhr: <a href="{link}">{title}</a><br />
{/block}

Alles zwischen {block} und {/block} wird pro Eintrag ausgeführt. Die vier Platzhalter erklären sich von selbst.

Aufgerufen wird FeedPeek dann so:
{execmacro="feedpeek" param="template=blog;feed=http://www.eforia.de/custprg/rss.prg;count=3"}

template= bestimmt die Vorlage
feed= gibt den Feed an
count= gibt die Anzahl auszugebender Datensätze an.

So, ich weis, das die Erklärung ein wenig knapp ist. Ich gehe mal einfach davon aus, dass jemand der FeedPeek nutzen möchte, bereits weis was ein Feed ist. Sonst käme man ja vermutlich erst gar nicht auf die Idee Feeds nutzen zu wollen. 8-)

Falls Fragen auftauchen, auch zum RSSReader, stehen die Kommentare offen.

Dieser Artikel wurde veröffentlicht am 08.08.2007 um 16:45 Uhr. Noch kein Kommentar.

Bloggen mit ewm - Abschluss

Zum Schluss noch ein paar Tipps zum richtigen Umgang mit ewm zum bloggen.

Wenn ein neuer Artikel veröffentlicht wird, soll dieser ja auch auf der Blog-Startseite erscheinen. Doch diese ist statisch angelegt und weis ja erstmal nichts von dem neuen Artikel. Ebenso wird der bisherige erste Artikel zum zweiten und müsste dann einen Link zum ersten bekommen. Um das zu lösen kann man entweder die Einstellungen der statischen Seiten so wählen, dass diese alle paar Minuten (15 sollten reichen) aufgefrischt werden, oder man stößt den Vorgang über die Funktion in Tools an. Das mache ich im Moment so. Später soll das mal besser gelöst werden. Ich bin noch am überlegen wie das am besten zu machen ist. Ich denke da an eine Art Makros, die man hinterlegen kann.

Bei neuen Kommentaren gibt es das Problem übrigens nicht. Das Comments-Modul frischt die jeweilige Seite automatisch auf. Lediglich wenn ein Kommentar über die Administrations-Oberfläche manuell geändert wird, muss die entsprechende Seite auch wieder regeneriert werden.

Für allgemeine Tipps kann ich das Schreibprojekt Blogtipps für Einsteiger von Jan im Upload-Magazin [Link entfernt, weil Linkziel leider nicht mehr verfügbar] empfehlen.

Dieser Artikel wurde veröffentlicht am 25.07.2007 um 15:17 Uhr. Noch kein Kommentar.

Bloggen mit ewm - Trackback senden

Trackbacks sind ein wichtiger Bestandteil der Blogosphäre. Dadurch entsteht die enge Vernetzung.

ewm5 kann von jeder Seite aus Trackbacks senden. Nicht nur von Blog-Postings aus. Dazu gibt es oben rechts den Button Send Trackback. Dieser durchsucht die aktuelle Seite nach ausgehenden Links und zeigt diese an. Daneben kann man für jeden Link die zugehörige Trackback-URL angeben. Ein Button Get URL ermittelt diese aber auch automatisch. Beim Klick auf Send wird schließlich der Trackback an diese URL gesendet. Es wird immer eine Meldung angezeigt, die über den Erfolg oder aufgetretene Fehler informiert.


Dieser Dialog hat im Moment noch gewisse Nachteile. Es werden beispielsweise alle Links angezeigt, die die Seite enthält. Wenn nun ein Footerlink auf jeder Seite enthalten ist, oder gar eine umfangreiche Blogroll, so werden alle diese Links immer wieder angeboten. Außerdem muss man im Moment noch jeden Trackback einzeln senden. Es gibt zwar bereits einen Button um alle automatisch zu senden, diesen habe ich aber einfach im Quelltext versteckt, weil ich derzeit noch gerne bei jedem Sendevorgang einzeln Feedback bekommen möchte.
Derzeit wird auch noch nicht gespeichert, welche Trackbacks bereits gesendet wurden. Das muss in Zukunft noch alles ein wenig eleganter gelöst werden.

Gesendet wird übrigens der Titel des Artikels, die URL ein Excerpt und der Blog-Name. Titel und URL sind klar, der Excerpt wird aus dem Text gewonnen. Wie es der Standard vorsieht, werden dafür maximal 255 Zeichen um den Link herum ausgeschnitten. Wobei ich bei bewussten Trennern im Quelltext, wie Absätzen oder Trennlinien ebenfalls abschneide. Der Blog-Name wird in trackback.ini angegeben.

Wichtig ist, dass die Seite bereits veröffentlicht - also gespeichert - wurde, bevor man Trackbacks sendet. Die empfangenden Blogs sehen in der Regel unter der URL nach, ob sich tatsächlich ein Link auf sie befindet. Wenn nicht, wird der Trackback als Spam eingestuft.

Dieser Artikel wurde veröffentlicht am 25.07.2007 um 14:19 Uhr. Noch kein Kommentar.

Bloggen mit ewm - Vorlagen

Wie im vorigen Artikel angesprochen, ist es äußerst empfehlenswert eine eigene Vorlage für Blog Artikel zu generieren. Diese besteht im Prinzip aus der Orginal-main-Vorlage, die in einigen Punkten abgewandelt wurde.

Ein wichtiger Punkt ist die Sidebar. Diese habe ich in eine extra Vorlage blog-sidebar gelegt und binde Sie im Haupt-Template mit {template="blog-sidebar"} ein. Sie sieht so aus:

{graphic="horst/mit-eforia"}<br />
<div style="text-align:justify;">
Hier bloggt Horst Klier mit und über eforia web manager und was dazugehört (HTML, Javascript, Internet, Webdesign, Such- maschinenoptimierung, usw.).
</div>
<br />
<a href="{link="/eforia® web manager/Blog"}" class="submenu">&gt;&gt; Zur Blog Startseite</a><br /><br />

<a class="submenu" href="../custprg/rss.prg">{graphic="div/icons/rss" border="0" align="left"} RSS-Feed<br /> abonnieren</a>
<br />
<br />
<span class="subline">Blogroll</span> (in no Order)<br />
<ul style="padding-left:24px;">
...hier sind die Links der Blogroll...
</ul>

Neben dem eigentlichen Artikel, sollen auch Links zum vorhergehenden und nachfolgenden angezeigt werden. Außerdem soll unter den Artikel eine Statusleite mit Veröffentlichungsdatum, Permalink, Trackback-URL und die eigentlichen Kommentare. Deswegen habe ich an der Stelle, wo normalerweise einfach der Platzhalter {main} steht, dieses Konstrukt:

<table width="100%" callpadding="0" cellspacing="0" border="0"><tr>
<td align="left" valign="top">{execmacro="navigation" param="dir=prev;template=prev"}</td>
<td align="right" valign="top">{execmacro="navigation" param="dir=next;template=next"}</td>
</tr></table>
<p align="justify"><img src="../images/bull.gif" width="16" height="16" hspace="4" border="0" align="absmiddle">
<a href="{link="/eforia® web manager/Blog"}" class="submenu"><span class="subline">eforia web manager Blog</span></a><br /><br />
<a href="{link}" style="text-decoration:none;"><span class="headline" style="font-size:120%;">{name}</span></a>
<hr width="100%" size="1" color="#FABF84">
{main}
<br />
<hr width="100%" size="1" color="#FABF84">
<span class="small">Dieser Artikel wurde veröffentlicht am {date} um {time} Uhr.
Tags: {write="getfield(cms_web,'Tags')"}</span>
<a href="{link="url:full;type:static"}" style="font-size:11px;">Permalink</a>
<a href="http://www.eforia.de/custprg/comments.prg?page={write="str(autorecno($cms_web))"}" rel="trackback" style="font-size:11px;">Trackback URI</a>
<hr width="100%" size="1" color="#FABF84">
<br />
<span class="subline">{[0]if="{[1]execmacro="comments" param="info={position}"}=0"}Noch kein Kommentar. Sei der Erste:{elsif="{[1]execmacro="comments" param="info={position}"}=1"}Bisher ein Kommentar:{else}Bisher {execmacro="comments" param="info={position}"} Kommentare:{end}</span>
<br />
{execmacro="comments"}

<!--
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
<rdf:Description
rdf:about="{link}"
dc:identifier="{link}"
dc:title="{title}"
trackback:ping="http://www.eforia.de/custprg/comments.prg?page={write="str(autorecno($cms_web))"}" />
</rdf:RDF>
-->

Der untere rdf-Block soll es für andere Blogs möglich machen, die Trackback-URL automatisch zu erkennen. Wordpress arbeitet aber nicht damit, dort sind sind die Trackback-URls meist sichtbar angegeben und mit rel="trackback" gekennzeichnet. Das habe ich ebenfalls übernommen.

Fehlt nur noch eines in der Vorlage. Wir wollen es ja für den Anwender so bequem wie möglich machen. Dazu gehört auch, dass der Browser direkt den RSS-Feed finden kann. Dazu erweitern wir den Head um eine kleine Zeile:
<link rel="alternate" type="application/rss+xml" title="RSS" href="http://www.eforia.de/custprg/rss.prg" />

So fertig. Nun darf gebloggt werden. Was noch fehlt ist das senden von Trackbacks. Dazu folgt noch ein eigener Artikel.

Dieser Artikel wurde veröffentlicht am 25.07.2007 um 11:22 Uhr. Noch kein Kommentar.

Bloggen mit ewm - Das Prinzip

Bloggen mit ewm, wie ist das gedacht? Die Module sind nun alle bekannt, aber was macht man damit?

Nun, grundsätzlich werden Blog-Artikel so geschrieben wie normale Seiten auch. Man legt also einen Menüpunkt mit dem Namen "Blog" an und dort die Unterpunkte sind dann die eigentlichen Blog-Artikel. Der Punkt Blog bekommt einen Aufruf des Moduls Overview, um die Unterpunkte direkt aufzulisten:
{execmacro="overview" param="name=blog;step=10;"}

Die eigentlichen Blog-Artikel, werden zum Veröffentlichen zwar auf "Aktiv" aber nicht "In Menu" gesetzt. Denn Blog-Artikel sollen ja nicht direkt über das Menü zu erreichen sein. Gerade wenn es mehr Artikel werden, A Mega Turbo Leit-Blogger Robert hat z. B. schon 8000. Da macht nun auch die neue farbliche Darstellung im Baum Sinn. Veröffentlichte Blog-Artikel werden blau dargestellt, welche die noch nicht veröffentlicht sind grau (Aktiv=Nein).

Und eine weitere Neuerung im Baum spielt eine Rolle. Denn würden im Baum tatsächlich mal 8000 Artikel erscheinen, wäre das nicht so sehr übersichtlich. Deshalb gibt es eine maximale Anzahl Punkte im Baum. Werden es mehr, kann geblättert werden. Das sieht dann so aus: 
      

Hier im Beispiel ist die Anzeige auf 10 Elemente begrenzt. Normalerweise ist der Wert auf 40, das kann ich zumindest bei mir noch prima darstellen. In tree.ini kann der Wert aber an die eigenen Vorlieben angepasst werden.

Wie man sieht, werden neuere Artikel oben eingefügt. Deshalb auch die neue Auswahl, beim Anlegen neuer Punkte:



Blog Artikel sollten mit der richtigen Uhrzeit veröffentlicht werden. Deshalb gibt es neben dem Datum/Zeit-Feld ein kleines Symbol, was automatisch die aktuelle Uhrzeit einsetzt. Daneben ist ein Feld für die Tags. Derzeit werden diese nur vom RSS-Modul und Overview ausgewertet, aber später kommen sich noch weitere Module hinzu.


Statische Seiten:
Blog-Artikel sollten eine dauerhaft gültige Adresse besitzen, den sogenannten Permalink. Im ewm erreichen wir das ganz einfach, indem wir die Artikel als statische Seiten veröffentlichen. Das ist sowieso empfehlenswert. Ich habe die Blog-Hauptseite als /blog/index.html abgelegt. Dadurch kann das Blog über die URL http://[www.welche-domain-auch-immer.de]/blog erreicht werden. Die Artikel selbst lege ich dann nach dem Schema /blog/artikelname.html an. Momentan muss der Name noch per Hand entsprechend geändert werden, da ewm sonst im Unterverzeichnis text die Seiten generieren würde. Das soll später mal automatisch gehen.

Ich verwende auch eine eigene Vorlage für Blog-Artikel, die einige Extras wie die Sidebar enthält. Dazu in einem späteren Artikel mehr.

Dieser Artikel wurde veröffentlicht am 25.07.2007 um 10:31 Uhr. Noch kein Kommentar.

Bloggen mit ewm - Comments

In unserer Reihe der Module, die ewm zum bloggen bringen, fehlt noch eines: Comments.

Comments ist für die Kommentare zuständig und nimmt auch Trackbacks an. Der Aufruf ist einfach:
{execmacro="comments"}

Wobei auch noch ein Parameter möglich ist. Dieser enthält 4 Buchstaben: ctmf
Diese geben die Ausgabe an.
c: Kommentare
t: Trackbacks
m: Message
f: Formular

Will man Beispielsweise zuerst das Formular und dann die Kommentare und Trackbacks benutzt man:
{execmacro="comments" param="mfct"}
(Das m für Message gibt dem Anwender wichtige Hinweise, z. B. ob sein Kommentar gespeichert wurde und sollte nicht fehlen)

Eine weitere Möglichkeit ist die Abfrage auf einer Seite abgegebener Kommentare. Dazu benutzt man
{execmacro="comments" param="info=pos:1.2.3"}

Man enthält die Anzahl der Kommentare auf der Seite 1.2.3 zurück. Das ist nützlich, wenn man z. B. auf der Übersichtsseite gleich die Anzahl der Kommentare anzeigen will.

Das Modul benötigt eine ganze Reihe von Vorlagen. Ich liste diese nachfolgend auf, so wie sie hier im Blog benutzt werden.

comment/error/captcha
<a name="message"></a>
<span class="headline" style="font-size:24px;">Falscher Code. Bitte versuchen Sie es erneut.</span><br />
Diese Vorlage wird ausgegeben, wenn der CAPTCHA-Code falsch angegeben wurde.

comment/error/twice
<a name="message"></a>
<span class="headline" style="font-size:24px;">Ihr Kommentar wurde bereits gespeichert. </span><br />
Falls der Anwender versehentlich einen Kommentar doppelt absendet, erhält er diese Antwort.

comment/form
<span class="headline">Neuen Kommentar verfassen:</span>
<form action="{action}&#message" method="POST">
<table callpadding="0" cellspacing="0" border="0">
<tr><td>Name:</td><td><input type="text" id="fieldName" name="Name" value="{Name}"></td></tr>
<tr><td>Email:</td><td><input type="text" id="fieldMail" name="Mail" value="{Mail}"> <span class="small">(wird nicht veröffentlicht)</span></td></tr>
<tr><td>Website:</td><td><input type="text" id="fieldWebsite" name="Website" value="{Website}"></td></tr>
<tr><td valign="top">Text:</td><td><textarea name="text:Text" rows="5" cols="40">{Text}</textarea></td></tr>
<tr><td>&nbsp;</td><td><input type="checkbox" name="InformAboutNewComments" {InformAboutNewComments}> Bei neuen Kommentaren per Email benachrichtigen</td></tr>
<tr><td>&nbsp;</td><td><input type="checkbox" name="store" {store}> Angaben (Name, Email, Website) speichern</td></tr>
<tr><td valign="top"><br>Code:</td><td>{captchaimage}<br /><input type="text" name="captcha"> (Bitte Code von oben eingeben)</td></tr>
<tr><td>&nbsp;</td><td><input type="submit" name="send" value="Absenden"></td></tr>
</table>
</form>
<script>
function getCookie(name){
// Cookie-Wert auslesen
  var i=0
  var suche = name+"="
  while (i<document.cookie.length){
    if (document.cookie.substring(i, i+suche.length)==suche){
      var ende = document.cookie.indexOf(";", i+suche.length)
      ende = (ende>-1) ? ende : document.cookie.length
      var cook = document.cookie.substring(i+suche.length, ende)
      return unescape(cook)
    }
    i++
  }
  return ''
};

  if (document.getElementById('fieldName').value+document.getElementById('fieldMail').value+document.getElementById('fieldWebsite').value==''){
    document.getElementById('fieldName').value=getCookie('cName');
    document.getElementById('fieldMail').value=getCookie('cMail');
    document.getElementById('fieldWebsite').value=getCookie('cWebsite');
  }
</script>
Das ist das eigentliche Formular. Wie üblich enthält es Platzhalter, um bei einer Wiederholung (falls z. B. das CAPTCHA falsch angegeben wurde) die Felder gleich wieder befüllen zu können. Das Script am Schluss befüllt die Felder aus einem evtl. vorhandenen Cookie. Das muss an dieser Stelle per Javascript passieren, weil ewm komplett mit statischen Seiten arbeitet und die Werte so nciht dynamisch pro Benutzer einfügen kann.
Genau gesagt: Ich will unbedingt mit statischen Seiten arbeiten. 8-)
Das #message hinter der Form-Action dient dazu, gleich zur richtigen Stelle nach dem Absenden zu springen. Falls ein längerer Artikel kommentiert wird, macht das durchaus Sinn.

comment/mail-inform
tdbmail
{Mail}
informer@eforia.de
Neuer Blog-Kommentar auf eforia.de
Hallo {ReceiverName},

Sie haben auf dem Blog von eforia.de kommentiert und möchten über neue Kommentare informiert werden. Es wurde ein neuer Kommentar verfasst.

Von {Name} ({Date} Uhr):
{Text}

Zum Kommentar geht es mit diesem Link:
{Url}

Falls Sie bei neuen Kommentaren nicht mehr informiert werden möchten, klicken Sie bitte den folgenden Link:
{RemoveUrl}
Wenn jemand über neue Kommentare informiert werden will, erhält er eine Mail mit dieser Vorlage.

comment/mail-inform-admin
tdbmail
{Mail}
informer@eforia.de
Neuer Blog-Kommentar auf eforia.de
Hallo Chef,

es wurde ein neuer Kommentar ({Type}) verfasst.

Von {Name} ({Date} Uhr):
{Text}

Zum Kommentar geht es mit diesem Link:
{Url}
Diese Mail geht an den Admin, wenn er das möchte, bei einem neuen Kommentar oder neuen Trackback.

comment/message
<a name="message"></a>
<span class="headline" style="font-size:24px;">Vielen Dank für Ihren Kommentar.</span><br />
Muss ich diese Vorlage erklären? 8-)

comment/remove-inform
<span class="headline" style="font-size:24px;">Sie erhalten keine weiteren Benachrichtigungen per Email bei neuen Kommentaren zu diesem Artikel.</span><br /><br />
Wenn jemand die Benachrichtigungen abonniert hat und auf den Abbestellen-Link klickt, erhält er diesen Text.

comment/view-comment
<a name="message{lfd}"></a>
{if="'{Website}'#''"}<a href="{Website}"{if="{Nofollow}=1"} rel="nofollow"{end}>{Name}</a>{else}{Name}{end} sagte am {[0]write="'{Date}'[1,10]"} um {[0]write="'{Date}'[12,5]"} Uhr:<br />
<div style="padding:8px;background-color: #eeeeee;">{Text}</div>
<hr width="100%" size="1" color="#FABF84">
So wird ein kommentar ausgegeben. Man sieht die Felder als Platzhalter. Etwas kompliziert sind die if-Abfragen, diese dienen einfach dazu unterschiedliche Ausgaben zu machen, je nachdem ob der Kommentator eine Website angegeben hat oder nicht. Und wenn eine angegeben ist, ob wir diese auf Nofollow setzen. {Date} liefert einen String mit Datum und Uhrzeit zurück, deswegen wird dieser per {write...} zerteilt dargestellt.
{lfd} liefert die laufende Nummer des Kommentars. Daadurch ist es möglich zu jedem Kommentar direkt zu springen. Besonders in den Mail-Benachrichtigungen macht das Sinn.

comment/view-trackback
<a name="message{lfd}"></a>
{if="'{Website}'#''"}<a href="{Website}"{if="{Nofollow}=1"} rel="nofollow"{end}>{Name}</a>{else}{Name}{end} trackbackte am {[0]write="'{Date}'[1,10]"} um {[0]write="'{Date}'[12,5]"} Uhr:<br />
<div style="padding:8px;background-color: #eeeeee;">{Text}</div>
<hr width="100%" size="1" color="#FABF84">
Das gleiche wie für Kommentare nun für Trackbacks.

Das waren die Vorlagen. Am besten einfach übernehmen und an die eigenen Bedürfnisse anpassen.

Fehlt noch die comments.ini:
[comments]
moderateall=1 // when 1, all comments are stored with Hidden=1. Admin has to remove this first before the comment is shown. This is for spam protection.
allowhtml=0 // when NOT 1 all HTML and eforia tags will be converted when saving a message
// more info: i want use html and eforia tags in comments. Iam the admin and i know what iam doing. But i dont want that users cant use it. So it shall not possible to enter html and eforia tags, but it should possible that i edit comments and use it then.
// so in generall html shall be simply output at viewer, but it should not be entered.
// I think a simple converting < and > to &lt; and &gt; and { to /{ should be help when saving the form.
// when allowhtml=1 this conversion shall not be done
inform=hk@tdb.de // Send a mail to this address, when a new comment is added
nofollow=0 // New comments get default nofollow=no

[trackbacks]
moderateall=1 // when 1, all trackbacks are stored with Hidden=1. Admin has to remove this first before it is shown. This is for spam protection.
allowmissingbacklink=0 // Normal trackbacks with no backlink get hidden=1. When allowmissingbacklink=1 then trackbacks with no backlinks are allowed.
Name={blog_name}
Text=<span class="highlighted">{title}</span><br>{excerpt}
inform=hk@tdb.de // Send a mail to this address, when a new trackback is added
nofollow=1 // New comments get default nofollow=yes

Die Einstellungen sind den Kommentaren bereits zu entnehmen. Lediglich Name und Text bei den Trackbacks ist offen. Wenn ein Trackback empfangen wird, werden die Informationen blog_name, title und excerpt übertragen. Hier wird nun angegeben wie diese Informationen in der eigenen Datenbank gespeichert werden. Im Beispiel wird also der blog_name als Name übernommen und der Text mit title als Überschrift und excerpt gebildet.

Verwaltet werden die Kommentare und Trackbacks über Tools/Comments.


Das war ganz schön viel. Ich würde vorschlagen, einfach mal alles zu übernehmen und dann anzupassen. Im Prinzip läuft ja mit diesen Vorlagen schon mal alles.

In Kürze (morgen will ich nicht schreiben, es könnte ja sein, dass ich nicht dazu komme 8-) ) gibt es dann noch eine Anleitung, wie aus den einzelnen Modulen ein Blog wird.

Dieser Artikel wurde veröffentlicht am 24.07.2007 um 17:11 Uhr. Ein Kommentar.
Zeige 31 - 40 von 44
Anfang Zurück Vorwärts Ende


Hier bloggt Horst Klier mit und über eforia web manager und was dazugehört (HTML, Javascript, Internet, Webdesign, Such- maschinenoptimierung, usw.).

>> Zur Blog Startseite

RSS-Feed
abonnieren


Übersicht über alle Beiträge



eforia® ist ein eingetragenes Markenzeichen.
Alle anderen Marken und Markenzeichen gehören Ihren jeweiligen Besitzern.
Letzte Aktualisierung dieser Seite: 20.04.2024 / 05:46:24
Suche  
Login / Userdaten
Impressum/Datenschutz