commit 24220cdd5094d9e195c04ae2e422097806aee772
parent 8b7a59caaa95a43e00eeb758a67f90ec6352085a
Author: dankert <devnull@localhost>
Date: Tue, 4 Jan 2005 20:59:55 +0100
Allgemeine Korrekturen, Erben von "Dynamic"-klasse
Diffstat:
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 = '»';
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: "·"'
+ '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