Folder Klassenreferenz

Klassendiagramm für Folder:

Inheritance graph
base refererrect $classObject.html 6,7 278,962

Aufstellung aller Elemente

Öffentliche Methoden

 Folder ($objectid='')
 add ()
 getRootFolderId ()
 hasFilename ($filename)
 load ()
 save ()
 setOrderId ($orderid)
 getObjectIds ()
 getObjects ()
 getObjectIdsByType ()
 getObjectIdsByName ()
 getObjectIdsByLastChange ()
 publish ($withPages, $withFiles, $subdirs=false)
 getObjectIdByFileName ($filename)
 getAllObjectIds ($types=array('folder','page','link','file'))
 dgetRootObjectId ()
 getOtherFolders ()
 getAllFolders ()
 getPages ()
 getFirstPageOrLink ()
 getLastPageOrLink ()
 getFiles ()
 getFileFilenames ()
 getLinks ()
 addrights ($rights, $inherit=true)
 parentfolder_bak ($with_root=false, $with_self=false)
 addParentFolder ($id, $name, $filename='')
 checkParentFolders ($with_root, $with_self)
 parentObjectIds ($with_root=false, $with_self=false)
 parentObjectFileNames ($with_root=false, $with_self=false)
 parentObjectNames ($with_root=false, $with_self=false)
 subfolder ()
 getSubfolderFilenames ()
 getAllSubFolderIds ()
 delete ()
 deleteAll ()
 getSubFolderIds ()

Öffentliche Attribute

 $folderid
 $projectid
 $parentfolders = array()
 $subfolders = array()
 $filenames = true
 $name = ''
 $filename = ''
 $desc = ''
 $publish = null


Ausführliche Beschreibung

Definiert in Zeile 69 der Datei Folder.class.php.


Dokumentation der Elementfunktionen

Folder::add (  ) 

Definiert in Zeile 89 der Datei Folder.class.php.

Benutzt $db, db_connection() und Object::objectAdd().

00090      {
00091           $this->objectAdd();
00092 
00093           $db = db_connection();
00094 
00095           $sql = new Sql('SELECT MAX(id) FROM {t_folder}');
00096           $this->folderid = intval($db->getOne($sql->query))+1;
00097 
00098           $sql = new Sql('INSERT INTO {t_folder}'.
00099                          ' (id,objectid)'.
00100                          ' VALUES( {folderid},{objectid} )' );
00101           $sql->setInt   ('folderid'    ,$this->folderid );
00102           $sql->setInt   ('objectid'    ,$this->objectid );
00103           
00104           $db->query( $sql->query );
00105      }    

Folder::addParentFolder ( id,
name,
filename = '' 
)

Definiert in Zeile 647 der Datei Folder.class.php.

Benutzt $filename, Object::$id und $name.

00648      {
00649           if  ( empty($name) )
00650                $name = $filename;
00651                
00652           if  ( empty($name) )
00653                $name = "($id)";
00654                
00655           if   ( intval($id) != 0 )
00656                $this->parentfolders[ $id ] = $name;
00657      }

Folder::addrights ( rights,
inherit = true 
)

Definiert in Zeile 531 der Datei Folder.class.php.

Benutzt $folderid, $name, $SESS, Folder(), parentObjectIds() und subfolder().

00532      {
00533           global $SESS;
00534 
00535           $SESS['rights'][$rights['projectid']][$this->folderid]['show'] = true;
00536 
00537           if   ($rights['read'] == '1')
00538                $SESS['rights'][$rights['projectid']][$this->folderid]['read'] = 1;
00539           if   ($rights['write'] == '1')
00540                $SESS['rights'][$rights['projectid']][$this->folderid]['write'] = 1;
00541           if   ($rights['create'] == '1')
00542                $SESS['rights'][$rights['projectid']][$this->folderid]['create'] = 1;
00543           if   ($rights['delete'] == '1')
00544                $SESS['rights'][$rights['projectid']][$this->folderid]['delete'] = 1;
00545           if   ($rights['publish'] == '1')
00546                $SESS['rights'][$rights['projectid']][$this->folderid]['publish'] = 1;
00547           
00548           // Rechte auf Unterordner vererben
00549           // sowie f?r ?bergeordnete Ordner die Anzeige erzwingen     
00550           if   ( $inherit )
00551           {
00552                // ?bergeordnete Ordner ermitteln
00553                $parentfolder = $this->parentObjectIds();
00554 
00555                // ?bergeordnete Ordner immer anzeigen (Schalter 'show'=true)
00556                foreach( $parentfolder as $folderid=>$name )
00557                {
00558                     $f = new Folder( $folderid );
00559                     $f->projectid = $this->projectid;
00560                     $f->addrights( array('projectid'=>$rights['projectid']),false );
00561                     unset($f);
00562                }
00563 
00564                $f = new Folder( 'null' );
00565                $f->projectid = $this->projectid;
00566                $f->addrights( array('projectid'=>$rights['projectid']),false );
00567                unset($f);
00568 
00569 
00570                // Unterordner ermitteln
00571                //echo "Kurz vor subfolderberechnung, folderid ist ".$this->folderid.'<br>';
00572                $subfolder = $this->subfolder();
00573 
00574                // Rechte weitergeben
00575                foreach( $subfolder as $folderid=>$name )
00576                {
00577                     $f = new Folder( $folderid );
00578                     $f->projectid = $this->projectid;
00579                     $f->addrights( $rights,false );
00580                     unset($f);
00581                }
00582           }
00583      }

