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:
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( ' » ',$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( ' » ',$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