Blog



Quellcode im SVN öffentlich

Endlich ist der Umzug des ewm-Quellcodes in die öffentliche Subversion-Version abgeschlossen.

Interessierte können sich über svn.tdbengine.org [Link entfernt, weil Linkziel leider nicht mehr verfügbar] den Quellcode nun herunterladen.

Dieser Artikel wurde veröffentlicht am 02.10.2007 um 16:23 Uhr. Noch kein Kommentar.

nofollow: Was wünschen sich die Anwender

Heute möchte ich mal ein wenig Feedback von den Anwendern einfordern. Bei einer neuen Funktion gibt es zwei unterschiedliche Ansätze und ich möchte wissen, welcher davon eher gewünscht wird. Mir ist bewusst, dass es kein Thema für jedermann ist, aber vielleicht gibt es ja doch einige, die sich schon näher mit SEO auseinander gesetzt haben.

Sistrix [Link entfernt, weil Linkziel leider nicht mehr verfügbar] schreibt in seinem Blog über interne Verlinkungen und warum man manchmal dafür das Attribut nofollow benutzen sollte. Nun überlege ich, eforia entsprechend zu erweitern. Also für jede Seite würde es eine Checkbox für nofollow geben.

Dann gäbe es zwei Möglichkeiten diese Information zu nutzen.
  1. Die erste wäre, bei jedem Link zu einer solchen Seite ein rel="nofollow" einzufügen. Also wenn irgendwo im Quelltext
    <a href="{link="zur-nofollow-seite"}">
    steht, würde daraus etwas wie
    <a href="../text/zur-nofollow-seite.html" rel="nofollow">

  2. Die zweite Möglichkeit wäre, alle Module entsprechend zu erweitern, um gezielt auf die Information zuzugreifen. Also beispielsweise im Menü könnte man in der Vorlage einen Platzhalter {nofollow} verwenden, der dann für eine entsprechende Ausgabe sorgt.

Methode 1 hat den großen Nachteil, dass der Link nicht nur einen Link einfügt, sondern eine Zusatzinformation anhängt. Das ist eigentlich nicht ganz sauber. Außerdem könnte man dann nicht mehr individuell entscheiden, wie man verlinken möchte.
Methode 2 hat den großen Nachteil, dass man die Vorlagen erweitern müsste, wenn man davon Gebrauch machen will. Dafür hat man sehr genaue Kontrolle darüber, was intern passiert.

Ich würde deshalb eher zur Methode 2 greifen.

Was meinen Sie, liebe Anwender?

Methode 1 oder 2?
Oder braucht man das sowieso gar nicht?

Dieser Artikel wurde veröffentlicht am 02.10.2007 um 10:07 Uhr. Noch kein Kommentar.

Open Source beendet Entwicklung?

Heute erreichte mich eine Mail mit folgender Frage:
Opensource: heißt das, dass Sie eforia nicht mehr weiter entwickeln und pflegen. Haben Sie ein neues Programm als Ersatz?

Oh ja, genau das bedeutet das. Genauso wie Linux, Apache oder OpenOffice seit Jahren bekanntlich nicht mehr weiterentwickelt werden. 8-)

Im Ernst:
Die Freigabe als OpenSource bedeutet tatsächlich den Wegfall vieler Arbeiten. Den Aufwand aus einer Software ein Produkt zu machen ist nämlich ein vielfaches von dem, die Software zu programmieren. Damit meine ich nicht einmal Dinge wie Dokumentation oder Setup/Installations-Hilfen. Diese benötigen wir nach wie vor. Aber ich brauche keine Verpackung mit EAN-Code mehr, keine Flyer, keine Werbung, kein Affiliate-Programm, keine CDs, keine Pressearbeit, keine Versandabwicklung, keine Aktionen, keine Lizenzverwaltung, keine Vertriebskanäle, keine Messen, keine Banner, usw..

OK, ein wenig Werbung und Pressearbeit wäre zwar ganz nett, ist aber jetzt eher was, worum man sich eben kümmert wenn man Zeit hat. Vorher war es Pflicht und dazu noch eine, in der wir nicht besonders gut sind. Alle Versuche das zu ändern, das muss ich leider zugeben,  sind gescheitert. Es floss viel Zeit und Geld dafür.

