Perl   PageParser-Plugins
Der PageParser ist die Arbeitsmaschine hinter SiteActive und ActiveLists. Die eigentlich Arbeit übernehmen aber seine Plugins, die man leicht selber schreiben kann und so dynamischen Content in seine Seiten bekommt.
PageParser-Plugins
Ddate v0.1, last changed at 2001-10-30 i5
Plugin zum Update von Xtime/Xdate-Variablen

<IMPERIA lang=ddate>
zeitstempel=Xtime:normal
datumsstempel=Xdate:iso
</IMPERIA>

Die Felder 'zeitstempel' und 'datumsstempel' werden jetzt bei jedem Speichern neu berechnet und müssen auch nicht selbst initialisiert werden.
[Source] [Download]
 
Ddecode v0.1, last changed at 2001-04-24 i5
Stelle neues Makro zur Verfügung: <!--DD-feldname-->, für eine mit URI::Escape dekodierte Version des Metafeldes feldname.
Beispiel: aus foo%20bar wird foo bar
[Source] [Download]
 
Debug v0.1, last changed at 2001-10-25 i5
Plugin zum Debuggen von Templates:

<IMPERIA lang=debug>
# Kommentare werden überlesen
dump
</IMPERIA>


Die Anweisung dump sorgt dafür, dass alle Meta-Daten in der Seite ausgegeben werden.
[Source] [Download]
 
Dmenu v0.1, last changed at 2001-11-02 i5
Dieses Plugin stellt neues Makro <--INCLUDEMENU--> zur Verfügung, das durch den Inhalt der Datei /firstdir/menu.html ersetzt wird. Z.B.

/movies/comedy/00056/index.html -> /movies/menu.html

Aktiviert wird der Code (wie üblich) mit:

<IMPERIA lang=Dmenu>
</IMPERIA>
[Source] [Download] [Thread im Archiv]
 
Escape v0.2, last changed at 2002-12-04 i5
Das Plugin stellt zwei neues Makros zur Verfügung: <!--EE-feldname--> und <!--CC-feldname-->, für eine mit URI::Escape (EE) kodierte, bzw. HTML (CC) kodierte Version des Metafeldes feldname.
Beispiel: aus »foo bar« wird »foo%20bar«, bzw. aus »<html>« wird »&lt;html&gt;«.
Aktiviert wird das Plugin (wie üblich) über Einfügen folgenden Codes im Template:

<IMPERIA lang=escape>
</IMPERIA>
[Source] [Download]
 
Htmlcontrol v0.1, last changed at 2001-12-03 i5
Eingabefelder können mit den Optionen nohtml und strip versehen werden. Damit werden HTML-Entities entweder umgewandelt oder entfernt, so dass das Abspeichern von HTML in solchen Feldern verhindert werden kann.

<IMPERIA lang=Htmlcontrol>
# konvertiere HTML-Entities: '>' -> '&gt;' usw...
# in Feld 'keinhtml'
keinhtml:nohtml
# entferne HTML (<.*?> und &.*?;)
# aus Feld 'ohnehtml'
ohnehtml:striphtml
</IMPERIA>
[Source] [Download]
 
Index v0.1, last changed at 2002-06-20 i5
Das Erstellen von Index-Seiten ist mit den Imperia-Bordmitteln nicht wirklich zu lösen. Hier setzt das Index-Plugin ein. Es ist eine Erweiterung des Imperia-Plugins und verhält sich weitgehenst ähnlich. Allerdings bringt es zwei neue Befehle mit: MAKEINDEX und LIMITINDEX.

<IMPERIA lang=index>
  READDIR "/movies"
  MAKEINDEX "indexfield"
  PRINT INDEX für A
  LIMITINDEX "A"
  FOREACH FOUND {
    <a href="<!--YY-directory-->/<!--YY-filename-->"><!--YY-__INDEXENTRY--></a>
  }
  PRINT INDEX für B
  LIMIT INDEX "B"
  # ...
</IMPERIA>

Nach dem gewohnten READDIR kann mit MAKEINDEX "wort" der Index erstellt werden. Dazu werden alle Artikel nach Metafeldern durchforstet, deren Name mit wort anfängt. Oben also z.B. indexfield, indexfield1, ... Diese Felder können auch mit Kommata getrennte Listen von Index-Eingträgen enthalten. Diese werden automatisch aufgesplitet. Nach dem MAKEINDEX bezieht sich das folgende FOREACH FOUND auf die Index-Worte und nicht mehr auf die gefundenen Artikel. Jedem Treffer wurde das spezielle Feld <!--YY-__INDEXENTRY--> hinzugefügt, das das jeweilige Index-Wort enthält. Der Befehl LIMITINDEX kann benutzt werden, um eine Untermenge aus dem Index auszuwählen (Anfangsbuchstabe, unabhängig von der Groß-/Kleinschreibung).
[Source] [Download] [Artikel im Archiv]
 
Mailaddr v0.1, last changed at 2003-05-26 i5
Mail-Adresse in HTML-Entities umwandeln, damit sie nicht so leicht von den Sammel-Bots der Spammer gefunden werden können. Aktiviert wird das Plugin (wie üblich) per:

<IMPERIA lang=mailaddr>
</IMPERIA>

[Source] [Download]
 
Php v0.01, last changed at 2002-09-12 i5
Dieses Plugin erlaub es PHP-Code in Artikel-Templates und ActiveLists zu verwenden. Auf die Meta- und Form-Informationen kann per $META["key"], bzw. $FORM["key"] zugegriffen werden. Evaluiert wird der durch den <IMPERIA lang=php> eingeschlossene PHP-Code. Wird stattdessen * angegeben, so wird die gesamte Seite an den PHP-Interpretor weitergereicht. Der Pfad zum PHP-Interpretor kann über die Umgebungsvariable PHP angegeben werden (oder es wird /usr/local/bin/php verwendet.
Beispiel:
	<IMPERIA lang=php>
		<?  if (strstr($FORM["TEMPLATE"], "0123")) { ?>
			Wir benutzen Template 0123.
		<?  } else { ?>
			Wir benutzen ein anderes Template.
		<?  } ?>
	</IMPERIA>
oder auch in der ganzen Seite:
	<IMPERIA lang=php>
		*
	</IMPERIA>
	...
	<? echo "Das geht auch in der ganzen Seite"; ?>
[Source] [Download] [Artikel im Archiv] [www.php.net]
 
Readdb v0.1, last changed at 2001-10-25 i5
Plugin zum Lesen der RED-Tabellen (auch Mediendatenbank und RUBRIK_CONF):

<IMPERIA lang=readdb>
</IMPERIA>


Obiger Code aktiviert folgendes Makro in der Seite:

<!--readdb:DATABASE:FELD=WERT[,NR]:AUSGABE-->


Dabei wird die Tabelle DATABASE aus /site/db geöffnet und der Wert der Spalte AUSGABE des ersten Eintrages ausgegeben, dessen Spalte FELD den Wert WERT hat.
Der optionale Parameter NR gibt an, wieviele Teile eines Verzeichnispfades WERT verwertet werden sollen. Um z.B. aus /movies/comedy/00085 ein /movies zu machen:

<!--readdb:RUBRIK_CONF:DIRECTORY=XX-directory,1:DESCR-->


Wenn NR nicht angegeben wird, dann werden Counter-Verzeichnisse am Ende des Pfaded automatisch entfernt.
XX-directory entspricht <!--XX-directory-->, verhindert jedoch Kollisionen mit dem Inhalt des Feldes.
[Source] [Download] [Beispiel]
 
-- 
© 2001, 2002 Christian Lackas
Last changed: 
Last visitor: