Element Klassenreferenz

Aufstellung aller Elemente

Ö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 = ''


Ausführliche Beschreibung

Definiert in Zeile 101 der Datei Element.class.php.


Dokumentation der Elementfunktionen

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

Parameter:
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

Rückgabe:
Array

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.

Rückgabe:
Array()

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".

Rückgabe:
String

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.

Parameter:
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.

Parameter:
String Der neue Typ, siehe getAvailableTypes() f?r m?gliche Typen
Siehe auch:
type

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      }


Dokumentation der Datenelemente

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:

  • text
  • longtext
  • select
  • number
  • link
  • date
  • insert
  • code
  • info
  • infodate

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.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei:

Erzeugt am Thu May 14 00:55:49 2009 für OpenRat von  doxygen 1.5.8