Ich fühle mich nun ebenfalls wesentlich freier. eforia kann nun Funktionen bekommen wie ich oder andere Anwender es für richtig halten. Egal ob sich eine Funktion verkaufen lässt oder nicht. Das bedeutet beispielsweise ich kann auch Erweiterungen machen, die nur mit dem Apache-Webserver funktionieren. Bisher ging so etwas kaum, weil wenn eine Funktion irgendwo dokumentiert oder gar damit geworben wird, muss sie eben überall da funktionieren, was als Systemvoraussetzung angegeben ist. In einem Werbetext kann man nicht bei jeder Kleinigkeit anfangen detaillierte Unterscheidungen aufzuführen.
Konkret: Wenn ich nun beispielsweise einen Editor für .htaccess-Dateien einbaue, so muss ich mir keine Sorgen darüber machen, dass jemand das so versteht, als ob eforia dafür sorgt, dass auch auf einem IIS-Webserver diese Dateien benutzt werden können.

OK, vielleicht ist das auch nur ein Problem von mir, dass ich niemanden etwas versprechen will, was hinterher nicht gehalten wird. Ich bin eben kein Werber.

Etwas anderes, was mich entlastet, aber sicher nicht als Vorteil für den Anwender wahrgenommen wird, ist der Wegfall des Supports. Nein, kein völliger Wegfall, aber doch Einschränkungen. Kostenpflichtige Hilfe gibt es nach wie vor. Wer aber kostenlose Hilfe möchte, muss sich ans Forum wenden. So steht das Wissen nicht nur einem, sondern allen zur Verfügung. Auch kann es schon mal sein, dass ich keine Lust habe Fragen zu beantworten, wenn der Fragesteller sich nicht mal die Mühe gibt die Frage vernünftig zu stellen. Oder er hätte mit 2 Minuten Recherche die Lösung längst gefunden.

Oder noch besser finde ich die Leute, die meinen, wenn sie für 70 Euro eine Software gekauft haben, steht ihnen auch zu, dass man ihnen damit die komplette Website baut. Also nicht etwa: "Haben Sie einen Tipp wie ich meine alte Website übernehmen kann?" sondern "Anbei meine Frontpage-Dateien und FTP-Zugangsdaten für meinen Provider xyz. Bitte installieren Sie dort eforia und importieren Sie die alten Daten.". Das schlimmste bei solchen Leuten ist, dass wenn man sich die Zeit nimmt, eforia installiert und ihnen in Stunden beibringt, wie sie die Daten am Besten übernehmen, es immer unschön endet. Es reihen sich Wochen mit 2-3 Support-Mails pro Tag und irgendwann erreicht einen eine Nachricht in der Form "Die Software ist ja total sch**e. Ich will mein Geld zurück. Außerdem verklage ich sie auf Schadensersatz für die bisher aufgewendete Zeit.".

OK, das ist übertrieben. Aber so weit weg von der Realität ist es gar nicht. Mit 13-jähriger Supporterfahrung kann ich aber sagen: Die Leute, die am unverschämtesten Support verlangen, machen garantiert Probleme, wenn sie diesen Support bekommen.
Unverschämt meint dann beispielsweise Jemand, der nichts von HTML versteht, aber für Kunden als Dienstleistung die Erstellung von HTML-Seiten anbietet. Das versucht er dann über den kostenlosen Support abzuwickeln.

Genug geschimpft. Sorry.

Natürlich helfe ich gerne, wenn jemand Probleme mit meinem Baby eforia hat. Ich glaube, nicht mal die oben beschriebene Spezies hat sich da bisher beschweren können. Besonders mag ich, wenn es knifflige Fragestellungen sind, wie man was am geschicktesten Lösen könnte. Klar helfe ich da gerne. Da kann ich ja zeigen was eforia kann. 8-)
Auch kann es ja sein, dass an einem Problem einfach ein Software-Fehler schuld ist. Software hat nun mal Fehler, gerade die Beta-Versionen dürfen das sogar. Ganz fehlerfrei bin selbst ich trotz 25 Jahren Programmiererfahrung nicht. 8-)
Und letztendlich ist der Support auch ein guter Rückkanal für die Probleme und Wünsche der Anwender. Also Support ist wichtig. Support ist eine Chance und nicht nur Last.

Das ist nicht das Problem. Aber das ich unverschämte Leute in Zukunft einfach ignorieren kann, das freut mich dann doch. 8-)
Zu ehrlich? Hey, das ist ein Blog und keine Pressemitteilung. Die Kommentare stehen jedem offen auch anderer Meinung zu sein.


