openrat-cms

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

commit 95e75790a800260fa1256086338404d200eeb8c2
parent a7a9a99fc0236066462aefa5cf3b1e6f6cba4ea6
Author: dankert <devnull@localhost>
Date:   Tue,  4 Jan 2005 21:31:52 +0100

Neues Menue

Diffstat:
dynamicClasses/DoiMenu.class.php | 131+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 131 insertions(+), 0 deletions(-)

diff --git a/dynamicClasses/DoiMenu.class.php b/dynamicClasses/DoiMenu.class.php @@ -0,0 +1,130 @@ +<?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 20:31:52 dankert +// Neues Menue +// +// Revision 1.1 2005/01/04 20:00:12 dankert +// Darstellung eines DHTML-Menues +// +// Revision 1.2 2004/12/28 22:57:56 dankert +// Korrektur Vererbung, "api" ausgebaut +// +// Revision 1.1 2004/10/14 21:15:29 dankert +// Erzeugen und Anzeigen einer Sitemap +// +// --------------------------------------------------------------------------- + + + +/** + * Erstellen eines DHTML-Menues (DoiMenu) + * + * Diese Klasse erzeugt Javascript-Code fuer das DoiMenu + * + * @see http://doimenu.sf.net for details + * @author Jan Dankert + */ +class DoiMenu extends Dynamic +{ + /** + * Bitte immer eine Beschreibung benutzen, dies ist fuer den Web-Developer hilfreich. + * @type String + */ + var $description = 'You *have to* include doiMenuDOM.js in the page!<br/>Put the code below in head section:<br/><tt>&lt;script type="text/javascript" src="{{your-elementname}}.js"&gt;&lt;/script&gt;</tt><br/>The file is distributed with OpenRat'; + + + /** + * Parameter mit Objekt-Id + * Die Datei mit dieser Id enthaelt Parameter fuer das Menu + */ + var $parameterFileId = 0; + + /** + * Ausrichtung des Menues. + * available value : 'horizontal','vertical'. + */ + var $direction = 'horizontal'; + + + /** + * Erstellen des DHTML-Menues + */ + function execute() + { + // Erstellen eines Untermenues + + // Ermitteln der aktuellen Seite + $thispage = new Page( $this->getObjectId() ); + $thispage->load(); // Seite laden + + $this->outputLn('<script name="javascript" type="text/javascript">'); + + $this->outputLn(" var menu = new TMainMenu('menu','".$this->direction."');"); + + $ro = new Folder($this->getRootObjectId()); + $this->showFolder( $ro ); + + if ( intval( $this->parameterFileId ) != 0 ) + { + $f = new File( intval($this->parameterFileId) ); + $this->outputLn( $f->loadValue() ); + } + + $this->outputLn( ' menu.Build()' ); + $this->outputLn( '</script'); + } + + + function showFolder( $fo ) + { + if ( $fo->objectid == intval($this->getRootObjectId()) ) + $parentMenu = 'menu'; + else + $parentMenu = 'menu'.$fo->objectid; + + foreach( $fo->getObjects() as $o ) + { + $menu = 'menu'.$o->objectid; + + if ( $o->isFolder ) + { $nf = new Folder($o->objectid); + $pl = $nf->getFirstPageOrLink(); + if ( is_object($pl) ) + { + $this->outputLn(" var $menu = new TPopMenu('".$o->name."','','a','".$this->pathToObject($pl->objectid)."','".$o->desc."');"); + $this->outputLn(" $parentMenu.Add(menu".$o->objectid.");"); + $this->showFolder( $nf ); + } + } + + if ( $o->isPage || $o->isPage ) + { + $this->outputLn(" var $menu = new TPopMenu('".$o->name."','','a','".$this->pathToObject($o->objectid)."','".$o->desc."');"); + $this->outputLn(" $parentMenu.Add(menu".$o->objectid.");"); + } + } + } + +} + +?>+ \ No newline at end of file