Folder::checkParentFolders ( with_root,
with_self 
)

Definiert in Zeile 660 der Datei Folder.class.php.

Wird benutzt von parentObjectIds().

00661      {
00662           // Reihenfolge umdrehen
00663           $this->parentfolders = array_reverse($this->parentfolders,true);
00664 
00665           // Ordner ist bereits hoechster Ordner
00666 //        if   ( count($this->parentfolders) == 2 && $this->isRoot && $with_root && $with_self )
00667 //        {
00668 //             array_pop  ( $this->parentfolders );
00669 //             return;
00670 //        }
00671 
00672 
00673           if   ( !$with_root )
00674           {
00675                $keys = array_keys( $this->parentfolders );
00676                unset( $this->parentfolders[$keys[0]] );
00677           }
00678 
00679           if   ( !$with_self )
00680           {
00681                $keys = array_keys( $this->parentfolders );
00682                unset( $this->parentfolders[$keys[count($keys)-1]] );
00683           }
00684      }

Folder::delete (  ) 

Loeschen dieses Ordners. Der Ordner wird nur geloescht, wenn er keine Unterelemente mehr enth?lt. Zum Loeschen inklusive Unterelemente dient die Methode deleteAll()

Definiert in Zeile 895 der Datei Folder.class.php.

Benutzt $db und db_connection().

00896      {
00897           $db = db_connection();
00898 
00899           // Nur loeschen, wenn es keine Unterelemente gibt
00900           if   ( count( $this->getObjectIds() ) == 0 )
00901           {
00902                $sql = new Sql( 'UPDATE {t_element} '.
00903                                '  SET folderobjectid=NULL '.
00904                                '  WHERE folderobjectid={objectid}' );
00905                $sql->setInt('objectid',$this->objectid);
00906                $db->query( $sql->query );
00907      
00908                $sql = new Sql( 'DELETE FROM {t_folder} '.
00909                                '  WHERE objectid={objectid}' );
00910                $sql->setInt('objectid',$this->objectid);
00911                $db->query( $sql->query );
00912      
00913                $this->objectDelete();
00914           }
00915      }

Folder::deleteAll (  ) 

Rekursives loeschen aller Inhalte

Loeschen aller Inhalte dieses Ordners inclusive aller Unterelemente

Definiert in Zeile 924 der Datei Folder.class.php.

Benutzt $db und db_connection().

00925      {
00926           $db = db_connection();
00927 
00928           // L?schen aller Unterordner
00929           foreach( $this->subfolder() as $folderid )
00930           {
00931                $folder = new Folder( $folderid );
00932                {
00933                     $folder->deleteAll();
00934                }
00935           }
00936           
00937           // L?schen aller Seiten,Verknuepfungen und Dateien in
00938           // diesem Ordner
00939           foreach( $this->getObjectIds() as $oid )
00940           {
00941                $object = new Object( $oid );
00942                {
00943                     $object->load();
00944 
00945                     if   ( $object->isPage )
00946                     {
00947                          $page = new Page( $oid );
00948                          $page->load();
00949                          $page->delete();
00950                     }
00951 
00952                     if   ( $object->isLink )
00953                     {
00954                          $link = new Link( $oid );
00955                          $link->load();
00956                          $link->delete();
00957                     }
00958 
00959                     if   ( $object->isFile )
00960                     {
00961                          $file = new File( $oid );
00962                          $file->load();
00963                          $file->delete();
00964                     }
00965                }
00966           }
00967 
00968           // Zum Abschluss den aktuellen Ordner loeschen
00969           $this->delete();
00970      }

Folder::dgetRootObjectId (  ) 

Definiert in Zeile 372 der Datei Folder.class.php.

Benutzt $db, $SESS und db_connection().

00373      {
00374           global $SESS;
00375           $db = db_connection();
00376           
00377           $sql = new Sql('SELECT id FROM {t_object}'.
00378                          '  WHERE parentid IS NULL'.
00379                          '    AND projectid={projectid}' );
00380 
00381           if   ( isset($this->projectid) )
00382                $sql->setInt('projectid',$this->projectid   );
00383           else $sql->setInt('projectid',$SESS['projectid'] );
00384           
00385           return( $db->getOne( $sql->query ) );
00386      }

