Blog



Update ewm5

Ich habe eben ein Update für die 5er Version abgestellt.

  • Neuer Kern
    Wie schon angesprochen, wurde der Kern, der für die Umsetzung der Tags in HTML zuständig ist, komplett überarbeitet. Die neue Version ist nicht 100% kompatibel. Bisher waren Konstrukte wie {link="pos:{position}"} möglich, weil das Tag {position} immer vor {link...} bearbeitet wurde. Diese interne Bevorzugung einiger Tags gibt es nun nicht mehr. Deshalb wäre nun etwa {link="pos:{[6]position}"} korrekt. Genau genommen hätte man das aber schon immer so machen sollen.
    ACHTUNG: Das Update sollte nur eingespielt werden, wenn man ein wenig Zeit hat, sein System auf solche Konstellationen zu testen und gegebenenfalls die Probleme zu beheben. Allerdings dürfte das auch nur bei komplexeren Systemen vorkommen.

  • Besseres Verhalten beim Speichern
    Bisher war es so, dass man im Firefox während eines Speichervorgangs bereits weiter klicken konnte, was dann meist zu einem Hinweis führte, dass der aktuelle Datensatz noch nicht gespeichert ist. War er ja dann auch noch nicht. Dieses etwas seltsame Verhalten ist nun nicht mehr möglich, einfach weil während des Speichervorgangs der Inhalt etwas abgedunkelt wird und keine Klicks mehr möglich sind.

  • Länge der Eingabefelder bei Neu
    Wenn man eine neue Seite angelegt hat, war das Feld auf 40 Zeichen begrenzt, obwohl eforia 60 Zeichen verwaltet. D.h. man konnte dann in einem zweiten Schritt den Namen noch erweitern, aber eben nciht direkt bei der Neueingabe. Das hat Sascha gestört, deswegen habe ich es erweitert.

  • Mehrere Blogs
    Ein Blog ist für eforia nicht anderes wie normale Seiten, die eben zeitlich gestaffelt immer oben neu hinzukommen. Zwei Hilfsprogramme sorgen dann dafür, dass bei Neueinträgen der Feed und weitere Seiten aktualisiert werden und auch, dass die Welt per Ping von dem neuen Eintrag erfährt. Die beiden dafür zuständigen Module blog-update und ping können nun in der Ini-Datei mehrere Einträge verwalten. Konkret bedeutet das: Nun sind mehrere Blogs mit einer eforia-Installation möglich.
    In der blog-update.ini gibt es dann eben statt nur [main] und [refresh] auch [main_2] und [refresh_2]. Bei ping.ini [services_2] und [main_2]. Selbstverständlich ist es nicht auf 2 begrenzt, sondern kann einfach weitergeführt werden.

  • Overview kann sortieren und suchen
    der Parameter sort= sortiert die Einträge. Das lässt sich z.B. nutzen um ein Lexikon alphabetisch auszugeben. Oder einen Kalender nach Datum. Mit {execprog} und der neuen Suchmöglichkeit, lässt sich damit beispielsweise ein Kalender mit Einschränkung nach Datumsbereich und Volltextsuche "basteln".

    Vorlage overview/kalender
    Suche:&nbsp;&nbsp;&nbsp;&nbsp; <input type="text" name="overviewsearch" value="{overviewsearch}" style="width:200px;">
    <input type="submit" name="OK" value="OK">
    </form> <!-- Form wird beim Aufruf schon geöffnet -->
    <br /><br />

    {if="'{overviewsearch}'#''"}
      <h2>Zeige nur Einträge mit dem Suchbegriff:</h2>
      <cite>{overviewsearch}</cite><br /><br />
    {end}

    {block}
    {date} {[4]if="{time}#0"}{time} Uhr{[4]end}<br />
    <h2>{title}</h2>
    {main}
    <br />
    {/block}

    Einbinden:
    <h1>Kalender</h1>
    {execprog}
      var fhAusgabe : integer
      var cVon,cBis : string
      var nVon,nBis : integer
      setpara('ec 0')
      fhAusgabe:=Rewrite('ramtext:out',0)
      if cVon:=cgigetparam('calendarvon')#'' then
        nVon:=val(cVon)
      else
        nVon:=today
      end
      if cBis:=cgigetparam('calendarbis')#'' then
        nBis:=val(cBis)
      else
        nBis:=0
      end
      if nVon<today then nVon:=today end
      if nBis>0 and nBis<nVon then nBis:=nVon end

      writeln(fhAusgabe,'<form action="{action}" method="post">')
      writeln(fhAusgabe,'<br />Zeitraum: <input type="text" name="calendarvon" value="'+DateStr(nVon)+'" style="width:70px;">')
      writeln(fhAusgabe,'- <input type="text" name="calendarbis" value="'+choice(sel(nBis=0),'',DateStr(nBis))+'" style="width:70px;"><br />')

      if nBis>0 then
        writeln(fhAusgabe,'{execmacro="overview" param="nocache;name=kalender;step=10;sort=Datum,Uhrzeit;sel=$cms_web.Datum>='+str(nVon)+',$cms_web.Datum<='+str(nBis)+'"}')
      else
        writeln(fhAusgabe,'{execmacro="overview" param="nocache;name=kalender;step=10;sort=Datum,Uhrzeit;sel=$cms_web.Datum>='+str(nVon)+'"}')
      end

      setpara('ec 1')
      close(fhAusgabe)
    {/execprog}

    Am lebenden Objekt kann man sich das hier ansehen.

