commit a044e83a033bea9b28f2c7cf70456340a6f195e8
parent a5f01143c3abe0cb802f8109d5280fd41b4f48e6
Author: dankert <devnull@localhost>
Date: Wed, 7 Jul 2004 22:45:10 +0200
Neuer Elementtyp: select
Diffstat:
5 files changed, 804 insertions(+), 670 deletions(-)
diff --git a/actionClasses/ElementAction.class.php b/actionClasses/ElementAction.class.php
@@ -20,7 +20,10 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
// ---------------------------------------------------------------------------
// $Log$
-// Revision 1.3 2004-05-02 14:49:37 dankert
+// Revision 1.4 2004-07-07 20:43:57 dankert
+// Neuer Elementtyp: select
+//
+// Revision 1.3 2004/05/02 14:49:37 dankert
// Einfügen package-name (@package)
//
// Revision 1.2 2004/04/24 17:41:51 dankert
@@ -193,34 +196,43 @@ class ElementAction extends Action
// Eigenschaften Text und Text-Absatz
case 'defaultText':
- if ( $this->element->type == 'longtext')
- $this->setTemplateVar('default_longtext',$this->element->defaultText );
- else $this->setTemplateVar('default_text' ,$this->element->defaultText );
+ switch( $this->element->type )
+ {
+ case 'longtext':
+ $this->setTemplateVar('default_longtext',$this->element->defaultText );
+ break;
+
+ case 'select':
+ case 'text':
+ $this->setTemplateVar('default_text' ,$this->element->defaultText );
+ break;
+ }
break;
case 'wiki':
- $this->setTemplateVar('wiki' ,$this->element->wiki );
+ $this->setTemplateVar('wiki',$this->element->wiki );
break;
case 'html':
- $this->setTemplateVar('html' ,$this->element->html );
+ $this->setTemplateVar('html',$this->element->html );
break;
// Eigenschaften PHP-Code
case 'code':
- $this->setTemplateVar('code',$this->element->code);
- break;
-
-
- // Eigenschaften Text und Text-Absatz
- case 'defaultText':
- {
- $this->setTemplateVar('default_longtext',$this->element->defaultText);
+
+ switch( $this->element->type )
+ {
+ case 'select':
+ $this->setTemplateVar('select_items',$this->element->code );
+ break;
+ case 'code':
+ $this->setTemplateVar('code',$this->element->code);
+ break;
+ }
break;
- }
case 'decimals':
@@ -295,7 +307,7 @@ class ElementAction extends Action
$this->setTemplateVar('act_folderobjectid' ,$this->element->folderObjectId );
break;
-
+
default:
$this->message('ERROR','not an element property: '.$propertyName );
}
diff --git a/actionClasses/PageelementAction.class.php b/actionClasses/PageelementAction.class.php
@@ -1,325 +1,348 @@
-<?php
-// ---------------------------------------------------------------------------
-// $Id$
-// ---------------------------------------------------------------------------
-// OpenRat Content Management System
-// Copyright (C) 2002-2004 Jan Dankert, cms@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.
-// ---------------------------------------------------------------------------
+<?php
+// ---------------------------------------------------------------------------
+// $Id$
+// ---------------------------------------------------------------------------
+// OpenRat Content Management System
+// Copyright (C) 2002-2004 Jan Dankert, cms@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.6 2004-05-30 21:55:21 dankert
+// Revision 1.7 2004-07-07 20:43:48 dankert
+// Neuer Elementtyp: select
+//
+// Revision 1.6 2004/05/30 21:55:21 dankert
// Korrektur Kasten "Freigabe"
-//
-// Revision 1.5 2004/05/02 14:49:37 dankert
-// Einf?gen package-name (@package)
-//
-// Revision 1.4 2004/05/02 12:00:26 dankert
-// Funktion release() zum freigeben von Inhalten
-//
-// Revision 1.3 2004/05/02 11:40:00 dankert
-// Freigabestatus der Seiteninhalte verarbeiten
-//
-// Revision 1.2 2004/04/30 20:52:11 dankert
-// Schalter $release setzen
-//
-// Revision 1.1 2004/04/24 15:14:52 dankert
-// Initiale Version
-//
-// ---------------------------------------------------------------------------
-
-
-/**
- * Action-Klasse zum Bearbeiten eines Seitenelementes
- * @author $Author$
- * @version $Revision$
- * @package openrat.actions
- */
-class PageelementAction extends Action
-{
- var $defaultSubAction = 'edit';
-
-
- /**
- * Enth?lt das Seitenobjekt
- * @type Object
- */
- var $page;
-
- /**
- * Enth?lt das Elementobjekt
- * @type Object
- */
- var $element;
-
-
- /**
- * Konstruktor
- */
- function PageelementAction()
- {
- $this->value = new Value();
- }
-
-
- function edit()
- {
- $this->value->languageid = $this->getSessionVar('languageid');
- $this->value->objectid = $this->getSessionVar('objectid');
- $this->value->pageid = Page::getPageIdFromObjectId( $this->getSessionVar('objectid') );
- $this->value->element = new Element( $this->getSessionVar('elementid') );
- $this->value->element->load();
- $this->value->publish = false;
-
- if ( intval($this->value->valueid)!=0 )
- $this->value->loadWithId();
- else $this->value->load();
-
- $this->setTemplateVar('name',$this->value->element->name);
- $this->setTemplateVar('desc',$this->value->element->desc);
-
- switch( $this->value->element->type )
- {
-
- case 'link':
-
- $objects = array();
-
- foreach( Folder::getAllObjectIds() as $id )
- {
- $o = new Object( $id );
- $o->load();
-
- if ( $o->getType() != 'folder' )
- {
- $f = new Folder( $o->parentid );
- $f->load();
-
- $objects[ $id ] = lang( $o->getType() ).': ';
- $objects[ $id ] .= implode( ' » ',$f->parentObjectNames(false,true) );
- $objects[ $id ] .= ' » '.$o->name;
- }
- }
-
- asort( $objects ); // Sortieren
-
- $this->setTemplateVar('objects' ,$objects);
- $this->setTemplateVar('act_linkobjectid',$this->value->linkToObjectId);
-
- break;
-
- case 'list':
-
- $objects = array();
- foreach( Folder::getAllFolders() as $id )
- {
- $f = new Folder( $id );
- $f->load();
-
- $objects[ $id ] = lang( $f->getType() ).': ';
- $objects[ $id ] .= implode( ' » ',$f->parentObjectNames(false,true) );
- }
-
- asort( $objects ); // Sortieren
-
- $this->setTemplateVar('objects' ,$objects);
- $this->setTemplateVar('act_linkobjectid',$this->value->linkToObjectId);
-
- break;
-
-
- case 'number':
- $this->setTemplateVar('number',$this->value->number / pow(10,$this->value->element->decimals) );
- break;
-
- case 'longtext':
- case 'text':
- $this->setTemplateVar('text',$this->value->text);
- break;
-
- case 'date':
-
- $date = $this->value->date;
-
- // Wenn Datum nicht vorhanden, dann aktuelles Datum verwenden
- if ( $date == 0 )
- $date = time();
-
- if ( $this->getRequestVar('year') != '' )
- {
- $date = mktime( $this->getRequestVar('hour'),
- $this->getRequestVar('minute'),
- $this->getRequestVar('second'),
- $this->getRequestVar('month'),
- $this->getRequestVar('day'),
- $this->getRequestVar('year') );
- }
- $this->setTemplateVar('year' ,date('Y',$date) );
- $this->setTemplateVar('month' ,date('n',$date) );
- $this->setTemplateVar('day' ,date('j',$date) );
- $this->setTemplateVar('hour' ,date('G',$date) );
- $this->setTemplateVar('minute',date('i',$date) );
- $this->setTemplateVar('second',date('s',$date) );
-
- $this->setTemplateVar('days' ,date('t',$date) );
-
- $this->setTemplateVar('title' ,lang('MONTH'.date('n',$date)).' '.date('Y',$date) );
-
- // Wochentag des 1. des Monats ermitteln
- $wday1 = date( 'w',$date );
- $wday1 -= date('j',$date)-1;
- while( $wday1 < 0 ) $wday1+=7;
- $this->setTemplateVar('first_weekday',$wday1);
-
- $this->setTemplateVar('actdate' ,date( lang('DATE_FORMAT'),$date ) );
- $this->setTemplateVar('todayurl','?year='.date('Y').'&month='.date('m').'&day='.date('d').'&hour='.date('H').'&minute='.date('i').'&second='.date('s') );
- $this->setTemplateVar('ansidate',date( 'Y-m-d H:i:s',$date ) );
- $this->setTemplateVar('date' ,$date);
-
- $all_years = array();
- $all_months = array();
- $all_days = array();
- $all_hours = array();
- $all_minutes = array();
- for( $i=1850; $i<=2100;$i++ ) $all_years [$i] = $i;
- for( $i=1; $i<=12; $i++ ) $all_months [$i] = lang('MONTH'.$i);
- for( $i=1; $i<=31; $i++ ) $all_days [$i] = str_pad($i,2,'0',STR_PAD_LEFT);
- for( $i=0; $i<=23; $i++ ) $all_hours [$i] = str_pad($i,2,'0',STR_PAD_LEFT);
- for( $i=0; $i<=59; $i++ ) $all_minutes[$i] = str_pad($i,2,'0',STR_PAD_LEFT);
-
- $this->setTemplateVar('all_years' ,$all_years );
- $this->setTemplateVar('all_months' ,$all_months );
- $this->setTemplateVar('all_days' ,$all_days );
- $this->setTemplateVar('all_hours' ,$all_hours );
- $this->setTemplateVar('all_minutes',$all_minutes);
- $this->setTemplateVar('all_seconds',$all_minutes);
-
- break;
-
- default:
- $this->message('ERROR','unknown element type: '.$this->value->element->type );
- }
-
- if ( $this->getSessionVar('pageaction') != '' )
- $this->setTemplateVar('old_pageaction',$this->getSessionVar('pageaction'));
- else $this->setTemplateVar('old_pageaction','show' );
-
- $this->value->page = new Page( $this->getSessionVar('objectid') );
- $this->value->page->languageid = $this->value->languageid;
- $this->value->page->load();
-
- if ( $this->value->page->hasRight('release') )
- $this->setTemplateVar( 'release',true );
- else $this->setTemplateVar( 'release',false );
-
- $this->forward('pageelement_edit_'.$this->value->element->type);
- }
-
-
- /**
- * Benutzen eines alten Inhaltes
- */
- function usevalue()
- {
- $this->value->valueid = $this->getRequestVar('valueid');
-
- // Das ausgew?hlte Element f?r die Bearbeitung verwenden
- $this->callSubAction('edit');
- }
-
-
- /**
- * Freigeben eines Inhaltes
- */
- function release()
- {
- $this->value->languageid = $this->getSessionVar('languageid');
- $this->value->objectid = $this->getSessionVar('objectid');
- $this->value->pageid = Page::getPageIdFromObjectId( $this->getSessionVar('objectid') );
- $this->value->element = new Element( $this->getSessionVar('elementid') );
-
- $this->value->valueid = $this->getRequestVar('valueid');
- $this->value->release();
-
- // Versionen anzeigen
- $this->callSubAction('archive');
- }
-
-
- /**
- * Erzeugt eine Liste aller Versionsst?nde zu diesem Inhalt
- */
- function archive()
- {
- $this->value->page = new Page( $this->getSessionVar('objectid') );
- $this->value->page->load();
- $this->value->page->public = true;
- $this->value->page->simple = true;
-
- $this->value->simple = true;
- $this->value->languageid = $this->getSessionVar('languageid');
- $this->value->objectid = $this->getSessionVar('objectid' );
- $this->value->pageid = Page::getPageIdFromObjectId( $this->getSessionVar('objectid') );
- $this->value->element = new Element( $this->getSessionVar('elementid') );
- $this->value->element->load();
-
- $list = array();
-
- foreach( $this->value->getVersionList() as $valueid )
- {
- $this->value->valueid = $valueid;
- $this->value->loadWithId();
- $this->value->generate();
-
- if ( $this->value->lastchangeTimeStamp != 0 )
- $date = date( lang('DATE_FORMAT'),$this->value->lastchangeTimeStamp);
- else $date = ' ';
-
- if ( ! $this->value->active )
- $useUrl = Html::url(array('action' =>'pageelement',
- 'subaction'=>'usevalue',
- 'valueid' =>$valueid ));
- else $useUrl = '';
-
- if ( ! $this->value->publish && $this->value->active )
- $releaseUrl = Html::url(array('action' =>'pageelement',
- 'subaction'=>'release',
- 'valueid' =>$valueid ));
- else $releaseUrl = '';
-
- if ( $this->value->publish )
- $public = true;
- else $public = false;
-
- if ( $this->value->active )
- $active = true;
- else $active = false;
-
- $list[] = array( 'value' => Text::maxLaenge( 50,$this->value->value),
- 'date' => $date,
- 'user' => User::getUserName($this->value->lastchangeUserId),
- 'useUrl' => $useUrl,
- 'public' => $public,
- 'active' => $active,
- 'releaseUrl'=> $releaseUrl );
- }
-
- $this->setTemplateVar('name',$this->value->element->name);
- $this->setTemplateVar('el',$list);
- $this->forward('pageelement_archive');
- }
-}
-
+//
+// Revision 1.5 2004/05/02 14:49:37 dankert
+// Einf?gen package-name (@package)
+//
+// Revision 1.4 2004/05/02 12:00:26 dankert
+// Funktion release() zum freigeben von Inhalten
+//
+// Revision 1.3 2004/05/02 11:40:00 dankert
+// Freigabestatus der Seiteninhalte verarbeiten
+//
+// Revision 1.2 2004/04/30 20:52:11 dankert
+// Schalter $release setzen
+//
+// Revision 1.1 2004/04/24 15:14:52 dankert
+// Initiale Version
+//
+// ---------------------------------------------------------------------------
+
+
+/**
+ * Action-Klasse zum Bearbeiten eines Seitenelementes
+ * @author $Author$
+ * @version $Revision$
+ * @package openrat.actions
+ */
+class PageelementAction extends Action
+{
+ var $defaultSubAction = 'edit';
+
+
+ /**
+ * Enth?lt das Seitenobjekt
+ * @type Object
+ */
+ var $page;
+
+ /**
+ * Enth?lt das Elementobjekt
+ * @type Object
+ */
+ var $element;
+
+
+ /**
+ * Konstruktor
+ */
+ function PageelementAction()
+ {
+ $this->value = new Value();
+ }
+
+
+ function edit()
+ {
+ $this->value->languageid = $this->getSessionVar('languageid');
+ $this->value->objectid = $this->getSessionVar('objectid');
+ $this->value->pageid = Page::getPageIdFromObjectId( $this->getSessionVar('objectid') );
+ $this->value->element = new Element( $this->getSessionVar('elementid') );
+ $this->value->element->load();
+ $this->value->publish = false;
+
+ if ( intval($this->value->valueid)!=0 )
+ $this->value->loadWithId();
+ else $this->value->load();
+
+ $this->setTemplateVar('name',$this->value->element->name);
+ $this->setTemplateVar('desc',$this->value->element->desc);
+
+ switch( $this->value->element->type )
+ {
+
+ case 'link':
+
+ $objects = array();
+
+ foreach( Folder::getAllObjectIds() as $id )
+ {
+ $o = new Object( $id );
+ $o->load();
+
+ if ( $o->getType() != 'folder' )
+ {
+ $f = new Folder( $o->parentid );
+ $f->load();
+
+ $objects[ $id ] = lang( $o->getType() ).': ';
+ $objects[ $id ] .= implode( ' » ',$f->parentObjectNames(false,true) );
+ $objects[ $id ] .= ' » '.$o->name;
+ }
+ }
+
+ asort( $objects ); // Sortieren
+
+ $this->setTemplateVar('objects' ,$objects);
+ $this->setTemplateVar('act_linkobjectid',$this->value->linkToObjectId);
+
+ break;
+
+ case 'list':
+
+ $objects = array();
+ foreach( Folder::getAllFolders() as $id )
+ {
+ $f = new Folder( $id );
+ $f->load();
+
+ $objects[ $id ] = lang( $f->getType() ).': ';
+ $objects[ $id ] .= implode( ' » ',$f->parentObjectNames(false,true) );
+ }
+
+ asort( $objects ); // Sortieren
+
+ $this->setTemplateVar('objects' ,$objects);
+ $this->setTemplateVar('act_linkobjectid',$this->value->linkToObjectId);
+
+ break;
+
+
+ case 'select':
+
+
+ $list = explode( "\n",$this->value->element->code );
+ $items = array();
+
+ foreach( $list as $it )
+ {
+ $paar = explode( ":",$it );
+ if ( count( $paar ) > 1 )
+ $items[ $paar[0] ] = $paar[1];
+ else $items[ $it ] = $it;
+ }
+
+ $this->setTemplateVar('items',$items );
+ $this->setTemplateVar('text' ,$this->value->text);
+
+ break;
+
+
+ case 'number':
+ $this->setTemplateVar('number',$this->value->number / pow(10,$this->value->element->decimals) );
+ break;
+
+ case 'longtext':
+ case 'text':
+ $this->setTemplateVar('text',$this->value->text);
+ break;
+
+ case 'date':
+
+ $date = $this->value->date;
+
+ // Wenn Datum nicht vorhanden, dann aktuelles Datum verwenden
+ if ( $date == 0 )
+ $date = time();
+
+ if ( $this->getRequestVar('year') != '' )
+ {
+ $date = mktime( $this->getRequestVar('hour'),
+ $this->getRequestVar('minute'),
+ $this->getRequestVar('second'),
+ $this->getRequestVar('month'),
+ $this->getRequestVar('day'),
+ $this->getRequestVar('year') );
+ }
+ $this->setTemplateVar('year' ,date('Y',$date) );
+ $this->setTemplateVar('month' ,date('n',$date) );
+ $this->setTemplateVar('day' ,date('j',$date) );
+ $this->setTemplateVar('hour' ,date('G',$date) );
+ $this->setTemplateVar('minute',date('i',$date) );
+ $this->setTemplateVar('second',date('s',$date) );
+
+ $this->setTemplateVar('days' ,date('t',$date) );
+
+ $this->setTemplateVar('title' ,lang('MONTH'.date('n',$date)).' '.date('Y',$date) );
+
+ // Wochentag des 1. des Monats ermitteln
+ $wday1 = date( 'w',$date );
+ $wday1 -= date('j',$date)-1;
+ while( $wday1 < 0 ) $wday1+=7;
+ $this->setTemplateVar('first_weekday',$wday1);
+
+ $this->setTemplateVar('actdate' ,date( lang('DATE_FORMAT'),$date ) );
+ $this->setTemplateVar('todayurl','?year='.date('Y').'&month='.date('m').'&day='.date('d').'&hour='.date('H').'&minute='.date('i').'&second='.date('s') );
+ $this->setTemplateVar('ansidate',date( 'Y-m-d H:i:s',$date ) );
+ $this->setTemplateVar('date' ,$date);
+
+ $all_years = array();
+ $all_months = array();
+ $all_days = array();
+ $all_hours = array();
+ $all_minutes = array();
+ for( $i=1850; $i<=2100;$i++ ) $all_years [$i] = $i;
+ for( $i=1; $i<=12; $i++ ) $all_months [$i] = lang('MONTH'.$i);
+ for( $i=1; $i<=31; $i++ ) $all_days [$i] = str_pad($i,2,'0',STR_PAD_LEFT);
+ for( $i=0; $i<=23; $i++ ) $all_hours [$i] = str_pad($i,2,'0',STR_PAD_LEFT);
+ for( $i=0; $i<=59; $i++ ) $all_minutes[$i] = str_pad($i,2,'0',STR_PAD_LEFT);
+
+ $this->setTemplateVar('all_years' ,$all_years );
+ $this->setTemplateVar('all_months' ,$all_months );
+ $this->setTemplateVar('all_days' ,$all_days );
+ $this->setTemplateVar('all_hours' ,$all_hours );
+ $this->setTemplateVar('all_minutes',$all_minutes);
+ $this->setTemplateVar('all_seconds',$all_minutes);
+
+ break;
+
+ default:
+ $this->message('ERROR','unknown element type: '.$this->value->element->type );
+ }
+
+ if ( $this->getSessionVar('pageaction') != '' )
+ $this->setTemplateVar('old_pageaction',$this->getSessionVar('pageaction'));
+ else $this->setTemplateVar('old_pageaction','show' );
+
+ $this->value->page = new Page( $this->getSessionVar('objectid') );
+ $this->value->page->languageid = $this->value->languageid;
+ $this->value->page->load();
+
+ if ( $this->value->page->hasRight('release') )
+ $this->setTemplateVar( 'release',true );
+ else $this->setTemplateVar( 'release',false );
+
+ $this->forward('pageelement_edit_'.$this->value->element->type);
+ }
+
+
+ /**
+ * Benutzen eines alten Inhaltes
+ */
+ function usevalue()
+ {
+ $this->value->valueid = $this->getRequestVar('valueid');
+
+ // Das ausgew?hlte Element f?r die Bearbeitung verwenden
+ $this->callSubAction('edit');
+ }
+
+
+ /**
+ * Freigeben eines Inhaltes
+ */
+ function release()
+ {
+ $this->value->languageid = $this->getSessionVar('languageid');
+ $this->value->objectid = $this->getSessionVar('objectid');
+ $this->value->pageid = Page::getPageIdFromObjectId( $this->getSessionVar('objectid') );
+ $this->value->element = new Element( $this->getSessionVar('elementid') );
+
+ $this->value->valueid = $this->getRequestVar('valueid');
+ $this->value->release();
+
+ // Versionen anzeigen
+ $this->callSubAction('archive');
+ }
+
+
+ /**
+ * Erzeugt eine Liste aller Versionsst?nde zu diesem Inhalt
+ */
+ function archive()
+ {
+ $this->value->page = new Page( $this->getSessionVar('objectid') );
+ $this->value->page->load();
+ $this->value->page->public = true;
+ $this->value->page->simple = true;
+
+ $this->value->simple = true;
+ $this->value->languageid = $this->getSessionVar('languageid');
+ $this->value->objectid = $this->getSessionVar('objectid' );
+ $this->value->pageid = Page::getPageIdFromObjectId( $this->getSessionVar('objectid') );
+ $this->value->element = new Element( $this->getSessionVar('elementid') );
+ $this->value->element->load();
+
+ $list = array();
+
+ foreach( $this->value->getVersionList() as $valueid )
+ {
+ $this->value->valueid = $valueid;
+ $this->value->loadWithId();
+ $this->value->generate();
+
+ if ( $this->value->lastchangeTimeStamp != 0 )
+ $date = date( lang('DATE_FORMAT'),$this->value->lastchangeTimeStamp);
+ else $date = ' ';
+
+ if ( ! $this->value->active )
+ $useUrl = Html::url(array('action' =>'pageelement',
+ 'subaction'=>'usevalue',
+ 'valueid' =>$valueid ));
+ else $useUrl = '';
+
+ if ( ! $this->value->publish && $this->value->active )
+ $releaseUrl = Html::url(array('action' =>'pageelement',
+ 'subaction'=>'release',
+ 'valueid' =>$valueid ));
+ else $releaseUrl = '';
+
+ if ( $this->value->publish )
+ $public = true;
+ else $public = false;
+
+ if ( $this->value->active )
+ $active = true;
+ else $active = false;
+
+ $list[] = array( 'value' => Text::maxLaenge( 50,$this->value->value),
+ 'date' => $date,
+ 'user' => User::getUserName($this->value->lastchangeUserId),
+ 'useUrl' => $useUrl,
+ 'public' => $public,
+ 'active' => $active,
+ 'releaseUrl'=> $releaseUrl );
+ }
+
+ $this->setTemplateVar('name',$this->value->element->name);
+ $this->setTemplateVar('el',$list);
+ $this->forward('pageelement_archive');
+ }
+}
+
?>
\ No newline at end of file
diff --git a/objectClasses/Element.class.php b/objectClasses/Element.class.php
@@ -1,332 +1,371 @@
-<?php
-// ---------------------------------------------------------------------------
-// $Id$
-// ---------------------------------------------------------------------------
-// OpenRat Content Management System
-// Copyright (C) 2002-2004 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.
-// ---------------------------------------------------------------------------
+<?php
+// ---------------------------------------------------------------------------
+// $Id$
+// ---------------------------------------------------------------------------
+// OpenRat Content Management System
+// Copyright (C) 2002-2004 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.2 2004-05-02 14:41:31 dankert
-// Einfügen package-name (@package)
-//
-// Revision 1.2 2004/04/30 20:36:25 dankert
-// Neu: Freigabe
-//
-// Revision 1.1 2004/04/24 15:15:12 dankert
-// Initiale Version
-//
-// ---------------------------------------------------------------------------
-
-/**
- * Darstellen eines Template-Elementes
- *
- * @package openrat.objects
- */
-class Element
-{
- /**
- * ID dieses Elementes
- * @type Integer
- */
- var $elementid;
-
- /**
- * Template-ID zu der dieses Elementes gehört
- * @type Integer
- */
- var $templateid;
-
- /**
- * Sprachen-ID dieses Elementes
- * @type Integer
- */
- var $languageid;
-
- /**
- * Typ des Elementes
- * @type String
- */
- var $type;
-
- /**
- * Name dieses Elementes
- * @type String
- */
- var $name;
-
- /**
- * Beschreibung zu diesem Element
- * @type String
- */
- var $desc;
-
- /**
- * ID dieses Elementes
- * @type String
- */
- var $value;
-
- /**
- * Objekt-ID eines Ordners, aus diesem Ordner (samt Unterordner)
- * können zu verlinkende Objekte ausgewählt werden
- * @type Integer
- */
- var $folderobjectid = 0;
-
- /**
- * Schalter ob dieses Element von Redakteuren bearbeiten werden kann
- * @type Boolean
- */
- var $writable;
-
- /**
- * Schalter ob dieses Element in allen Sprachen den gleichen Inhalt hat
- * @type Boolean
- */
- var $allLanguages;
-
- function Element( $elementid=0 )
- {
- global $SESS;
-
- if ( intval($elementid)!=0 )
- $this->elementid = $elementid;
- }
-
-
- function add()
- {
- $db = db_connection();
-
- $sql = new Sql('SELECT MAX(id) FROM {t_element}');
- $this->elementid = intval($db->getOne($sql->query))+1;
-
- $sql = new Sql( 'INSERT INTO {t_element}'.
- ' (id,templateid,name,descr,type,writable) '.
- " VALUES ( {elementid},{templateid},{name},'',{type},{writable} ) " );
-
- $sql->setInt ( 'elementid' ,$this->elementid );
- $sql->setString ( 'name' ,$this->name );
- $sql->setString ( 'type' ,$this->type );
- $sql->setInt ( 'templateid',$this->templateid );
- $sql->setBoolean( 'writable' ,$this->writable );
-
- $db->query( $sql->query );
- }
-
-
-
-// function path_to_page( $pageid )
-// {
-// return $this->page->path_to_object( $pageid );
-// }
-// function path_to_object( $pageid )
-// {
-// return $this->path_to_page( $pageid );
-// }
-
-
-
- function load()
- {
- $db = db_connection();
-
- $sql = new Sql( 'SELECT * FROM {t_element}'.
- ' WHERE id={elementid}' );
- $sql->setInt( 'elementid',$this->elementid );
- $prop = $db->getRow( $sql->query );
-
- $this->templateid = $prop['templateid'];
- $this->name = $prop['name'];
- $this->desc = $prop['descr'];
- $this->type = $prop['type'];
- $this->subtype = $prop['subtype'];
-
- $this->dateformat = $prop['dateformat'];
- $this->wiki = ( $prop['wiki' ] == '1' );
- $this->withIcon = ( $prop['with_icon' ] == '1' );
- $this->html = ( $prop['html' ] == '1' );
- $this->allLanguages = ( $prop['all_languages'] == '1' );
- $this->writable = ( $prop['writable' ] == '1' );
-
- if ( !$this->writable)
- $this->withIcon = false;
-
- $this->decimals = $prop['decimals'];
- $this->decPoint = $prop['dec_point'];
- $this->thousandSep = $prop['thousand_sep'];
- $this->code = $prop['code'];
- $this->defaultText = $prop['default_text'];
- $this->folderObjectId = intval($prop['folderobjectid' ]);
- $this->defaultObjectId = intval($prop['default_objectid']);
- }
-
-
-
- // Element speichern
- function save()
- {
- $db = db_connection();
-
- $sql = new Sql( 'UPDATE {t_element}'.
- ' SET templateid = {templateid},'.
- ' name = {name},'.
- ' descr = {desc},'.
- ' type = {type},'.
- ' subtype = {subtype},'.
- ' with_icon = {withIcon},'.
- ' dateformat = {dateformat},'.
- ' wiki = {wiki},'.
- ' html = {html},'.
- ' all_languages = {allLanguages},'.
- ' writable = {writable},'.
- ' decimals = {decimals},'.
- ' dec_point = {decPoint},'.
- ' thousand_sep = {thousandSep},'.
- ' code = {code},'.
- ' default_text = {defaultText},'.
- ' folderobjectid = {folderObjectId},'.
- ' default_objectid= {defaultObjectId}'.
- ' WHERE id={elementid}' );
-
- $sql->setInt ( 'elementid' ,$this->elementid );
- $sql->setInt ( 'templateid' ,$this->templateid );
- $sql->setString ( 'name' ,$this->name );
- $sql->setString ( 'desc' ,$this->desc );
- $sql->setString ( 'type' ,$this->type );
- $sql->setString ( 'subtype' ,$this->subtype );
- $sql->setBoolean( 'withIcon' ,$this->withIcon );
- $sql->setString ( 'dateformat' ,$this->dateformat );
- $sql->setBoolean( 'wiki' ,$this->wiki );
- $sql->setBoolean( 'html' ,$this->html );
- $sql->setBoolean( 'writable' ,$this->writable );
- $sql->setBoolean( 'allLanguages' ,$this->allLanguages );
- $sql->setInt ( 'decimals' ,$this->decimals );
- $sql->setString ( 'decPoint' ,$this->decPoint );
- $sql->setString ( 'thousandSep' ,$this->thousandSep );
- $sql->setString ( 'code' ,$this->code );
- $sql->setString ( 'defaultText' ,$this->defaultText );
-
- if ( intval($this->folderObjectId)==0 )
- $sql->setNull( 'folderObjectId' );
- else $sql->setInt ( 'folderObjectId' ,$this->folderObjectId );
-
- if ( intval($this->defaultObjectId)==0 )
- $sql->setNull( 'defaultObjectId' );
- else $sql->setInt ( 'defaultObjectId' ,$this->defaultObjectId );
-
- $db->query( $sql->query );
- }
-
-
-
- // Element speichern
- function setType( $type )
- {
- $db = db_connection();
-
- $sql = new Sql( 'UPDATE {t_element}'.
- ' SET type = {type}'.
- ' WHERE id={elementid}' );
-
- $sql->setInt ( 'elementid',$this->elementid );
- $sql->setString ( 'type' ,$type );
-
- $db->query( $sql->query );
- }
-
-
- /**
- * Löschen des Elementes und aller Inhalte
- */
- function delete()
- {
- $db = db_connection();
-
- // Inhalte löschen
- $this->deleteValues();
-
- // Element löschen
- $sql = new Sql('DELETE FROM {t_element} '.
- ' WHERE id={elementid}' );
- $sql->setInt( 'elementid',$this->elementid );
-
- $db->query( $sql->query );
- }
-
-
- /**
- * Löschen aller Seiteninhalte mit diesem Element
- */
- function deleteValues()
- {
- $db = db_connection();
-
- // Alle Inhalte mit diesem Element löschen
- $sql = new Sql('DELETE FROM {t_value} '.
- ' WHERE elementid={elementid}' );
- $sql->setInt( 'elementid',$this->elementid );
- $db->query( $sql->query );
- }
-
-
- /**
- * Abhängig vom Element-Typ werden die zur Darstellung notwendigen Eigenschaften ermittelt
- * @return Array()
- */
- function getRelatedProperties()
- {
- $typeprop = Array('text' =>Array('withIcon','allLanguages','writable','html','wiki','defaultText'),
- 'longtext'=>Array('withIcon','allLanguages','writable','html','wiki','defaultText'),
- 'number' =>Array('withIcon','allLanguages','writable','decPoint','decimals','thousandSep','defaultText'),
- 'link' =>Array('withIcon','allLanguages','writable','folderObjectId','defaultObjectId'),
- 'date' =>Array('withIcon','allLanguages','writable','dateformat'),
- 'list' =>Array('withIcon','allLanguages','writable','folderObjectId'),
- 'code' =>Array('code'),
- 'info' =>Array('subtype'),
- 'infodate'=>Array('subtype','dateformat') );
-
- return $typeprop[ $this->type ];
- }
-
-
- /**
- * Ermitteln aller benutzbaren Elementtypen
- * @return Array
- */
- function getAvailableTypes()
- {
- return array('text',
- 'longtext',
- 'number',
- 'link',
- 'date',
- 'list',
- 'code',
- 'info',
- 'infodate');
- }
-
-
- function isWritable()
- {
- if ( in_array($this->type,Array('info','infodate','code')) )
- return false;
-
- return $this->writable;
- }
-}-
\ No newline at end of file
+// Revision 1.3 2004-07-07 20:45:10 dankert
+// Neuer Elementtyp: select
+//
+// Revision 1.2 2004/05/02 14:41:31 dankert
+// Einfügen package-name (@package)
+//
+// Revision 1.2 2004/04/30 20:36:25 dankert
+// Neu: Freigabe
+//
+// Revision 1.1 2004/04/24 15:15:12 dankert
+// Initiale Version
+//
+// ---------------------------------------------------------------------------
+
+/**
+ * Diese Objektklasse stellt ein Element das.
+ * Ein Element ist ein Platzhalter in einem Template und kann verschiedenen
+ * Typs sein, z.B. Text oder ein Bild.
+ *
+ * @package openrat.objects
+ */
+class Element
+{
+ /**
+ * Eindeutige ID dieses Elementes
+ * @type Integer
+ */
+ var $elementid;
+
+ /**
+ * Template-ID zu der dieses Elementes geh?rt
+ * @type Integer
+ */
+ var $templateid;
+
+ /**
+ * Typ des Elementes
+ * Folgende Typen sind moeglich:
+ * <ul>
+ * <li>text</li>
+ * <li>longtext</li>
+ * <li>select</li>
+ * <li>number</li>
+ * <li>link</li>
+ * <li>date</li>
+ * <li>list</li>
+ * <li>code</li>
+ * <li>info</li>
+ * <li>infodate</li>
+ * </ul>
+ *
+ * @type String
+ */
+ var $type;
+
+ /**
+ * Logischer Name dieses Elementes
+ * @type String
+ */
+ var $name;
+
+ /**
+ * Beschreibung zu diesem Element
+ * Zu jedem Element kann eine Beschreibung hinterlegt werden, die dem Redakteur bei der Bearbeitung
+ * der Inhalte als Bearbeitungshilfe dienen kann.
+ * @type String
+ */
+ var $desc;
+
+ /**
+ * Objekt-ID eines Ordners, aus diesem Ordner (samt Unterordner)
+ * k?nnen zu verlinkende Objekte ausgew?hlt werden
+ * @type Integer
+ */
+ var $folderobjectid = 0;
+
+ /**
+ * Schalter ob dieses Element von Redakteuren bearbeiten werden kann
+ * @type Boolean
+ */
+ var $writable;
+
+ /**
+ * Schalter, ob dieses Element in allen Sprachen den gleichen Inhalt haben soll
+ * @type Boolean
+ */
+ var $allLanguages;
+
+
+ /**
+ * Im Konstruktor wird die Element-Id gesetzt
+ * @param Integer Element-Id
+ */
+ function Element( $elementid=0 )
+ {
+ global $SESS;
+
+ if ( intval($elementid)!=0 )
+ $this->elementid = $elementid;
+ }
+
+
+ /**
+ * Hinzufügen eines Elementes
+ * Das aktuelle Element wird in die Datenbank geschrieben.
+ */
+ function add()
+ {
+ $db = db_connection();
+
+ $sql = new Sql('SELECT MAX(id) FROM {t_element}');
+ $this->elementid = intval($db->getOne($sql->query))+1;
+
+ $sql = new Sql( 'INSERT INTO {t_element}'.
+ ' (id,templateid,name,descr,type,writable) '.
+ " VALUES ( {elementid},{templateid},{name},'',{type},{writable} ) " );
+
+ $sql->setInt ( 'elementid' ,$this->elementid );
+ $sql->setString ( 'name' ,$this->name );
+ $sql->setString ( 'type' ,$this->type );
+ $sql->setInt ( 'templateid',$this->templateid );
+ $sql->setBoolean( 'writable' ,$this->writable );
+
+ $db->query( $sql->query );
+ }
+
+
+
+// function path_to_page( $pageid )
+// {
+// return $this->page->path_to_object( $pageid );
+// }
+// function path_to_object( $pageid )
+// {
+// return $this->path_to_page( $pageid );
+// }
+
+
+ /**
+ * Lesen des Elementes aus der Datenbank
+ * Alle Eigenschaften des Elementes werden aus der Datenbank gelesen
+ */
+ function load()
+ {
+ $db = db_connection();
+
+ $sql = new Sql( 'SELECT * FROM {t_element}'.
+ ' WHERE id={elementid}' );
+ $sql->setInt( 'elementid',$this->elementid );
+ $prop = $db->getRow( $sql->query );
+
+ $this->templateid = $prop['templateid'];
+ $this->name = $prop['name'];
+ $this->desc = $prop['descr'];
+ $this->type = $prop['type'];
+ $this->subtype = $prop['subtype'];
+
+ $this->dateformat = $prop['dateformat'];
+ $this->wiki = ( $prop['wiki' ] == '1' );
+ $this->withIcon = ( $prop['with_icon' ] == '1' );
+ $this->html = ( $prop['html' ] == '1' );
+ $this->allLanguages = ( $prop['all_languages'] == '1' );
+ $this->writable = ( $prop['writable' ] == '1' );
+
+ if ( !$this->writable)
+ $this->withIcon = false;
+
+ $this->decimals = intval( $prop['decimals' ] );
+ $this->decPoint = strval( $prop['dec_point' ] );
+ $this->thousandSep = strval( $prop['thousand_sep' ] );
+ $this->code = strval( $prop['code' ] );
+ $this->defaultText = strval( $prop['default_text' ] );
+ $this->folderObjectId = intval( $prop['folderobjectid' ] );
+ $this->defaultObjectId = intval( $prop['default_objectid'] );
+ }
+
+
+
+ /**
+ * Abspeichern des Elementes
+ * Das aktuelle Element wird in der Datenbank gespeichert
+ */
+ function save()
+ {
+ $db = db_connection();
+
+ $sql = new Sql( 'UPDATE {t_element}'.
+ ' SET templateid = {templateid},'.
+ ' name = {name},'.
+ ' descr = {desc},'.
+ ' type = {type},'.
+ ' subtype = {subtype},'.
+ ' with_icon = {withIcon},'.
+ ' dateformat = {dateformat},'.
+ ' wiki = {wiki},'.
+ ' html = {html},'.
+ ' all_languages = {allLanguages},'.
+ ' writable = {writable},'.
+ ' decimals = {decimals},'.
+ ' dec_point = {decPoint},'.
+ ' thousand_sep = {thousandSep},'.
+ ' code = {code},'.
+ ' default_text = {defaultText},'.
+ ' folderobjectid = {folderObjectId},'.
+ ' default_objectid= {defaultObjectId}'.
+ ' WHERE id={elementid}' );
+
+ $sql->setInt ( 'elementid' ,$this->elementid );
+ $sql->setInt ( 'templateid' ,$this->templateid );
+ $sql->setString ( 'name' ,$this->name );
+ $sql->setString ( 'desc' ,$this->desc );
+ $sql->setString ( 'type' ,$this->type );
+ $sql->setString ( 'subtype' ,$this->subtype );
+ $sql->setBoolean( 'withIcon' ,$this->withIcon );
+ $sql->setString ( 'dateformat' ,$this->dateformat );
+ $sql->setBoolean( 'wiki' ,$this->wiki );
+ $sql->setBoolean( 'html' ,$this->html );
+ $sql->setBoolean( 'writable' ,$this->writable );
+ $sql->setBoolean( 'allLanguages' ,$this->allLanguages );
+ $sql->setInt ( 'decimals' ,$this->decimals );
+ $sql->setString ( 'decPoint' ,$this->decPoint );
+ $sql->setString ( 'thousandSep' ,$this->thousandSep );
+ $sql->setString ( 'code' ,$this->code );
+ $sql->setString ( 'defaultText' ,$this->defaultText );
+
+ if ( intval($this->folderObjectId)==0 )
+ $sql->setNull( 'folderObjectId' );
+ else $sql->setInt ( 'folderObjectId' ,$this->folderObjectId );
+
+ if ( intval($this->defaultObjectId)==0 )
+ $sql->setNull( 'defaultObjectId' );
+ else $sql->setInt ( 'defaultObjectId' ,$this->defaultObjectId );
+
+ $db->query( $sql->query );
+ }
+
+
+
+ /**
+ * Setzt den Typ des Elementes
+ * @param String Der neue Typ, siehe getAvailableTypes() für mögliche Typen
+ * @see #type
+ */
+ function setType( $type )
+ {
+ $db = db_connection();
+
+ $sql = new Sql( 'UPDATE {t_element}'.
+ ' SET type = {type}'.
+ ' WHERE id={elementid}' );
+
+ $sql->setInt ( 'elementid',$this->elementid );
+ $sql->setString ( 'type' ,$type );
+
+ $db->query( $sql->query );
+ }
+
+
+ /**
+ * Löschen des Elementes und aller Inhalte
+ */
+ function delete()
+ {
+ $db = db_connection();
+
+ // Inhalte l?schen
+ $this->deleteValues();
+
+ // Element l?schen
+ $sql = new Sql('DELETE FROM {t_element} '.
+ ' WHERE id={elementid}' );
+ $sql->setInt( 'elementid',$this->elementid );
+
+ $db->query( $sql->query );
+ }
+
+
+ /**
+ * L?schen aller Seiteninhalte mit diesem Element
+ * Das Element wird nicht gelöscht.
+ */
+ function deleteValues()
+ {
+ $db = db_connection();
+
+ // Alle Inhalte mit diesem Element l?schen
+ $sql = new Sql('DELETE FROM {t_value} '.
+ ' WHERE elementid={elementid}' );
+ $sql->setInt( 'elementid',$this->elementid );
+ $db->query( $sql->query );
+ }
+
+
+ /**
+ * Abh?ngig vom Element-Typ werden die zur Darstellung notwendigen Eigenschaften ermittelt
+ * @return Array()
+ */
+ function getRelatedProperties()
+ {
+ $typeprop = Array('text' =>Array('withIcon','allLanguages','writable','html','wiki','defaultText'),
+ 'longtext'=>Array('withIcon','allLanguages','writable','html','wiki','defaultText'),
+ 'select' =>Array('withIcon','allLanguages','writable','defaultText','code'),
+ 'number' =>Array('withIcon','allLanguages','writable','decPoint','decimals','thousandSep'),
+ 'link' =>Array('withIcon','allLanguages','writable','folderObjectId','defaultObjectId'),
+ 'date' =>Array('withIcon','allLanguages','writable','dateformat'),
+ 'list' =>Array('withIcon','allLanguages','writable','folderObjectId'),
+ 'code' =>Array('code'),
+ 'info' =>Array('subtype'),
+ 'infodate'=>Array('subtype','dateformat') );
+
+ return $typeprop[ $this->type ];
+ }
+
+
+ /**
+ * Ermitteln aller benutzbaren Elementtypen
+ * @return Array
+ */
+ function getAvailableTypes()
+ {
+ return array('text',
+ 'longtext',
+ 'select',
+ 'number',
+ 'link',
+ 'date',
+ 'list',
+ 'code',
+ 'info',
+ 'infodate');
+ }
+
+
+ /**
+ * Ermittelt, ob das Element beschreibbar ist.
+ * Bestimmte Typen (z.B. Info-Felder) sind nie beschreibbar, dann wird immer false zurückgegeben.
+ * Ansonsten wird ermittelt, ob dieses Element als beschreibbar markiert ist.
+ */
+ function isWritable()
+ {
+ // Bei bestimmten Feldern immer false zurueckgeben
+ if ( in_array($this->type,Array('info','infodate','code')) )
+ return false;
+
+ return $this->writable;
+ }
+}
+
+?>+
\ No newline at end of file
diff --git a/themes/default/pages/html/element.tpl.php b/themes/default/pages/html/element.tpl.php
@@ -275,6 +275,20 @@
<?php } ?>
+ <?php if ( isset($select_items) )
+ {
+ $fx = fx($fx); ?>
+ <tr>
+ <td class="<?php echo $fx ?>"><?php echo lang('EL_PROP_SELECT_ITEMS') ?></td>
+ <td class="<?php echo $fx ?>"><textarea name="code" rows="15" cols="40"><?php echo $select_items ?></textarea></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="help"><?php echo lang('EL_PROP_SELECT_ITEMS_DESC') ?></td>
+ </tr>
+ <?php } ?>
+
+
<?php if (isset($act_folderobjectid))
{ $fx = fx($fx); ?>
<tr>
diff --git a/themes/default/pages/html/pageelement/edit/select.tpl.php b/themes/default/pages/html/pageelement/edit/select.tpl.php
@@ -0,0 +1,45 @@
+<?php include( $tpl_dir.'header.tpl.php') ?>
+
+<!-- $Id$ -->
+<center>
+
+<form action="<?php echo $self ?>" method="post" target="_self">
+<input type="hidden" name="subaction" value="elsave" />
+<input type="hidden" name="action" value="page" />
+<input type="hidden" name="old_pageaction" value="<?php echo $old_pageaction ?>" />
+
+<table class="main" width="90%" cellspacing="0" cellpadding="4">
+
+<tr>
+ <th><?php echo $name ?></th>
+</tr>
+<tr>
+ <td class="help"><?php echo $desc ?></th>
+</tr>
+
+<tr>
+<td class="f1"><?php echo Html::selectBox( 'text',$items,$text,array('onchange'=>'submit();')) ?></td>
+</tr>
+
+<?php if ( $release )
+ { ?>
+<tr>
+<td class="f2"><?php echo Html::checkBox('release',true,true) ?> <?php echo lang('RELEASE') ?></td>
+</tr>
+<?php } ?>
+
+<tr>
+<td class="act"><input type="submit" class="submit" value="<?php echo lang('SAVE') ?>"></td>
+</tr>
+
+</table>
+
+</form>
+
+</center>
+
+<script name="JavaScript" type="text/javascript"><!--
+document.forms[0].text.focus();
+//--></script>
+
+<?php include( $tpl_dir.'footer.tpl.php') ?>+
\ No newline at end of file