Folder::Folder ( objectid = ''  ) 

Definiert in Zeile 82 der Datei Folder.class.php.

Benutzt Object::$objectid und Object::Object().

Wird benutzt von addrights() und publish().

00083      {
00084           $this->Object( $objectid );
00085           $this->isFolder = true;
00086      }

Folder::getAllFolders (  ) 

Definiert in Zeile 405 der Datei Folder.class.php.

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

Wird benutzt von PageelementAction::editinsert(), PageAction::form() und ElementAction::properties().

00406      {
00407           global $SESS;
00408           $db = db_connection();
00409           
00410           $sql = new Sql('SELECT id FROM {t_object}'.
00411                          '  WHERE is_folder=1'.
00412                          '    AND projectid={projectid}' );
00413                          
00414           if   ( !isset($this->projectid) )
00415           {
00416                $project = Session::getProject();
00417                $sql->setInt('projectid',$project->projectid);
00418           }
00419           else $sql->setInt( 'projectid',$this->projectid   );
00420           
00421           return( $db->getCol( $sql->query ) );
00422      }

Folder::getAllObjectIds ( types = array('folder','page','link','file')  ) 

Definiert in Zeile 348 der Datei Folder.class.php.

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

00349      {
00350 //        Html::debug($types,'Typen');
00351           global $SESS;
00352           $db = db_connection();
00353           
00354           $sql = new Sql('SELECT id FROM {t_object}'.
00355                          '  WHERE projectid={projectid}'.
00356                          '    AND (    is_folder={is_folder}' .
00357                          '          OR is_file  ={is_file}' .
00358                          '          OR is_page  ={is_page}' .
00359                          '          OR is_link  ={is_link} )' .
00360                          '  ORDER BY orderid ASC' );
00361           $project = Session::getProject();
00362           $sql->setInt('projectid',$project->projectid);
00363           $sql->setInt('is_folder',in_array('folder',$types)?1:2);
00364           $sql->setInt('is_file'  ,in_array('file'  ,$types)?1:2);
00365           $sql->setInt('is_page'  ,in_array('page'  ,$types)?1:2);
00366           $sql->setInt('is_link'  ,in_array('link'  ,$types)?1:2);
00367           
00368           return( $db->getCol( $sql->query ) );
00369      }

Folder::getAllSubFolderIds (  ) 

Definiert in Zeile 864 der Datei Folder.class.php.

Benutzt $SESS.

00865      {
00866           global $SESS;
00867 
00868           $ids = array();
00869 
00870           foreach( $this->getSubFolderIds() as $id )
00871           {
00872 //             echo "durchlaufe $id";
00873                $ids[] = $id;
00874 
00875                $f = new Folder( $id );
00876                if   ( !empty($this->projectid) )
00877                     $f->projectid = $this->projectid;
00878 
00879                foreach( $f->getAllSubFolderIds() as $xid )
00880                {
00881                     $ids[] = $xid;
00882                }
00883           }
00884 
00885 //        print_r( $ids );
00886           return $ids;
00887      }

Folder::getFileFilenames (  ) 

Liefert eine Liste von allen Dateien in diesem Ordner.

Rückgabe:
Array Schlüssel=Objekt-Id, Wert=Dateiname

Definiert in Zeile 504 der Datei Folder.class.php.

Benutzt $db und db_connection().

00505      {
00506           $db = db_connection();
00507 
00508           $sql = new Sql('SELECT id,filename FROM {t_object} '.
00509                          '  WHERE parentid={objectid} AND is_file=1'.
00510                          '  ORDER BY orderid ASC' );
00511           $sql->setInt( 'objectid' ,$this->objectid  );
00512 
00513           return $db->getAssoc( $sql->query );
00514      }

Folder::getFiles (  ) 

Definiert in Zeile 485 der Datei Folder.class.php.

Benutzt $db und db_connection().

00486      {
00487           $db = db_connection();
00488 
00489           $sql = new Sql('SELECT id FROM {t_object} '.
00490                          '  WHERE parentid={objectid} AND is_file=1'.
00491                          '  ORDER BY orderid ASC' );
00492           $sql->setInt( 'objectid' ,$this->objectid  );
00493 
00494           return $db->getCol( $sql->query );
00495      }

Folder::getFirstPageOrLink (  ) 

Ermittelt die erste Seite oder Verknüpfung in diesem Ordner.

Rückgabe:
Object Objekt

Definiert in Zeile 443 der Datei Folder.class.php.

Benutzt $db, db_connection() und Object::Object().

00444      {
00445           $db = db_connection();
00446 
00447           $sql = new Sql('SELECT id FROM {t_object} '.
00448                          '  WHERE parentid={objectid}'.
00449                          '    AND (is_page=1 OR is_link=1)'.
00450                          '  ORDER BY orderid ASC' );
00451           $sql->setInt( 'objectid' ,$this->objectid  );
00452 
00453           $oid = intval($db->getOne( $sql->query ));
00454           
00455           if   ( $oid != 0 )
00456                $o = new Object($oid);
00457           else
00458                $o = null;
00459 
00460           return $o;
00461      }

