Blog



Publizieren in der Zukunft

Gerade wenn man eforia zum bloggen nimmt, kommt es doch immer wieder vor, dass eine Seite nicht sofort veröffentlicht werden soll, sondern in der Zukunft zu einem vorgegebenen Zeitpunkt. Das ist auch bisher nicht schwierig, unter dem Punkt "Bedingung" kann man diesen Zeitpunkt angeben.

Nur wenn die Seite selbst dann noch Datum und Uhrzeit dieser Veröffentlichung haben soll, muss man das doppelt angeben. Einmal eben als Datum/Zeit und einmal als Bedingung/Zeitraum. Um sich diese doppelte Mühe zu sparen, kann man nun einen Schalter in cms.ini setzen, damit eforia das für einen übernimmt.

[SYSTEM]
AutoSetCondition=1

Speichert man dann eine Seite mit einem Zeitstempel in der Zukunft, wird automatisch dieser Zeitpunkt als Bedingung gesetzt. Dabei gibt es allerdings 5 Minuten Spielraum, weil die Zeit am Server sich vom Client unterscheiden kann. Wird die Zeit nochmals geändert, passt sich der Zeitraum entsprechend immer an. Ausser er wurde manuell verändert.

In der Praxis heisst das, ich kann am Sonntag den 28.06.2009 einen Artikel schreiben, setze Datum/Zeit auf 29.06.2009 06:26 Uhr und speichere. Der Zeitpunkt liegt in der Zukunft und wird deshalb automatisch als Bedingung übernommen. Damit erscheint der Artikel nicht sofort, sondern erst zum angegebenen Zeitpunkt.

Bedingung automatisch entfernen
Weil solche Bedingungen eigentlich überflüssig sind, wenn sie abgelaufen sind, kann cms_rsp.prg diese auch automatisch wieder entfernen. Das macht der Eintrag
AutoClearCondition=1

Das ist nicht wirklich wichtig, räumt aber quasi ein wenig auf und eine nicht vorhandene Bedingung muss auch erst gar nicht geprüft werden. Auf Dauer hilft das also Resourcen zu sparen.

Beide Einträge zusammen:
cms.ini
[SYSTEM]
AutoSetCondition=1
AutoClearCondition=1



Dieser Artikel wurde veröffentlicht am 29.06.2009 um 06:26 Uhr. Noch kein Kommentar.

Filter für den Baum

Wenn man recht viele Einträge in einem Unterbereich hat, gibt es schon lange die Möglichkeit (über tree.ini), die Anzahl der dargestellten Datensätze zu begrenzen und statt dessen Blätterbuttons anzuzeigen. Außerdem bestand die Möglichkeit, nach aktiven Einträgen und solchen "im Menü" zu filtern.

Bei einem Blog mit über 1000 Einträgen ist es nicht mehr ganz so leicht einen Eintrag zu finden. Besonders im Link-Dialog kann das ein Problem sein. Deswegen habe ich das Filterfeld in ein einfaches Eingabefeld geändert. GIbt man dort etwas ein, wird schlicht eine Volltextsuche durchgeführt. Das ist einfach und effektiv.

Über Rückmeldungen würde ich mich freuen, aber ich weiß auch, dass ich vermutlich der Einzige bin, der damit überhaupt ein Problem gehabt hat. 8-)

Dieser Artikel wurde veröffentlicht am 24.06.2009 um 18:21 Uhr. 2 Kommentare.

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.

Suche mutige Anwender

Ich habe den eforia-Kern in den letzten Tagen komplett überarbeitet. Das Ziel war mehr Geschwindigkeit des "Rendering-Kerns". Nun habe ich das neue System mit meinen komplexesten Seiten getestet, aber so ganz ausschließen kann ich Fehler nicht.

Wer den ewm5 einsetzt, diesen deutlich beschleunigen will, dafür aber mit evtl. auftretenten Fehlern leben kann, der möge doch bitte im Verzeichnis programm die Datei o.prg gegen die Variante hier im Archiv ersetzen. Am Besten die bestehende o.prg in o.prg_ umbenennen, um sie bei Bedarf schnell wieder aktivieren zu können.

