$Id: NEUE_FEATURES,v 1.1.2.6 2006/06/19 14:56:45 ignatius0815 Exp $ ############################################################################### Neue Features in phpCMS 1.2.2 ############################################################################### ************************ MENU & SITEMAP: ************************ * IFNOTEMPTY o neuen optionalen Parameter "IFNOTEMPTY" für den {MENU} Befehl in Template Dateien hinzugefügt, um die Flexibilität der Menüanzeige zu erhöhen: {MENU NAME="SUB1" IFNOTEMPTY} zeigt das Menü mit dem Namen SUB1 nur dann an, wenn das Menü nicht leer ist, d.h. es Menüpunkte zu diesem Menü gibt. Wenn dieser Parameter nicht wverwendet wird, zeigt phpCMS den .PRE und .PAST Teil des Menütemplates auch dann an, wenn dazwischen keine Menüpunkte vorhanden sind. * PREACTIVE / POSTACTIVE o Die optionalen Menü Subtemplates ".PREACTIVE" und ".POSTACTIVE" wurden hinzugefügt. Das Subtemplate PREACTIVE wird verwendet, um den Menüpunkt, der direkt vor dem aktiven Menüpunkt liegt, darzustellen. Analog wird das Subtemplate POSTACTIVE verwendet, um den dem aktiven Menüpunkt folgenden Menüpunkt darzustellen. Das kann dazu genutzt werden, um Menüs zu erzeugen, in denen der aktive Menüpunkt auch eine Auswirkung auf die Darstellung der beiden benachtbarten Menüpunkt hat, z.B. ein Schattenwurf auf den nachfolgenden Menüpunkt. * Verwendung des selben Template Datei für Inhalt, Sitemap und Suchseiten o Die Sitemap und Suchseite kann nun mit dem selben Template, wie die normalen Content Seiten dargestellt werden. Es ist nicht mehr notwendig, für diese Seiten ein seperates Template zu erstellen. Beispiel: Fügen Sie die beiden Felder {SEARCH SEARCHTEMP="SEARCH"} {TOC CLASS="00.01"} in die Template Datei, die Sie auch für die Darstellung Ihres Contents verwenden, ein. Damit der phpCMS Parser nun weiss, ob er diese Felder in der Template Datei ignorieren oder beachten soll, müssen sie jeweils über ein Feld in der jeweiligen Content Datei freigeschaltet werden. Fügen Sie also das Feld {CONTENT_TOC} in Ihre Sitemap Content Datei ein, bzw. das Feld {CONTENT_SEARCH} in Ihre Such-Contentdatei. Beide Felder können leer sein, da ihr Inhalt ignoriert und nur auf ihr Vorhandensein geprüft wird. Achtung: Aus Gründen der Rückwärtskompatibilität mit vorhergehenden phpCMS Versionen, ist diese Funktion in der Standardeinstellung abgeschaltet. Um sie einzuschalten, muss die Datei parser/include/default.php editiert, und der Wert der beiden Variablen CONTENT_SEARCH und CONTENT_SITEMAP von 'off' auf 'on' gesetzt werden. Ebenso könnendie Namen der beiden Contentfelder in der Konfigurationsdatei geändert werden (die Voreinstellung ist CONTENT_SEARCH und CONTENT_TOC) ************************ ONLINE-EDITOR: ************************ * Backupschnittstelle o Eine Schnittstelle wurde in den Online-Editor eingefügt, über die ein externes Programm zur Erstellung einer Sicherheitskopie eingeklinkt werden kann. o Wenn die Datei class.edit_backup_phpcms.php im include-Verzeichnis existiert, wird diese nun automatisch vor dem Speichern des Contents im Online-Editor eingebunden und ausgeführt. o Der Dateiname der gerade editierten Datei ist in $DEFAULTS->DOCUMENT_ROOT.$CHECK_PAGE->path.'/'.$CHECK_PAGE->name zu finden. * Überprüfung der Schreibrechte, bevor eine Datei editiert werden kann. o Die Edit-Buttons sind nun inaktiv, wenn die zu editierende Datei schreibgeschützt ist und Änderungen dementsprechend nicht gespeichert werden könnten. * Neuer edittype "SELECT" o Ein neuer Editiertyp "SELECT" kann nun in Template Dateien verwendet werden. Mit Hilfe dieses Editiertypes kann im Edit-Modus für ein Feld eine Auswahlliste angezeigt werden. Beispiel: {MYFIELD EDITTYPE="SELECT" OPTIONS="option 1;option 2;option 3"} Dieses Beispiel erzeugt eine Auswahlliste mit den gegebenen Optionen. Die Wahl des Benutzers wird von Online-Editor im Contentfeld {MYFIELD} gespeichert ############################################################################### Neue Features in phpCMS 1.2.1 ############################################################################### ************************ MENU & SITEMAP: ************************ * BETWEEN o In Menütemplate Dateien steht nun das optionale Menü Subtemplate ".BETWEEN". zur Verfügung. Sofern dieses Subtemplate für ein Menü definiert ist, wird sein Inhalt jeweils zwischen den Menüpunkten (aber nicht vor dem ersten und nach dem letzten Menüpunkt) angezeigt. Das kann z.B. verwendet werden, um ein Trennzeichen zwischen den Menüpunkten eines horizontalen Menüs einzufügen. Beispiel: Das folgende Menü item 1 | item 2 | item 3 |item 4 kann erstellt werden, indem man im Menütemplate das folgende Subtemplate einfügt: {MAIN.NORMAL} | Dies funktioniert auch in Sitemap Subtemplates. * Menü-Trennzeichen kann geändert werden o Eine neue Konfigurationsvariable Namens MENU_DELIMETER wurde der Konfigurationsdatei parser/inlcude/default.php hinzugefügt. Mit Hilfe dieser Variable kann das Trennzeichen für die Menüdatei (Voreinstellung ist das Semikolon) geändert werden. Außerdem wurde das neue Schlüsselwort DELIMETER zur Verwendung in Menü-Dateien hinzugefügt, mit dessen Hilfe sich das Trennzeichen auch innerhalb der Menüdatei ändern lässt. Beispiel: MENU: SUB1 CLASS; MNAME; LINK 00.02.01; Sub page 1/1; $home/spage_1_1.en.htm 00.02.02; Sub page 1/2; $home/spage_1_2.en.htm # aendere Trennzeichen von ';' nach '|': DELIMETER:| MENU: SUB1 CLASS| MNAME| LINK 00.03.01| Sub page 2/1| $home/spage_2_1.en.htm 00.03.02| Sub page 2/2| $home/spage_2_2.en.htm ************************ PARSER: ************************ * Das Trennzeichen innerhalb von Tagdateien kann geändert werden o Eine neue Konfigurationsvariable Namens TAG_DELIMETER wurde der Konfigurationsdatei parser/inlcude/default.php hinzugefügt. Mit Hilfe dieser Variable kann das Trennzeichen zwischen den Parametern für parametrisierte Tags in der Tagdatei geändert werden (Voreinstellung ist das Komma). ############################################################################### Neue Features in phpCMS 1.2.0 ############################################################################### ************************ PARSER ************************ * XHTML o alle hart-kodierten Ausgaben von phpCMS sind nun valides XHTML. * URI Parameter-Behandlung o Im Stealth Mode können nun Parameter durch ein einfaches "?" an die URI angehängt werden: http://www.yoursite.com/index.htm?parameter=value anstelle der alten Syntax http://www.yoursite.com/index.htm?¶meter=value in früheren phpCMS-Versionen. o Auch brauchen an URIs angehängte Parameter nicht länger mit einem "dummy parameter" versehen werden, der früher gebraucht wurde, z.B. wenn ein Formular via action="get" abgesendet wurde. * neuer "Secure Stealth Mode" o Wenn der Parser im Stealth Mode läuft, werden in diesem Modus alle Versuche abgeblockt, Contentdateien direkt über den Parser aufzurufen (z.B. 'parser.php?file='). Dies ist wichtig, da ansonsten Dateien, die in einem per .htaccess-geschützen Verzeichnis liegen, dennoch über den Parser aufgerufen werden können. * getrennte 404 Fehler-Seiten o Eine separate 404 Fehler-Seite kann nun konfiguriert werden. Diese wird angezeigt, wenn eine Content-Datei nicht vorhanden und der Debug-Modus aus ist. Im Gegensatz zur normalen Fehler-Seite wird die 404 Fehler-Seite nicht durch einen HTTP-Redirect ausgeliefert. Daher bleibt die Adresse der URL im Browser-Fenster stehen, um dem User so die Möglichkeit zu geben, diese zu korrigieren. * Leerzeichen und Tabs o Der Parser entfernt nun keine Leerzeichen und -zeilen mehr aus Templates und Content Dateien. * Ignore Tag: o ..... kann benutzt werden, um Teile von Content- und Template-Dateien "auszukommentieren". Alles, was dazwischen steht, wird weder geparst noch ausgegeben. * P3P o phpCMS unterstützt nun "Platform for Privacy Preferences Project" (P3P) HTTP header (http://w3c.org/P3P/), die via GUI konfiguriert werden können. * "Mail2Crypt" SPAM-Schutz (in der 1.1.9 als PAX MailCrypt eingeführt) o Mail2Crypt wurde reimplementiert und arbeitet nun unabhängig von PAX. Über die GUI kann Mail2Crypt aktiviert, und die Pfade zu den relevanten Dateien konfiguriert werden. Mail2Crypt's Tag-Syntax lautet nun (Die alte Syntax bleibt noch bis zur v1.3.0 erhalten). Die Einbindung der benötigten JS-Datei erfolgt nun automatisch, wenn ein Mail2Crypt-Tag innnerhalb einer Seite verwendet wird. Die "include/embed"-Tags werden nicht mehr gebraucht. * Dyna-Tags o erweiterte PAX Dyna-Tags-Logik, um Parameter in eigenen Tags zu erlauben. ************************ MENU & SITEMAP ************************ * PARENTCLASS o Neuer Parameter "PARENTCLASS" in {MENU} für mehr Flexibilität im Template hinzugefügt: o {MENU NAME="SUB1" PARENTCLASS="00.01"} zeigt das Menü mit dem Namen SUB1 an, das zum MENU-Eintrag 00.01 gehört. * SELF o Neuer Layout-Typ "SELF" für MENU- and TOC-Templates. Wenn es benutzt wird, wird der Menü-Eintrag der aktuellen Seite damit dargestellt - ansonsten wird das "ACTIVE"-Layout verwendet. * Parameter in URLs o Es können Parameter in den im Menü definierten URLs verwendet werden. Diese werden ebenfalls bei der Ermittlung des aktiven Menüpunktes berücksichtigt. (Wenn in der Content Datei keine Menü-Klasse angegeben ist.) * TOC Neue Parameter in den {TOC}-Befehl für Templates hinzugefügt: o {TOC CLASS="class" TOCTEMP="template"} + Ein mit 'TOCTEMP' definiertes (Sitemap-)Template kann auf allen Menü-Ebenen verwendet werden. Hierdurch brauchen z.B. nicht für drei Menü-Ebenen drei identische Templates verwendet werden. o {TOC CLASS="class" TOCSUFFIX="suffix"} + Mit 'TOCSUFFIX' kann leicht zu einer alternativen Templategruppe gewechselt werden. Hierbei wird jeweils 'suffix' an den Menünamen angehängt, aus 'MAIN' wird so 'MAINsuffix' und aus 'SUB1' wird 'SUBsuffix'. o Die Kombination {TOC CLASS="class" TOCTEMP="template" TOCSUFFIX="suffix"} hätte die gleiche Wirkung wie {TOC CLASS="class" TOCTEMP="templatesuffix"}. o {TOC CLASS="class" SHOWACTIVES} + Das Schlüsselwort 'SHOWACTIVES' erzwingt die Berücksichtigung von 'ACTIVE' und 'SELF'. Diese werden ansonsten nicht interpretiert, da die Sitemap selbst der aktive Link wäre. Wird folglich nur benötigt, wenn TOC als Menü auf verschiedenen Seiten verwendet wird. ************************ VOLLTEXTSUCHE ************************ * Suchformular und Such-Ergebnisseite können nun auf einer einzigen Seite angezeigt werden. * zusätzliche Fehlermeldungen können eingerichtet werden, um den Usern einen Hinweis zu geben, wenn sie nach einem Wort aus der Stopwort-Datei oder nach einem "verbotenen" Begriff suchen. * Volltextsuche erkennt nun automatisch die gzip-Kompression in den Such-Dateien. Der "hidden-input-tag" in Suchformularen wird nun nicht mehr benötigt. * wurde eingeführt, das in der home.tag definiert werden kann. Es wird zwischen dem "zurück-" und "weiter"-Link ausgegeben. Wenn es undefiniert ist, wird es durch " " ersetzt. ************************ HTTP- UND FILE-INDEXER ************************ * Der File-Indexer unterstützt nun lokale Stop-Wort-Dateien. * Im File-Indexer können beliebig viele zu indizierende Felder konfiguriert werden. * Stop-Wort-Dateien können durch den File-Indexer optimiert werden. Diese Optimierung löscht doppelte Einträge, sortiert Stop-Wörter in alphabetischer Reihenfolge, und konvertiert sie ins richtige (kleingeschriebene) Format. * Einführung eines Index-Ausschluss Tags. (HTTP- und File-Indexer) .... kann benutzt werden, um Teile des Contents oder Templates (wie Menüs etc.) auszuchliessen, so dass sie nicht indiziert werden. Links innerhalb des Nonindex Tags werden dennoch gespidert. * Einführung eines Spider-Ausschluss Tags (HTTP-Indexer) ... kann benutzt werden, um darin eingeschlossene Links vom Spidervorgang auszuschliessen. * verbesserter HTTP-Indexer Profil-Wizard Pfad Eintellungen für das Spidern/inclusion/exclusion können nun editiert werden. * Der HTTP-Indexer unterstützt nun das Manipulieren/Ersetzen von Teilen der URIs nach dem Indizieren per Regular Expression * Auch Zahlen werden nun indiziert und unterliegen keiner Mindestlänge. ************************ CACHE ************************ * Verbessertes Handling von serverseitigen, gecachten Dateien. Mehrere virtuelle Domains können nun mit einer phpCMS Installation betrieben werden und sich das Cache Verzeichnis teilen. Um Dateinamen-Konflikte zu vermeiden, werden die Cache-Dateien unter einem MD5-verschlüsselten, aus Domainnamen und komplettem Pfad der gecachten Datei zusammengesetzen Namen gespeichert. ************************ STATISTIKEN ************************ * "Top Referrer" und "Last Referrer" können protokollieret und mit einem mitgelieferten Plug-in dargestellt werden. Das Loggen der Referrer kann konfiguriert werden und läuft unabhänging vom Statistik-Modul. Die Darstellung der Referrer-Daten auf einen Seiten ist ebenfalls konfigurierbar. ************************ GUI ************************ * Komplett neuer File-Manager mit integrierter Cache-Ansicht im GUI. o verwendet Dateitypen Bibliothek mit Icons für alle gängigen Dateitypen und für die zum Erstellen neuer Dateien verwendeten Templates. o Dateiliste ist auf-und absteigend sortierbar für alle Eigenschaften. o Es kann zwischen Highlight- und Editier-Ansicht gewechselt werden, ohne Änderungen zu verlieren. o Ein im Browser ausführbare Datei wird nun in einem neuen Fenster geöffnet. o jetzt mit Multi-Kopier-/Umbenn-Funktion: + optionale Verwendung von Prä- und/oder Suffix für den ausgewählten Dateinamen oder Ordner. + bei bereits bestehenden Dateien wird vor dem Überschreiben nachgefragt. o Kürzung der Darstellung überlanger Dateinamen in Filemanager und Cache-Ansicht kann im GUI konfiguriert werden. Der vollständige Dateiname ist bei MouseOver sichtbar. * verbesserte Usability des phpCMS Konfigurations-Fensters. Untereinstellungen werden verborgen, wenn die übergeordnete Funktion deaktiviert ist. ************************ DEBUG-MODUS ************************ * Komplett neu geschriebener, Passwort-geschützer Debug-Modus mit vielen Funktionen. Aufgerufen durch Hinzufügen von "?debug" als Parameter an eine URI (z.B. http://www.meineseite.de/index.htm?debug) ************************ ONLINE-EDITOR ************************ * Sicherheitsrelevante Verbesserungen: o Online-Editor kann nun über die GUI abgeschalte werden, wenn er nicht benötigt wird (standardmässig auf "off") o Einige Standard-Passwörter sind nun als Editor-Passwörter nicht mehr erlaubt. * mehrere Editor-Passwörter können innerhalb eines Projekts gesetzt werden, durch Kommata getrennt: EDITPASSWORD := password1, password2, password3, ... Dadurch ist es z.B. möglich, verschiedene Passwörter für unterschiedliche Seiten zu vergeben, und zusätzlich ein "Master-Passwort" für alle Seiten. * mehrere kleine Verbesserungen am Online Editor. ************************ BUG FIXES ************************ * Viele Bug-Fixe and Verbesserungen. Nährere Infos dazu im CHANGELOG und im phpCMS Bug-Tracker bei SourceForge (http://www.sourceforge.net/projects/phpcms).