Folder::getLastPageOrLink (  ) 

Definiert in Zeile 464 der Datei Folder.class.php.

Benutzt $db, db_connection() und Object::Object().

00465      {
00466           $db = db_connection();
00467 
00468           $sql = new Sql('SELECT id FROM {t_object} '.
00469                          '  WHERE parentid={objectid}'.
00470                          '    AND (is_page=1 OR is_link=1)'.
00471                          '  ORDER BY orderid DESC' );
00472           $sql->setInt( 'objectid' ,$this->objectid  );
00473 
00474           $oid = intval($db->getOne( $sql->query ));
00475           
00476           if   ( $oid != 0 )
00477                $o = new Object($oid);
00478           else
00479                $o = null;
00480 
00481           return $o;
00482      }

Folder::getLinks (  ) 

Definiert in Zeile 517 der Datei Folder.class.php.

Benutzt $db und db_connection().

00518      {
00519           $db = db_connection();
00520 
00521           $sql = new Sql('SELECT id FROM {t_object} '.
00522                          '  WHERE parentid={objectid} AND is_link=1'.
00523                          '  ORDER BY orderid ASC' );
00524           $sql->setInt( 'objectid' ,$this->objectid  );
00525 
00526           return $db->getCol( $sql->query );
00527      }

Folder::getObjectIdByFileName ( filename  ) 

Definiert in Zeile 334 der Datei Folder.class.php.

Benutzt $db, $filename und db_connection().

00335      {
00336           $db = db_connection();
00337           
00338           $sql = new Sql('SELECT id FROM {t_object}'.
00339                          '  WHERE parentid={objectid}'.
00340                          '    AND filename={filename}' );
00341           $sql->setInt   ('objectid' ,$this->objectid );
00342           $sql->setString('filename' ,$filename       );
00343           
00344           return( intval($db->getOne( $sql->query )) );
00345      }

Folder::getObjectIds (  ) 

Definiert in Zeile 207 der Datei Folder.class.php.

Benutzt $db und db_connection().

Wird benutzt von publish().

00208      {
00209           $db = db_connection();
00210 
00211           $sql = new Sql('SELECT id FROM {t_object}'.
00212                          '  WHERE parentid={objectid}'.
00213                          '  ORDER BY orderid ASC' );
00214           $sql->setInt('projectid',$this->projectid );
00215           $sql->setInt('objectid' ,$this->objectid  );
00216           
00217           return( $db->getCol( $sql->query ) );
00218      }

Folder::getObjectIdsByLastChange (  ) 

Definiert in Zeile 283 der Datei Folder.class.php.

Benutzt $db und db_connection().

00284      {
00285           $db = db_connection();
00286 
00287           $sql = new Sql('SELECT id FROM {t_object}'.
00288                          '  WHERE parentid={objectid}'.
00289                          '  ORDER BY lastchange_date,orderid ASC' );
00290           $sql->setInt('projectid',$this->projectid );
00291           $sql->setInt('objectid' ,$this->objectid  );
00292           
00293           return( $db->getCol( $sql->query ) );
00294      }

Folder::getObjectIdsByName (  ) 

Definiert in Zeile 268 der Datei Folder.class.php.

Benutzt $db und db_connection().

00269      {
00270           $db = db_connection();
00271 
00272           $sql = new Sql('SELECT {t_object}.id FROM {t_object}'.
00273                          '  LEFT JOIN {t_name} ON {t_object}.id={t_name}.objectid AND {t_name}.languageid={languageid} '.
00274                        ' WHERE parentid={objectid}'.
00275                        ' ORDER BY {t_name}.name,{t_object}.filename ASC');
00276           $sql->setInt('objectid'  , $this->objectid  );
00277           $sql->setInt('languageid', $this->languageid);
00278           return( $db->getCol( $sql->query ) );
00279      }

Folder::getObjectIdsByType (  ) 

Definiert in Zeile 253 der Datei Folder.class.php.

Benutzt $db und db_connection().

00254      {
00255           $db = db_connection();
00256 
00257           $sql = new Sql('SELECT id FROM {t_object}'.
00258                          '  WHERE parentid={objectid}'.
00259                          '  ORDER BY is_link,is_page,is_file,is_folder,orderid ASC' );
00260           $sql->setInt('projectid',$this->projectid );
00261           $sql->setInt('objectid' ,$this->objectid  );
00262           
00263           return( $db->getCol( $sql->query ) );
00264      }

Folder::getObjects (  ) 

Liest alle Objekte in diesem Ordner

Rückgabe:
Array von Objekten

Definiert in Zeile 226 der Datei Folder.class.php.

Benutzt $db, db_connection() und Object::Object().