o.zip (61.818 Bytes)
ewm5 Beta Viewer Core 14.06.2009


Falls Probleme auftreten, liegt das aber wahrscheinlich an fehlerhaften Vorlagen. eforia reagiert da jetzt einfach ein wenig unterschiedlich zur vorherigen Version. Wobei das aber auch nur dann wirklich ein Problem sein dürfte, wenn viel mit Prioritäten in Tags gearbeitet wurde.

Über Rückmeldungen, gleich welcher Art, freue ich mich.

Nachtrag: Im Feed zu genau diesem Blogeintrag habe ich dann gleich den ersten Fehler gefunden. Innerhalb overview waren keine 2 main-Tags möglich. Das habe ich nun korrigiert und den Download oben upgedatet.

Dieser Artikel wurde veröffentlicht am 13.06.2009 um 18:12 Uhr. Noch kein Kommentar.

Internet-Explorer 8

Soeben habe ich ein kleines Update für ewm5 abgestellt, was den Editor kompatibel mit dem Internet-Explorer 8 macht. Ich nutze den selbst nicht, deswegen würde ich mich über Rückmeldungen freuen, falls etwas noch nicht ganz stimmt. Schonmal Danke an Jörn für die Meldung.

Dieser Artikel wurde veröffentlicht am 11.06.2009 um 16:20 Uhr. Noch kein Kommentar.

Update wegen Sicherheitslücke

Michael Schwarz hat mich auf die Möglichkeit hingewiesen, per XSS fremde Inhalte auf eforia-Seiten ausgeben zu lassen. Deswegen gibt es ein kleines Update, was diese Lücken schließt.

Das natürlich auch noch für die 4er, wobei auch der aktuelle rsscheck mitkommt. Falls jemand den 4er und das Captcha nutzt, kann es sein, dass nach dem Update die Linux-Ausführen-Rechte fehlen. Aber nach dem ersten Aufruf des rsscheck "heilt" sich das von selbst. 8-)

In Panik ausbrechen muss man nicht, die Lücke ist nicht direkt zum Einbruch in das System geeignet. Man kann aber eigene Inhalte auf bestimmten Seiten einbinden, was man auch nutzen kann, um einem Nutzer die Cookies zu klauen. Dazu muss man aber einen manipulierten Link untergeschoben bekommen. Dank Twitter sind aber verschleierte Links groß im Kommen.


Dieser Artikel wurde veröffentlicht am 04.05.2009 um 14:12 Uhr. Noch kein Kommentar.

SEO-Tipp: Doppelte Inhalte

Bei jedem Content Management System sind doppelte Inhalte (der SEO spricht von Duplicate Content, kurz DC) ein gewissen Problem für die Suchmaschinen-Position. Grob gesagt, können die gleichen Texte oft über unterschiedliche URL-Adressen erreicht werden. Eine Suchmaschine muss dann entscheiden, welche dieser bekannten Adressen die richtige ist.

eforia bietet mit den statischen URLs und automatischen Umleitungen bereits gute Möglichkeiten, dieses Problem klein zu halten. Aber seit kurzem gibt es eine offizielle Methode, die von den großen Suchmaschinen unterstützt wird. Man kann gezielt angeben, welche Seite dort als Adresse benutzt werden soll. Dazu gibt es einen Link-Tag, der im Kopf der HTML-Seite zu benutzen ist.

Mit der 5er Version ist es nun besonders einfach das zu nutzen. Man fügt schlicht den folgenden Code in die Haupt-Vorlage ein, den Rest erledigt eforia:
<link rel="canonical" href="{link="url:full;type:static;"}" />

Auf diese Art wird die Suchmaschine angewiesen, immer die statische Variante zu bevorzugen. Dazu würde ich auch dringend raten. Schon allein, weil die URL so genau bestimmt werden kann und der Suchende schon darüber Informationen bekommt, wo er landen wird.


Dieser Artikel wurde veröffentlicht am 03.03.2009 um 09:00 Uhr. Noch kein Kommentar.

Update ewm5

