Template Klassenreferenz

Aufstellung aller Elemente

Öffentliche Methoden

 Template ($templateid='')
 getAll ()
 load ()
 save ()
 getTemplateIdsByValue ($text)
 getElementIds ()
 getElements ()
 getWritableElements ()
 getElementNames ()
 addElement ($name, $description='', $type='text')
 add ($name='')
 getDependentObjectIds ()
 delete ()
 mimeType ()

Öffentliche Attribute

 $templateid = 0
 $projectid = 0
 $name = 'unnamed'
 $modelid = 0
 $extension = ''
 $src = ''


Ausführliche Beschreibung

Definiert in Zeile 81 der Datei Template.class.php.


Dokumentation der Elementfunktionen

Template::add ( name = ''  ) 

Hinzufuegen eines Templates

Parameter:
String Name des Templates (optional)

Definiert in Zeile 376 der Datei Template.class.php.

Benutzt $db, $name, db_connection() und Session::getProject().

00377      {
00378           if   ( !empty($name) )
00379                $this->name = $name;
00380 
00381           $db = db_connection();
00382 
00383           $sql = new Sql('SELECT MAX(id) FROM {t_template}');
00384           $this->templateid = intval($db->getOne($sql->query))+1;
00385 
00386           $sql = new Sql( 'INSERT INTO {t_template}'.
00387                           ' (id,name,projectid)'.
00388                           ' VALUES({templateid},{name},{projectid})' );
00389           $sql->setInt   ('templateid',$this->templateid   );
00390           $sql->setString('name'      ,$name               );
00391 
00392           // Wenn Projektid nicht vorhanden, dann aus Session lesen
00393           if   ( !isset($this->projectid) || intval($this->projectid) == 0 )
00394           {
00395                $project = Session::getProject();
00396                $this->projectid = $project->projectid;
00397           }
00398 
00399           $sql->setInt   ('projectid' ,$this->projectid );
00400 
00401           $db->query( $sql->query );
00402      }

Template::addElement ( name,
description = '',
type = 'text' 
)

Hinzuf?gen eines Elementes

Parameter:
String Name des Elementes

Definiert in Zeile 359 der Datei Template.class.php.

Benutzt $name.

00360      {
00361           $element = new Element();
00362           $element->name       = $name;
00363           $element->desc       = $description;
00364           $element->type       = $type;
00365           $element->templateid = $this->templateid;
00366           $element->wiki       = true;
00367           $element->writable   = true;
00368           $element->add();
00369      }

Template::delete (  ) 

Loeschen des Templates

Entfernen alle Templateinhalte und des Templates selber

Definiert in Zeile 426 der Datei Template.class.php.

Benutzt $db, db_connection() und getElementIds().

00427      {
00428           $db = db_connection();
00429           
00430           foreach( $this->getElementIds() as $elementid )
00431           {
00432                $element = new Element( $elementid );
00433                $element->delete();
00434           }
00435 
00436           $sql = new Sql( 'DELETE FROM {t_templatemodel}'.
00437                           ' WHERE templateid={templateid}' );
00438           $sql->setInt( 'templateid',$this->templateid );
00439           $db->query( $sql->query );
00440 
00441           $sql = new Sql( 'DELETE FROM {t_template}'.
00442                           ' WHERE id={templateid}' );
00443           $sql->setInt( 'templateid',$this->templateid );
00444           $db->query( $sql->query );
00445      }

Template::getAll (  ) 

Ermitteln aller Templates in dem aktuellen Projekt.

Rückgabe:
Array mit Id:Name

Definiert in Zeile 136 der Datei Template.class.php.

Benutzt $db, $SESS, db_connection() und Session::getProject().

Wird benutzt von TemplateAction::add(), PageAction::changetemplate(), FolderAction::create(), FolderAction::createpage(), TemplateAction::listing(), PageAction::prop(), ElementAction::properties() und ProjectTree::templates().

00137      {
00138           global $SESS;
00139           $db = db_connection();
00140 
00141           $sql = new Sql( 'SELECT id,name FROM {t_template}'.
00142                           ' WHERE projectid={projectid}'.
00143                           ' ORDER BY name ASC '  );
00144           if   ( isset($this->projectid) )
00145                $sql->setInt( 'projectid',$this->projectid   );
00146           else
00147           {
00148                $project = Session::getProject();
00149                $sql->setInt( 'projectid',$project->projectid );
00150           }
00151 
00152           return $db->getAssoc( $sql->query );
00153      }

Template::getDependentObjectIds (  ) 

Ermitteln alles Objekte (=Seiten), welche auf diesem Template basieren

Rückgabe:
Array Liste von Objekt-IDs

Definiert in Zeile 409 der Datei Template.class.php.

Benutzt $db und db_connection().

00410      {
00411           $db = db_connection();
00412 
00413           $sql = new Sql( 'SELECT objectid FROM {t_page}'.
00414                           '  WHERE templateid={templateid}' );
00415           $sql->setInt( 'templateid',$this->templateid );
00416 
00417           return $db->getCol( $sql->query );
00418      }

