openrat-cms

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

commit f3e5f58b2eb495b57cc3d2f3defb128131ebf475
parent 24220cdd5094d9e195c04ae2e422097806aee772
Author: dankert <devnull@localhost>
Date:   Tue,  4 Jan 2005 21:00:12 +0100

Darstellung eines DHTML-Menues

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

diff --git a/dynamicClasses/DHtmlMenu.class.php b/dynamicClasses/DHtmlMenu.class.php @@ -0,0 +1,182 @@ +<?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: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 Menues + * @author Jan Dankert + */ +class DHtmlMenu 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' + ); + + /** + * 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'; + + + var $position = 'relative'; + /* + $menu.SetCorrection(0,0); + $menu.SetCellSpacing(2); + $menu.SetItemDimension(50,20); + + $menu.SetBackground('#990000','','',''); + //menu.SetShadow(true,'#B0B0B0',6); + $menu.SetItemText('black','center','bold','',''); + $menu.SetItemBackground('#FFCCCC','','',''); + $menu.SetItemBorder(0,'buttonface','solid'); + $menu.SetItemTextHL('white','center','bold','',''); + $menu.SetItemBackgroundHL('','','',''); + $menu.SetItemBorderHL(0,'black','solid'); + $menu.SetItemTextClick('#990000','center','bold','',''); + $menu.SetItemBackgroundClick('white','','',''); + $menu.SetItemBorderClick(0,'black','solid'); + $menu.SetBorder(0,'navy','solid'); + + $menu._pop.SetCorrection(3,0); + $menu._pop.SetItemDimension(150,20); + $menu._pop.SetPaddings(2); + $menu._pop.SetBackground('#990000','','',''); + $menu._pop.SetSeparator(150,'center','black',''); + $menu._pop.SetExpandIcon(true,'++-',6); + $menu._pop.SetBorder(0,'',''); + $menu._pop.SetShadow(true,'#E8E8E8',6); + $menu._pop.SetDelay(500); + $menu._pop.SetItemBorder(0,'',''); + $menu._pop.SetItemBorderHL(1,'#990000','solid'); + $menu._pop.SetItemPaddings(1); + $menu._pop.SetItemPaddingsHL(0); + $menu._pop.SetItemText('black','','bold','',''); + $menu._pop.SetItemTextHL('#990000','','bold','',''); + $menu._pop.SetItemBackground('#FFCCCC','','',''); + $menu._pop.SetItemBackgroundHL('white','','',''); + */ + + /** + * 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">'); + $menu = 'menu'.$this->getRootObjectId(); + + $this->outputLn(" var menu".$this->getRootObjectId()." = new TMainMenu('$menu','horizontal');"); + + $ro = new Folder($this->getRootObjectId()); + $this->showFolder( $ro ); + + $this->output(" + $menu.SetPosition('relative',0,0); + $menu.SetCorrection(0,0); + $menu.SetCellSpacing(2); + $menu.SetItemDimension(50,20); + + $menu.SetBackground('#990000','','',''); + $menu.SetShadow(true,'#B0B0B0',6); + $menu.SetItemText('black','center','bold','',''); + $menu.SetItemBackground('#FFCCCC','','',''); + $menu.SetItemBorder(0,'buttonface','solid'); + $menu.SetItemTextHL('white','center','bold','',''); + $menu.SetItemBackgroundHL('','','',''); + $menu.SetItemBorderHL(0,'black','solid'); + $menu.SetItemTextClick('#990000','center','bold','',''); + $menu.SetItemBackgroundClick('white','','',''); + $menu.SetItemBorderClick(0,'black','solid'); + $menu.SetBorder(0,'navy','solid'); + + $menu._pop.SetCorrection(3,0); + $menu._pop.SetItemDimension(150,20); + $menu._pop.SetPaddings(2); + $menu._pop.SetBackground('#990000','','',''); + $menu._pop.SetSeparator(150,'center','black',''); + $menu._pop.SetExpandIcon(true,'++-',6); + $menu._pop.SetBorder(0,'',''); + $menu._pop.SetShadow(true,'#E8E8E8',6); + $menu._pop.SetDelay(500); + $menu._pop.SetItemBorder(0,'',''); + $menu._pop.SetItemBorderHL(1,'#990000','solid'); + $menu._pop.SetItemPaddings(1); + $menu._pop.SetItemPaddingsHL(0); + $menu._pop.SetItemText('black','','bold','',''); + $menu._pop.SetItemTextHL('#990000','','bold','',''); + $menu._pop.SetItemBackground('#FFCCCC','','',''); + $menu._pop.SetItemBackgroundHL('white','','',''); + $menu.Build(); +"); + + $this->outputLn('</script'); + } + + + function showFolder( $fo ) + { + foreach( $fo->getObjects() as $o ) + { + if ( $o->isFolder ) + { $nf = new Folder($o->objectid); + $pl = $nf->getFirstPageOrLink(); + if ( is_object($pl) ) + { + $this->outputLn(" var menu".$o->objectid." = new TPopMenu('".$o->name."','','a','".$this->pathToObject($pl->objectid)."','".$o->desc."');"); + $this->outputLn(" menu".$fo->objectid.".Add(menu".$o->objectid.");"); + $this->showFolder( $nf ); + } + } + + if ( $o->isPage || $o->isPage ) + { + $this->outputLn(" var menu".$o->objectid." = new TPopMenu('".$o->name."','','a','".$this->pathToObject($o->objectid)."','".$o->desc."');"); + $this->outputLn(" menu".$fo->objectid.".Add(menu".$o->objectid.");"); + } + } + } + +} + +?>+ \ No newline at end of file