Aber zurück zum Anfang. Opensource bedeutet nicht, dass eforia nicht weiter entwickelt wird. Momentan eher im Gegenteil. Es bedeutet, dass ich mehr Zeit in die Entwicklung investieren kann und mich nicht mehr mit dem "Außenrum" aufhalten muss. Aufgeben würde ich die Entwicklung, wenn es niemand benutzt. Wobei ich im Moment so viele private und firmeninterne Projekte damit laufen habe, dass mich auch das nicht mal stören würde. 8-)

Achso, und eforia ist ja auch mehr als eforia web manager. Darin steckt ja das eforia Framework, die tdblib-Funktionen und auch die tdbengine. Damit machen wir unsere Kundenprojekte. Das ist die Basis der ganzen Firma und ebenfalls OpenSource. Wenn wir das nicht mehr weiterentwicklen, könnten wir zu machen.

Dieser Artikel wurde veröffentlicht am 01.10.2007 um 17:49 Uhr. Noch kein Kommentar.

ewm5 Beta Update

Heute habe ich ein neues Update für die Beta von ewm5 eingespielt. Es gibt eine Reihe kleiner Änderungen, aber auch einige Neuheiten.

Kleine Änderungen:
  • Der Editor lädt nicht mehr gleich die passende Sprachdatei, wenn vorhanden. Das ist eigentlich nur eine interne Sache. Während der Betaphase erleichtert es mir das Abstellen von Updates.

  • Aktiv und In Menu lassen sich nun einzeln schalten. Die bisherige Eingabehilfe, dass beim Aktivieren der Seite auch In Menu aktiviert wurde, hat mich mehr gestört als geholfen.

  • Im IE erzeugt die Enter-Taste wieder einen Absatz statt nur einen Zeilenumbruch. Das habe ich auf vielfachen Wunsch aus dem Forum wieder eingeführt.

  • Der Editor kann nun auch ein Icon für Durchstreichen erhalten. In der Editor-Konfiguration einfach aktivieren.

  • Insertcode kann mehrfach mit der gleichen Area benutzt werden (ging bisher tatsächlich nicht).

  • Benutzt man die Vorbelegung des statischen Namens in tree.ini, wird nun die lfd immer mit mindestens 5 Zeichen ausgegeben. Der Grund ist Google-News. Zur Aufnahme ist eine eindeutige ID mit mindestens 3 Zeichen Bedingung. Allerdings darf es keine Jahreszahl sein, deswegen ist man mit 5 Zeichen auf der sicheren Seite. Es ist also lediglich eine Vereinfachung, wenn jemand bei Google News gelistet werden möchte.

  • Der Link-Einfüge-Dialog wurde überarbeitet. Nun kann ein rel= angegeben werden. Zusätzlich ist besagtes rel mit einem Klick auf "nofollow" vorzubelegen. Genauso das target mit "_blank". Zusätzlich können die Spezifikationen für den Link Tag für Typ und URL nun einfach per Radio-Button aktiviert werden. Klingt kompliziert? Ein Screenshot zeigt es:

Bleiben noch die zwei größeren Neuerungen:

Blog-Update
Ein neues Programm schedul/blog-update.prg kann neue Einträge erkennen und automatisierte Aktionen durchführen. Typischerweise ist das bei neuen Blog-Artikel, deswegen auch der Name. Gesteuert wird das Programm über blog-update.ini.
Beispiel:
[main]
## Worauf Prüfen
pos=/Blog
## Wieviele Datensätze dort auf Datum prüfen?
num=10
## Wenn dort erster sichtbarer Eintrag neuer ist als:
last_timestamp=24.09.2007_09:12:49

