00001 <?php 00002 // --------------------------------------------------------------------------- 00003 // $Id$ 00004 // --------------------------------------------------------------------------- 00005 // OpenRat Content Management System 00006 // Copyright (C) 2002 Jan Dankert, jandankert@jandankert.de 00007 // 00008 // This program is free software; you can redistribute it and/or 00009 // modify it under the terms of the GNU General Public License 00010 // as published by the Free Software Foundation; either version 2 00011 // of the License, or (at your option) any later version. 00012 // 00013 // This program is distributed in the hope that it will be useful, 00014 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 // GNU General Public License for more details. 00017 // 00018 // You should have received a copy of the GNU General Public License 00019 // along with this program; if not, write to the Free Software 00020 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00021 // --------------------------------------------------------------------------- 00022 // $Log$ 00023 // Revision 1.2 2004-12-28 22:57:56 dankert 00024 // Korrektur Vererbung, "api" ausgebaut 00025 // 00026 // Revision 1.1 2004/10/14 21:15:29 dankert 00027 // Erzeugen und Anzeigen einer Sitemap 00028 // 00029 // --------------------------------------------------------------------------- 00030 00031 00032 00037 class Sitemap extends Dynamic 00038 { 00043 var $parameters = Array( 00044 'beforeEntry'=>'Chars before an active menu entry' 00045 ); 00046 00051 var $description = 'Creates a main menu.'; 00052 00053 00057 var $beforeEntry = '<li><strong>'; 00058 var $afterEntry = '</strong></li>'; 00059 00060 var $api; 00061 00065 function execute() 00066 { 00067 // Erstellen eines Untermenues 00068 00069 // Ermitteln der aktuellen Seite 00070 $thispage = new Page( $this->getObjectId() ); 00071 $thispage->load(); // Seite laden 00072 00073 // uebergeordneter Ordner dieser Seite 00074 $this->showFolder( $this->getRootObjectId() ); 00075 } 00076 00077 function showFolder( $oid ) 00078 { 00079 // uebergeordneter Ordner dieser Seite 00080 $f = new Folder( $oid ); 00081 00082 // Schleife ueber alle Objekte im aktuellen Ordner 00083 foreach( $f->getObjectIds() as $id ) 00084 { 00085 $o = new Object( $id ); 00086 $o->languageid = $this->page->languageid; 00087 $o->load(); 00088 00089 // Ordner 00090 if ($o->isFolder ) 00091 { 00092 $this->output( '<li><strong>'.$o->name.'</strong><br/>' ); 00093 $this->output( '<ul>' ); 00094 $this->showFolder( $id ); // Rekursiver Aufruf dieser Methode 00095 $this->output( '</ul></li>' ); 00096 } 00097 00098 // Seiten und Verkn?fpungen 00099 if ($o->isPage || $o->isLink ) 00100 { 00101 // Wenn aktuelle Seite, dann markieren, sonst Link 00102 if ( $this->getObjectId() == $id ) 00103 { 00104 // aktuelle Seite 00105 $this->output( '<li><strong>'.$o->name.'</strong></li>' ); 00106 } 00107 else 00108 { 00109 // Link erzeugen 00110 $this->output( '<li><a href="'.$this->pathToObject($id).'">'.$o->name.'</a></li>' ); 00111 } 00112 } 00113 } 00114 } 00115 } 00116 00117 ?>
1.5.8