Druckversion des Themas

Hier klicken um das Topic im Orginalformat anzusehen

Forum Sefrengo.org _ Module _ Anleitung DeDi Module zu Sefrengo Module konvertieren

Geschrieben von: mistral Wed. 28. June 2006, 21:16

Kurzfassung:
Eigentlich ganz einfach, damit dürften 99% aller Module wieder funktionieren:

# "<cms:mod" statt "<dedi:mod"
# "$cms_mod" statt "$dedi_mod"
# "$cms_side" statt "$dedi_side"
# "$cfg_cms" statt "$cfg_dedi"
# "dedi" in Arraykeys/ Variablennamen meist "cms" (z.B. $cfg_cms['cms_path'] statt $cfg_dedi['dedi_path'])
# "htmlentities($wert, ENT_COMPAT, 'utf-8')" statt "htmlentities($wert)"
# "htmlspecialchars($wert, ENT_COMPAT, 'utf-8')" statt "htmlspecialchars($wert)"
# $sess->url($url), wenn GET- Parameter mit &amp; verknüpft werden sollen
# $sess->urlRaw($url), wenn GET- Parameter mit einem einfachen & verküpft werden sollen
# Der Name der Backend Session $sess->name ist "sefrengo"
# werden per GET, POST Parameter übergeben, die Sonderzeichen enthalten könnten, sind diese mit der WebRequest Klasse abzugreifen. Beispiel:

QUELLTEXT
// $_POST['testval'] oder $_GET['testval'] werden gesucht
$sf_wr =& $GLOBALS['sf_factory']->getObject('HTTP', 'WebRequest');
$extracted = $sf_wr -> getVal('testval');
echo $extracted; //testval wird im richtigen Zeichensatz (utf-8) ausgegeben



Ausführlichere Infos:
Selbst erstellt Module für Sefrengo fit zu machen ist keine Zauberei.
Es soll hier kurz aufgezeigt werden, was bei einem Modulupdate zu beachten und
wo Hand anzulegen ist. Danach dürfte der Großteil der Module wieder problemlos
laufen.

Gegenüber dem Vorgängersystem gibt es in Sefrengo drei elementare Unterschiede,
die hier kurz vorgestellt werden sollen.

1) Das System arbeitet intern ausschließlich mit dem Zeichnsatz "UTF-8". Dies
führt dazu, dass innerhalb von Modulen die Funktionen htmlentities() und
htmlspecialchars() dies auch mitgeteilt werden muss. Das ist ganz einfach, indem
die Funktion htmlentities($wert) in htmlentities($wert, ENT_COMPAT,‘UTF-8’) oder
auch htmlspecialchars($wert) in htmlspecialchars($wert, ENT_COMPAT, ‘UTF-8’)
umgewandelt wird.


2) Sefrengo ist darauf optimiert, XHTML validen Inhalte zu erzeugen. Gerade bei
der Erstellung von URLs kann dies zu Problemen führen, wenn mehrere Parameter
per GET in einer URL übergeben werden.

Für einen syntaktisch korrekten Link muss der '&' Trenner zwischen den
einzelnen Parametern korrekt als '&amp' escaped werden. Aus
'meine_url.php?a=123&b=567' wird dadurch 'meine_url.php?a=123&amp;b=567'.

Um valide Links erzeugen zu können, haben wir innerhalb des CMS die Methode
$sess->url() so modifiziert, das immer XHTML valide Links mit korrekten
Trennern erzeugt werden. Wer Links ohne escapete Zeichen z.B. für einen
Headerredirect benötigt, kann dazu die neue Methode $sess->urlRaw() benutzen.
Diese entspricht im Verhalten der Methode $sess->url() des Vorgängersystems.


3) Im CMS Kern wurden alle Variablen, Arrays und Objekte umbenannt, welche das
Prefix des Vorgängersystems ('dedi') im Namen hatte. Dieses wurde durch das
neutrale Prefix 'cms' ersetzt.

Beispiel:
$cfg_cms, $cms_db, $cms_mod, ... .

Auch die CMS-Tags im Layout und innerhalb der Module wurden auf das neue Prefix
umgestellt.

Beispiel:
<cms:lay ... />, <cms:mod ... />

Zu beachten ist weiters, dass die Backendsession nun auf den Namen 'sefrengo'
hört, Module, welche auf die Backendsession prüfen müssen daher angepasst
werden .

Beispiel:
if($sess->name == 'sefrengo'){/* foo */}

Unterstützt von Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)