Ö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 = '' | |
Definiert in Zeile 81 der Datei Template.class.php.
| Template::add | ( | $ | name = '' |
) |
Hinzufuegen eines Templates
| 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
| 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.
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
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
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
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
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
| String | Suchbegriff |
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
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
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 }
| 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().
1.5.8