Template::getElementIds (  ) 

Ermitteln aller Elemente zu diesem Template Es wird eine Liste nur mit den Element-IDs ermittelt und zur?ckgegeben

Rückgabe:
Array

Definiert in Zeile 263 der Datei Template.class.php.

Benutzt $db und db_connection().

Wird benutzt von delete().

00264      {
00265           $db = db_connection();
00266 
00267           $sql = new Sql( 'SELECT id FROM {t_element}'.
00268                           '  WHERE templateid={templateid}'.
00269                           '  ORDER BY name ASC' );
00270           $sql->setInt( 'templateid',$this->templateid );
00271           return $db->getCol( $sql->query );
00272      }

Template::getElementNames (  ) 

Ermitteln aller Elemente zu diesem Template Es wird eine Liste mit den Element-Namen zur?ckgegeben

Rückgabe:
Array

Definiert in Zeile 342 der Datei Template.class.php.

Benutzt $db und db_connection().

00343      {
00344           $db = db_connection();
00345 
00346           $sql = new Sql( 'SELECT id,name FROM {t_element}'.
00347                           '  WHERE templateid={templateid}'.
00348                           '  ORDER BY name ASC' );
00349           $sql->setInt( 'templateid',$this->templateid );
00350 
00351           return $db->getAssoc( $sql->query );
00352      }

Template::getElements (  ) 

Ermitteln aller Elemente zu diesem Template Es wird eine Liste mit den kompletten Elementen ermittelt und zurueckgegeben

Rückgabe:
Array

Definiert in Zeile 281 der Datei Template.class.php.

Benutzt $db und db_connection().

00282      {
00283           $list = array();
00284           $db = db_connection();
00285 
00286           $sql = new Sql( 'SELECT * FROM {t_element}'.
00287                           '  WHERE templateid={templateid}'.
00288                           '  ORDER BY name ASC' );
00289           $sql->setInt( 'templateid',$this->templateid );
00290           foreach( $db->getAll( $sql->query ) as $row )
00291           {
00292                $e = new Element( $row['id'] );
00293                $e->setDatabaseRow( $row );
00294                
00295                $list[$e->elementid] = $e;
00296                unset($e);
00297           }
00298           return $list;
00299      }

Template::getTemplateIdsByValue ( text  ) 

Es werden Templates mit einem Inhalt gesucht

Parameter:
String Suchbegriff
Rückgabe:
Array Liste der gefundenen Template-IDs

Definiert in Zeile 243 der Datei Template.class.php.

Benutzt $db und db_connection().

00244      {
00245           $db = db_connection();
00246 
00247           $sql = new Sql( 'SELECT templateid FROM {t_templatemodel}'.
00248                           ' WHERE text LIKE {text} '.
00249                           '   AND projectmodelid={modelid}' );
00250 
00251           $sql->setInt   ( 'modelid',$this->modelid );
00252           $sql->setString( 'text'   ,'%'.$text.'%'  );
00253           
00254           return $db->getCol( $sql->query );
00255      }

Template::getWritableElements (  ) 

Ermitteln aller Elemente zu diesem Template Es wird eine Liste mit den kompletten Elementen ermittelt und zurueckgegeben

Rückgabe:
Array

Definiert in Zeile 308 der Datei Template.class.php.

Benutzt $db und db_connection().

00309      {
00310           $list = array();
00311           $db = db_connection();
00312 
00313           $sql = new Sql( <<<SQL
00314 SELECT * FROM {t_element}
00315   WHERE templateid={templateid}
00316     AND writable=1
00317     AND type NOT IN ({readonlyList})
00318   ORDER BY name ASC
00319 SQL
00320 );
00321           $sql->setInt       ( 'templateid'  ,$this->templateid        );
00322           $e = new Element();
00323           $sql->setStringList( 'readonlyList',$e->readonlyElementNames );
00324           foreach( $db->getAll( $sql->query ) as $row )
00325           {
00326                $e = new Element( $row['id'] );
00327                $e->setDatabaseRow( $row );
00328                
00329                $list[$e->elementid] = $e;
00330                unset($e);
00331           }
00332           return $list;
00333      }

Template::load (  ) 

Laden des Templates aus der Datenbank und f?llen der Objekteigenschaften

Definiert in Zeile 159 der Datei Template.class.php.

Benutzt $db, $SESS und db_connection().