00227      {
00228           $db = db_connection();
00229 
00230           $sql = new Sql('SELECT {t_object}.*,{t_name}.name,{t_name}.descr'.
00231                          '  FROM {t_object}'.
00232                          ' LEFT JOIN {t_name} '.
00233                          '   ON {t_object}.id={t_name}.objectid AND {t_name}.languageid={languageid} '.
00234                          '  WHERE parentid={objectid}'.
00235                          '  ORDER BY orderid ASC' );
00236           $sql->setInt('languageid',$this->languageid );
00237           $sql->setInt('objectid'  ,$this->objectid   );
00238           
00239           $liste = array();
00240           $res = $db->getAll( $sql->query );
00241           foreach( $res as $row )
00242           {
00243                $o = new Object( $row['id'] );
00244                $o->setDatabaseRow( $row );
00245                $liste[] = $o;
00246           }
00247 
00248           return $liste;
00249      }

Folder::getOtherFolders (  ) 

Definiert in Zeile 389 der Datei Folder.class.php.

Benutzt $db, $SESS und db_connection().

00390      {
00391           global $SESS;
00392           $db = db_connection();
00393           
00394           $sql = new Sql('SELECT id FROM {t_object}'.
00395                          '  WHERE is_folder=1'.
00396                          '    and id != {objectid} '.
00397                          '    AND projectid={projectid}' );
00398           $sql->setInt( 'projectid',$this->projectid );
00399           $sql->setInt( 'objectid' ,$this->objectid  );
00400           
00401           return( $db->getCol( $sql->query ) );
00402      }

Folder::getPages (  ) 

Definiert in Zeile 425 der Datei Folder.class.php.

Benutzt $db und db_connection().

00426      {
00427           $db = db_connection();
00428 
00429           $sql = new Sql('SELECT id FROM {t_object} '.
00430                          '  WHERE parentid={objectid} AND is_page=1'.
00431                          '  ORDER BY orderid ASC' );
00432           $sql->setInt( 'objectid' ,$this->objectid  );
00433 
00434           return $db->getCol( $sql->query );
00435      }

Folder::getRootFolderId (  ) 

Definiert in Zeile 109 der Datei Folder.class.php.

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

00110      {
00111           global $SESS;
00112           $db = db_connection();
00113 
00114           $sql = new SQL('SELECT id FROM {t_object}'.
00115                          '  WHERE parentid IS NULL'.
00116                          '    AND is_folder=1'.
00117                          '    AND projectid={projectid}' );
00118 
00119           // Wenn Methode statisch aufgerufen wird, ist $this nicht vorhanden
00120           if   ( isset($this) && isset($this->projectid) )
00121           {
00122                $sql->setInt('projectid',$this->projectid );
00123           }
00124           else
00125           {
00126                $project = Session::getProject();
00127                $sql->setInt('projectid',$project->projectid );
00128           }
00129           
00130           // Datenbankabfrage ausfuehren
00131           return $db->getOne( $sql->query );
00132      }

Folder::getSubfolderFilenames (  ) 

Definiert in Zeile 849 der Datei Folder.class.php.

Benutzt $db und db_connection().

00850      {
00851           $db = db_connection();
00852 
00853           $sql = new Sql('SELECT id,filename FROM {t_object} '.
00854                          '  WHERE parentid={objectid} AND is_folder=1'.
00855                          '  ORDER BY orderid ASC' );
00856           $sql->setInt( 'objectid' ,$this->objectid  );
00857 
00858           return $db->getAssoc( $sql->query );
00859      }

Folder::getSubFolderIds (  ) 

Definiert in Zeile 973 der Datei Folder.class.php.

00974      {
00975           return $this->subfolder();
00976      }

Folder::hasFilename ( filename  ) 

Definiert in Zeile 135 der Datei Folder.class.php.

Benutzt $db, $filename und db_connection().

00136      {
00137           $db = db_connection();
00138 
00139           $sql = new Sql('SELECT COUNT(*) FROM {t_object}'.'  WHERE parentid={objectid} AND filename={filename}');
00140 
00141           if   ( intval($this->objectid)== 0 )
00142                $sql->setNull('objectid');
00143           else
00144                $sql->setString('objectid', $this->objectid);
00145 
00146           $sql->setString('filename', $filename      );
00147 
00148           return( $db->getOne($sql->query) > 0 );
00149      }

Folder::load (  ) 

Laden des Objektes

Veraltet:
bitte objectLoad() benutzen

Erneute Implementation von Object.

Definiert in Zeile 152 der Datei Folder.class.php.

Benutzt Object::objectLoad().

00153      {
00154 //        $db = db_connection();
00155 //
00156 //        $sql = new Sql('SELECT * FROM {t_folder} WHERE objectid={objectid}');
00157 //        $sql->setInt('objectid',$this->objectid);
00158 //
00159 //        $row = $db->getRow( $sql->query );
00160 //
00161           $this->objectLoad();
00162           
00163 //        $this->folderid = $row['id' ];
00164      }

