Öffentliche Methoden | |
| Element ($elementid=0) | |
| add () | |
| load () | |
| setDatabaseRow ($prop) | |
| save () | |
| setType ($type) | |
| setPrefix ($prefix) | |
| delete () | |
| deleteValues () | |
| getRelatedProperties () | |
| getDefaultValue () | |
| getAvailableTypes () | |
| getTypeClass () | |
| getSelectItems () | |
| getDynamicParameters () | |
| isWritable () | |
Öffentliche Attribute | |
| $elementid | |
| $templateid | |
| $type | |
| $name | |
| $desc | |
| $folderObjectId = 0 | |
| $defaultObjectId = 0 | |
| $writable | |
| $allLanguages | |
| $readonlyElementNames = array('copy','linkinfo','info','infodate','code','dynamic') | |
| $subtype = '' | |
| $withIcon = false | |
| $dateformat = 'r' | |
| $wiki = false | |
| $html = false | |
| $decimals = 0 | |
| $decPoint = '.' | |
| $thousandSep = '' | |
| $code = '' | |
| $defaultText = '' | |
Definiert in Zeile 101 der Datei Element.class.php.
| Element::add | ( | ) |
Hinzuf?gen eines Elementes Das aktuelle Element wird in die Datenbank geschrieben.
Definiert in Zeile 208 der Datei Element.class.php.
Benutzt $db und db_connection().
00209 { 00210 $db = db_connection(); 00211 00212 $sql = new Sql('SELECT MAX(id) FROM {t_element}'); 00213 $this->elementid = intval($db->getOne($sql->query))+1; 00214 00215 $sql = new Sql( 'INSERT INTO {t_element}'. 00216 ' (id,templateid,name,descr,type,writable) '. 00217 " VALUES ( {elementid},{templateid},{name},{description},{type},{writable} ) " ); 00218 00219 $sql->setInt ( 'elementid' ,$this->elementid ); 00220 $sql->setString ( 'name' ,$this->name ); 00221 $sql->setString ( 'type' ,$this->type ); 00222 $sql->setInt ( 'templateid' ,$this->templateid ); 00223 $sql->setBoolean( 'writable' ,$this->writable ); 00224 $sql->setString ( 'description',$this->desc ); 00225 00226 $db->query( $sql->query ); 00227 }
| Element::delete | ( | ) |
Loeschen des Elementes und aller Inhalte
Definiert in Zeile 395 der Datei Element.class.php.
Benutzt $db, db_connection() und deleteValues().
00396 { 00397 $db = db_connection(); 00398 00399 // Inhalte l?schen 00400 $this->deleteValues(); 00401 00402 // Element l?schen 00403 $sql = new Sql('DELETE FROM {t_element} '. 00404 ' WHERE id={elementid}' ); 00405 $sql->setInt( 'elementid',$this->elementid ); 00406 00407 $db->query( $sql->query ); 00408 }
| Element::deleteValues | ( | ) |
L?schen aller Seiteninhalte mit diesem Element Das Element wird nicht gel?scht.
Definiert in Zeile 415 der Datei Element.class.php.
Benutzt $db und db_connection().
Wird benutzt von delete().
00416 { 00417 $db = db_connection(); 00418 00419 // Alle Inhalte mit diesem Element l?schen 00420 $sql = new Sql('DELETE FROM {t_value} '. 00421 ' WHERE elementid={elementid}' ); 00422 $sql->setInt( 'elementid',$this->elementid ); 00423 $db->query( $sql->query ); 00424 }
| Element::Element | ( | $ | elementid = 0 |
) |
Im Konstruktor wird die Element-Id gesetzt
| Integer | Element-Id |
Definiert in Zeile 197 der Datei Element.class.php.
Benutzt $elementid.
00198 { 00199 if ( intval($elementid)!=0 ) 00200 $this->elementid = $elementid; 00201 }
| Element::getAvailableTypes | ( | ) |
Ermitteln aller benutzbaren Elementtypen
Definiert in Zeile 474 der Datei Element.class.php.
Wird benutzt von TemplateAction::addel().
00475 { 00476 return array('text', 00477 'longtext', 00478 'select', 00479 'number', 00480 'link', 00481 'date', 00482 'insert', 00483 'copy', 00484 'linkinfo', 00485 'code', 00486 'dynamic', 00487 'info', 00488 'infodate'); 00489 }
| Element::getDefaultValue | ( | ) |
Definiert in Zeile 452 der Datei Element.class.php.
Benutzt lang().
00453 { 00454 switch( $this->type ) 00455 { 00456 case 'text': 00457 case 'longtext': 00458 return $this->defaultText; 00459 00460 case 'number'; 00461 return '0'; 00462 00463 default: 00464 } 00465 00466 return lang('EL_TYPE_'.$this->type); 00467 00468 }
| Element::getDynamicParameters | ( | ) |
Definiert in Zeile 550 der Datei Element.class.php.
00551 { 00552 $parameters = explode( "\n",$this->code ); 00553 $items = array(); 00554 00555 foreach( $parameters as $it ) 00556 { 00557 $paar = explode( ":",$it,2 ); 00558 if ( count($paar) > 1 ) 00559 { 00560 $param_name = trim($paar[0]); 00561 $param_value = trim($paar[1]); 00562 00563 // // Wenn Inhalt mit "'" beginnt und mit "'" aufhoert, dann diese Zeichen abschneiden 00564 // if ( substr($param_value,0,1) == "'" && substr($param_value,strlen($param_value)-1,1) == "'" ) 00565 // $param_value = substr($param_value,1,strlen($param_value)-2); 00566 00567 if ( !empty($param_value) ) 00568 $items[$param_name] = $param_value; 00569 } 00570 } 00571 return $items; 00572 }
| Element::getRelatedProperties | ( | ) |
Abhaengig vom Element-Typ werden die zur Darstellung notwendigen Eigenschaften ermittelt.
Definiert in Zeile 431 der Datei Element.class.php.
00432 { 00433 $prp = array('text' =>array('withIcon','allLanguages','writable','htmlwiki','defaultText'), 00434 'longtext'=>array('withIcon','allLanguages','writable','htmlwiki','defaultText'), 00435 'select' =>array('withIcon','allLanguages','writable','defaultText','code'), 00436 'number' =>array('withIcon','allLanguages','writable','decPoint','decimals','thousandSep'), 00437 'link' =>array('subtype','withIcon','allLanguages','writable','linktype','folderObjectId','defaultObjectId'), 00438 'date' =>array('withIcon','allLanguages','writable','dateformat','defaultText'), 00439 'list' =>array('subtype','withIcon','allLanguages','writable','folderObjectId','defaultObjectId'), 00440 'insert' =>array('subtype','withIcon','allLanguages','writable','folderObjectId','defaultObjectId'), 00441 'copy' =>array('prefix','name','defaultText'), 00442 'linkinfo'=>array('prefix','subtype','defaultText'), 00443 'code' =>array('code'), 00444 'dynamic' =>array('subtype','code'), 00445 'info' =>array('subtype'), 00446 'infodate'=>array('subtype','dateformat') ); 00447 return $prp[ $this->type ]; 00448 }
| Element::getSelectItems | ( | ) |
Definiert in Zeile 525 der Datei Element.class.php.
00526 { 00527 $parameters = explode( "\n",$this->code ); 00528 $items = array(); 00529 00530 foreach( $parameters as $it ) 00531 { 00532 $paar = explode( ":",$it,2 ); 00533 $param_name = trim($paar[0]); 00534 00535 if ( count($paar) > 1 ) 00536 $param_value = trim($paar[1]); 00537 else 00538 $param_value = trim($paar[0]); 00539 00540 // Wenn Inhalt mit "'" beginnt und mit "'" aufhoert, dann diese Zeichen abschneiden 00541 if ( substr($param_value,0,1) == "'" && substr($param_value,strlen($param_value)-1,1) == "'" ) 00542 $param_value = substr($param_value,1,strlen($param_value)-2); 00543 00544 $items[$param_name] = $param_value; 00545 } 00546 return $items; 00547 }
| Element::getTypeClass | ( | ) |
Ermittelt die Klasse des Element-Typs.
Entweder "info", "text" oder "dynamic".
Definiert in Zeile 498 der Datei Element.class.php.
00499 { 00500 switch( $this->type ) 00501 { 00502 case 'text': 00503 case 'longtext': 00504 case 'select': 00505 case 'number': 00506 case 'link': 00507 case 'date': 00508 case 'list': 00509 case 'insert': 00510 return 'text'; 00511 00512 case 'code': 00513 case 'dynamic': 00514 return 'dynamic'; 00515 00516 case 'copy': 00517 case 'info': 00518 case 'infodate': 00519 case 'linkinfo': 00520 return 'info'; 00521 } 00522 }
| Element::isWritable | ( | ) |
Ermittelt, ob das Element beschreibbar ist. Bestimmte Typen (z.B. Info-Felder) sind nie beschreibbar, dann wird immer false zur?ckgegeben. Ansonsten wird ermittelt, ob dieses Element als beschreibbar markiert ist.
Definiert in Zeile 580 der Datei Element.class.php.
00581 { 00582 // Bei bestimmten Feldern immer false zurueckgeben 00583 if ( in_array($this->type,$this->readonlyElementNames) ) 00584 return false; 00585 00586 return $this->writable; 00587 }
| Element::load | ( | ) |
Lesen des Elementes aus der Datenbank Alle Eigenschaften des Elementes werden aus der Datenbank gelesen
Definiert in Zeile 245 der Datei Element.class.php.
Benutzt $db, db_connection() und setDatabaseRow().
00246 { 00247 $db = db_connection(); 00248 00249 if ( intval($this->elementid) != 0 ) 00250 { 00251 $sql = new Sql( 'SELECT * FROM {t_element}'. 00252 ' WHERE id={elementid}' ); 00253 $sql->setInt( 'elementid',$this->elementid ); 00254 } 00255 else 00256 { 00257 $sql = new Sql( 'SELECT * FROM {t_element}'. 00258 ' WHERE name={name}' ); 00259 $sql->setString( 'name',$this->name ); 00260 } 00261 00262 $this->setDatabaseRow( $db->getRow( $sql->query ) ); 00263 }
| Element::save | ( | ) |
Abspeichern des Elementes Das aktuelle Element wird in der Datenbank gespeichert
Definiert in Zeile 302 der Datei Element.class.php.
Benutzt $db und db_connection().
00303 { 00304 $db = db_connection(); 00305 00306 $sql = new Sql( 'UPDATE {t_element}'. 00307 ' SET templateid = {templateid},'. 00308 ' name = {name},'. 00309 ' descr = {desc},'. 00310 ' type = {type},'. 00311 ' subtype = {subtype},'. 00312 ' with_icon = {withIcon},'. 00313 ' dateformat = {dateformat},'. 00314 ' wiki = {wiki},'. 00315 ' html = {html},'. 00316 ' all_languages = {allLanguages},'. 00317 ' writable = {writable},'. 00318 ' decimals = {decimals},'. 00319 ' dec_point = {decPoint},'. 00320 ' thousand_sep = {thousandSep},'. 00321 ' code = {code},'. 00322 ' default_text = {defaultText},'. 00323 ' folderobjectid = {folderObjectId},'. 00324 ' default_objectid= {defaultObjectId}'. 00325 ' WHERE id={elementid}' ); 00326 00327 $sql->setInt ( 'elementid' ,$this->elementid ); 00328 $sql->setInt ( 'templateid' ,$this->templateid ); 00329 $sql->setString ( 'name' ,$this->name ); 00330 $sql->setString ( 'desc' ,$this->desc ); 00331 $sql->setString ( 'type' ,$this->type ); 00332 $sql->setString ( 'subtype' ,$this->subtype ); 00333 $sql->setBoolean( 'withIcon' ,$this->withIcon ); 00334 $sql->setString ( 'dateformat' ,$this->dateformat ); 00335 $sql->setBoolean( 'wiki' ,$this->wiki ); 00336 $sql->setBoolean( 'html' ,$this->html ); 00337 $sql->setBoolean( 'writable' ,$this->writable ); 00338 $sql->setBoolean( 'allLanguages' ,$this->allLanguages ); 00339 $sql->setInt ( 'decimals' ,$this->decimals ); 00340 $sql->setString ( 'decPoint' ,$this->decPoint ); 00341 $sql->setString ( 'thousandSep' ,$this->thousandSep ); 00342 $sql->setString ( 'code' ,$this->code ); 00343 $sql->setString ( 'defaultText' ,$this->defaultText ); 00344 00345 if ( intval($this->folderObjectId)==0 ) 00346 $sql->setNull( 'folderObjectId' ); 00347 else $sql->setInt ( 'folderObjectId' ,$this->folderObjectId ); 00348 00349 if ( intval($this->defaultObjectId)==0 ) 00350 $sql->setNull( 'defaultObjectId' ); 00351 else $sql->setInt ( 'defaultObjectId' ,$this->defaultObjectId ); 00352 00353 $db->query( $sql->query ); 00354 }
| Element::setDatabaseRow | ( | $ | prop | ) |
Definiert in Zeile 266 der Datei Element.class.php.
Wird benutzt von load().
00267 { 00268 if ( count($prop) <= 0 ) 00269 return; 00270 00271 $this->elementid = $prop['id' ]; 00272 $this->templateid = $prop['templateid']; 00273 $this->name = $prop['name' ]; 00274 $this->desc = $prop['descr' ]; 00275 $this->type = $prop['type' ]; 00276 $this->subtype = $prop['subtype' ]; 00277 00278 $this->dateformat = $prop['dateformat']; 00279 $this->wiki = ( $prop['wiki' ] == '1' ); 00280 $this->withIcon = ( $prop['with_icon' ] == '1' ); 00281 $this->html = ( $prop['html' ] == '1' ); 00282 $this->allLanguages = ( $prop['all_languages'] == '1' ); 00283 $this->writable = ( $prop['writable' ] == '1' ); 00284 00285 if ( !$this->writable) 00286 $this->withIcon = false; 00287 00288 $this->decimals = intval( $prop['decimals' ] ); 00289 $this->decPoint = strval( $prop['dec_point' ] ); 00290 $this->thousandSep = strval( $prop['thousand_sep' ] ); 00291 $this->code = strval( $prop['code' ] ); 00292 $this->defaultText = strval( $prop['default_text' ] ); 00293 $this->folderObjectId = intval( $prop['folderobjectid' ] ); 00294 $this->defaultObjectId = intval( $prop['default_objectid'] ); 00295 }
| Element::setPrefix | ( | $ | prefix | ) |
Setzt ein Prefix vor den Elementnamen.
| String | Prefix |
Definiert in Zeile 384 der Datei Element.class.php.
Benutzt $name.
00385 { 00386 list( $oldprefix,$name ) = explode('%',$this->name.'%'); 00387 00388 $this->name = $prefix.'%'.$name; 00389 }
| Element::setType | ( | $ | type | ) |
Setzt den Typ des Elementes und schreibt diesen sofort in die Datenbank.
| String | Der neue Typ, siehe getAvailableTypes() f?r m?gliche Typen |
Definiert in Zeile 364 der Datei Element.class.php.
Benutzt $db, $type und db_connection().
00365 { 00366 $this->type = $type; 00367 $db = db_connection(); 00368 00369 $sql = new Sql( 'UPDATE {t_element}'. 00370 ' SET type = {type}'. 00371 ' WHERE id={elementid}' ); 00372 00373 $sql->setInt ( 'elementid',$this->elementid ); 00374 $sql->setString ( 'type' ,$this->type ); 00375 00376 $db->query( $sql->query ); 00377 }
| Element::$allLanguages |
Schalter, ob dieses Element in allen Sprachen den gleichen Inhalt haben soll Boolean
Definiert in Zeile 172 der Datei Element.class.php.
| Element::$code = '' |
Definiert in Zeile 189 der Datei Element.class.php.
| Element::$dateformat = 'r' |
Definiert in Zeile 183 der Datei Element.class.php.
| Element::$decimals = 0 |
Definiert in Zeile 186 der Datei Element.class.php.
| Element::$decPoint = '.' |
Definiert in Zeile 187 der Datei Element.class.php.
| Element::$defaultObjectId = 0 |
Vorausgewähltes Objekt. Integer
Definiert in Zeile 160 der Datei Element.class.php.
| Element::$defaultText = '' |
Definiert in Zeile 190 der Datei Element.class.php.
| Element::$desc |
Beschreibung zu diesem Element Zu jedem Element kann eine Beschreibung hinterlegt werden, die dem Redakteur bei der Bearbeitung der Inhalte als Bearbeitungshilfe dienen kann. String
Definiert in Zeile 147 der Datei Element.class.php.
| Element::$elementid |
Eindeutige ID dieses Elementes Integer
Definiert in Zeile 107 der Datei Element.class.php.
Wird benutzt von Element().
| Element::$folderObjectId = 0 |
Objekt-ID eines Ordners, aus diesem Ordner (samt Unterordner) k?nnen zu verlinkende Objekte ausgew?hlt werden Integer
Definiert in Zeile 154 der Datei Element.class.php.
| Element::$html = false |
Definiert in Zeile 185 der Datei Element.class.php.
| Element::$name |
Logischer Name dieses Elementes String
Definiert in Zeile 139 der Datei Element.class.php.
Wird benutzt von setPrefix().
| Element::$readonlyElementNames = array('copy','linkinfo','info','infodate','code','dynamic') |
Definiert in Zeile 174 der Datei Element.class.php.
| Element::$subtype = '' |
Definiert in Zeile 181 der Datei Element.class.php.
| Element::$templateid |
Template-ID zu der dieses Elementes geh?rt Integer
Definiert in Zeile 113 der Datei Element.class.php.
| Element::$thousandSep = '' |
Definiert in Zeile 188 der Datei Element.class.php.
| Element::$type |
Typ des Elementes Folgende Typen sind moeglich:
String
Definiert in Zeile 133 der Datei Element.class.php.
Wird benutzt von setType().
| Element::$wiki = false |
Definiert in Zeile 184 der Datei Element.class.php.
| Element::$withIcon = false |
Definiert in Zeile 182 der Datei Element.class.php.
| Element::$writable |
Schalter ob dieses Element von Redakteuren bearbeiten werden kann Boolean
Definiert in Zeile 166 der Datei Element.class.php.
1.5.8