openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 24220cdd5094d9e195c04ae2e422097806aee772
parent 8b7a59caaa95a43e00eeb758a67f90ec6352085a
Author: dankert <devnull@localhost>
Date:   Tue,  4 Jan 2005 20:59:55 +0100

Allgemeine Korrekturen, Erben von "Dynamic"-klasse

Diffstat:
dynamicClasses/BreadCrumb.class.php | 75++++++++++++++++++++++++++++++---------------------------------------------
dynamicClasses/ClassicMenu.class.php | 130+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
dynamicClasses/LastPage.class.php | 41+++++++++++++++++++++--------------------
dynamicClasses/NextPage.class.php | 43+++++++++++++++++++++++++------------------
dynamicClasses/PagesNavigation.class.php | 32++++++++++++++++----------------
dynamicClasses/TeaserList.class.php | 23+++++++++++------------
6 files changed, 233 insertions(+), 111 deletions(-)

diff --git a/dynamicClasses/BreadCrumb.class.php b/dynamicClasses/BreadCrumb.class.php @@ -20,7 +20,10 @@ // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // --------------------------------------------------------------------------- // $Log$ -// Revision 1.1 2004-11-10 22:43:35 dankert +// Revision 1.2 2005-01-04 19:59:55 dankert +// Allgemeine Korrekturen, Erben von "Dynamic"-klasse +// +// Revision 1.1 2004/11/10 22:43:35 dankert // Beispiele fuer dynamische Templateelemente // // --------------------------------------------------------------------------- @@ -28,10 +31,10 @@ /** - * Erstellen eines Menues + * Erstellen einer sog. Brotkruemel-Navigation * @author Jan Dankert */ -class Sitemap /*extends DynamicElement*/ +class BreadCrumb extends Dynamic { /** * Bitte immer alle Parameter in dieses Array schreiben, dies ist fuer den Web-Developer hilfreich. @@ -51,8 +54,7 @@ class Sitemap /*extends DynamicElement*/ /** * Zeichenkette, die vor einem aktiven Menuepunkt gezeigt wird */ - var $beforeEntry = '<li><strong>'; - var $afterEntry = '</strong></li>'; + var $beforeEntry = '&raquo;'; var $api; @@ -64,50 +66,33 @@ class Sitemap /*extends DynamicElement*/ // Erstellen eines Untermenues // Ermitteln der aktuellen Seite - $thispage = new Page( $this->api->getObjectId() ); - $thispage->load(); // Seite laden - - // uebergeordneter Ordner dieser Seite - $this->showFolder( Folder::getRootObjectId() ); - } + $f = new Folder($this->page->parentid); + $parentIds = $f->parentObjectIds(false,true); + $lastoid = 0; - function showFolder( $oid ) - { - // uebergeordneter Ordner dieser Seite - $f = new Folder( $oid ); - - // Schleife ueber alle Objekte im aktuellen Ordner - foreach( $f->getObjectIds() as $id ) + foreach( $parentIds as $oid ) { - $o = new Object( $id ); - $o->languageid = $this->page->languageid; - $o->load(); - - // Ordner - if ($o->isFolder ) - { - $this->api->output( '<li><strong>'.$o->name.'</strong><br/>' ); - $this->api->output( '<ul>' ); - $this->showFolder( $id ); // Rekursiver Aufruf dieser Methode - $this->api->output( '</ul></li>' ); - } + $of = new Folder($oid); + $of->load(); + $pl = $of->getFirstPageOrLink(); + + $this->output( $this->beforeEntry ); + + if ( is_object($pl) && $pl->objectid != $this->page->objectid ) + $this->output('<a href="'.$this->pathToObject($pl->objectid).'" class="breadcrumb">'.$of->name.'</a>' ); + else + $this->output('<span class="breadcrumb">'.$of->name.'</span>' ); - // Seiten und Verkn?fpungen - if ($o->isPage || $o->isLink ) - { - // Wenn aktuelle Seite, dann markieren, sonst Link - if ( $this->api->getObjectId() == $id ) - { - // aktuelle Seite - $this->api->output( '<li><strong>'.$o->name.'</strong></li>' ); - } - else - { - // Link erzeugen - $this->api->output( '<li><a href="'.$this->api->page->path_to_object($id).'">'.$o->name.'</a></li>' ); - } - } + if ( is_object($pl) ) + $lastoid = $pl->objectid; + } + + if ( $lastoid != $this->page->objectid ) + { + $this->output( $this->beforeEntry ); + $this->output('<span class="breadcrumb">'.$this->page->name.'</span>' ); } + } } diff --git a/dynamicClasses/ClassicMenu.class.php b/dynamicClasses/ClassicMenu.class.php @@ -0,0 +1,129 @@ +<?php +// --------------------------------------------------------------------------- +// $Id$ +// --------------------------------------------------------------------------- +// OpenRat Content Management System +// Copyright (C) 2002 Jan Dankert, jandankert@jandankert.de +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 2 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// --------------------------------------------------------------------------- +// $Log$ +// Revision 1.1 2005-01-04 19:59:55 dankert +// Allgemeine Korrekturen, Erben von "Dynamic"-klasse +// +// Revision 1.3 2004/12/19 22:35:23 dankert +// Parameter -Angabe +// +// Revision 1.2 2004/12/19 15:19:29 dankert +// Klasse erbt von "Dynamic" +// +// Revision 1.1 2004/11/10 22:43:35 dankert +// Beispiele fuer dynamische Templateelemente +// +// --------------------------------------------------------------------------- + + + +/** + * Erstellen eines Menues + * @author Jan Dankert + */ +class ClassicMenu extends Dynamic +{ + /** + * Bitte immer alle Parameter in dieses Array schreiben, dies ist fuer den Web-Developer hilfreich. + * @type String + */ + var $parameters = Array( + 'beforeEntry'=>'Chars before an active menu entry', + 'afterEntry' =>'Chars after an active menu entry' + ); + + /** + * Bitte immer eine Beschreibung benutzen, dies ist fuer den Web-Developer hilfreich. + * @type String + */ + var $description = 'This is a dynamic Menue which contains all pages. Folders are opened when useful. Nice standard menu :-)'; + + + /** + * Zeichenkette, die vor einem aktiven Menuepunkt gezeigt wird + */ + var $beforeEntry = '<li><strong>'; + var $afterEntry = '</strong></li>'; + + + // Erstellen des Hauptmenues + function execute() + { + $rootId = $this->getRootObjectId(); + // Erstellen eines Untermenues + + $f = new Folder( $this->page->parentid ); + $this->parentFolders = $f->parentObjectIds(false,true); + + $this->showFolder( $rootId ); + } + + function showFolder( $oid ) + { + $this->output('<ul>'); + $f = new Folder( $oid ); + + // Schleife ueber alle Objekte im aktuellen Ordner + foreach( $f->getObjects() as $o ) + { + // Nur Seiten anzeigen + if ($o->isFolder ) + { + $nf = new Folder($o->objectid); + $fp = $nf->getFirstPageOrLink(); + + if ( is_object($fp) ) + { + + // Wenn aktuelle Seite, dann markieren, sonst Link + if ( $this->page->objectid == $fp->objectid ) + // aktuelle Seite + $this->output( '<li><strong>'.$o->name.'</strong><br/>' ); + else + // Link erzeugen + $this->output( '<li><a href="'.$this->pathToObject($fp->objectid).'">'.$o->name.'</a><br/>' ); + + if ( in_array($o->objectid,$this->parentFolders) ) + { + $this->showFolder($o->objectid); + } + + $this->output( '</li>' ); + } + } + + // Nur Seiten anzeigen + if ($o->isPage || $o->isLink ) + { + // Wenn aktuelle Seite, dann markieren, sonst Link + if ( $this->getObjectId() == $o->objectid) + // aktuelle Seite + $this->output( '<li><strong>'.$o->name.'</strong></li>' ); + else + // Link erzeugen + $this->output( '<li><a href="'.$this->page->path_to_object($o->objectid).'">'.$o->name.'</a></li>' ); + } + } + $this->output('</ul>'); + } + +}+ \ No newline at end of file diff --git a/dynamicClasses/LastPage.class.php b/dynamicClasses/LastPage.class.php @@ -20,7 +20,10 @@ // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // --------------------------------------------------------------------------- // $Log$ -// Revision 1.1 2004-11-10 22:43:35 dankert +// Revision 1.2 2005-01-04 19:59:55 dankert +// Allgemeine Korrekturen, Erben von "Dynamic"-klasse +// +// Revision 1.1 2004/11/10 22:43:35 dankert // Beispiele fuer dynamische Templateelemente // // --------------------------------------------------------------------------- @@ -28,10 +31,10 @@ /** - * Erstellen eines Hauptmenues + * Erstellen eines Links zur Seite davor * @author Jan Dankert */ -class MainMenu /*extends DynamicElement*/ +class LastPage extends Dynamic { /** * Bitte immer alle Parameter in dieses Array schreiben, dies ist fuer den Web-Developer hilfreich. @@ -50,28 +53,26 @@ class MainMenu /*extends DynamicElement*/ */ var $description = 'Creates a main menu.'; var $version = '$Id$'; - var $api; - // Erstellen des Hauptmenues + function execute() { - // Lesen des Root-Ordners - $folder = new Folder( Api::getRootObjectId() ); - - // Schleife ueber alle Inhalte des Root-Ordners - foreach( $folder->getObjectIds() as $id ) + $folder = new Folder( $this->page->parentid ); + + $lastObject = null; + + // Schleife ueber alle Inhalte des Ordners + foreach( $folder->getObjects() as $o ) { - $o = new Object( $id ); - $o->languageid = $this->page->languageid; - $o->load(); - if ( $o->isFolder ) // Nur wenn Ordner + if ( $o->isPage || $o->isLink ) { - $f = new Folder( $id ); - - // Ermitteln eines Objektes mit dem Dateinamen index - $oid = $f->getObjectIdByFileName('index'); - if ( is_numeric($oid) && $oid!=0 ) - $this->api->output( $this->arrowChar.'<a href="'.$this->page->path_to_object($oid).'" title="'.$o->desc.'">'.$o->name.'</a>' ); + if ( is_object($lastObject) && $o->objectid == $this->page->objectid ) + { + $this->output( '<a href="'.$this->pathToObject($lastObject->objectid).' class="next">'.$lastObject->name.'</a>' ); + break; + } + + $lastObject = $o->objectid; } } } diff --git a/dynamicClasses/NextPage.class.php b/dynamicClasses/NextPage.class.php @@ -20,7 +20,10 @@ // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // --------------------------------------------------------------------------- // $Log$ -// Revision 1.1 2004-11-10 22:43:35 dankert +// Revision 1.2 2005-01-04 19:59:55 dankert +// Allgemeine Korrekturen, Erben von "Dynamic"-klasse +// +// Revision 1.1 2004/11/10 22:43:35 dankert // Beispiele fuer dynamische Templateelemente // // --------------------------------------------------------------------------- @@ -28,10 +31,10 @@ /** - * Erstellen eines Hauptmenues + * Erstellen eines Links zur naechsten Seite * @author Jan Dankert */ -class MainMenu /*extends DynamicElement*/ +class NextPage extends Dynamic { /** * Bitte immer alle Parameter in dieses Array schreiben, dies ist fuer den Web-Developer hilfreich. @@ -52,26 +55,30 @@ class MainMenu /*extends DynamicElement*/ var $version = '$Id$'; var $api; - // Erstellen des Hauptmenues + function execute() { - // Lesen des Root-Ordners - $folder = new Folder( Api::getRootObjectId() ); - + // Lesen des Ordners + $folder = new Folder( $this->page->parentid ); + + $was = false; + // Schleife ueber alle Inhalte des Root-Ordners - foreach( $folder->getObjectIds() as $id ) + foreach( $folder->getObjects() as $o ) { - $o = new Object( $id ); - $o->languageid = $this->page->languageid; - $o->load(); - if ( $o->isFolder ) // Nur wenn Ordner + if ( $o->isPage || $o->isLink ) // Nur wenn Ordner { - $f = new Folder( $id ); - - // Ermitteln eines Objektes mit dem Dateinamen index - $oid = $f->getObjectIdByFileName('index'); - if ( is_numeric($oid) && $oid!=0 ) - $this->api->output( $this->arrowChar.'<a href="'.$this->page->path_to_object($oid).'" title="'.$o->desc.'">'.$o->name.'</a>' ); + if ( $o->objectid == $this->page->objectid ) + { + $was = true; + continue; + } + + if ( $was ) + { + $this->output( '<a href="'.$this->pathToObject($o->objectid).' class="next">'.$o->name.'</a>' ); + break; + } } } } diff --git a/dynamicClasses/PagesNavigation.class.php b/dynamicClasses/PagesNavigation.class.php @@ -20,7 +20,10 @@ // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // --------------------------------------------------------------------------- // $Log$ -// Revision 1.1 2004-11-10 22:43:35 dankert +// Revision 1.2 2005-01-04 19:59:55 dankert +// Allgemeine Korrekturen, Erben von "Dynamic"-klasse +// +// Revision 1.1 2004/11/10 22:43:35 dankert // Beispiele fuer dynamische Templateelemente // // --------------------------------------------------------------------------- @@ -31,14 +34,14 @@ * Erstellen eines Hauptmenues * @author Jan Dankert */ -class MainMenu /*extends DynamicElement*/ +class PagesNavigation extends Dynamic { /** * Bitte immer alle Parameter in dieses Array schreiben, dies ist fuer den Web-Developer hilfreich. * @type String */ var $parameters = Array( - 'arrowChar'=>'String between menu entries, default: "&middot;"' + 'arrowChar'=>'String between entries' ); @@ -48,7 +51,7 @@ class MainMenu /*extends DynamicElement*/ * Bitte immer eine Beschreibung benutzen, dies ist fuer den Web-Developer hilfreich. * @type String */ - var $description = 'Creates a main menu.'; + var $description = 'Creates a page navigation.'; var $version = '$Id$'; var $api; @@ -56,22 +59,19 @@ class MainMenu /*extends DynamicElement*/ function execute() { // Lesen des Root-Ordners - $folder = new Folder( Api::getRootObjectId() ); + $folder = new Folder( $this->page->parentid ); + $nr = 0; // Schleife ueber alle Inhalte des Root-Ordners - foreach( $folder->getObjectIds() as $id ) + foreach( $folder->getObjects() as $o ) { - $o = new Object( $id ); - $o->languageid = $this->page->languageid; - $o->load(); - if ( $o->isFolder ) // Nur wenn Ordner + $nr++; + if ( $o->isPage || $o->isLink ) { - $f = new Folder( $id ); - - // Ermitteln eines Objektes mit dem Dateinamen index - $oid = $f->getObjectIdByFileName('index'); - if ( is_numeric($oid) && $oid!=0 ) - $this->api->output( $this->arrowChar.'<a href="'.$this->page->path_to_object($oid).'" title="'.$o->desc.'">'.$o->name.'</a>' ); + if ( $o->objectid != $this->page->objectid ) + $this->output( '<a href="'.$this->page->path_to_object($oid).'" title="'.$o->desc.'" class="pagenav">'.$nr.'</a>' ); + else + $this->output( '<strong>'.$nr.'</strong>' ); } } } diff --git a/dynamicClasses/TeaserList.class.php b/dynamicClasses/TeaserList.class.php @@ -20,7 +20,10 @@ // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // --------------------------------------------------------------------------- // $Log$ -// Revision 1.1 2004-10-14 21:15:43 dankert +// Revision 1.2 2005-01-04 19:59:55 dankert +// Allgemeine Korrekturen, Erben von "Dynamic"-klasse +// +// Revision 1.1 2004/10/14 21:15:43 dankert // Anzeige einer Nachrichtenliste // // --------------------------------------------------------------------------- @@ -28,10 +31,10 @@ /** - * Erstellen eines Hauptmenues + * Erstellen einer Teaser-Liste * @author Jan Dankert */ -class TeaserList +class TeaserList extends Dynamic { /** * Bitte immer alle Parameter in dieses Array schreiben, dies ist fuer den Web-Developer hilfreich. @@ -76,28 +79,24 @@ class TeaserList // Lesen des Root-Ordners if ( intval($this->folderid) == 0 ) - $folder = new Folder( $this->api->getRootObjectId() ); + $folder = new Folder( $this->getRootObjectId() ); else $folder = new Folder( intval($this->folderid) ); $folder->load(); // Schleife ueber alle Inhalte des Root-Ordners - foreach( $folder->getObjectIds() as $id ) + foreach( $folder->getObjects() as $o ) { - $o = new Object( $id ); - $o->languageid = $this->page->languageid; - $o->load(); if ( $o->isPage ) // Nur wenn Ordner { $p = new Page( $id ); $p->load(); - $this->api->output( '<'.$this->title_html_tag.$this->title_css_class.'>'.$p->name.'</'.$this->title_html_tag.'>' ); - $this->api->output( '<p'.$this->description_css_class.'>'.$p->desc.'</p>' ); - $this->api->output( '<p><a href="'.$this->api->page->path_to_object($id).'"'.$this->link_css_class.'>'.$this->forward_text.'</a></p>' ); + $this->output( '<'.$this->title_html_tag.$this->title_css_class.'>'.$p->name.'</'.$this->title_html_tag.'>' ); + $this->output( '<p'.$this->description_css_class.'>'.$p->desc.'</p>' ); + $this->output( '<p><a href="'.$this->pathToObject($o->objectid).'"'.$this->link_css_class.'>'.$this->forward_text.'</a></p>' ); } } - } } \ No newline at end of file