Dieser Artikel wurde veröffentlicht am 22.06.2009 um 11:30 Uhr. Noch kein Kommentar.

eforia reitet mit dem Schlaupferd

Schlaupferd - Auf dieses Pferd setze icheforia reitet jetzt. Die Seite Schlaupferd setzt voll auf den eforia web manager. Interessant ist z.B. der Kalender, der inkl. Zeitraumabfrage und Volltextsuche mit dem overview-Modul gemacht ist. Ebenso wie das Lexikon und dessen Register. Die Adresssuche und der Pferdemarkt setzen voll auf Ajax, genauso wie die Profil-Funktion für angemeldete Benutzer.

Was man so hört, hat der Betreiber der Seite noch viel vor. Ich bin stolz darauf mit eforia helfen zu dürfen.

Dieser Artikel wurde veröffentlicht am 03.06.2009 um 13:52 Uhr. Noch kein Kommentar.

Mehr Cache für ewm5

ewm5 hat nun eine neue Cachefunktion. Im Prinzip ganz simpel: Es gibt ein Flag Cacheable. Dieses wird bei jeder neuen Seite auf 1 gesetzt, beim Speichern dann aber geprüft ob Tags benutzt werden, die ein Caching verhindern. Beispielsweise wenn man if-Abfragen benutzt oder - ganz einfach - die Uhrzeit ausgibt. Man kann aber auch bewusst das Flag setzen und löschen. Es versteckt sich unter "Statische Seiten", das ist etwas unglücklich, aber da war auf die Schnelle noch Platz. 8-)

Was dann mit dem Cache passiert ist wieder eine andere Sache. Konkret habe ich overview erweitert, dass dieses Datensätze mit Cachable-Flag intern zwischenspeichert. Wenn hunderte von Datensätzen auf einmal ausgegeben werden sollen, spart das eine Menge Last. Konkret kommt das bei einem Blog vor, wenn man das gleiche Tag oft benutzt und viel schreibt. Ich habe da ein solches Beispiel, dass derzeit 193 Seiten verarbeitet. Nachdem in so einer Übersicht die Texte nicht unbedingt direkt angezeigt, sondern beispielsweise mit simple gekürzt werden, kostet das doppelt Zeit. Overview cached deswegen den kompletten Block pro Datensatz und Template. Selbstverständlich wird anhand Zeitstempel dafür gesorgt, dass die Daten auch aktuell sind.

In der cache.ini kann man außerdem ein maximales Alter in Tagen für die Caches angeben:
[overview]
max_age=50000


Und weil ich sowieso schon an der Datenbank war, habe ich ein Feld aufgenommen, was die Textlänge in Zeichen speichert. Dabei werden HTML-Elemente nicht mitgerechnet sondern nur der reine Text inkl. Satz- und Leerzeichen. Mittels {chars} läßt sich der Wert ausgeben. Vielleicht hat ja der eine oder andere, der bei VG Wort Mitglied ist, dafür Verwendung. 8-)