Folder::parentfolder_bak ( with_root = false,
with_self = false 
)

Definiert in Zeile 588 der Datei Folder.class.php.

Benutzt $db, Object::$parentid, db_connection() und Object::filename().

00589      {
00590           $db = db_connection();
00591           $this->parentfolders = array();
00592           
00593           // ?bergeordneten Ordner lesen
00594           $sql = new Sql('SELECT parentid FROM {t_folder} WHERE id={folderid}');
00595 
00596           $sql->setInt('folderid',$this->folderid);
00597           $parentid = $db->getOne( $sql->query );
00598 
00599           // Ordner ist bereits h?chster Ordner
00600           if   ( !is_numeric($parentid))
00601           {
00602                // Falls Anzeige h?chster oder aktueller Ordner
00603                if   ( $with_root && $with_self )
00604                {
00605                     if   ( $this->filenames )
00606                          $this->parentfolders[ $this->folderid ] = $this->filename;
00607                     else $this->parentfolders[ $this->folderid ] = $this->name;
00608                }
00609 
00610                return $this->parentfolders;
00611           }
00612 
00613           // Aktuellen Ordner hinzuf?gen
00614           if   ( $with_self )
00615           {
00616                if   ( $this->filenames )
00617                     $this->parentfolders[ $this->folderid ] = $this->filename;
00618                else $this->parentfolders[ $this->folderid ] = $this->name;
00619           }
00620 
00621           // Schleife ?ber alle ?bergeordneten Ordner
00622           while( is_numeric($parentid) )
00623           {
00624                $sql = new Sql('SELECT * FROM {t_folder} WHERE id={folderid}');
00625                $sql->setInt('folderid',$parentid);
00626 
00627                $row_folder = $db->getRow( $sql->query );
00628 
00629                if   (is_numeric($row_folder['parentid']) || $with_root)
00630                {
00631                     if   ( $this->filenames )
00632                          $this->parentfolders[ $parentid ] = $row_folder['filename'];
00633                     else $this->parentfolders[ $parentid ] = $row_folder['name'];
00634                }
00635                
00636                $parentid = $row_folder['parentid'];
00637           }
00638 
00639      
00640           // Reihenfolge umdrehen
00641           $this->parentfolders = array_reverse($this->parentfolders,true);
00642           
00643           return $this->parentfolders;
00644      }

Folder::parentObjectFileNames ( with_root = false,
with_self = false 
)

Definiert in Zeile 731 der Datei Folder.class.php.

Benutzt $db und Session::getDatabase().

00732      {
00733           $db = Session::getDatabase();
00734 
00735           $sql = new Sql( <<<EOF
00736 SELECT F0.id       AS f0id,
00737       F0.filename AS f0filename,
00738       F1.id       AS f1id,
00739       F1.filename AS f1filename,
00740       F2.id       AS f2id,
00741       F2.filename AS f2filename,
00742       F3.id       AS f3id,
00743       F3.filename AS f3filename,
00744       F4.id       AS f4id,
00745       F4.filename AS f4filename,
00746       F5.id       AS f5id,
00747       F5.filename AS f5filename
00748  FROM {t_object} AS F0
00749 LEFT JOIN {t_object} AS F1 on F0.parentid=F1.id 
00750 LEFT JOIN {t_object} AS F2 on F1.parentid=F2.id 
00751 LEFT JOIN {t_object} AS F3 on F2.parentid=F3.id 
00752 LEFT JOIN {t_object} AS F4 on F3.parentid=F4.id 
00753 LEFT JOIN {t_object} AS F5 on F4.parentid=F5.id 
00754 WHERE F0.id={objectid}
00755 EOF
00756  );
00757 
00758           $sql->setInt('objectid'  ,$this->objectid  );
00759           $sql->setInt('languageid',$this->languageid);
00760 
00761           $row = $db->getRow( $sql->query );
00762 
00763           $this->addParentfolder( $row['f0id'],$row['f0filename'] );
00764           $this->addParentfolder( $row['f1id'],$row['f1filename'] );
00765           $this->addParentfolder( $row['f2id'],$row['f2filename'] );
00766           $this->addParentfolder( $row['f3id'],$row['f3filename'] );
00767           $this->addParentfolder( $row['f4id'],$row['f4filename'] );
00768           $this->addParentfolder( $row['f5id'],$row['f5filename'] );
00769 
00770           $this->checkParentFolders($with_root,$with_self);
00771           
00772           return $this->parentfolders;
00773      }

Folder::parentObjectIds ( with_root = false,
with_self = false 
)

Definiert in Zeile 689 der Datei Folder.class.php.

Benutzt $db, checkParentFolders() und Session::getDatabase().

Wird benutzt von addrights().

