====== Seiten- und Ordner- Informationen ====== Allgemeine Informationen zu Ordnern und Seiten des Seitenbaumes halten diese Objekte vor. Das kann z.B. der Name einer Seite oder eines Ordners sein. Die Objekte werden oft für Navigationsmodule genutzt. Die Initialisierung der Objekte wird folgendermaßen vorgenommen: //Objekt für Ordner laden $meine_catinfos =& sf_factoryGetObjectCache('PAGE', 'Catinfos'); //Objekt für Seiten laden $meine_pageinfos =& sf_factoryGetObjectCache('PAGE', 'Pageinfos'); Wenn Sie Seiten- und Kategorieinformationen für Ihren Code in der "Modul Frontendausgabe" benötigen, dann benutzen Sie bitte nach Möglichkeit immer die Methode sf_factoryGetObject**Cache**. Sie erhalten dann ein bereits vorkonfiguriertes Objekt, in dem alle wichtigen Parameter für die aktuelle Sprache des Projektes korrekt gesetzt sind. Die Vorkonfigurierten Objekte haben folgende Eigenschaften: **Im Backend** * Es werden nur Kategorie- und Seiteninformationen generiert, für die der Benutzer das entsprechende Recht hat. * "Bereich Redaktion / Seiten -> Kategorien sehen" für die Catinfos * "Bereich Redaktion / Seiten -> Seiten sehen" für die Pageinfos **Im Frontend** * Sind Ordner/ Seiten im Frontend geschützt, werden Informationen hierzu nur generiert, wenn der eingeloggte Benutzer die nötigen Berechtigungen hat. * "Bereich Frontend / Geschützte Ordner im Frontend anzeigen" für die Catinfos * "Bereich Frontend / Geschützte Seiten im Frontend anzeigen" für die Pageinfos Alternativ stehen die gecachten Objekte in den Modulen auch als $SF_pageinfos und $SF_catinfos zur Verfügung. Ein Zugriff auf den Seitentitel im Modul könnte dann folgendermaßen aussehen: //Gibt Seitentitel der aktuellen Seite aus echo $SF_pageinfos->getTitle($idcatside); Wollen Sie auf eine andere Sprachversion ihres Projektes zugreifen oder wollen Sie die Funktionalität innerhalb eines Plugins nutzen, müssen die Objekte manuell konfigurieren. Dies wird in den folgenden Unterkapiteln für Ordner und Seiten weiter behandelt. Das generieren der Objekte Catinfos und Pageinfos ist sehr rechenzeitintensiv. Generieren sie die Objekte nur manuell, wenn es wirklich sinnvoll ist. ===== Ordnerinformationen - CatInfos ===== Die Klasse Catinfos (class.SF_PAGE_Catinfos.php) gibt Informationen zu Ordnern wieder. Folgende set Methoden stehen zur Verfügung, um das Objekt zu konfigurieren. ^ Methodenname ^ Parameter ^ Beschreibung ^ | setIdlang($idlang) | $idlang | Setzt die Sprache (id)| | setCheckFrontendperms($boolean) | $boolean | Überprüft die Userrechte im [[:referenz:glossar#Frontend]]| | setCheckBackendperms($boolean) | $boolean | Überprüft die Userrechte im [[:referenz:glossar#Backend]]| | setLinkSessionstring($sessionstring) | $sessionstring | | | setLinkUseIdlang($boolean) | $boolean | | | setLinkExtraUrlstring($urlstring) | $urlstring | | Zum generieren des Baumes muss die Methode generate() ausgeführt werden. Das folgende Beispiel zeigt das Konfigurieren eines Objektes mit dem anschließenden Ausführen des Befehls generates(), womit die Inhalte erzeugt werden. //Objekt initalisieren $meine_catinfo =& $sf_factory->getObject('Page', 'Catinfos'); //Es sollen Kategorien in der aktuellen Projektsprache generiert werden $meine_catinfo->setIdlang($lang); //Die Backendrechte sollen berücksichtigt werden $meine_catinfo->setCheckBackendperms(TRUE); //Kategorieinformationen generieren $meine_catinfo->generate(); Übersicht aller verfügbaren get Methoden: ^ Methodenname ^ Parameter ^ Beschreibung ^ ^ |getLink($idcat) | $idcat | Link in der Form „index.php?idcat=1“ oder bei modeRewrite „ordner/“| | |getIdcatlang($idcat) | $idcat | Sprach (id) in dem sich der Ordner befindet | | |getRewriteUseAutomaticRaw($idcat) | $idcat | Automatische Vergabe des Ordnernamens bei eingeschalteten modeRewrite an /aus | | |getRewriteAliasRaw($idcat) | $idcat | Name des Ordners bei eingeschalteten modeRewrite | | |getIduser($idcat) | $idcat | User in Form der ID, der am Ordner gearbeitet hat | | |getCreatedTimestamp($idcat) | $idcat | Datum der Erstellung des Ordners als Timestamp ( 1215451318 ) | | |getLastmodifiedTimestamp($idcat) | $idcat | Datum der letzten Änderung des Ordners als Timestamp ( 1215451318 )| | |getParent($idcat) | $idcat | Übergeordneter Ordner | | |getIsOnline($idcat) | $idcat | Zustand des Ordners on-/offline/gesperrt | | |getIsProtected($idcat) | $idcat | | | |getIdtplconf($idcat) | $idcat | | | |getTitle($idcat) | $idcat | Titel des Ordners | | |getDescription($idcat) | $idcat | Feld- Beschreibung der Ordnerkonfiguration | | |getRootParent($idcat) | $idcat | | | |getIdcatsideStartpage($idcat) | $idcat | Ausgabe der gesetzten Startseite des Ordners | | |getChilds($idcat, $options = array()) | (int)$idcat (arr) $options | | * | **//*//** //Ist in der aktuellen Api noch nicht enthalten// Nun können mit verschiedenen get Methoden Ordnerinformationen abgegriffen werden. Das Beispiel zeigt den Zugriff auf einen Link. //Link eines Ordners ausgeben echo $meine_catinfo->getLink($idcat); ===== Seiteninformationen - PageInfos ===== Die Klasse Pageinfos (class.SF_PAGE_Pageinfos.php) gibt Informationen zu Seiten aus. Folgende set Methoden stehen zur Verfügung, um das Objekt zu konfigurieren. ^ Methodenname ^ Parameter ^ Beschreibung ^ | setIdlang($idlang) | $idlang | Setzt die Sprache (id)| | setCheckFrontendperms($boolean) | $boolean | Überprüft die Userrechte im [[:referenz:glossar#Frontend]]| | setCheckBackendperms($boolean) | $boolean | Überprüft die Userrechte im [[:referenz:glossar#Backend]]| | setLinkSessionstring($sessionstring) | $sessionstring | | | setLinkUseIdlang($boolean) | $boolean | | | setLinkExtraUrlstring($urlstring) | $urlstring | | Zum generieren des Baumes muss die Methode generate() ausgeführt werden. Das folgende Beispiel zeigt das Konfigurieren eines Objektes mit dem anschließenden Ausführen des Befehls generate(). Damit werden die Informationen gerneriert, die später mit "get" Methoden abgerufen werden können. //Objekt initalisieren $meine_pageinfo =& $sf_factory->getObject('Page', 'Catinfos'); //Es sollen Kategorien in der aktuellen Projektsprache generiert werden $meine_pageinfo->setIdlang($lang); //Die Frontendrechte sollen berücksichtigt werden $meine_pageinfo->setCheckFrontendperms(TRUE); //Seiteninformationen generieren $meine_pageinfo->generate(); Ausgabe Methoden sind dabei: ^ Methodenname ^ Parameter ^ Beschreibung ^ ^ |getLink($idcatside) | $idcatside | Link in der Form "index.php?idcatside=1" oder bei modeRewrite "ordner/seitenname.htm"| | |getIdcat($idcatside) | $idcatside | Ordner in dem sich die Seite befindet | | |getRewriteUseAutomatic($idcatside) | $idcatside | Automatische Vergabe des Seitennamens bei eingeschalteten modeRewrite an /aus | | |getRewriteUrlRaw($idcatside) | $idcatside | Name der Seite bei eingeschalteten modeRewrite | | |getSortindex($idcatside) | $idcatside | Reihenfolge der Seite in der Seitenstruktur | | |getCreatedTimestamp($idcatside) | $idcatside | Datum der Erstellung der Seite als Timestamp ( 1215451318 ) | | |getLastmodifiedTimestamp($idcatside) | $idcatside | Datum der letzten Änderung der Seite als Timestamp ( 1215451318 ) | | |getParent($idcatside) | $idcatside | Ordner in dem die Seite sich befindet | | |getIsOnline($idcatside) | (bool) $idcatside | Seite on /offline | | |getIsProtected($idcatside) | $idcatside | | | |getIdtplconf($idcatside) | $idcatside | | | |getTitle($idcatside) | $idcatside | Titel der Seite | | |getIsStart($idcatside) | (bool) $idcatside | Ist die Seite eine Startseite | | |getSummary($idcatside) | $idcatside | Notiz der Seite | * | |getMetaAuthor($idcatside) | $idcatside | MetaAuthor der Seite | * | |getMetaDescription($idcatside) | $idcatside | MetaDescription der Seite | * | |getMetaKeywords($idcatside) | $idcatside | MetaKeywords der Seite | * | |getIdcatsidesByIdcat($idcat,$options = array()) | (int) $idcat (arr) $options | Gibt alle Idcatsides einer Kategorie in einem Array zurück. Der zweite Parameter $options können folgende Optionen gesetzt werden:\\ **$options['order']** - Sortierung der Idcatside. Sortiert werden kann nach idcatside, sortindex, si_start, name, created, lastmodified, start, end, idside. Standardwert ist sortindex\\ **$options['order_dir']** - Sortierrichtung, mögliche Werte sind ASC oder DESC. Standardwert ist ASC\\ **$options['show_startpage']** - Startseite anzeigen. (bool) true oder false. Standardwert ist true\\ **$options['hide_online']** - Seiten die online sind nicht anzeigen. Eingabemöglichkeiten sind (bool) true oder false\\ **$options['hide_offline']** - Seiten die offline sind werden nicht angezeigt, wenn (bool) true übergeben wird. Standardwert ist true.| * | |getPageinfoDataArrayByRef() | | kompletter Seitenbaum als Array | | **//*//** //Ist in der API ab Sefrengo 1.4.1 enthalten// Nun können mit verschiedenen get Methoden Seiteninformationen abgegriffen werden. Das Beispiel zeigt den Zugriff auf einen Seitentitel. //Seitentitel ausgeben echo $meine_pageinfo->getTitle($idcatside); ====== Beispiele ====== Kleine Beispiele aus dem vorher gelesenen über Ordner- und Seitenausgabe der API ===== Titel einer Seite ===== Der Titel gehört ja zum Grundgerüst einer Seite und wird "" eingeleitet. Gefolgt von einem Text und mit "" abgeschlossen. Meine Seite Dies kann man in Sefrengo auf verschiedene Weise auch flexibel umsetzen. ==== Ordnername - Seitenname ==== Dies Variante zeigt die Ausgabe eines Textes gefolgt vom Ordner- und Seitennamen, der sich bei Seitenwechsel anpasst. <CMSPHP> echo 'Meine Seite - '.$SF_catinfos->getTitle($idcat).' : '.$SF_pageinfos->getTitle($idcatside); </CMSPHP> **Ausgabe** Meine Seite - OrdnerName : SeitenName ==== Seitennotiz ==== Es kann aber auch das Feld Notiz in der Seitenkonfiguration im [[:referenz:glossar#Backend]] genutzt werden einen Text auszugeben. <CMSPHP> echo 'Meine Seite - '.$SF_pageinfos->getSummary($idcatside); </CMSPHP> **Ausgabe** Meine Seite -Alles was ich in der Notiz eingetragen habe ==== Kombination ==== Eine Kombination aus den vorhergehenden Beispielen << [[:handbuch:entwicklung:api-zugriff-auf-seiteninhalte#Ordnername - Seitenname]] & [[:handbuch:entwicklung:api-zugriff-auf-seiteninhalte#Seitennotiz]] >> ergibt das folgende. Diese Variante gibt entweder [[:handbuch:entwicklung:api-zugriff-auf-seiteninhalte#Ordnername - Seitenname]] oder bei der ausgefüllten Notiz diese aus. <CMSPHP> if ($SF_pageinfos->getSummary($idcatside)=='') { echo 'Meine Seite - '.$SF_catinfos->getTitle($idcat).' : '.$SF_pageinfos->getTitle($idcatside); } else { echo 'Meine Seite - '.$SF_pageinfos->getSummary($idcatside); } </CMSPHP> **Ausgabe** //Notizfeld ist leer Meine Seite - OrdnerName : SeitenName //Bei ausgefüllter Notiz Meine Seite - Alles was ich in der Notiz eingetragen habe ===== Letzte Änderung einer Seite ===== Wie aktuell bzw. wann hat sich zuletzt was auf der Seite getan ? Dies kann man mit Hilfe von echo $SF_pageinfos->getLastmodifiedTimestamp($idcatside); ausgeben. Die Ausgabe ergibt einen Timestamp in Form von. 1216662010 Diese Ausgabe kann mit Hilfe der [[http://de.php.net/date|PHP Fkt. date()]] formatiert ausgegeben werden. echo 'Letzte Änderung der Seite '.date("d.m.Y",$SF_pageinfos->getLastmodifiedTimestamp($idcatside)); ** Ausgabe ** Letzte Änderung der Seite 21.07.2008 * Torsten Hofmann * [[profil>1|Björn Brockmann]]