Bevor ich ein Update abstelle, will ich auch noch für den Tag {template} eine Cache-Funktion einbauen. Ich nutze das gerne um feste Schnippsel zu hinterlegen und eine Website damit Modular aufzubauen. Da kommt es oft vor, dass eigentlich statischer Inhalt immer wieder neu berechnet wird. Beispielsweise bei Leben ohne Diät die Top-Artikel. Das sind jedesmal ein paar Sekunden unnötige Rechenzeit. Das ist im Moment in Planung, aber ich werde nochmal darüber schlafen, ob sich nicht eine bessere Lösung finden lässt. Eine Erweiterung nur für einen einzigen Fall macht auch nicht soviel Sinn.


Dieser Artikel wurde veröffentlicht am 07.01.2009 um 19:59 Uhr. Noch kein Kommentar.

Double-Opt-In für Kommentar-Benachrichtigung

Es gibt ein neues Update für den ewm5. Der Hauptgrund dafür ist die Double-Opt-In-Funktion bei Kommentaren. Aufgrund rechtlicher Probleme sollte man die Mail-Benachrichtigung bei neuen Kommentaren besser nur noch mit dem sogenannten Double-Opt-In-Verfahren anbieten. Das bedeutet, dass zuerst eine Mail verschickt wird, bei der ein Link zur Bestätigung angeklickt werden muss. Damit ist sichergestellt, dass der Empfänger auch sicher zustimmt und niemand schlicht eine falsche Adresse angeben kann.

Dazu werden 3 neue Vorlagen benötigt und in comments.ini im Bereich [comments] muss
doubleoptin=1
gesetzt sein.

Die Vorlagen:

comment/mail-doubleoptin
Das ist die Nachricht mit dem Bestätigungslink. Diese sollte in etwa so aussehen:
tdbmail
{eMail}
blog@ihre_domain.de
Blog-Name -  Bitte bestätigen Sie die Benachrichtigung über Kommentare
Vielen Dank für Ihren Kommentar im Blog-Name beim Artikel
*{title}*

Sie haben die Option gewählt, dass Sie über neue Kommentare zu diesem Artikel informiert werden möchten. Da dies das erste Mal ist, müssen Sie die Benachrichtigung per Klick bestätigen. Für alle weiteren Kommentare, bei der Sie die gleiche Mail-Adresse verwenden, ist dies nicht mehr notwendig.

Sie müssen die Benachrichtigungsfunktion mit dem folgenden Link bestätigen.
{linktoactivate}

__________________________________________________________

Rechtlicher Hinweis:
Dies ist keine Werbemail! Der Zweck dieser eMail ist die Überprüfung des Wunsches einer Benachrichtigung bei neuen Kommentaren.
Dieses Verfahren (Double-Opt-In) soll sicherstellen keine unverlangten eMails zu versenden.
Weiterhin wird mit dieser eMail der Informationspflicht laut BDSG § 33 Abs. 1 sowie TDDSG § 4 Abs. 1 nachgekommen.
Ihre eMail-Adresse wurde in unserer Datenbank für Kommentare gespeichert. Ohne Aktivierung wird sie nach angemessener Zeit automatisch gelöscht.
Falls Sie nicht wissen, warum Sie diese Mail bekommen haben, hat sich vermutlich jemand einen Scherz erlaubt und Ihre eMail Adresse unberechtigt eingetragen.
Solange Sie nicht den obigen Link zum aktivieren benutzen werden Sie keine weiteren eMails erhalten.


comment/message-doubleoptin
Das sieht der Benutzer, wenn er den Link angeklickt hat und alles war OK. Beispiel:
<a name="message"></a>
<span class="headline" style="font-size:24px;">Vielen Dank. Sie erhalten nun eine Benachrichtigung, falls zu diesem Artikel ein neuer Kommentar verfasst wird.</span><br />


