
Öffentliche Methoden | |
| ElementAction () | |
| savename () | |
| remove () | |
| delete () | |
| savetype () | |
| name () | |
| type () | |
| properties () | |
| saveproperties () | |
Öffentliche Attribute | |
| $element | |
Definiert in Zeile 29 der Datei ElementAction.class.php.
| ElementAction::delete | ( | ) |
Entfernen des Elementes
Definiert in Zeile 77 der Datei ElementAction.class.php.
Benutzt Action::addNotice() und Action::hasRequestVar().
00078 { 00079 if ( $this->hasRequestVar('deletevalues') ) 00080 { 00081 $this->element->deleteValues(); 00082 $this->addNotice('element',$this->template->name,'DELETED',OR_NOTICE_OK); 00083 } 00084 elseif ( $this->hasRequestVar('delete') ) 00085 { 00086 $this->element->delete(); 00087 $this->addNotice('element',$this->template->name,'DELETED',OR_NOTICE_OK); 00088 } 00089 else 00090 { 00091 $this->addNotice('element',$this->template->name,'CANCELED',OR_NOTICE_WARN); 00092 } 00093 }
| ElementAction::ElementAction | ( | ) |
Konstruktor
Definiert in Zeile 36 der Datei ElementAction.class.php.
Benutzt Action::getRequestId() und Action::setTemplateVar().
00037 { 00038 if ( $this->getRequestId() == 0 ) 00039 die('no element-id available'); 00040 00041 $this->element = new Element( $this->getRequestId() ); 00042 $this->element->load(); 00043 00044 $this->setTemplateVar( 'elementid' ,$this->element->elementid ); 00045 }
| ElementAction::name | ( | ) |
Anzeigen des Elementes
Definiert in Zeile 119 der Datei ElementAction.class.php.
Benutzt Action::setTemplateVar().
00120 { 00121 00122 // Name und Beschreibung 00123 $this->setTemplateVar('name' ,$this->element->name); 00124 00125 $this->setTemplateVar('description',$this->element->desc); 00126 }
| ElementAction::properties | ( | ) |
Auswahlmaske f�r weitere Einstellungen zum Template-Element.
Definiert in Zeile 154 der Datei ElementAction.class.php.
Benutzt $conf, $element, Template::getAll(), Folder::getAllFolders(), Object::getAllObjectIds(), lang(), Action::message() und Action::setTemplateVar().
00155 { 00156 global $conf; 00157 00158 // Abhaengig vom aktuellen Element-Typ die Eigenschaften anzeigen 00159 $properties = $this->element->getRelatedProperties(); 00160 00161 foreach( $this->element->getRelatedProperties() as $propertyName ) 00162 { 00163 switch( $propertyName ) 00164 { 00165 case 'withIcon': 00166 $this->setTemplateVar('with_icon' ,$this->element->withIcon ); 00167 break; 00168 00169 case 'allLanguages': 00170 $this->setTemplateVar('all_languages',$this->element->allLanguages); 00171 break; 00172 00173 case 'writable': 00174 $this->setTemplateVar('writable' ,$this->element->writable ); 00175 break; 00176 00177 case 'subtype': 00178 00179 $convertToLang = false; 00180 switch( $this->element->type ) 00181 { 00182 case 'info': 00183 $subtypes = Array('db_id', 00184 'db_name', 00185 'project_id', 00186 'project_name', 00187 'language_id', 00188 'language_iso', 00189 'language_name', 00190 'page_id', 00191 'page_name', 00192 'page_desc', 00193 'page_fullfilename', 00194 'page_filename', 00195 'page_extension', 00196 'edit_url', 00197 'edit_fullurl', 00198 'lastch_user_username', 00199 'lastch_user_fullname', 00200 'lastch_user_mail', 00201 'lastch_user_desc', 00202 'lastch_user_tel', 00203 'create_user_username', 00204 'create_user_fullname', 00205 'create_user_mail', 00206 'create_user_desc', 00207 'create_user_tel', 00208 'act_user_username', 00209 'act_user_fullname', 00210 'act_user_mail', 00211 'act_user_desc', 00212 'act_user_tel' ); 00213 $convertToLang = true; 00214 break; 00215 00216 case 'infodate': 00217 $subtypes = Array('date_published', 00218 'date_saved', 00219 'date_created' ); 00220 $convertToLang = true; 00221 break; 00222 00223 case 'link': 00224 $subtypes = Array('file,page,link', 00225 'file', 00226 'page', 00227 'link' ); 00228 $convertToLang = true; 00229 break; 00230 00231 case 'linkinfo': 00232 $subtypes = Array('width', 00233 'height', 00234 'id', 00235 'name', 00236 'description', 00237 'mime-type', 00238 'lastch_user_username', 00239 'lastch_user_fullname', 00240 'lastch_user_mail', 00241 'lastch_user_desc', 00242 'lastch_user_tel', 00243 'create_user_username', 00244 'create_user_fullname', 00245 'create_user_mail', 00246 'create_user_desc', 00247 'create_user_tel', 00248 'filename', 00249 'full_filename' ); 00250 $convertToLang = true; 00251 break; 00252 00253 case 'insert': 00254 $subtypes = Array('inline', 00255 'ssi' ); 00256 $convertToLang = true; 00257 break; 00258 00259 case 'dynamic': 00260 00261 $files = Array(); 00262 $handle = opendir ('./dynamicClasses'); 00263 while ( $file = readdir($handle) ) 00264 { 00265 $file = substr($file,0,strlen($file)-10); 00266 if ( $file != '' ) 00267 $files[$file] = $file; 00268 } 00269 closedir($handle); 00270 00271 $subtypes = $files; 00272 break; 00273 00274 default: 00275 $subtypes = array(); 00276 break; 00277 } 00278 00279 if ( $convertToLang ) 00280 { 00281 foreach( $subtypes as $t=>$v ) 00282 { 00283 unset($subtypes[$t]); 00284 $subtypes[$v] = lang('EL_'.$this->element->type.'_'.$v); 00285 } 00286 } 00287 00288 // Variable $subtype muss existieren, um Anzeige des Feldes zu erzwingen. 00289 if (!isset($this->element->subtype)) 00290 $this->element->subtype=''; 00291 00292 $this->setTemplateVar('subtypes',$subtypes ); 00293 $this->setTemplateVar('subtype' ,$this->element->subtype); 00294 00295 break; 00296 00297 00298 case 'dateformat': 00299 00300 $ini_date_format = $conf['date-formats']; 00301 $dateformat = array(); 00302 00303 $this->setTemplateVar('dateformat',''); 00304 00305 foreach($ini_date_format as $idx=>$d) 00306 { 00307 $dateformat[$idx] = date($d); 00308 if ( $d == $this->element->dateformat ) 00309 $this->setTemplateVar('dateformat',$idx); 00310 } 00311 00312 $this->setTemplateVar('dateformats',$dateformat); 00313 00314 break; 00315 00316 00317 // Eigenschaften Text und Text-Absatz 00318 case 'defaultText': 00319 00320 switch( $this->element->type ) 00321 { 00322 case 'longtext': 00323 $this->setTemplateVar('default_longtext',$this->element->defaultText ); 00324 break; 00325 00326 case 'select': 00327 case 'text': 00328 $this->setTemplateVar('default_text' ,$this->element->defaultText ); 00329 break; 00330 } 00331 break; 00332 00333 00334 case 'htmlwiki': 00335 if ( !$this->element->wiki && !$this->element->html ) 00336 $format = 'none'; 00337 elseif ( $this->element->wiki && !$this->element->html ) 00338 $format = 'wiki'; 00339 elseif ( !$this->element->wiki && $this->element->html ) 00340 $format = 'html'; 00341 elseif ( $this->element->wiki && $this->element->html ) 00342 $format = 'wiki,html'; 00343 00344 $this->setTemplateVar('format', $format ); 00345 $formatlist = array('none'=>'raw','html'=>'html','wiki'=>'wiki','wiki,html'=>'wikihtml'); 00346 00347 foreach( $formatlist as $t=>$v ) 00348 $formatlist[$t] = lang('EL_PROP_'.$v); 00349 00350 $this->setTemplateVar('formatlist', $formatlist ); 00351 //Html::debug($this->templateVars); 00352 break; 00353 00354 case 'linktype': 00355 $this->setTemplateVar('linktype', $this->element->wiki ); 00356 $this->setTemplateVar('linktypelist', array('page','file','link') ); 00357 //Html::debug($this->templateVars); 00358 break; 00359 00360 case 'prefix': 00361 $t = new Template( $this->element->templateid ); 00362 00363 $elements = array(); 00364 foreach( $t->getElements() as $element ) 00365 { 00366 if ( $element->type == 'link' ) 00367 $elements[$element->name] = $element->name; 00368 } 00369 unset($t); 00370 00371 $this->setTemplateVar('linkelements',$elements ); 00372 00373 list($linkElementName,$targetElementName) = explode('%',$this->element->name.'%'); 00374 $this->setTemplateVar('linkelement',$linkElementName ); 00375 00376 break; 00377 00378 case 'name': 00379 00380 $names = array(); 00381 00382 foreach( Template::getAll() as $tid=>$name ) 00383 { 00384 $t = new Template( $tid ); 00385 $t->load(); 00386 00387 foreach( $t->getElements() as $element ) 00388 { 00389 if ( !in_array($element->type,array('copy','linkinfo','link')) ) 00390 $names[$element->name] = $t->name.' - '.$element->name.' ('.lang('EL_'.$element->type).')'; 00391 } 00392 unset($t); 00393 } 00394 00395 00396 $this->setTemplateVar('names',$names ); 00397 00398 list($linkElementName,$targetElementName) = explode('%',$this->element->name.'%'); 00399 $this->setTemplateVar('name',$targetElementName ); 00400 break; 00401 00402 // Eigenschaften PHP-Code 00403 case 'code': 00404 00405 switch( $this->element->type ) 00406 { 00407 00408 case 'select': 00409 $this->setTemplateVar('select_items',$this->element->code ); 00410 break; 00411 00412 case 'dynamic': 00413 00414 $className = $this->element->subtype; 00415 $fileName = OR_DYNAMICCLASSES_DIR.'/'.$className.'.class.'.PHP_EXT; 00416 00417 if ( is_file( $fileName ) ) 00418 { 00419 require( $fileName ); 00420 00421 if ( class_exists($className) ) 00422 { 00423 $dynEl = new $className; 00424 00425 $desc = array(); 00426 00427 $description = $dynEl->description; 00428 $paramList = array(); 00429 00430 $old = $this->element->getDynamicParameters(); 00431 $parameters = ''; 00432 00433 foreach( get_object_vars($dynEl) as $paramName=>$paramDesc ) 00434 { 00435 if ( in_array($paramName,array('objectid','output','parameters','description')) ) 00436 continue; 00437 00438 if ( isset( $dynEl->$paramName ) ) 00439 { 00440 $paramList[$paramName] = $dynEl->$paramName; 00441 00442 $parameters .= $paramName.':'; 00443 if ( !empty($old[$paramName]) ) 00444 $parameters .= $old[$paramName]; 00445 $parameters .= "\n"; 00446 } 00447 } 00448 00449 $this->setTemplateVar('dynamic_class_description',$dynEl->description ); 00450 $this->setTemplateVar('dynamic_class_parameters' ,$paramList ); 00451 $this->setTemplateVar('parameters' ,$parameters ); 00452 } 00453 } 00454 00455 break; 00456 00457 case 'code': 00458 $this->setTemplateVar('code',$this->element->code); 00459 break; 00460 } 00461 break; 00462 00463 00464 case 'decimals': 00465 $this->setTemplateVar('decimals' ,$this->element->decimals ); 00466 break; 00467 00468 case 'decPoint': 00469 $this->setTemplateVar('dec_point' ,$this->element->decPoint ); 00470 break; 00471 00472 case 'thousandSep': 00473 $this->setTemplateVar('thousand_sep' ,$this->element->thousandSep ); 00474 break; 00475 00476 00477 // Eigenschaften Link 00478 case 'defaultObjectId': 00479 00480 $objects = array(); 00481 00482 // Ermitteln aller verfuegbaren Objekt-IDs 00483 foreach( Folder::getAllObjectIds() as $id ) 00484 { 00485 $o = new Object( $id ); 00486 $o->load(); 00487 00488 switch( $this->element->type ) 00489 { 00490 case 'list': 00491 if ( !$o->isFolder ) 00492 continue 2; 00493 break; 00494 00495 case 'link': 00496 if ( !$o->isPage && !$o->isFile && !$o->isLink ) 00497 continue 2; 00498 break; 00499 00500 default: 00501 continue 2; 00502 } 00503 00504 $objects[ $id ] = lang( 'GLOBAL_'.$o->getType() ).': '; 00505 00506 if ( !$o->isRoot ) 00507 { 00508 $f = new Folder( $o->parentid ); 00509 $f->load(); 00510 $objects[ $id ] .= implode( FILE_SEP,$f->parentObjectNames(false,true) ); 00511 } 00512 00513 $objects[ $id ] .= FILE_SEP.$o->name; 00514 } 00515 00516 asort( $objects ); // Sortieren 00517 00518 $this->setTemplateVar('objects',$objects); 00519 00520 $this->setTemplateVar('default_objectid',$this->element->defaultObjectId); 00521 00522 break; 00523 00524 00525 case 'folderObjectId': 00526 00527 $folders = array(); 00528 00529 // Ermitteln aller verf?gbaren Objekt-IDs 00530 foreach( Folder::getAllFolders() as $id ) 00531 { 00532 $o = new Object( $id ); 00533 $o->load(); 00534 00535 $folders[ $id ] = ''; 00536 if ( !$o->isRoot ) 00537 { 00538 $f = new Folder( $o->parentid ); 00539 $f->load(); 00540 $folders[ $id ] = implode( ' » ',$f->parentObjectNames(true,true) ); 00541 $folders[ $id ] .= ' » '; 00542 } 00543 $folders[ $id ] .= $o->name; 00544 } 00545 00546 asort( $folders ); // Sortieren 00547 00548 $this->setTemplateVar('folders',$folders); 00549 00550 $this->setTemplateVar('folderobjectid' ,$this->element->folderObjectId ); 00551 00552 break; 00553 00554 default: 00555 $this->message('ERROR','not an element property: '.$propertyName ); 00556 } 00557 } 00558 }
| ElementAction::remove | ( | ) |
Umbenennen des Elementes
Definiert in Zeile 68 der Datei ElementAction.class.php.
Benutzt Action::setTemplateVar().
00069 { 00070 $this->setTemplateVar( 'name' ,$this->element->name ); 00071 }
| ElementAction::savename | ( | ) |
Umbenennen des Elementes
Definiert in Zeile 52 der Datei ElementAction.class.php.
Benutzt Action::addNotice() und Action::getRequestVar().
00053 { 00054 $this->element->name = $this->getRequestVar('name' ,'abc'); 00055 $this->element->desc = $this->getRequestVar('description','all'); 00056 00057 $this->element->save(); 00058 $this->element->load(); 00059 00060 $this->addNotice('element',$this->template->name,'SAVED',OR_NOTICE_OK); 00061 }
| ElementAction::saveproperties | ( | ) |
Speichern der Element-Eigenschaften
Definiert in Zeile 565 der Datei ElementAction.class.php.
Benutzt $conf, Action::addNotice(), Action::getRequestVar() und Action::hasRequestVar().
00566 { 00567 global $conf; 00568 $ini_date_format = $conf['date-formats']; 00569 00570 if ( $this->hasRequestVar('dateformat')) 00571 $this->element->dateformat = $ini_date_format[$this->getRequestVar('dateformat')]; 00572 $this->element->subtype = $this->getRequestVar('subtype'); 00573 00574 if ( $this->hasRequestVar('default_longtext')) 00575 $this->element->defaultText = $this->getRequestVar('default_longtext'); 00576 else 00577 $this->element->defaultText = $this->getRequestVar('default_text'); 00578 $this->element->wiki = in_array('wiki',explode(',',$this->getRequestVar('format'))); 00579 $this->element->html = in_array('html',explode(',',$this->getRequestVar('format'))); 00580 $this->element->withIcon = $this->getRequestVar('with_icon') != ''; 00581 $this->element->allLanguages = $this->getRequestVar('all_languages') != ''; 00582 $this->element->writable = $this->getRequestVar('writable') != ''; 00583 $this->element->decimals = $this->getRequestVar('decimals'); 00584 $this->element->decPoint = $this->getRequestVar('dec_point'); 00585 $this->element->thousandSep = $this->getRequestVar('thousand_sep'); 00586 $this->element->folderObjectId = $this->getRequestVar('folderobjectid' ); 00587 $this->element->defaultObjectId = $this->getRequestVar('default_objectid'); 00588 if ( $this->hasRequestVar('select_items')) 00589 $this->element->code = $this->getRequestVar('select_items'); 00590 else 00591 $this->element->code = $this->getRequestVar('code' ); 00592 00593 if ( $this->hasRequestVar('name') ) 00594 $this->element->name = $this->getRequestVar('name'); 00595 00596 if ( $this->hasRequestVar('linkelement') ) 00597 $this->element->setPrefix( $this->getRequestVar('linkelement') ); 00598 00599 if ( $this->hasRequestVar('parameters')) 00600 $this->element->code = $this->getRequestVar('parameters'); 00601 00602 // Html::debug($this->element); 00603 $this->element->save(); 00604 $this->addNotice('element',$this->element->name,'SAVED'); 00605 00606 }
| ElementAction::savetype | ( | ) |
Aendern des Element-Typs
Definiert in Zeile 100 der Datei ElementAction.class.php.
Benutzt Action::addNotice(), Action::getRequestVar() und Action::userIsAdmin().
00101 { 00102 if ( !$this->userIsAdmin() && $this->getRequestVar('type') == 'code' ) 00103 { 00104 // Code-Elemente fuer Nicht-Administratoren nicht benutzbar 00105 $this->addNotice('element',$this->template->name,'CANCELED',OR_NOTICE_ERROR); 00106 } 00107 else 00108 { 00109 // Neuen Typ setzen und speichern 00110 $this->element->setType( $this->getRequestVar('type') ); 00111 $this->addNotice('element',$this->template->name,'SAVED',OR_NOTICE_OK); 00112 } 00113 }
| ElementAction::type | ( | ) |
Definiert in Zeile 130 der Datei ElementAction.class.php.
Benutzt Action::setTemplateVar() und Action::userIsAdmin().
00131 { 00132 // Die verschiedenen Element-Typen 00133 $types = array(); 00134 00135 foreach( $this->element->getAvailableTypes() as $t ) 00136 $types[ $t ] = 'EL_'.$t; 00137 00138 // Code-Element nur fuer Administratoren (da voller Systemzugriff!) 00139 if ( !$this->userIsAdmin() ) 00140 unset( $types['code'] ); 00141 00142 // Liste aller Elementtypen 00143 $this->setTemplateVar('types',$types); 00144 00145 // Aktueller Typ 00146 $this->setTemplateVar('type',$this->element->type); 00147 }
| ElementAction::$element |
1.5.8