openrat-cms

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

commit 96d783c1d9a7d9c3abc6ba26e4b3a220e2f3cf4c
parent b3934b1e36fb1630c0d60fc6f268246e2c749899
Author: dankert <devnull@localhost>
Date:   Sun,  8 Mar 2009 01:30:36 +0100

Verhalten von Inhalt-Bearbeitung überarbeitet: Kalender überarbeitet, Berücksichtigen Edit-Mode, Wiki-Editor korrigiert.

Diffstat:
actionClasses/PageelementAction.class.php | 1541++++++++++++++++++++++++++++++++++++++-----------------------------------------
actionClasses/PageelementAction.ini.php | 7+++----
themes/default/templates/pageelement/edit.tpl.src.php | 205+++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------
themes/default/templates/pageelement/prop.tpl.src.php | 67+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 967 insertions(+), 853 deletions(-)

diff --git a/actionClasses/PageelementAction.class.php b/actionClasses/PageelementAction.class.php @@ -37,14 +37,14 @@ class PageelementAction extends Action * @type Object */ var $page; - + /** * Enthaelt das Elementobjekt * @type Object */ var $element; - - + + /** * Enth�lt den Inhalt * @@ -62,7 +62,7 @@ class PageelementAction extends Action $this->value = new Value(); $this->page = Session::getObject(); - + if ( $this->getRequestId() != 0 ) { $this->page = new Page( $this->getRequestId() ); @@ -90,7 +90,7 @@ class PageelementAction extends Action /** * Anzeigen des Element-Inhaltes. */ - function show() + function prop() { $language = Session::getProjectLanguage(); $this->value->languageid = $language->languageid; @@ -103,60 +103,33 @@ class PageelementAction extends Action $this->value->publish = false; $this->value->load(); - $this->setTemplateVar('name' ,$this->value->element->name ); - $this->setTemplateVar('desc' ,$this->value->element->desc ); - $this->setTemplateVar('elementid',$this->value->element->elementid); - $this->setTemplateVar('type' ,$this->value->element->type ); - - $this->value->generate(); // Inhalt erzeugen. - $this->setTemplateVar('value',$this->value->value); - } + $this->setTemplateVar('name' ,$this->value->element->name ); + $this->setTemplateVar('description' ,$this->value->element->desc ); + $this->setTemplateVar('elementid' ,$this->value->element->elementid); + $this->setTemplateVar('element_type',$this->value->element->type ); + if ( $this->value->element->type == 'longtext' && $this->value->element->wiki ) + { + $this->setTemplateVar('text',$this->value->text); + } + + $user = new User( $this->value->lastchangeUserId ); + $user->load(); + $this->setTemplateVar('lastchange_user',$user); + $this->setTemplateVar('lastchange_date',$this->value->lastchangeTimeStamp); - /** - * Erweiterter Editormodus. - */ - function advanced() - { - $language = Session::getProjectLanguage(); - $this->value->languageid = $language->languageid; - $this->value->objectid = $this->page->objectid; - $this->value->pageid = $this->page->pageid; - $this->value->element = &$this->element; - $this->value->element->load(); - $this->value->publish = false; + $t = new Template( $this->page->templateid ); + $t->load(); + $this->setTemplateVar('template_name',$t->name ); + $this->setTemplateVar('template_url' ,Html::url('template','prop',$t->templateid) ); - if ( intval($this->value->valueid)!=0 ) - $this->value->loadWithId(); - else $this->value->load(); + $this->setTemplateVar('element_name' ,$this->value->element->name ); + $this->setTemplateVar('element_url' ,Html::url('element','name',$this->value->element->elementid) ); - $this->setTemplateVar('name' ,$this->value->element->name ); - $this->setTemplateVar('desc' ,$this->value->element->desc ); - $this->setTemplateVar('elementid',$this->value->element->elementid); - $this->setTemplateVar('type' ,$this->value->element->type ); + } - $this->value->page = new Page( $this->page->objectid ); - $this->value->page->languageid = $this->value->languageid; - $this->value->page->load(); - $this->setTemplateVar( 'objectid',$this->value->page->objectid ); - - - if ( $this->value->page->hasRight(ACL_RELEASE) ) - $this->setTemplateVar( 'release',true ); - if ( $this->value->page->hasRight(ACL_PUBLISH) ) - $this->setTemplateVar( 'publish',false ); - - $funktionName = 'advanced'.$this->value->element->type; - - if ( ! method_exists($this,$funktionName) ) - die( 'Fatal: Method does not exist in PageElementAction: '.$funktionName ); - $this->$funktionName(); // Aufruf der Funktion "advanced<Elementtyp>()". - } - - - /** * Normaler Editiermodus. * @@ -173,7 +146,7 @@ class PageelementAction extends Action $this->value->publish = false; if ( intval($this->value->valueid)!=0 ) - $this->value->loadWithId(); + $this->value->loadWithId(); else $this->value->load(); $this->setTemplateVar('name' ,$this->value->element->name ); @@ -181,7 +154,7 @@ class PageelementAction extends Action $this->setTemplateVar('elementid',$this->value->element->elementid); $this->setTemplateVar('type' ,$this->value->element->type ); - + $this->value->page = new Page( $this->page->objectid ); $this->value->page->languageid = $this->value->languageid; $this->value->page->load(); @@ -189,19 +162,19 @@ class PageelementAction extends Action $this->setTemplateVar( 'objectid',$this->value->page->objectid ); if ( $this->value->page->hasRight(ACL_RELEASE) ) - $this->setTemplateVar( 'release',true ); + $this->setTemplateVar( 'release',true ); if ( $this->value->page->hasRight(ACL_PUBLISH) ) - $this->setTemplateVar( 'publish',false ); - + $this->setTemplateVar( 'publish',false ); + $funktionName = 'edit'.$this->value->element->type; if ( ! method_exists($this,$funktionName) ) - Http::serverError('Method does not exist: PageElementAction#'.$funktionName ); + Http::serverError('Method does not exist: PageElementAction#'.$funktionName ); $this->$funktionName(); // Aufruf der Funktion "edit<Elementtyp>()". } - - + + /** * Datum bearbeiten. @@ -209,45 +182,32 @@ class PageelementAction extends Action */ function editdate() { + global $conf; $date = $this->value->date; // Wenn Datum nicht vorhanden, dann aktuelles Datum verwenden if ( $date == 0 ) - $date = intval(time()/60)*60; + $date = intval(time()/60)*60; $this->setTemplateVar('ansidate',date( 'Y-m-d H:i:s',$date ) ); $this->setTemplateVar('date' ,$date); if ( $this->getSessionVar('pageaction') != '' ) - $this->setTemplateVar('old_pageaction',$this->getSessionVar('pageaction')); + $this->setTemplateVar('old_pageaction',$this->getSessionVar('pageaction')); else $this->setTemplateVar('old_pageaction','show' ); - $this->forward('pageelement_edit_'.$this->value->element->type); - } - - - /** - * Erweiterte Bearbeitung eines Datums mit Hilfe einer Kalenderauswahl. - * - */ - function advanceddate() - { - global $conf; $date = $this->value->date; // Wenn Datum nicht vorhanden, dann aktuelles Datum verwenden - if ( $date == 0 ) - $date = time(); - if ( $this->hasRequestVar('year') ) { $date = mktime( $this->getRequestVar('hour'), - $this->getRequestVar('minute'), - $this->getRequestVar('second'), - $this->getRequestVar('month'), - $this->getRequestVar('day'), - $this->getRequestVar('year') ); + $this->getRequestVar('minute'), + $this->getRequestVar('second'), + $this->getRequestVar('month'), + $this->getRequestVar('day'), + $this->getRequestVar('year') ); } $year = date('Y',$date); $month = date('n',$date); @@ -266,7 +226,7 @@ class PageelementAction extends Action $this->setTemplateVar('yearname' ,date('Y',$date) ); - // Zwischenberechnungen + // Zwischenberechnungen $heuteTag = intval(date('j')); $monatLetzterTag = intval(date('t',$date)); $monatErsterDatum = $date-(($day-1)*86400); @@ -275,7 +235,7 @@ class PageelementAction extends Action $weekdayOffset = intval($conf['editor']['calendar']['weekday_offset']); - + // Alle Wochentage $weekdays = array(); for ( $i=0; $i<=6; $i++ ) @@ -285,7 +245,7 @@ class PageelementAction extends Action } $this->setTemplateVar('weekdays',$weekdays); - + $monat = array(); $d = 0; @@ -293,23 +253,23 @@ class PageelementAction extends Action do { $woche = array(); // Neue Woche - + for ( $i=0; $i<=6; $i++ ) // Alle Wochentage der Woche { $wday = ($i+$weekdayOffset)%7; $tag = array(); // Neuer Tag - + if (!$begin && $wday == $wochentagErster) - $begin = true; - + $begin = true; + if ( $begin && $d < $monatLetzterTag ) { $d++; $tag['nr'] = $d; $tag['today'] = ($year==date('Y') && $month==date('n') && $d==$heuteTag); if ($d != $day) - $tag['url'] = Html::url( 'pageelement','advanced','', - array('elementid'=>$this->element->elementid, + $tag['url'] = Html::url( 'pageelement','edit','', + array('elementid'=>$this->element->elementid,'mode'=>'edit', 'year' =>$year , 'month' =>$month , 'day' =>$d , @@ -317,7 +277,7 @@ class PageelementAction extends Action 'minute'=>$minute, 'second'=>$second ) ); else - $tag['url'] = ''; + $tag['url'] = ''; } else { @@ -326,63 +286,63 @@ class PageelementAction extends Action $tag['url' ]=''; } $woche[] = $tag; - + } $monat[$wocheNr] = $woche; $wocheNr++; } while( $d < $monatLetzterTag-1 ); -// Html::debug($monat); + // Html::debug($monat); $this->setTemplateVar('weeklist',$monat); - + $this->setTemplateVar('actdate' ,date( lang('DATE_FORMAT'),$date ) ); - $this->setTemplateVar('todayurl',Html::url( 'pageelement','advanced','', - array('elementid'=>$this->element->elementid, + $this->setTemplateVar('todayurl',Html::url( 'pageelement','edit','', + array('elementid'=>$this->element->elementid,'mode'=>'edit', 'year' =>date('Y'), 'month' =>date('n'), 'day' =>date('j'), 'hour' =>date('G'), 'minute'=>date('i'), 'second'=>date('s') ) ) ); - $this->setTemplateVar('lastyearurl',Html::url( 'pageelement','advanced','', - array('elementid'=>$this->element->elementid, + $this->setTemplateVar('lastyearurl',Html::url( 'pageelement','edit','', + array('elementid'=>$this->element->elementid,'mode'=>'edit', 'year' =>$year-1, 'month' =>$month , 'day' =>$day , 'hour' =>$hour , 'minute'=>$minute, 'second'=>$second ) ) ); - $this->setTemplateVar('nextyearurl',Html::url( 'pageelement','advanced','', - array('elementid'=>$this->element->elementid, + $this->setTemplateVar('nextyearurl',Html::url( 'pageelement','edit','', + array('elementid'=>$this->element->elementid,'mode'=>'edit', 'year' =>$year+1 , 'month' =>$month , 'day' =>$day , 'hour' =>$hour , 'minute'=>$minute, 'second'=>$second ) ) ); - $this->setTemplateVar('lastmonthurl',Html::url( 'pageelement','advanced','', - array('elementid'=>$this->element->elementid, + $this->setTemplateVar('lastmonthurl',Html::url( 'pageelement','edit','', + array('elementid'=>$this->element->elementid,'mode'=>'edit', 'year' =>$year , 'month' =>$month-1, 'day' =>$day , 'hour' =>$hour , 'minute'=>$minute, 'second'=>$second ) ) ); - $this->setTemplateVar('nextmonthurl',Html::url( 'pageelement','advanced','', - array('elementid'=>$this->element->elementid, + $this->setTemplateVar('nextmonthurl',Html::url( 'pageelement','edit','', + array('elementid'=>$this->element->elementid,'mode'=>'edit', 'year' =>$year , 'month' =>$month+1, 'day' =>$day , 'hour' =>$hour , 'minute'=>$minute, 'second'=>$second ) ) ); - -// $this->setTemplateVar('date' ,$date); + + // $this->setTemplateVar('date' ,$date); if ( $this->getSessionVar('pageaction') != '' ) - $this->setTemplateVar('old_pageaction',$this->getSessionVar('pageaction')); + $this->setTemplateVar('old_pageaction',$this->getSessionVar('pageaction')); else $this->setTemplateVar('old_pageaction','show' ); @@ -391,12 +351,12 @@ class PageelementAction extends Action $all_days = array(); $all_hours = array(); $all_minutes = array(); - for( $i=$year-100; $i<=$year+100;$i++ ) $all_years [$i] = $i; - for( $i=1; $i<=12; $i++ ) $all_months [$i] = lang('DATE_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=$year-100; $i<=$year+100;$i++ ) $all_years [$i] = $i; + for( $i=1; $i<=12; $i++ ) $all_months [$i] = lang('DATE_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 ); @@ -404,8 +364,8 @@ class PageelementAction extends Action $this->setTemplateVar('all_minutes',$all_minutes); $this->setTemplateVar('all_seconds',$all_minutes); } - - + + /** * Verkn�pfung bearbeiten. @@ -416,9 +376,9 @@ class PageelementAction extends Action // Ermitteln, welche Objekttypen verlinkt werden d�rfen. if ( empty($this->value->element->subtype) ) - $types = array('page','file','link'); // Fallback: Alle erlauben :) + $types = array('page','file','link'); // Fallback: Alle erlauben :) else - $types = explode(',',$this->value->element->subtype ); + $types = explode(',',$this->value->element->subtype ); $objects = array(); @@ -426,902 +386,899 @@ class PageelementAction extends Action { $o = new Object( $id ); $o->load(); - -// if ( in_array( $o->getType(),$types )) -// { - $f = new Folder( $o->parentid ); -// $f->load(); - $objects[ $id ] = lang( 'GLOBAL_'.$o->getType() ).': '; - $objects[ $id ] .= implode( FILE_SEP,$f->parentObjectNames(false,true) ); - $objects[ $id ] .= FILE_SEP.$o->name; -// } - } + // if ( in_array( $o->getType(),$types )) + // { + $f = new Folder( $o->parentid ); + // $f->load(); + + $objects[ $id ] = lang( 'GLOBAL_'.$o->getType() ).': '; + $objects[ $id ] .= implode( FILE_SEP,$f->parentObjectNames(false,true) ); + $objects[ $id ] .= FILE_SEP.$o->name; + // } + } - asort( $objects ); // Sortieren + asort( $objects ); // Sortieren - $this->setTemplateVar('objects' ,$objects); - $this->setTemplateVar('linkobjectid',$this->value->linkToObjectId); + $this->setTemplateVar('objects' ,$objects); + $this->setTemplateVar('linkobjectid',$this->value->linkToObjectId); - if ( $this->getSessionVar('pageaction') != '' ) + if ( $this->getSessionVar('pageaction') != '' ) $this->setTemplateVar('old_pageaction',$this->getSessionVar('pageaction')); - else $this->setTemplateVar('old_pageaction','show' ); + else $this->setTemplateVar('old_pageaction','show' ); - $this->forward('pageelement_edit_'.$this->value->element->type); - } + $this->forward('pageelement_edit_'.$this->value->element->type); + } - function link() - { - $language = Session::getProjectLanguage(); - $this->value->languageid = $language->languageid; - $this->value->objectid = $this->page->objectid; - $this->value->pageid = $this->page->pageid; - $this->value->element = &$this->element; - $this->value->element->load(); - $this->value->publish = false; - $this->value->load(); - - // Ermitteln, welche Objekttypen verlinkt werden d�rfen. - if ( empty($this->value->element->subtype) ) + function link() + { + $language = Session::getProjectLanguage(); + $this->value->languageid = $language->languageid; + $this->value->objectid = $this->page->objectid; + $this->value->pageid = $this->page->pageid; + $this->value->element = &$this->element; + $this->value->element->load(); + $this->value->publish = false; + $this->value->load(); + + // Ermitteln, welche Objekttypen verlinkt werden d�rfen. + if ( empty($this->value->element->subtype) ) $types = array('page','file','link'); // Fallback: Alle erlauben :) - else + else $types = explode(',',$this->value->element->subtype ); - $objects = array(); + $objects = array(); - $t = new Template( $this->page->templateid ); - - foreach( $t->getDependentObjectIds() as $id ) - { - $o = new Object( $id ); - $o->load(); - -// if ( in_array( $o->getType(),$types )) -// { + $t = new Template( $this->page->templateid ); + + foreach( $t->getDependentObjectIds() as $id ) + { + $o = new Object( $id ); + $o->load(); + + // if ( in_array( $o->getType(),$types )) + // { $f = new Folder( $o->parentid ); -// $f->load(); - - $objects[ $id ] = lang( 'GLOBAL_'.$o->getType() ).': '; - $objects[ $id ] .= implode( FILE_SEP,$f->parentObjectNames(false,true) ); + // $f->load(); + + $objects[ $id ] = lang( 'GLOBAL_'.$o->getType() ).': '; + $objects[ $id ] .= implode( FILE_SEP,$f->parentObjectNames(false,true) ); $objects[ $id ] .= FILE_SEP.$o->name; -// } - } + // } + } - asort( $objects ); // Sortieren + asort( $objects ); // Sortieren - $this->setTemplateVar('objects' ,$objects); - $this->setTemplateVar('linkobjectid',$this->value->linkToObjectId); + $this->setTemplateVar('objects' ,$objects); + $this->setTemplateVar('linkobjectid',$this->value->linkToObjectId); - if ( $this->getSessionVar('pageaction') != '' ) + if ( $this->getSessionVar('pageaction') != '' ) $this->setTemplateVar('old_pageaction',$this->getSessionVar('pageaction')); - else $this->setTemplateVar('old_pageaction','show' ); + else $this->setTemplateVar('old_pageaction','show' ); - $this->value->page = new Page( $this->page->objectid ); - $this->value->page->languageid = $this->value->languageid; - $this->value->page->load(); + $this->value->page = new Page( $this->page->objectid ); + $this->value->page->languageid = $this->value->languageid; + $this->value->page->load(); - $this->setTemplateVar( 'release',$this->value->page->hasRight(ACL_RELEASE) ); - $this->setTemplateVar( 'publish',$this->value->page->hasRight(ACL_PUBLISH) ); + $this->setTemplateVar( 'release',$this->value->page->hasRight(ACL_RELEASE) ); + $this->setTemplateVar( 'publish',$this->value->page->hasRight(ACL_PUBLISH) ); - $this->setTemplateVar( 'objectid',$this->value->page->objectid ); + $this->setTemplateVar( 'objectid',$this->value->page->objectid ); - $this->forward('pageelement_edit_'.$this->value->element->type); - } + $this->forward('pageelement_edit_'.$this->value->element->type); + } - /** - * Auswahlbox. - * - */ - function editselect() - { - $this->setTemplateVar( 'items',$this->value->element->getSelectItems() ); - $this->setTemplateVar( 'text' ,$this->value->text ); + /** + * Auswahlbox. + * + */ + function editselect() + { + $this->setTemplateVar( 'items',$this->value->element->getSelectItems() ); + $this->setTemplateVar( 'text' ,$this->value->text ); - - if ( $this->getSessionVar('pageaction') != '' ) + + if ( $this->getSessionVar('pageaction') != '' ) $this->setTemplateVar('old_pageaction',$this->getSessionVar('pageaction')); - else $this->setTemplateVar('old_pageaction','show' ); + else $this->setTemplateVar('old_pageaction','show' ); - $this->forward('pageelement_edit_'.$this->value->element->type); - } + $this->forward('pageelement_edit_'.$this->value->element->type); + } - /** - * Einf�gen-Element. - * - */ - function editlist() - { - // Auswahl ueber alle Elementtypen - $objects = array(); - foreach( Folder::getAllFolders() as $id ) + /** + * Einf�gen-Element. + * + */ + function editlist() { - $f = new Folder( $id ); - $f->load(); - - $objects[ $id ] = lang( 'GLOBAL_'.$f->getType() ).': '; - $objects[ $id ] .= implode( ' &raquo; ',$f->parentObjectNames(false,true) ); - } + // Auswahl ueber alle Elementtypen + $objects = array(); + foreach( Folder::getAllFolders() as $id ) + { + $f = new Folder( $id ); + $f->load(); + + $objects[ $id ] = lang( 'GLOBAL_'.$f->getType() ).': '; + $objects[ $id ] .= implode( ' &raquo; ',$f->parentObjectNames(false,true) ); + } - asort( $objects ); // Sortieren + asort( $objects ); // Sortieren - $this->setTemplateVar('objects' ,$objects); - $this->setTemplateVar('linkobjectid',$this->value->linkToObjectId); + $this->setTemplateVar('objects' ,$objects); + $this->setTemplateVar('linkobjectid',$this->value->linkToObjectId); - - if ( $this->getSessionVar('pageaction') != '' ) + + if ( $this->getSessionVar('pageaction') != '' ) $this->setTemplateVar('old_pageaction',$this->getSessionVar('pageaction')); - else $this->setTemplateVar('old_pageaction','show' ); + else $this->setTemplateVar('old_pageaction','show' ); - $this->forward('pageelement_edit_'.$this->value->element->type); - } + $this->forward('pageelement_edit_'.$this->value->element->type); + } - /** - * Zahl bearbeiten. - * - */ - function editnumber() - { - $this->setTemplateVar('number',$this->value->number / pow(10,$this->value->element->decimals) ); + /** + * Zahl bearbeiten. + * + */ + function editnumber() + { + $this->setTemplateVar('number',$this->value->number / pow(10,$this->value->element->decimals) ); - if ( $this->getSessionVar('pageaction') != '' ) + if ( $this->getSessionVar('pageaction') != '' ) $this->setTemplateVar('old_pageaction',$this->getSessionVar('pageaction')); - else $this->setTemplateVar('old_pageaction','show' ); - - $this->forward('pageelement_edit_'.$this->value->element->type); - } + else $this->setTemplateVar('old_pageaction','show' ); + $this->forward('pageelement_edit_'.$this->value->element->type); + } - function advancedlongtext() - { - if ( $this->element->wiki ) + /** + * Ein Element der Seite bearbeiten + * + * Es wird ein Formular erzeugt, mit dem der Benutzer den Inhalt bearbeiten kann. + */ + function editlongtext() { - // Ermitteln aller verlinkbaren Objekte (fuer Editor) - $objects = array(); - - foreach( Folder::getAllObjectIds() as $id ) + if ($this->value->element->wiki) + $this->setTemplateVar( 'editor','wiki' ); + elseif ($this->value->element->html) + $this->setTemplateVar( 'editor','html' ); + else + $this->setTemplateVar( 'editor','text' ); + + $this->setTemplateVar( 'text',$this->convertOIDs( $this->value->text ) ); + + if (! $this->isEditMode() ) { - $o = new Object( $id ); - $o->load(); - - if ( $o->getType() != 'folder' ) - { - $f = new Folder( $o->parentid ); - $objects[ $id ] = lang( 'GLOBAL_'.$o->getType() ).': '; - $objects[ $id ] .= implode( FILE_SEP,$f->parentObjectNames(false,true) ); - $objects[ $id ] .= FILE_SEP.$o->name; - } + $this->value->generate(); // Inhalt erzeugen. + $this->setTemplateVar('text',$this->convertOIDs( $this->value->value )); } - asort( $objects ); // Sortieren - - - $transformer = new Transformer(); - $transformer->text = $this->value->text; - $transformer->parseDocument(); - $this->setTemplateVar( 'document',$transformer->doc ); - - $this->setTemplateVar( 'text',$this->value->text ); - $this->setTemplateVar( 'objects',$objects ); - $this->setTemplateVar( 'images' ,$objects ); - } - - $this->editlongtext(); - } - - - - /** - * Ein Element der Seite bearbeiten - * - * Es wird ein Formular erzeugt, mit dem der Benutzer den Inhalt bearbeiten kann. - */ - function editlongtext() - { - if ($this->value->element->html) - $this->setTemplateVar( 'editor','html' ); - elseif ($this->value->element->wiki) - $this->setTemplateVar( 'editor','wiki' ); - else - $this->setTemplateVar( 'editor','text' ); + if ( $this->getSessionVar('pageaction') != '' ) + $this->setTemplateVar('old_pageaction',$this->getSessionVar('pageaction')); + else $this->setTemplateVar('old_pageaction','show' ); - $this->setTemplateVar( 'text',$this->convertOIDs( $this->value->text ) ); - if (! $this->isEditMode() ) - { - $this->value->generate(); // Inhalt erzeugen. - $this->setTemplateVar('text',$this->convertOIDs( $this->value->value )); + if ( $this->element->wiki ) + { + // Ermitteln aller verlinkbaren Objekte (fuer Editor) + $objects = array(); + + foreach( Folder::getAllObjectIds() as $id ) + { + $o = new Object( $id ); + $o->load(); + + if ( $o->getType() != 'folder' ) + { + $f = new Folder( $o->parentid ); + $objects[ $id ] = lang( 'GLOBAL_'.$o->getType() ).': '; + $objects[ $id ] .= implode( FILE_SEP,$f->parentObjectNames(false,true) ); + $objects[ $id ] .= FILE_SEP.$o->name; + } + } + asort( $objects ); // Sortieren + + + $transformer = new Transformer(); + $transformer->text = $this->value->text; + $transformer->parseDocument(); + $this->setTemplateVar( 'document',$transformer->doc ); + + $this->setTemplateVar( 'text',$this->value->text ); + $this->setTemplateVar( 'objects',$objects ); + $this->setTemplateVar( 'images' ,$objects ); + } + } - - if ( $this->getSessionVar('pageaction') != '' ) - $this->setTemplateVar('old_pageaction',$this->getSessionVar('pageaction')); - else $this->setTemplateVar('old_pageaction','show' ); - } + /** + * Ein Element der Seite bearbeiten + * + * Es wird ein Formular erzeugt, mit dem der Benutzer den Inhalt bearbeiten kann. + */ + function edittext() + { + $this->setTemplateVar( 'text',$this->value->text ); - /** - * Ein Element der Seite bearbeiten - * - * Es wird ein Formular erzeugt, mit dem der Benutzer den Inhalt bearbeiten kann. - */ - function edittext() - { - $this->setTemplateVar( 'text',$this->value->text ); - - if ( $this->getSessionVar('pageaction') != '' ) + if ( $this->getSessionVar('pageaction') != '' ) $this->setTemplateVar('old_pageaction',$this->getSessionVar('pageaction')); - else $this->setTemplateVar('old_pageaction','show' ); - } + else $this->setTemplateVar('old_pageaction','show' ); + } - /** - * Benutzen eines alten Inhaltes - */ - function usevalue() - { - $this->value->valueid = $this->getRequestVar('valueid'); - } + /** + * Benutzen eines alten Inhaltes + */ + function usevalue() + { + $this->value->valueid = $this->getRequestVar('valueid'); + } - /** - * Freigeben eines Inhaltes - */ - function release() - { - $this->value->valueid = intval($this->getRequestVar('valueid')); - $this->value->loadWithId(); - - if ( $this->value->pageid != $this->page->pageid ) + /** + * Freigeben eines Inhaltes + */ + function release() + { + $this->value->valueid = intval($this->getRequestVar('valueid')); + $this->value->loadWithId(); + + if ( $this->value->pageid != $this->page->pageid ) die( 'cannot release, bad page' ); - // Pruefen, ob Berechtigung zum Freigeben besteht - if ( !$this->page->hasRight(ACL_RELEASE) ) + // Pruefen, ob Berechtigung zum Freigeben besteht + if ( !$this->page->hasRight(ACL_RELEASE) ) die( 'cannot release, no right' ); - - // Inhalt freigeben - $this->value->release(); - } + // Inhalt freigeben + $this->value->release(); + } - /** - * Erzeugt eine Liste aller Versionsst?nde zu diesem Inhalt - */ - function archive() - { - $this->page->public = true; - $this->page->simple = true; - $this->page->load(); - $this->value->page = &$this->page; - $this->value->simple = true; - $language = Session::getProjectLanguage(); - $this->value->languageid = $language->languageid; - $this->value->objectid = $this->page->objectid; - $this->value->pageid = Page::getPageIdFromObjectId( $this->page->objectid ); - $this->value->element = &$this->element; - $this->value->element->load(); + /** + * Erzeugt eine Liste aller Versionsst?nde zu diesem Inhalt + */ + function archive() + { + $this->page->public = true; + $this->page->simple = true; + $this->page->load(); + $this->value->page = &$this->page; - $list = array(); -// $version_list = array(); - $lfd_nr = 0; + $this->value->simple = true; + $language = Session::getProjectLanguage(); + $this->value->languageid = $language->languageid; + $this->value->objectid = $this->page->objectid; + $this->value->pageid = Page::getPageIdFromObjectId( $this->page->objectid ); + $this->value->element = &$this->element; + $this->value->element->load(); - foreach( $this->value->getVersionList() as $value ) - { - $lfd_nr++; - $value->element = &$this->element; - $value->page = &$this->page; - $value->simple = true; - $value->generate(); - + $list = array(); + // $version_list = array(); + $lfd_nr = 0; -// $date = date( lang('DATE_FORMAT'),$value->lastchangeTimeStamp); - -// if ( in_array( $this->element->type,array('text','longtext') ) ) -// $version_list[ $value->valueid ] = '('.$lfd_nr.') '.$date; + foreach( $this->value->getVersionList() as $value ) + { + $lfd_nr++; + $value->element = &$this->element; + $value->page = &$this->page; + $value->simple = true; + $value->generate(); + + + // $date = date( lang('DATE_FORMAT'),$value->lastchangeTimeStamp); + + // if ( in_array( $this->element->type,array('text','longtext') ) ) + // $version_list[ $value->valueid ] = '('.$lfd_nr.') '.$date; - $zeile = array( 'value' => Text::maxLaenge( 50,$value->value), + $zeile = array( 'value' => Text::maxLaenge( 50,$value->value), 'date' => $value->lastchangeTimeStamp, 'lfd_nr' => $lfd_nr, 'id' => $value->valueid, 'user' => $value->lastchangeUserName ); - // Nicht aktive Inhalte k�nnen direkt bearbeitet werden und sind - // nach dem Speichern dann wieder aktiv (nat�rlich als n�chster/neuer Inhalt) - if ( ! $value->active ) + // Nicht aktive Inhalte k�nnen direkt bearbeitet werden und sind + // nach dem Speichern dann wieder aktiv (nat�rlich als n�chster/neuer Inhalt) + if ( ! $value->active ) $zeile['useUrl'] = Html::url('pageelement','usevalue',$this->page->objectid,array('valueid' =>$value->valueid,'mode'=>'edit')); - // Freigeben des Inhaltes. - // Nur das aktive Inhaltselement kann freigegeben werden. Nat�rlich auch nur, - // wenn es nicht schon freigegeben ist. - if ( ! $value->publish && $value->active ) + // Freigeben des Inhaltes. + // Nur das aktive Inhaltselement kann freigegeben werden. Nat�rlich auch nur, + // wenn es nicht schon freigegeben ist. + if ( ! $value->publish && $value->active ) $zeile['releaseUrl'] = Html::url('pageelement','release',$this->page->objectid,array('valueid' =>$value->valueid )); - $zeile['public'] = $value->publish; - $zeile['active'] = $value->active; + $zeile['public'] = $value->publish; + $zeile['active'] = $value->active; - $list[$lfd_nr] = $zeile; - - } + $list[$lfd_nr] = $zeile; - if ( in_array( $this->value->element->type, array('longtext') ) && $lfd_nr >= 2 ) - { - $this->setTemplateVar('compareid',$list[$lfd_nr-1]['id']); - $this->setTemplateVar('withid' ,$list[$lfd_nr ]['id']); - } - - $this->setTemplateVar('name' ,$value->element->name); - $this->setTemplateVar('el' ,$list ); - } + } + if ( in_array( $this->value->element->type, array('longtext') ) && $lfd_nr >= 2 ) + { + $this->setTemplateVar('compareid',$list[$lfd_nr-1]['id']); + $this->setTemplateVar('withid' ,$list[$lfd_nr ]['id']); + } - /** - * Vergleicht 2 Versionen eines Inhaltes - */ - function diff() - { - $value1id = $this->getRequestVar('compareid'); - $value2id = $this->getRequestVar('withid' ); + $this->setTemplateVar('name' ,$value->element->name); + $this->setTemplateVar('el' ,$list ); + } - // Wenn Value1-Id groesser als Value2-Id, dann Variablen tauschen - if ( $value1id == $value2id ) + + /** + * Vergleicht 2 Versionen eines Inhaltes + */ + function diff() { - $this->addValidationError('compareid' ); - $this->addValidationError('withid' ,''); - $this->callSubAction('archive'); - return; - } + $value1id = $this->getRequestVar('compareid'); + $value2id = $this->getRequestVar('withid' ); - // Wenn Value1-Id groesser als Value2-Id, dann Variablen tauschen - if ( $value1id > $value2id ) + // Wenn Value1-Id groesser als Value2-Id, dann Variablen tauschen + if ( $value1id == $value2id ) + { + $this->addValidationError('compareid' ); + $this->addValidationError('withid' ,''); + $this->callSubAction('archive'); + return; + } + + // Wenn Value1-Id groesser als Value2-Id, dann Variablen tauschen + if ( $value1id > $value2id ) list($value1id,$value2id) = array( $value2id,$value1id ); - - $value1 = new Value( $value1id ); - $value2 = new Value( $value2id ); - $value1->valueid = $value1id; - $value2->valueid = $value2id; - - $value1->loadWithId(); - $value2->loadWithId(); - $this->setTemplateVar('date_left' ,$value1->lastchangeTimeStamp); - $this->setTemplateVar('date_right',$value2->lastchangeTimeStamp); - - $text1 = explode("\n",$value1->text); - $text2 = explode("\n",$value2->text); + $value1 = new Value( $value1id ); + $value2 = new Value( $value2id ); + $value1->valueid = $value1id; + $value2->valueid = $value2id; - // Unterschiede feststellen. - $res_diff = Text::diff($text1,$text2); + $value1->loadWithId(); + $value2->loadWithId(); - list( $text1,$text2 ) = $res_diff; + $this->setTemplateVar('date_left' ,$value1->lastchangeTimeStamp); + $this->setTemplateVar('date_right',$value2->lastchangeTimeStamp); - $diff = array(); - $i = 0; - while( isset($text1[$i]) || isset($text2[$i]) ) - { - $line = array(); + $text1 = explode("\n",$value1->text); + $text2 = explode("\n",$value2->text); - if ( isset($text1[$i]['text']) ) - $line['left'] = $text1[$i]; + // Unterschiede feststellen. + $res_diff = Text::diff($text1,$text2); - if ( isset($text2[$i]['text']) ) - $line['right'] = $text2[$i]; + list( $text1,$text2 ) = $res_diff; + + $diff = array(); + $i = 0; + while( isset($text1[$i]) || isset($text2[$i]) ) + { + $line = array(); - $i++; - $diff[] = $line; + if ( isset($text1[$i]['text']) ) + $line['left'] = $text1[$i]; + + if ( isset($text2[$i]['text']) ) + $line['right'] = $text2[$i]; + + $i++; + $diff[] = $line; + } + $this->setTemplateVar('diff',$diff ); } - $this->setTemplateVar('diff',$diff ); - } - - /** - * Ein Element der Seite speichern. - */ - function save() - { - $this->element->load(); - $type = $this->element->type; - - if ( empty($type)) + + /** + * Ein Element der Seite speichern. + */ + function save() + { + $this->element->load(); + $type = $this->element->type; + + if ( empty($type)) die('Error: No element type available.'); - - $funktionName = 'save'.$type; - - $this->$funktionName(); // Aufruf Methode "save<ElementTyp>()" - } - - - - /** - * Element speichern - * - * Der Inhalt eines Elementes wird abgespeichert - */ - function savetext() - { - $value = new Value(); - $language = Session::getProjectLanguage(); - $value->languageid = $language->languageid; - $value->objectid = $this->page->objectid; - $value->pageid = Page::getPageIdFromObjectId( $this->page->objectid ); + + $funktionName = 'save'.$type; - if ( $this->hasRequestVar('elementid') ) + $this->$funktionName(); // Aufruf Methode "save<ElementTyp>()" + } + + + + /** + * Element speichern + * + * Der Inhalt eines Elementes wird abgespeichert + */ + function savetext() + { + $value = new Value(); + $language = Session::getProjectLanguage(); + $value->languageid = $language->languageid; + $value->objectid = $this->page->objectid; + $value->pageid = Page::getPageIdFromObjectId( $this->page->objectid ); + + if ( $this->hasRequestVar('elementid') ) $value->element = new Element( $this->getRequestVar('elementid') ); - else + else $value->element = Session::getElement(); - $value->element->load(); - $value->publish = false; - $value->load(); + $value->element->load(); + $value->publish = false; + $value->load(); - if ( $this->hasRequestVar('linkobjectid') ) + if ( $this->hasRequestVar('linkobjectid') ) $value->linkToObjectId = $this->getRequestVar('linkobjectid'); - else + else $value->text = $this->getRequestVar('text'); - $this->afterSave($value); - } + $this->afterSave($value); + } - /** - * Nach dem Speichern weitere Dinge ausfuehren.<br> - * - Inhalt freigeben<br> - * - Seite veroeffentlichen<br> - * - Inhalt fuer andere Sprachen speichern<br> - * - Hinweis ueber erfolgtes Speichern ausgeben<br> - * <br> - * Nicht zu verwechseln mit <i>Aftershave</i> :) - */ - function afterSave( $value ) - { - $value->page = new Page( $value->objectid ); - $value->page->load(); - + /** + * Nach dem Speichern weitere Dinge ausfuehren.<br> + * - Inhalt freigeben<br> + * - Seite veroeffentlichen<br> + * - Inhalt fuer andere Sprachen speichern<br> + * - Hinweis ueber erfolgtes Speichern ausgeben<br> + * <br> + * Nicht zu verwechseln mit <i>Aftershave</i> :) + */ + function afterSave( $value ) + { + $value->page = new Page( $value->objectid ); + $value->page->load(); - // Inhalt sofort freigegeben, wenn - // - Recht vorhanden - // - Freigabe gewuenscht - if ( $value->page->hasRight( ACL_RELEASE ) && $this->getRequestVar('release')!='' ) + + // Inhalt sofort freigegeben, wenn + // - Recht vorhanden + // - Freigabe gewuenscht + if ( $value->page->hasRight( ACL_RELEASE ) && $this->getRequestVar('release')!='' ) $value->publish = true; - else + else $value->publish = false; - // Inhalt speichern - - // Wenn Inhalt in allen Sprachen gleich ist, dann wird der Inhalt - // fuer jede Sprache einzeln gespeichert. - if ( $value->element->allLanguages ) - { - $project = Session::getProject(); - foreach( $project->getLanguageIds() as $languageid ) + // Inhalt speichern + + // Wenn Inhalt in allen Sprachen gleich ist, dann wird der Inhalt + // fuer jede Sprache einzeln gespeichert. + if ( $value->element->allLanguages ) { - $value->languageid = $languageid; + $project = Session::getProject(); + foreach( $project->getLanguageIds() as $languageid ) + { + $value->languageid = $languageid; + $value->save(); + } + } + else + { + // sonst nur 1x speichern (fuer die aktuelle Sprache) $value->save(); } - } - else - { - // sonst nur 1x speichern (fuer die aktuelle Sprache) - $value->save(); - } - $this->addNotice('pageelement',$value->element->name,'SAVED',OR_NOTICE_OK); - $this->page->setTimestamp(); // "Letzte Aenderung" setzen + $this->addNotice('pageelement',$value->element->name,'SAVED',OR_NOTICE_OK); + $this->page->setTimestamp(); // "Letzte Aenderung" setzen - // Falls ausgewaehlt die Seite sofort veroeffentlichen - if ( $value->page->hasRight( ACL_PUBLISH ) && $this->hasRequestVar('publish') ) - { - $this->page->publish(); - $this->addNotice('pageelement',$value->element->name,'PUBLISHED',OR_NOTICE_OK); + // Falls ausgewaehlt die Seite sofort veroeffentlichen + if ( $value->page->hasRight( ACL_PUBLISH ) && $this->hasRequestVar('publish') ) + { + $this->page->publish(); + $this->addNotice('pageelement',$value->element->name,'PUBLISHED',OR_NOTICE_OK); + } } - } - /** - * Element speichern - * - * Der Inhalt eines Elementes wird abgespeichert - */ - function savelongtext() - { - $value = new Value(); - $language = Session::getProjectLanguage(); - $value->languageid = $language->languageid; - $value->objectid = $this->page->objectid; - $value->pageid = Page::getPageIdFromObjectId( $this->page->objectid ); + /** + * Element speichern + * + * Der Inhalt eines Elementes wird abgespeichert + */ + function savelongtext() + { + $value = new Value(); + $language = Session::getProjectLanguage(); + $value->languageid = $language->languageid; + $value->objectid = $this->page->objectid; + $value->pageid = Page::getPageIdFromObjectId( $this->page->objectid ); - if ( $this->hasRequestVar('elementid') ) + if ( $this->hasRequestVar('elementid') ) $value->element = new Element( $this->getRequestVar('elementid') ); - else + else $value->element = Session::getElement(); - $value->element->load(); - $value->publish = false; - $value->load(); + $value->element->load(); + $value->publish = false; + $value->load(); - if ( $this->hasRequestVar('linkobjectid') ) + if ( $this->hasRequestVar('linkobjectid') ) $value->linkToObjectId = $this->getRequestVar('linkobjectid'); - else + else $value->text = $this->convertOIDs( $this->getRequestVar('text') ); - // Vorschau anzeigen - if ( $value->element->type=='longtext' && ($this->hasRequestVar('preview')||$this->hasRequestVar('addmarkup')) ) - { - if ( $this->hasRequestVar('preview') ) - { - $value->page = $this->page; - $value->simple = false; - $value->page->languageid = $value->languageid; - $value->page->load(); - $value->generate(); - $this->setTemplateVar('preview_text',$value->value ); - } - - if ( $this->hasRequestVar('addmarkup') ) + // Vorschau anzeigen + if ( $value->element->type=='longtext' && ($this->hasRequestVar('preview')||$this->hasRequestVar('addmarkup')) ) { - $addText = $this->getRequestVar('addtext'); + if ( $this->hasRequestVar('preview') ) + { + $value->page = $this->page; + $value->simple = false; + $value->page->languageid = $value->languageid; + $value->page->load(); + $value->generate(); + $this->setTemplateVar('preview_text',$value->value ); + } - if ( !empty($addText) ) // Nur, wenn ein Text eingegeben wurde + if ( $this->hasRequestVar('addmarkup') ) { $addText = $this->getRequestVar('addtext'); - if ( $this->hasRequestVar('strong') ) + if ( !empty($addText) ) // Nur, wenn ein Text eingegeben wurde + { + $addText = $this->getRequestVar('addtext'); + + if ( $this->hasRequestVar('strong') ) $value->text .= '*'.$addText.'*'; - if ( $this->hasRequestVar('emphatic') ) + if ( $this->hasRequestVar('emphatic') ) $value->text .= '_'.$addText.'_'; - if ( $this->hasRequestVar('link') ) + if ( $this->hasRequestVar('link') ) $value->text .= '"'.$addText.'"->"'.$this->getRequestVar('objectid').'"'; - } + } - if ( $this->hasRequestVar('table') ) + if ( $this->hasRequestVar('table') ) $value->text .= "|$addText | |\n|$addText | |\n|$addText | |\n"; - if ( $this->hasRequestVar('list') ) + if ( $this->hasRequestVar('list') ) $value->text .= "\n- ".$addText."\n".'- '.$addText."\n".'- '.$addText."\n"; - if ( $this->hasRequestVar('numlist') ) + if ( $this->hasRequestVar('numlist') ) $value->text .= "\n# ".$addText."\n".'# '.$addText."\n".'# '.$addText."\n"; - if ( $this->hasRequestVar('image') ) + if ( $this->hasRequestVar('image') ) $value->text .= '{'.$this->getRequestVar('objectid').'}'; - } + } - // Ermitteln aller verlinkbaren Objekte (fuer Editor) - $objects = array(); - - foreach( Folder::getAllObjectIds() as $id ) - { - $o = new Object( $id ); - $o->load(); - - if ( $o->getType() != 'folder' ) - { - $f = new Folder( $o->parentid ); - $objects[ $id ] = lang( 'GLOBAL_'.$o->getType() ).': '; - $objects[ $id ] .= implode( FILE_SEP,$f->parentObjectNames(false,true) ); - $objects[ $id ] .= FILE_SEP.$o->name; - } + // Ermitteln aller verlinkbaren Objekte (fuer Editor) + $objects = array(); + + foreach( Folder::getAllObjectIds() as $id ) + { + $o = new Object( $id ); + $o->load(); + + if ( $o->getType() != 'folder' ) + { + $f = new Folder( $o->parentid ); + $objects[ $id ] = lang( 'GLOBAL_'.$o->getType() ).': '; + $objects[ $id ] .= implode( FILE_SEP,$f->parentObjectNames(false,true) ); + $objects[ $id ] .= FILE_SEP.$o->name; + } + } + asort($objects); + $this->setTemplateVar( 'objects' ,$objects ); + + $this->setTemplateVar( 'release' ,$this->page->hasRight(ACL_RELEASE) ); + $this->setTemplateVar( 'publish' ,$this->page->hasRight(ACL_PUBLISH) ); + $this->setTemplateVar( 'html' ,$value->element->html ); + $this->setTemplateVar( 'wiki' ,$value->element->wiki ); + $this->setTemplateVar( 'text' ,$value->text ); + $this->setTemplateVar( 'name' ,$value->element->name ); + $this->setTemplateVar( 'desc' ,$value->element->desc ); + $this->setTemplateVar( 'objectid',$this->page->objectid ); + $this->forward( 'pageelement_edit_longtext' ); } - asort($objects); - $this->setTemplateVar( 'objects' ,$objects ); - - $this->setTemplateVar( 'release' ,$this->page->hasRight(ACL_RELEASE) ); - $this->setTemplateVar( 'publish' ,$this->page->hasRight(ACL_PUBLISH) ); - $this->setTemplateVar( 'html' ,$value->element->html ); - $this->setTemplateVar( 'wiki' ,$value->element->wiki ); - $this->setTemplateVar( 'text' ,$value->text ); - $this->setTemplateVar( 'name' ,$value->element->name ); - $this->setTemplateVar( 'desc' ,$value->element->desc ); - $this->setTemplateVar( 'objectid',$this->page->objectid ); - $this->forward( 'pageelement_edit_longtext' ); + + $this->afterSave($value); } - - $this->afterSave($value); - } - /** - * Element speichern - * - * Der Inhalt eines Elementes wird abgespeichert - */ - function savedate() - { - $value = new Value(); - $language = Session::getProjectLanguage(); - $value->languageid = $language->languageid; - $value->objectid = $this->page->objectid; - $value->pageid = Page::getPageIdFromObjectId( $this->page->objectid ); + /** + * Element speichern + * + * Der Inhalt eines Elementes wird abgespeichert + */ + function savedate() + { + $value = new Value(); + $language = Session::getProjectLanguage(); + $value->languageid = $language->languageid; + $value->objectid = $this->page->objectid; + $value->pageid = Page::getPageIdFromObjectId( $this->page->objectid ); - if ( $this->hasRequestVar('elementid') ) + if ( $this->hasRequestVar('elementid') ) $value->element = new Element( $this->getRequestVar('elementid') ); - else + else $value->element = Session::getElement(); - $value->element->load(); - $value->publish = false; - $value->load(); + $value->element->load(); + $value->publish = false; + $value->load(); - if ( $this->hasRequestVar('linkobjectid') ) + if ( $this->hasRequestVar('linkobjectid') ) $value->linkToObjectId = $this->getRequestVar('linkobjectid'); - elseif ( $this->getRequestVar('ansidate') != $this->getRequestVar('ansidate_orig') ) + elseif ( $this->getRequestVar('ansidate') != $this->getRequestVar('ansidate_orig') ) // Wenn ein ANSI-Datum eingegeben wurde, dann dieses verwenden $value->date = strtotime($this->getRequestVar('ansidate') ); - else + else // Sonst die Zeitwerte einzeln zu einem Datum zusammensetzen $value->date = mktime( $this->getRequestVar('hour' ), - $this->getRequestVar('minute'), - $this->getRequestVar('second'), - $this->getRequestVar('month' ), - $this->getRequestVar('day' ), - $this->getRequestVar('year' ) ); - - $this->afterSave($value); - } + $this->getRequestVar('minute'), + $this->getRequestVar('second'), + $this->getRequestVar('month' ), + $this->getRequestVar('day' ), + $this->getRequestVar('year' ) ); + $this->afterSave($value); + } - /** - * Element speichern - * - * Der Inhalt eines Elementes wird abgespeichert - */ - function saveselect() - { - $value = new Value(); - $language = Session::getProjectLanguage(); - $value->languageid = $language->languageid; - $value->objectid = $this->page->objectid; - $value->pageid = Page::getPageIdFromObjectId( $this->page->objectid ); - if ( $this->hasRequestVar('elementid') ) + /** + * Element speichern + * + * Der Inhalt eines Elementes wird abgespeichert + */ + function saveselect() + { + $value = new Value(); + $language = Session::getProjectLanguage(); + $value->languageid = $language->languageid; + $value->objectid = $this->page->objectid; + $value->pageid = Page::getPageIdFromObjectId( $this->page->objectid ); + + if ( $this->hasRequestVar('elementid') ) $value->element = new Element( $this->getRequestVar('elementid') ); - else + else $value->element = Session::getElement(); - $value->element->load(); - $value->publish = false; - $value->load(); + $value->element->load(); + $value->publish = false; + $value->load(); - $value->text = $this->getRequestVar('text'); + $value->text = $this->getRequestVar('text'); - $this->afterSave($value); - } + $this->afterSave($value); + } - /** - * Element speichern - * - * Der Inhalt eines Elementes wird abgespeichert - */ - function savelink() - { - $value = new Value(); - $language = Session::getProjectLanguage(); - $value->languageid = $language->languageid; - $value->objectid = $this->page->objectid; - $value->pageid = Page::getPageIdFromObjectId( $this->page->objectid ); + /** + * Element speichern + * + * Der Inhalt eines Elementes wird abgespeichert + */ + function savelink() + { + $value = new Value(); + $language = Session::getProjectLanguage(); + $value->languageid = $language->languageid; + $value->objectid = $this->page->objectid; + $value->pageid = Page::getPageIdFromObjectId( $this->page->objectid ); - if ( $this->hasRequestVar('elementid') ) + if ( $this->hasRequestVar('elementid') ) $value->element = new Element( $this->getRequestVar('elementid') ); - else + else $value->element = Session::getElement(); - $value->element->load(); - $value->publish = false; - $value->load(); + $value->element->load(); + $value->publish = false; + $value->load(); - $value->linkToObjectId = intval($this->getRequestVar('linkobjectid')); + if ( $this->hasRequestVar('linkurl') ) + $value->linkToObjectId = $this->parseOID($this->getRequestVar('linkurl')); + else + $value->linkToObjectId = intval($this->getRequestVar('linkobjectid')); - $this->afterSave($value); - } + $this->afterSave($value); + } - /** - * Element speichern - * - * Der Inhalt eines Elementes wird abgespeichert - */ - function savelist() - { - $value = new Value(); - $language = Session::getProjectLanguage(); - $value->languageid = $language->languageid; - $value->objectid = $this->page->objectid; - $value->pageid = Page::getPageIdFromObjectId( $this->page->objectid ); + /** + * Element speichern + * + * Der Inhalt eines Elementes wird abgespeichert + */ + function savelist() + { + $value = new Value(); + $language = Session::getProjectLanguage(); + $value->languageid = $language->languageid; + $value->objectid = $this->page->objectid; + $value->pageid = Page::getPageIdFromObjectId( $this->page->objectid ); - if ( $this->hasRequestVar('elementid') ) + if ( $this->hasRequestVar('elementid') ) $value->element = new Element( $this->getRequestVar('elementid') ); - else + else $value->element = Session::getElement(); - $value->element->load(); - $value->publish = false; - $value->load(); + $value->element->load(); + $value->publish = false; + $value->load(); - $value->linkToObjectId = intval($this->getRequestVar('linkobjectid')); + $value->linkToObjectId = intval($this->getRequestVar('linkobjectid')); - $this->afterSave($value); - } - - - - /** - * Element speichern - * - * Der Inhalt eines Elementes wird abgespeichert - */ - function savenumber() - { - $value = new Value(); - $language = Session::getProjectLanguage(); - $value->languageid = $language->languageid; - $value->objectid = $this->page->objectid; - $value->pageid = Page::getPageIdFromObjectId( $this->page->objectid ); + $this->afterSave($value); + } - if ( $this->hasRequestVar('elementid') ) + + + /** + * Element speichern + * + * Der Inhalt eines Elementes wird abgespeichert + */ + function savenumber() + { + $value = new Value(); + $language = Session::getProjectLanguage(); + $value->languageid = $language->languageid; + $value->objectid = $this->page->objectid; + $value->pageid = Page::getPageIdFromObjectId( $this->page->objectid ); + + if ( $this->hasRequestVar('elementid') ) $value->element = new Element( $this->getRequestVar('elementid') ); - else + else $value->element = Session::getElement(); - $value->element->load(); - $value->publish = false; - $value->load(); + $value->element->load(); + $value->publish = false; + $value->load(); - if ( $this->hasRequestVar('linkobjectid') ) + if ( $this->hasRequestVar('linkobjectid') ) $value->linkToObjectId = $this->getRequestVar('linkobjectid'); - else + else $value->number = $this->getRequestVar('number') * pow(10,$value->element->decimals); - - $this->afterSave($value); - } - - - function exportlongtext() - { - $types = array(); - - foreach( array('odf','plaintext') as $type ) + + $this->afterSave($value); + } + + + function exportlongtext() { - $types[$type] = lang('FILETYPE_'.$type); + $types = array(); + + foreach( array('odf','plaintext') as $type ) + { + $types[$type] = lang('FILETYPE_'.$type); + } + + $this->setTemplateVar('types',$types); } - - $this->setTemplateVar('types',$types); - } - function importlongtext() - { - $types = array(); - - foreach( array('odf','plaintext') as $type ) + function importlongtext() { - $types[$type] = lang('FILETYPE_'.$type); + $types = array(); + + foreach( array('odf','plaintext') as $type ) + { + $types[$type] = lang('FILETYPE_'.$type); + } + $this->setTemplateVar('types',$types); } - $this->setTemplateVar('types',$types); - } - - - function doexportlongtext() - { - $type = $this->getRequestVar('type'); - switch($type) + + + function doexportlongtext() { - case 'odf': - - // Angabe Content-Type -// header('Content-Type: '.$this->file->mimeType()); -// header('X-File-Id: '.$this->file->fileid); - -// header('Content-Disposition: inline; filename='.$this->id.'.odt'); - header('Content-Transfer-Encoding: binary'); -// header('Content-Description: '.$this->file->name); - - echo $this->createOdfDocument(); - - exit; - - default: + $type = $this->getRequestVar('type'); + switch($type) + { + case 'odf': + + // Angabe Content-Type + // header('Content-Type: '.$this->file->mimeType()); + // header('X-File-Id: '.$this->file->fileid); + + // header('Content-Disposition: inline; filename='.$this->id.'.odt'); + header('Content-Transfer-Encoding: binary'); + // header('Content-Description: '.$this->file->name); + + echo $this->createOdfDocument(); + + exit; + + default: + } + + exit; } - exit; - } - - - /** - * ODF erzeugen.<br> - * vorerst ZURUECKGESTELLT! - * - * @return unknown - */ - function createOdfDocument() - { - // TODO: ODF ist nicht ganz ohne. - $transformer = new Transformer(); - $transformer->text = $this->value->text; - $transformer->type = 'odf'; - $transformer->transform(); - return $transformer->text; - } - - - - /** - * Men�eintr�ge aktivieren/deaktivieren. - * - * @param String $name - * @return boolean - */ - function checkMenu( $name ) - { - $type = $this->value->element->type; - - switch( $name ) + + /** + * ODF erzeugen.<br> + * vorerst ZURUECKGESTELLT! + * + * @return unknown + */ + function createOdfDocument() { - case 'show': - case 'edit': - return true; - - case 'archive': - // Archiv ist nur verf�gbar, wenn es mind. 1 Version des Inhaltes gibt. - if ( is_object($this->value) ) - return $this->value->getCountVersions() > 0; - else + // TODO: ODF ist nicht ganz ohne. + $transformer = new Transformer(); + $transformer->text = $this->value->text; + $transformer->type = 'odf'; + $transformer->transform(); + return $transformer->text; + } + + + + /** + * Men�eintr�ge aktivieren/deaktivieren. + * + * @param String $name + * @return boolean + */ + function checkMenu( $name ) + { + $type = $this->value->element->type; + + switch( $name ) + { + case 'edit': + case 'prop': return true; - case 'link': - // Verkn�pfung zu anderen Seiten ist nur m�glich f�r: - // Datum, Text, Textabsatz, Ganzzahl. - return in_array($type,array('date','text','longtext','number')); + case 'archive': + // Archiv ist nur verf�gbar, wenn es mind. 1 Version des Inhaltes gibt. + + if ( $this->subActionName!='diff' && is_object($this->value) ) + return $this->value->getCountVersions() > 0; + else + return true; + + case 'link': + // Verkn�pfung zu anderen Seiten ist nur m�glich f�r + // Datum, Text, Textabsatz, Ganzzahl. + return in_array($type,array('date','text','longtext','number')); + + default: + return false; + } + } + - case 'advanced': - // Erweiterten Editormodus gibt es nur f�r: - // Datum, Textabsatz, Ganzzahl. - return in_array($type,array('date','longtext','number')); + function convertOIDs( $text ) + { + $treffer = array(); + preg_match_all('/\"([^\"]*)__OID__([0-9]+)__([^\"]*)\"/', $text, $treffer,PREG_SET_ORDER); + // preg_match_all('(.*)__OID__([0-9]+)__', $text, $treffer); + foreach( $treffer as $t ) + { + $oid = $t[2]; + $url = $this->page->path_to_object($oid); + $text = str_replace($t[0],'"'.$url.'"',$text); + } - default: - return false; + return $text; } - } - - - function convertOIDs( $text ) - { - $treffer = array(); - preg_match_all('/\"([^\"]*)__OID__([0-9]+)__([^\"]*)\"/', $text, $treffer,PREG_SET_ORDER); -// preg_match_all('(.*)__OID__([0-9]+)__', $text, $treffer); -// Html::debug($treffer); - foreach( $treffer as $t ) + + + function parseOID( $text ) { - $oid = $t[2]; -// Html::debug($oid); - $url = $this->page->path_to_object($oid); - $text = str_replace($t[0],'"'.$url.'"',$text); + $treffer = array(); + preg_match_all('/(.*)__OID__([0-9]+)__(.*)/', $text, $treffer,PREG_SET_ORDER); + + return $treffer[0][2]; } - -// Html::debug($text); - return $text; - } } ?> \ No newline at end of file diff --git a/actionClasses/PageelementAction.ini.php b/actionClasses/PageelementAction.ini.php @@ -38,12 +38,11 @@ menu=edit target=save editable=true -[advanced] +[prop] menu=edit -target=save [save] goto=edit [menu] -edit=edit,link,import,export,archive- \ No newline at end of file +edit=edit,prop,link,import,export,archive+ \ No newline at end of file diff --git a/themes/default/templates/pageelement/edit.tpl.src.php b/themes/default/templates/pageelement/edit.tpl.src.php @@ -8,9 +8,87 @@ page if value:var:type equals:date row - cell colspan:2 class:fx - input size:25 maxlength:25 class:ansidate name:ansidate - focus field:ansidate + cell colspan:2 + fieldset title:message:calendar + row + cell colspan:2 + table width:85% class:calendar + row + cell colspan:8 class:help + if true:mode:edit + link url:var:lastmonthurl + image file:left align:middle + text raw:_ + text var:monthname + if true:mode:edit + text raw:_ + link url:var:nextmonthurl + image file:right align:middle + text raw:_____ + if true:mode:edit + link url:var:lastyearurl + image file:left align:middle + text raw:_ + text var:yearname + if true:mode:edit + text raw:_ + link url:var:nextyearurl + image file:right align:middle + row + cell + text key:week + list list:weekdays value:weekday + cell + text var:weekday + + list list:weeklist key:weeknr value:week + row + cell width:12% + text var:weeknr + list list:week extract:true + cell width:12% + if empty:url + text raw:__ + text var:nr + text raw:__ + if not:true empty:url + link url:var:url + text raw:__ + text var:nr + text raw:__ + if true:var:today + text raw:* + + + row + cell colspan:2 + fieldset title:message:date + row + cell + text key:date + cell + selectbox name:year list:all_years + text raw:_-_ + selectbox name:month list:all_months + text raw:_-_ + selectbox name:day list:all_days + + row + cell + text key:date_time + cell + selectbox name:hour list:all_hours + text raw:_-_ + selectbox name:minute list:all_minutes + text raw:_-_ + selectbox name:second list:all_seconds + + +# if value:var:type equals:date +# row +# cell colspan:2 class:fx +# input size:25 maxlength:25 class:ansidate name:ansidate +# focus field:ansidate if value:var:type equals:text row @@ -23,81 +101,94 @@ page cell colspan:2 class:fx //focus field:text - //if value:var:editor equals:wiki -// if present:preview_text -// text var:preview_text -// newline - -// editor type:wiki name:text - inputarea class:longtext name:text rows:25 cols:70 + if value:var:editor equals:html + editor type:html name:text + + if value:var:editor equals:wiki - if true:mode:edit - fieldset title:message:help - table - cell - text text:config:editor/text-markup/strong-begin - text text:message:text_markup_strong - text text:config:editor/text-markup/strong-end - newline - text text:config:editor/text-markup/emphatic-begin - text text:message:text_markup_emphatic - text text:config:editor/text-markup/emphatic-end - cell - text text:config:editor/text-markup/list-numbered - text text:message:text_markup_numbered_list - newline - text text:config:editor/text-markup/list-numbered - text text::... - newline - cell - text text:config:editor/text-markup/list-unnumbered - text text:message:text_markup_unnumbered_list - newline - text text:config:editor/text-markup/list-unnumbered - text text::... - newline - cell - text text:config:editor/text-markup/table-cell-sep - text text:message:text_markup_table - text text:config:editor/text-markup/table-cell-sep - text text::... - text text:config:editor/text-markup/table-cell-sep - text text::... - text text:config:editor/text-markup/table-cell-sep - newline - text text:config:editor/text-markup/table-cell-sep - text text::... - text text:config:editor/text-markup/table-cell-sep - text text::... - text text:config:editor/text-markup/table-cell-sep - text text::... - text text:config:editor/text-markup/table-cell-sep - newline - + editor type:wiki name:text + #inputarea class:longtext name:text rows:25 cols:70 + + if true:mode:edit + fieldset title:message:help + table + cell + text value:config:editor/text-markup/strong-begin + text key:text_markup_strong + text value:config:editor/text-markup/strong-end + newline + text value:config:editor/text-markup/emphatic-begin + text key:text_markup_emphatic + text value:config:editor/text-markup/emphatic-end + cell + text value:config:editor/text-markup/list-numbered + text key:text_markup_numbered_list + newline + text value:config:editor/text-markup/list-numbered + text raw:... + newline + cell + text value:config:editor/text-markup/list-unnumbered + text key:text_markup_unnumbered_list + newline + text value:config:editor/text-markup/list-unnumbered + text raw:... + newline + cell + text value:config:editor/text-markup/table-cell-sep + text key:text_markup_table + text value:config:editor/text-markup/table-cell-sep + text raw:... + text value:config:editor/text-markup/table-cell-sep + text raw:... + text value:config:editor/text-markup/table-cell-sep + newline + text value:config:editor/text-markup/table-cell-sep + text raw:... + text value:config:editor/text-markup/table-cell-sep + text raw:... + text value:config:editor/text-markup/table-cell-sep + text raw:... + text value:config:editor/text-markup/table-cell-sep + newline + if value:var:editor equals:text + inputarea class:longtext name:text rows:25 cols:70 + focus field:text + + + if value:var:type equals:link row - cell colspan:2 class:fx + cell + text key:link_target + cell selectbox list:objects name:linkobjectid focus field:linkobjectid + if true:mode:edit + row + cell + text key:link_url + cell + input name:linkurl if value:var:type equals:list row - cell colspan:2 class:fx + cell colspan:2 selectbox list:objects name:linkobjectid focus field:linkobjectid if value:var:type equals:number row - cell colspan:2 class:fx + cell colspan:2 hidden name:decimals default:decimals input size:15 maxlength:20 name:number focus field:number if value:var:type equals:select row - cell colspan:2 class:fx + cell colspan:2 selectbox list:items name:text focus field:text diff --git a/themes/default/templates/pageelement/prop.tpl.src.php b/themes/default/templates/pageelement/prop.tpl.src.php @@ -0,0 +1,67 @@ +page + + form + window icon:folder widths:40%,60% + row + cell + text text:name + cell class:name + text var:name + row + cell + text text:description + cell + text var:description + row + cell + text text:type + cell class:filename + image elementtype:var:element_type + text key:el_{element_type} + row + cell colspan:2 + fieldset title:message:additional_info + row + cell + text key:template + cell + if present:template_url + link url:var:template_url target:cms_main_main + image file:icon_template + text var:template_name + if empty:template_url + image file:icon_template + text var:template_name + row + cell + text key:element + cell + if present:element_url + link url:var:element_url target:cms_main_main + image elementtype:var:element_type + text var:element_name + if empty:element_url + image icon:element + text var:element_name + if present:text + row + cell colspan:2 + fieldset title:message:DOCUMENT_TREE + row + cell colspan:2 + editor type:dom name:text + row + cell colspan:2 + fieldset title:message:prop_userinfo + row + cell + text text:lastchange + cell + table + row + cell + image icon:el_date + date date:var:lastchange_date + cell + image icon:user + user user:var:lastchange_user