comment/message-doubleoptin-error
Das wird angezeigt, wenn es Probleme mit dem Bestätigungslink gibt. Beispielsweise wenn der Geheimcode nicht stimmt. Den brauchen wir ja, sonst könnte man die Bestätigung für andere übernehmen. Beispiel für die Vorlage:
<a name="message"></a>
<span class="headline" style="font-size:24px;">Es ist leider ein Problem aufgetreten.</span><br />
Die Bestätigung für den Empfang von Benachrichtigungen bei Kommentaren kann leider nicht akzeptiert werden.
Möglicherweise haben Sie den Link nicht korrekt aufgerufen oder zu lange gewartet.
<br /><br />


  • Ansonsten enthält das Update noch die neue overview-Version, die bereits vorgestellt wurde.
  • Der Trackback-Verschicker arbeitet wieder mit HTTP1.1, ich hatte kurzzeitig mal auf 1.0 umgestellt. Komischerweise funktionieren Trackbacks innerhalb des gleichen Servers bei mir nur mit HTTP1.0, was eigentlich genau falsch rum ist. 
  • Ein neuer rollmann ist auch dabei, ich habe den Verdacht beim alten gab es manchmal kleine Probleme mit mehreren Volltexten. Der Sache bin ich aber noch auf der Spur, weil es immer mehrere Tage dauert, bis das Problem überhaupt zu bemerken ist.
  • Beim scheduler ist eine Debug-Ausgabe geändert.


Dieser Artikel wurde veröffentlicht am 18.10.2008 um 13:09 Uhr. Noch kein Kommentar.

Selektionen für Overview

Overwiev hat einen neuen Parameter bekommen: sel

Damit lassen sich Datensätze selektieren. Beispielsweise gibt
{execmacro="overview" param="name=blog-titel;source=/Blog;step=10;noget;sel=$cms_web.Datum>=today-7;"}
nur Datensätze der letzten Woche aus.

Das ist auch mehr oder weniger der Sinn, warum ich die Selektionen eingebaut habe. Ich will Einträge der letzten Woche per Newsletter verschicken und mir so die Arbeit ersparen, die Seiten manuell raussuchen zu müssen. Es gibt aber vermutlich noch andere Einsatzzwecke, erlaubt ist als Selektion nämlich alles, was die tdbengine so versteht.

Die Erweiterung wird im nächsten Update enthalten sein. Ich will mir angewöhnen in Zukunft gleich über Änderungen zu schreiben und nicht auf Sammel-Updates zu warten. Intern teste ich dann nämlich schon noch gerne ein paar Tage oder Wochen, bevor ich Funktionen der Allgemeinheit zur Verfügung stelle.

Dieser Artikel wurde veröffentlicht am 02.10.2008 um 20:21 Uhr. Noch kein Kommentar.

Update ewm5