00690      {
00691           $db = Session::getDatabase();
00692           $this->parentfolders = array();
00693           
00694           // ?bergeordneten Ordner lesen
00695           //$sql = new Sql('SELECT parentid FROM {t_object} WHERE id={objectid}');
00696           $sql = new Sql('SELECT F0.id AS f0id,'.
00697                          '       F1.id AS f1id,'.
00698                          '       F2.id AS f2id,'.
00699                          '       F3.id AS f3id,'.
00700                          '       F4.id AS f4id,'.
00701                          '       F5.id AS f5id '.
00702                          '  FROM {t_object} AS F0'.
00703                          ' LEFT JOIN {t_object} AS F1 on F0.parentid=F1.id '.
00704                          ' LEFT JOIN {t_object} AS F2 on F1.parentid=F2.id '.
00705                          ' LEFT JOIN {t_object} AS F3 on F2.parentid=F3.id '.
00706                          ' LEFT JOIN {t_object} AS F4 on F3.parentid=F4.id '.
00707                          ' LEFT JOIN {t_object} AS F5 on F4.parentid=F5.id '.
00708                          ' WHERE F0.id={objectid}');
00709 
00710 //                       ' LEFT JOIN {t_name} '.
00711 //                       '   ON {t_object}.id={t_name}.objectid AND {t_name}.languageid={languageid} '.
00712 
00713           $sql->setInt('objectid',$this->objectid);
00714 
00715           $row = $db->getRow( $sql->query );
00716 
00717           $this->parentfolders = array();
00718           $this->addParentfolder( $row['f0id'],$row['f0id'] );
00719           $this->addParentfolder( $row['f1id'],$row['f1id'] );
00720           $this->addParentfolder( $row['f2id'],$row['f2id'] );
00721           $this->addParentfolder( $row['f3id'],$row['f3id'] );
00722           $this->addParentfolder( $row['f4id'],$row['f4id'] );
00723           $this->addParentfolder( $row['f5id'],$row['f5id'] );
00724 
00725           $this->checkParentFolders($with_root,$with_self);
00726      
00727           return $this->parentfolders;
00728      }

Folder::parentObjectNames ( with_root = false,
with_self = false 
)

Definiert in Zeile 775 der Datei Folder.class.php.

Benutzt $db und Session::getDatabase().

00776      {
00777           $db = Session::getDatabase();
00778 
00779           $sql = new Sql( <<<EOF
00780 SELECT F0.id       AS f0id,
00781       F0.filename AS f0filename,
00782       F1.filename AS f1filename,
00783       F2.filename AS f2filename,
00784       F3.filename AS f3filename,
00785       F4.filename AS f4filename,
00786       F5.filename AS f5filename,
00787                                 F0NAME.name AS f0name,
00788                                 F1.id       AS f1id,
00789                                 F1NAME.name AS f1name,
00790                                 F2.id       AS f2id,
00791                                 F2NAME.name AS f2name,
00792                                 F3.id       AS f3id,
00793                                 F3NAME.name AS f3name,
00794                                 F4.id       AS f4id,
00795                                 F4NAME.name AS f4name,
00796                                 F5.id       AS f5id, 
00797                                 F5NAME.name AS f5name
00798                            FROM {t_object} AS F0
00799                           LEFT JOIN {t_name}   AS F0NAME ON F0NAME.objectid=F0.id AND F0NAME.languageid={languageid} 
00800                           LEFT JOIN {t_object} AS F1 on F0.parentid=F1.id 
00801                           LEFT JOIN {t_name}   AS F1NAME ON F1NAME.objectid=F1.id AND F1NAME.languageid={languageid} 
00802                           LEFT JOIN {t_object} AS F2 on F1.parentid=F2.id 
00803                           LEFT JOIN {t_name}   AS F2NAME ON F2NAME.objectid=F2.id AND F2NAME.languageid={languageid} 
00804                           LEFT JOIN {t_object} AS F3 on F2.parentid=F3.id 
00805                           LEFT JOIN {t_name}   AS F3NAME ON F3NAME.objectid=F3.id AND F3NAME.languageid={languageid} 
00806                           LEFT JOIN {t_object} AS F4 on F3.parentid=F4.id 
00807                           LEFT JOIN {t_name}   AS F4NAME ON F4NAME.objectid=F4.id AND F4NAME.languageid={languageid} 
00808                           LEFT JOIN {t_object} AS F5 on F4.parentid=F5.id 
00809                           LEFT JOIN {t_name}   AS F5NAME ON F5NAME.objectid=F5.id AND F5NAME.languageid={languageid} 
00810                           WHERE F0.id={objectid}
00811 EOF
00812  );
00813           $sql->setInt('objectid'  ,$this->objectid  );
00814           $sql->setInt('languageid',$this->languageid);
00815 
00816           $row = $db->getRow( $sql->query );
00817 
00818           $this->addParentfolder( $row['f0id'],$row['f0name'],$row['f0filename'] );
00819           $this->addParentfolder( $row['f1id'],$row['f1name'],$row['f1filename'] );
00820           $this->addParentfolder( $row['f2id'],$row['f2name'],$row['f2filename'] );
00821           $this->addParentfolder( $row['f3id'],$row['f3name'],$row['f3filename'] );
00822           $this->addParentfolder( $row['f4id'],$row['f4name'],$row['f4filename'] );
00823           $this->addParentfolder( $row['f5id'],$row['f5name'],$row['f5filename'] );
00824 
00825           $this->checkParentFolders($with_root,$with_self);
00826           
00827           return $this->parentfolders;
00828      }