[refresh]
## last_change-Datum in ping.ini setzen?
ping=1
## Startseite
pos_1=/
## Seite mit Namen "Startseite"
pos_2=/Startseite
pos_3=/BMI-Berechnung
pos_4=/Blog
## Erste 2 Seiten unterhalb /Blog
pos_5=/Blog/*2

[log]
log=1
file=../logfiles/blog-update.log

Es werden die 10 obersten Unterpunkte von Blog geprüft. Falls dort einer dabei ist, dessen Datum neuer als das in last_timestamp angegebene ist, wird eine Aktion ausgelöst. Typischerweise wird in einem Blog ja ein Beitrag mit neuem Datum oben an gestellt. Genau das würde dann eine Aktion auslösen. last_timestamp wird dann automatisch auf das aktuelle Datum gesetzt.
Bei der Prüfung werden sichtbare Punkte herangezogen, genauso wie im RSS-Feed bzw. bei Overview. D. h. es können neue Seiten als Entwurf angelegt sein (nicht Aktiv) oder für zeitgesteuertes Publizieren mit einem Zeitraum versehen sein. blog-update.prg schlägt dann erst zu, wenn der Beitrag tatsächlich sichtbar ist.
Tipp: Wenn man einen Beitrag automatisch erscheinen lassen will, sollte das Datum des Beitrags dem Erscheinungsdatum (Bedingung -> Zeitraum) entsprechen.

Die Aktion die durch Blog-Update ausgelöst wird, ist vor allem das automatische Auffrischen von Seiten. Wie im Beispiel zu sehen können die Seiten einfach angegeben werden. Bei pos_5 werden die ersten 2 Seiten unterhalb Blog aufgefrischt. Die erste ist der gerade neu eingestellte Artikel und die neue zweite Seite, muss einen Link zu dem neuen Artikel erhalten. Deswegen eben die ersten 2 Seiten.

Als Sonderfunktion gibt es noch ping=1. Ist das aktiviert, wird das aktuelle Datum in die ping.ini geschrieben. Wozu das dient, wird gleich erklärt.


Ping

Das ebenfalls nagelneue Programm schedul/ping.prg ist in der Lage sogenannten Ping-Diensten per XML-RPC mitzuteilen, dass ein neuer Beitrag veröffentlicht wurde. Auch hier erfolgt die Steuerung wieder über eine INI.
ping.ini:
[services]                      
service_1=http://ping.wordblog.de/
last_success_1=24.09.2007_09:12:52
service_2=http://ping.feedburner.com
last_success_2=24.09.2007_09:12:53
service_3=http://rpc.technorati.com/rpc/ping
last_success_3=24.09.2007_09:12:54
#service_4=http://rpc.pingomatic.com/RPC2
#last_success_4=23.08.2007_20:53:45

[main]
name=Blog ohne Diaet
url=http://www.leben-ohne-diaet.de/blog
last_change=24.09.2007_09:12:49

[log]
log=1
file=../logfiles/ping.log

Man sieht unter services verschiedene Dienste eingetragen und wann dorthin der letzte Ping erfolgreich gesendet wurde.

Unter main ist der Name des Blogs und die URL zur Blog-Startseite angegeben. Das last_change-Datum gibt das Datum der letzten Änderung an. Genau dieser Wert kann von Blog-Update automatisch gesetzt werden. Solange dieser Wert neuer ist, als bei einem der Services angegeben, versucht ping.prg einen Ping zu senden. Dadurch ist es auch kein Problem, falls einer der Dienste mal nicht erreichbar sein sollte.

So ein Ping ist durchaus sinnvoll. Gerade große Online-RSS-Reader ersparen sich so häufige manuelle Abrufe. Auch ist es erstaunlich wie schnell ein neuer Artikel über Google gefunden werden kann. Allerdings sollte man nicht zuviel Pingen und nur Dienste, die wirklich Sinn machen. Für deutsche Blogs sind die drei im Beispiel schon ganz gut. Pingomatic ist ein Dienst, der wieder zahlreiche andere anpingt. Allerdings bekomme ich von dort kein richtiges Ergebnis und erfahre leider nicht warum. Da halte ich mich lieber an diejenigen, die dem Standard entsprechen. Es macht sowieso keinen Sinn englische Blogverzeichnisse anzusprechen, die keine deutschen Nutzer haben. Außer man legt wert darauf, viel Kommentar- und Trackback-Spam zu bekommen. 8-)


Wichtig:
Wenn man Blog-Update und Ping nutzen will, muss man den Aufruf dafür selbst in der schedul.ini eintragen. Von einer automatischen Installation habe ich abgesehen, da es nur dann wirklich Sinn macht, wenn man ein Blog betreibt. Die meisten ewm5 Nutzer dürften das zumindest im Moment noch nicht tun. Es reicht dann aber auch der Aufruf alle paar Minuten.


Noch Fragen dazu?

Dieser Artikel wurde veröffentlicht am 24.09.2007 um 14:27 Uhr. Noch kein Kommentar.

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.

eforia goes Open Source

Heute darf ich eine Nachricht weitergeben, auf die ich mich schon lange freue: eforia web manager ist frei.

Frei im Sinne von Freibier, also kostenlos. Aber auch frei im Sinne von offen, also Open Source.

Über diesen Schritt hatte ich schon lange nachgedacht. Unser Kerngeschäft ist ja die kundenspezifische Programmierung und nicht der Verkauf von fertigen Software-Produkten. Auch unsere Datenbank, die tdbengine, ist schon lange frei verfügbar, genauso wie zahlreiche andere Tools und Programmierer-Bibliotheken. eforia web manager als Produkt hat sich zwar durchaus gut gehalten, wir sind aber doch eher Programmierer und keine Marketer. Der Aufwand um ein Produkt zu verkaufen ist einfach sehr hoch und nicht wirklich unsere Kompetenz. Und sicher auch nicht unsere Leidenschaft. Ich glaube die aufgewendete Zeit ist viel besser in der Entwicklung aufgehoben.

Dazu kamen noch andere Überlegungen. Wenn man eigene Module für ewm programmiert, ist der Blick in den gesamten Quellcode eine echte Hilfe. Das habe ich selbst in den letzten Monaten immer stärker bemerkt. Wer im Forum mitliest, wird schon gesehen haben, dass ich deshalb auch bisher durchaus bereit war, Einblicke in den Quellcode zu gewähren. Ich hoffe nun wird es für Modul-Entwickler deutlich leichter und es werden sich daher auch mehr finden.

Ich muss gestehen, dass ich selbst vermutlich ewm selbst nicht eingesetzt hätte, weil es mich abgeschreckt hätte, mich in ein Produkt einzuarbeiten, wofür ich dann immer wieder Lizenzen kaufen muss. Ich bin da eher der OpenSource-Fan.

Wie geht es nun weiter?

Für die aktuelle Version ewm4 habe ich einfach einen Lizenzschlüssel veröffentlicht. Das hat den Vorteil, dass wir nichts an der bestehenden Version ändern müssen. Es gibt also keinen Unterschied zwischen der bisherigen und der freien Version. Das ist mir aus Gründen der Pflege sehr wichtig.

Der Quellcode wird allerdings nur von ewm5 veröffentlicht. Ich möchte nicht, dass jemand noch an der 4er Version weiterentwickelt. Alles soll in die 5er münden. Es wird ein öffentlich zugängliches Subversion-System [Link entfernt, weil Linkziel leider nicht mehr verfügbar] geben, wie wir es auch bei unseren anderen Open-Source-Projekten benutzen. Bis ich das bereitstellen kann, werden aber noch ein paar Tage vergehen. Ich müsste dazu erst die aktuellen Entwicklungen abschließen und "einchecken". Dort findet dann jeder den Quellcode. Allerdings gibt es leider noch keine einfache Make-Routine oder ähnliches. Auch enthält das fertige "Produkt" eforia web manager Teile aus dem eforia Framework, das bereits als eforia-base veröffentlicht wurde. Es ist also nicht ganz so leicht, selbst eine lauffähige Version zusammen zu stellen. Daran müssen wir noch ein wenig arbeiten. Aber einzelne Teile zu ändern und einzusetzen dürfte jetzt schon kein Problem sein.

Ich rechne ehrlich gesagt auch nicht damit, dass sich nun Horden von Programmierern auf eforia web manager stürzen. Aber wer Interesse an der Weiterentwicklung hat, ist gerne dazu eingeladen. Einfach bei mir melden.

So, ich hoffe die Überraschung ist gelungen. Ich würde mich über ein wenig Feedback in den Kommentaren freuen. 8-)

Dieser Artikel wurde veröffentlicht am 19.09.2007 um 11:40 Uhr. 3 Kommentare.

Dynamische URL auf statische umlenken

Zur Zeit ist es ja ziemlich ruhig hier. Das liegt daran, dass ich ein paar Änderungen angefangen habe, aber noch nicht ganz damit fertig bin. Also mit dem meisten schon, aber eben nicht mit allem. Außerdem habe ich nun noch ein paar Tage Urlaub um einen Vortrag vorzubereiten. Ich schätze mal so richtig weiter geht es erst ab ca. 20.9.

Aber eine Kleinigkeit habe ich doch. Das mod Rewrite vom Apache wird immer gern genutzt, wenn man Serveranfragen intern an eine andere Adresse weiterleiten muss. Der Umgang mit den Anweisungen RewriteCond und ReWriteRule ist garnicht so einfach. Ich verzweifle immer wieder aufs neue, schaffe aber dann doch irgendwie, was ich will. Ich glaube auch, so geht es den meisten die es einsetzen. Das Internet ist voll mit Fragen und Antworten zum Thema. Gerade in der SEO-Szene gibt es auch viele Anleitungen denen man anmerkt, dass der Autor sich selbst zwar irgendwie helfen konnte, aber so richtig blickt er's auch nicht.

Wie auch immer. Die heutige Aufgabenstellung ist folgende: Eine ewm Seite wird bisher mit http://www.irgend_was.de/programm/o.prg?pos=3.2 aufgerufen. Der Webmaster entscheidet sich nun, doch eine statische Seite dafür anzulegen. Diese ist http://www.irgend_was.de/text/katalog/regen.html. Nun hat aber die alte dynamische Adresse schon eine Weile existiert (und tut es ja noch). Zahlreiche andere Seiten haben diese auch so verlinkt.

Nun ist es aber durchaus sinnvoll, sich möglichst auf eine einzige Seite zu konzentrieren. Daher will der Webmaster nun alle Aufrufe der alten Adresse auf die neue umleiten. Die Umleitung soll mit einem 301er statt finden. Das ist der Servercode, der für ständige Umleitung steht. Also wenn jemand die alte Adresse aufruft, bekommt er die neue Adresse mitgeteilt und die Information, dass in Zukunft nur noch die neue Adresse gelten soll. Es gibt auch noch den Code 302, der für einen temporären Umzug steht.

Der Webmaster macht also nun eine .htaccess-Datei und erstellt folgende Regel:
RewriteEngine on
RewriteRule ^programm/o.prg?pos=3.2$ /text/katalog/regen.html [L,R=301]

Und Pustekuchen. Das funktioniert nicht. Die Rewrite-Engine unterscheidet nämlich URI und Query sehr genau. Alles was nach dem Fragezeichen kommt, kann also in der ReWriteRule gar nicht mehr abgefragt werden. Die Lösung sieht dann so aus:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^pos=3.2$
RewriteRule ^(.*)$ /text/katalog/regen.html? [L,R=301]

Es wird also zuerst der Query-String geprüft und dann die eigentliche Regel erstellt. In diesem Fall wird nicht einmal mehr auf o.prg geprüft. Ich leite einfach alles um, was mit pos=3.2 aufgerufen wird. 8-)

Das Fragezeichen am Schluss der Regel verhindert, dass der Query-String wieder angehängt wird. Das macht sonst mod Rewrite. Wenn man eigene Parameter in der Umleitung hat und trotzdem die Ursprungs-Query benötigt, muss man die Option QSA mit in die eckige Klammer setzen. Aber das würde hier schon wieder zu weit führen.

So, mehr wollte ich heute garnicht sagen. Besteht den generell Interesse an Beispiele für mod Rewrite?
Das Ding ist echt mächtig. Man kann z. B. beim Aufruf einer Seite die nicht existiert diese erst durch ein Script generieren lassen und dann ausliefern. Spannend, oder?

In der Praxis setzt man mod Rewrite viel in der Suchmaschinenoptimierung ein um doppelte Inhalte zu vermeiden. Bei Interesse, kann ich noch eine Reihe Beispiele liefern.

Dieser Artikel wurde veröffentlicht am 03.09.2007 um 14:44 Uhr. 2 Kommentare.

Partnerprogramm endet am 15.9.

Zum 15.9. beenden wir das Partnerprogramm für eforia web manager 4. Ich möchte alle Affiliates bitten, alle evtl. noch vorhandenen Werbemittel bis dahin zu entfernen.

Den Grund möchte ich noch nicht nennen. Nur soviel: Die Lizenzbedingungen und Konditionen der Software werden sich ändern. Konkretere Angaben werden wir jedoch erst später machen können.

Ich danke allen Partnern für die Zusammenarbeit.
Dieser Artikel wurde veröffentlicht am 24.08.2007 um 12:44 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.
Zeige 71 - 80 von 102
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: 26.04.2024 / 18:31:26
Suche  
Login / Userdaten
Impressum/Datenschutz