Ich schulde noch ein paar Worte zum letzten Update. Das will ich mal fix nachholen.

  • Ein neuer Baseman ist dabei, der hat schöne Import-Funktionen und weitere Nettigkeiten. Für den Normalanwender dürfte das relativ egal sein, weil er den Baseman sowieso nicht sieht. Ich habe halt die neue Version für diverse Dinge gebraucht, deswegen habe ich ihn mal rein gepackt. Danke an Sven, der ist nämlich derzeit der, der den Baseman betreut.

  • Der Newsletter wurde intern überarbeitet, nach außen merkt man davon aber nichts. Es gab wohl ein Problem, dass teilweise lange Zeilen abgeschnitten wurden. Das hat Sven (schon wieder der 8-) ) in der Mail-Funktion behoben. Die ist Teil unserer Bibliothek und ich musste nur den Newsletter neu übersetzen. Naja, eigentlich. Weil der Newsletter auch direkt kodiert, wenn man HTML-Mails verschickt, war es dann doch nicht so einfach. Es hat mich ein paar Tage gekostet es so hinzubekommen, dass die Umlaute immer stimmen. Den Aufwand habe ich betreiben, weil ich es für den Newsletter ohne Diät benötigt habe.

  • Die Sache mit den Priotitäten von Tags wird intern nun anders behandelt. Das sind die [n], die man angeben kann. Beispielsweise {[6]get="..."}. Die ganz einfachen Tags hatten das bisher nicht beachtet und man konnte bei Schachtel-Tags am Ende die Priorität nicht setzten. Ich finde es aber irgendwie übersichtlicher. Also {[9]switch="lala"} ... {[9]/switch} ist nun erlaubt. Dadurch können außerdem auch extrem komplexe Vorlagen gebaut werden, wenn man intensiv mit if-Abfragen arbeitet. Ich habe das eben bei abgekliert so umgesetzt. Dort gibt es Vorlagen für den Autor, die an verschiedenen Stellen eingebunden werden. Um Code nicht doppelt zu haben, ist das ganze sehr zerstückelt in kleine Bereiche. Also eine Vorlage die unter der und der Bedingung diese Vorlage einbindet, die dann wieder diese benutzt und so weiter.
    Auf das Ergebnis bin ich durchaus ein wenig stolz. Es klappt nämlich richtig gut.

  • Overview muss bei jedem auszugebenden Datensatz prüfen, ob dieser auch angezeigt wird. Dazu müssen evtl. auch die Rechte betrachtet werden. Bei mehreren 100 auszugebenden Seiten ist das etwas zeitintensiv. Daher wird nun direkt eine Prüfung gemacht, ob überhaupt gepüft werden muss. Das macht die Sache um etwa 1 Sekunde pro 1000 Einträge schneller. Das summiert sich aber, wenn man mehrere Ausgaben auf einer Seite hat.

  • Im Editor wird unten links ein Zeichenzähler angezeigt. Der Grund für mich ist schlicht die VG Wort. Dort kann man auch Internet-Veröffentlichungen einreichen, was aber erst ab 1800 Zeichen geht. 8-)

  • Unter Tools bei der Konfiguration kann der INI-Editor auch weitere Text-Dateien bearbeiten. Ich fummle öfter mal schnell an einer .htaccess-Datei rum, wozu das ganz praktisch ist. Allerdings sollte man wissen, was man tut. Wenn der Web-Server den Zugriff auf die Seite sperrt muss man doch wieder die Zugangsdaten rauskramen. 8-)
    In der cms.ini gibt man die Dateien einfach an. Beispiel:
    [INI_CONFIG]
    extra_1=../.htaccess
    extra_2=../robots.txt

  • Langsam wird's spannend. Neue Tags steht in der Beschreibung. Was war das gleich noch? 8-)
    {tag="abc"} gibt {action}&tag=abc, wobei abc richtig codiert würde, wenn es Sonderzeichen enthält. Ich bin spontan gar nciht mehr sciher, wozu ich das gebraucht habe. Ich glaube mittels TagMagic wurde das dann wieder überflüssig.
    {outside_template="vorlage"} baut die Vorlage um den aktuellen Inhalt außen rum. Also Die Vorlage wird geladen und die bisherige Seite an Stelle des Platzhalters main dort gesetzt. Damit wollte ich mir Arbeit sparen, habe es aber dann doch anderweitig gelöst.
    {set="..."}: Damit kann man eine Art Umgebungsvariablen setzen. Z. B. {set="type:static"} sorgt dafür, dass Links statisch ausgegeben werden. Außer dort ist bewusst wieder type:dynamic gesetzt. Bisher gibt es type:static/dynamic, url:absolute/full und gfu:full. Type und url bezeihen sich auf Links, gfu auf Dateien und Grafiken. D.h. erstmal nur auf Grafiken, bei denen dann der komplette Pfad benutzt wird. Das ist nämlich noch nicht ganz fertig und wird auch erst im nächsten Update zur Verfügung stehen. Ich habe gestern einen Feed auf Feedburner umgestellt, damit Grafiken dort funktionieren, muss der komplette Pfad angegeben sein.

  • Es gibt ein kleines Cache-System. Dazu bitte einen Blick in die cache.ini werfen:
    [page_1]
    pos=/Spezial/Tags
    param_1=tag
    max_age=14400

    [page_2]
    pos=Blog
    param_1=noc
    max_age=2880

    Das bedeutet nun, dass die Seite /Spezial/Tags gecached wird. Ausgaben, bei denen sich der Parameter tag ändert, werden jeweils auf Festplatte gespeichert und wieder ausgeliefert, falls sie nicht älter als 10 Tage sind. Bei der zweiten Seite ist es Blog und der Parameter noc. Dafür gilt der Cache nur 2 Tage (=2880 Minuten). Zufällig wird der Parameter tag für TagMagic und noc für Overview benutzt. Damit kann man also das Blättern in einem Blog und den Abruf von Tag-Seiten deutlich beschleunigen.

  • So richtig Sinn macht das dann nur, wenn man auch schöne Tag-Clouds basteln kann. Das macht dann TagMagic. Gesteuert wird über tags.ini:
    [cloud_1]
    root=/Blog
    list=../syswork/blogtags.ini
    cloud=../syswork/cloud.html
    min=3
    size_min=10
    size_max=20
    color_min=cccccc
    color_max=000000
    pattern=<a style="font-size:{size}px;color:#{color};text-decoration:none;" href="http://www.leben-ohne-diaet.de/tags/{tagencoded}">{tag}</a>


    Ruft man TagMagic nun auf, was über schedul.ini erfolgen sollte, erzeugt es aus allen Untereinträgen von "Blog" eine Wolke. Diese wird als syswork/cloud.html gespeichert. Ein Tag muss mindestend 3 mal vorkommen, die fertigen Tags sind zwischen 10 und 20 Pixel groß, die Farbe ändert sich nach Häufigkeit.

    Mittels {template="extern:../syswork/cloud.html"} wird die Wolke dann eingebunden. Achja, das ist auch neu, dass template das kann. 8-)
    Wie so etwas dann aussieht, kann man sich gerne im Blog ohne Diät ansehen. Ganz unten auf der Seite ist die Wolke.