00160      {
00161           global $SESS;
00162           $db = db_connection();
00163 
00164           $sql = new Sql( 'SELECT * FROM {t_template}'.
00165                           ' WHERE id={templateid}' );
00166           $sql->setInt( 'templateid',$this->templateid );
00167           $row = $db->getRow( $sql->query );
00168 
00169           $this->name      = $row['name'     ];
00170           $this->projectid = $row['projectid'];
00171 
00172           $sql = new Sql( 'SELECT * FROM {t_templatemodel}'.
00173                           ' WHERE templateid={templateid}'.
00174                           '   AND projectmodelid={modelid}' );
00175           $sql->setInt( 'templateid',$this->templateid );
00176           $sql->setInt( 'modelid'   ,$this->modelid    );
00177           $row = $db->getRow( $sql->query );
00178 
00179           if   ( isset($row['extension']) )
00180           {
00181                $this->extension = $row['extension'];
00182                $this->src       = $row['text'];
00183           }
00184           
00185      }

Template::mimeType (  ) 

Ermittelt den Mime-Type zu diesem Template

Rückgabe:
String Mime-Type

Definiert in Zeile 453 der Datei Template.class.php.

Benutzt $conf und $extension.

00454      {
00455           global $conf;
00456           $mime_types = $conf['mime-types'];
00457 
00458           $extension = strtolower($this->extension);
00459 
00460           if   ( !empty($mime_types[$extension]) )
00461                $this->mime_type = $mime_types[$extension];
00462           else
00463                // Wenn kein Mime-Type gefunden, dann Standartwert setzen
00464                $this->mime_type = 'application/octet-stream';
00465                
00466           return( $this->mime_type );
00467      }

Template::save (  ) 

Abspeichern des Templates in der Datenbank

Definiert in Zeile 191 der Datei Template.class.php.

Benutzt $db, db_connection() und lang().

00192      {
00193           if   ( $this->name == "" )
00194                $this->name = lang('GLOBAL_TEMPLATE').' #'.$this->templateid;
00195 
00196           $db = db_connection();
00197 
00198           $sql = new Sql( 'UPDATE {t_template}'.
00199                           '  SET name={name}'.
00200                           '  WHERE id={templateid}' );
00201           $sql->setString( 'name'      ,$this->name       );
00202           $sql->setInt   ( 'templateid',$this->templateid );
00203           $db->query( $sql->query );
00204 
00205           $sql = new Sql( 'SELECT COUNT(*) FROM {t_templatemodel}'.
00206                           ' WHERE templateid={templateid}'.
00207                           '   AND projectmodelid={modelid}' );
00208           $sql->setInt   ( 'templateid'    ,$this->templateid     );
00209           $sql->setInt   ( 'modelid'       ,$this->modelid );
00210 
00211           if   ( intval($db->getOne($sql->query)) > 0 )
00212           {         
00213                $sql = new Sql( 'UPDATE {t_templatemodel}'.
00214                                '  SET extension={extension},'.
00215                                '      text={src} '.
00216                                ' WHERE templateid={templateid}'.
00217                                '   AND projectmodelid={modelid}' );
00218           }
00219           else
00220           {
00221                $sql = new Sql('SELECT MAX(id) FROM {t_templatemodel}');
00222                $nextid = intval($db->getOne($sql->query))+1;
00223                $sql = new Sql( 'INSERT INTO {t_templatemodel}'.
00224                                '        (id,templateid,projectmodelid,extension,text) '.
00225                                ' VALUES ({id},{templateid},{modelid},{extension},{src}) ');
00226                $sql->setInt   ( 'id',$nextid         );
00227           }
00228 
00229           $sql->setString( 'extension'     ,$this->extension      );
00230           $sql->setString( 'src'           ,$this->src            );
00231           $sql->setInt   ( 'templateid'    ,$this->templateid     );
00232           $sql->setInt   ( 'modelid'       ,$this->modelid        );
00233           
00234           $db->query( $sql->query );
00235      }

Template::Template ( templateid = ''  ) 

Definiert in Zeile 120 der Datei Template.class.php.

Benutzt $templateid, Session::getProject() und Session::getProjectModel().

00121      {
00122           $model   = Session::getProjectModel();
00123           $project = Session::getProject();
00124           $this->modelid   = $model->modelid;
00125           $this->projectid = $project->projectid;
00126 
00127           if   ( is_numeric($templateid) )
00128                $this->templateid = $templateid;
00129      }


Dokumentation der Datenelemente

Template::$extension = ''

Dateierweiterung dieses Templates (abh?ngig von der Projektvariante) String

Definiert in Zeile 111 der Datei Template.class.php.

Wird benutzt von mimeType().

Template::$modelid = 0

ID der Projektvariante Integer

Definiert in Zeile 105 der Datei Template.class.php.

Template::$name = 'unnamed'

Logischer Name String

Definiert in Zeile 99 der Datei Template.class.php.

Wird benutzt von add() und addElement().

Template::$projectid = 0

Projekt-ID des aktuell ausgew?hlten Projektes Integer

Definiert in Zeile 93 der Datei Template.class.php.

Template::$src = ''

Inhalt des Templates (abh?ngig von der Projektvariante) String

Definiert in Zeile 117 der Datei Template.class.php.

Template::$templateid = 0

ID dieses Templates Integer

Definiert in Zeile 87 der Datei Template.class.php.

Wird benutzt von Template().


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

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