Gerade habe ich mal wieder ein Update für den ewm5 abgestellt. Enthalten ist im Prinzip das, was ich hier im Blog schon angesprochen hatte. Der Cache hat sich bei meinen Testsystemen nun seit 2,5 Monaten bewährt. Außerdem ist eine neue Version des Captcha-Binaries für Linux dabei und eine neue Version des Baseman. Ich bin nämlich auf einen neuen Server umgezogen und dort läuft die neueste tdbengine, mit der die Vorversion Probleme hatte. Auch das Captcha verlangte nach der Installation einer Shared Library, was ich im abgewöhnt, indem ich diese einfach mit "rein" kompiliert habe (danke Sven, für den gcc-Bugfix).

Alles recht unspektakulär.

Übrigens: Weil ich immer wieder gefragt werde, wann die 5er offiziell wird. Es gibt in der tdbengine ein Problem, was mit bestimmten Web-Space Konfigurationen auftritt. Genau genommen ist das ein sehr tief liegendes Linux-Problem, aber es wirkt sich eben so aus, dass die tdbengine dann unter Umständen keine Dateien "sieht". Die Konfiguration ist selten, kommt aber vor. Für den ewm hat damals Serg eine Spezialversion gemacht, die das Problem einfach umschifft. Diese Funktionalität hat aber keinen Einzug in die normale Entwicklung gefunden. Die aktuelle tdbengine enthält den Fix also nicht, der 5er ewm benötigt aber diese. Lange Rede, kurzer Sinn: Sobald das Problem in der tdbengine gelöst ist, wird die 5er Version offiziell.


Dieser Artikel wurde veröffentlicht am 12.02.2009 um 20:29 Uhr. 4 Kommentare.

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 [Link entfernt, weil Linkziel leider nicht mehr verfügbar] 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.

Update

Ich habe wieder mal ein kleines Update abgestellt. Diesmal ist das schon angesprochene execprog dabei. Außerdem kann comments nun die letzten Kommentare anzeigen. Dazu einfach {execmacro="comments" param="last=5"} um die letzten 5 Kommentare auszugeben. Benutzt wird dazu eine Vorlage
comment/last-comment
<li><span class="small"><a href="{link="lfd:{PageLfd}"}#message{lfd}" class="small">{Name}</a>
bei <a href="{link="lfd:{PageLfd}"}" class="small">{PageTitle}</a>
({SDate} {STime} Uhr)</small></li>

Der Rest der Neuerungen sind eher Kleinigkeiten. Man kann nun z.B. angeben, dass statische Seiten nicht überschrieben werden, wenn sich nichts ändern würde. Dazu gibt man in cms.ini in SYSTEM
keepoldstatic=90
an. Der Sinn ist schlicht, dass der Webserver das Dateidatum schließlich auch überträgt. Der Wert gibt die Zeit in Tagen an, nach der die Seite auf jeden Fall wieder überschrieben wird. Was das soll, können vermutlich nur SEOs halbwegs verstehen.

Ebenso kann nun ein Timeout für cms_rsp angegeben werden. Der Default-Wert sind 30 Sekunden, das ist auch, wie sich cms_rsp bisher Verhalten hat. Der Grund sind schlicht Provider wie 1&1, bei denen ein Script nur begrenzt laufen darf. Wenn man eine Website mit 1000 einzelnen Seiten hat, die alle um 00:00 Uhr aufgefrischt werden sollen, reicht das schlicht nicht. Deswegen bricht cms_rsp nach Ablauf des Timeouts ab und macht beim nächsten Aufruf weiter.
Der Wert wird ebenfalls in cms.ini in SYSTEM angegeben:
refreshtimeout=150

Feedpeek kann nun auch den content und die description von Feeds ausgeben.

Die anderen Neuerungen sind nicht weiter der Rede wert. 8-)




Dieser Artikel wurde veröffentlicht am 01.12.2008 um 11:02 Uhr. 2 Kommentare.
Zeige 21 - 30 von 58
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: 29.09.2022 / 06:15:07
Suche  
Login / Userdaten
Impressum/Datenschutz