Etwas viel? Ja. Etwas kompliziert? Ja, auch das. Aber ich freue mich ja sogar über Rückfragen. 8-)

Entschuldigung für die vielen Tippfehler. Mein FF3 will gerade wieder keine Rechtschreibprüfung durchführen und ich habe es eilig...

Dieser Artikel wurde veröffentlicht am 23.09.2008 um 16:47 Uhr. Noch kein Kommentar.

Update ewm5 Beta

Heute gibt es ein kleines Update für die 5er Beta. Darin sind ein paar kleine Dinge enthalten wie ein neuer Mailman, der nun Umlaute in der Betreffzeile einer Mail codiert oder der Scheduler, der die schedul.ini leicht geändert handhabt.

overview hat nun einen weiteren Parameter noget bekommne. Der Grund ist simpel. Beim EInsatz von overview kann man Blätterbuttons verwenden. Die Seite, die dann angezeigt wird, steht dann in der URL. Hat man nun z. B. ein Blog, das 10 Beiträge anzeigt und dort Blättern erlaubt, aber gleichzeitig in der Seitenleiste die letzten 5 Beiträge anzeigt, so blättern auch diese 5. Das will man nicht. Deswegen wäre dort der Parameter noget richtig. Ganz abgesehen davon, dass es so besser ist, können auch echte Probleme entstehen. Blättert man zum Ende des Blogs, wobei die letzten Beiträge ein RSS-Feed und eine Übersicht sind, die beide wiederum overview verwenden, kann ein ganz schönes Chaos enstehen. Deswegen auf noget achten.

In ping.ini kann man nun eine maximale Versuchszahl einstellen, wie oft versucht wird ein Ping zu senden. Außerdem lässt sich die Serverantwort nun auch ignorieren. Seit einiger Zeit bekomme ich von feedburner nämlich keine Rückmeldung. Die Antwort von bloggerei.de wird nun ebenfalls akzeptiert, obwohl diese meiner Meinung eigentlich nicht dem Standard entspricht.

Die für SEOs interessanteste Neuerung dürfte das Nofollow-Attribut sein. Unter "Statische Seiten" kann man dies setzen. Links zu dieser Seite werden dann mit rel="nofollow" versehen. Warum das Sinn macht, würde hier zu weit führen. Vielleicht einfach mal beim Radio4Seo reinhören.

Dieser Artikel wurde veröffentlicht am 21.05.2008 um 14:41 Uhr. Noch kein Kommentar.
Zeige 1 - 7 von 7


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: 22.08.2014 / 19:38:52
Suche  
Login / Userdaten
Impressum