Folder::publish ( withPages,
withFiles,
subdirs = false 
)

Definiert in Zeile 297 der Datei Folder.class.php.

Benutzt Folder(), getObjectIds() und Object::Object().

00298      {
00299           if   ( ! is_object($this->publish) )
00300                $this->publish = new Publish();
00301 
00302           foreach( $this->getObjectIds() as $oid )
00303           {
00304                $o = new Object( $oid );
00305                $o->objectLoadRaw();
00306 
00307                if   ( $o->isPage && $withPages )
00308                {
00309                     $p = new Page( $oid );
00310                     $p->load();
00311                     $p->publish = &$this->publish;
00312                     $p->publish();
00313                }
00314 
00315                if   ( $o->isFile && $withFiles )
00316                {
00317                     $f = new File( $oid );
00318                     $f->load();
00319                     $f->publish = &$this->publish;
00320                     $f->publish();
00321                }
00322 
00323                if   ( $o->isFolder && $subdirs )
00324                {
00325                     $f = new Folder( $oid );
00326                     $f->load();
00327                     $f->publish = &$this->publish;
00328                     $f->publish( $withPages,$withFiles,true );             
00329                }
00330           }
00331      }

Folder::save (  ) 

Definiert in Zeile 168 der Datei Folder.class.php.

Benutzt Object::objectSave().

00169      {
00170           $this->objectSave();
00171      }

Folder::setOrderId ( orderid  ) 

Reihenfolge-Sequenznr. dieses Objektes neu speichern die Nr. wird sofort in der Datenbank gespeichert.

Parameter:
Integer neue Sequenz-Nr.

Erneute Implementation von Object.

Definiert in Zeile 175 der Datei Folder.class.php.

Benutzt $db und db_connection().

00176      {
00177           $db = db_connection();
00178 
00179           $sql = new Sql('UPDATE {t_folder} '.
00180                          '  SET orderid={orderid}'.
00181                          '  WHERE id={folderid}');
00182           $sql->setInt('folderid',$this->folderid);
00183           $sql->setInt('orderid' ,$orderid       );
00184 
00185           $db->query( $sql->query );
00186      }

Folder::subfolder (  ) 

Definiert in Zeile 833 der Datei Folder.class.php.

Benutzt $db und db_connection().

Wird benutzt von addrights().

00834      {
00835           $db = db_connection();
00836 
00837           $sql = new Sql('SELECT id FROM {t_object} '.
00838                          '  WHERE parentid={objectid} AND is_folder=1'.
00839                          '  ORDER BY orderid ASC' );
00840           $sql->setInt( 'objectid' ,$this->objectid  );
00841 
00842           $this->subfolders = $db->getCol( $sql->query );
00843 
00844           return $this->subfolders;
00845      }


Dokumentation der Datenelemente

Folder::$desc = ''

Erneute Implementation von Object.

Definiert in Zeile 78 der Datei Folder.class.php.

Folder::$filename = ''

Physikalischer Dateiname des Objektes (bei Links nicht gef?llt) enth?lt nicht die Dateinamen-Erweiterung String

Erneute Implementation von Object.

Definiert in Zeile 77 der Datei Folder.class.php.

Wird benutzt von addParentFolder(), getObjectIdByFileName() und hasFilename().

Folder::$filenames = true

Definiert in Zeile 75 der Datei Folder.class.php.

Folder::$folderid

Definiert in Zeile 71 der Datei Folder.class.php.

Wird benutzt von addrights().

Folder::$name = ''

Logischer (sprachabhaengiger) Name des Objektes (wird in Tabelle name abgelegt) String

Erneute Implementation von Object.

Definiert in Zeile 76 der Datei Folder.class.php.

Wird benutzt von addParentFolder() und addrights().

Folder::$parentfolders = array()

Definiert in Zeile 73 der Datei Folder.class.php.

Folder::$projectid

Projekt-ID

Siehe auch:
Project Integer

Erneute Implementation von Object.

Definiert in Zeile 72 der Datei Folder.class.php.

Folder::$publish = null

Definiert in Zeile 79 der Datei Folder.class.php.

Folder::$subfolders = array()

Definiert in Zeile 74 der Datei Folder.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