ProjectTree Klassenreferenz

Klassendiagramm für ProjectTree:

Inheritance graph
base refererrect $classAbstractTree.html 15,7 172,169

Aufstellung aller Elemente

Öffentliche Methoden

 root ()
 pageelements ($id)
 value ($id)
 link ($id)
 folder ($id)
 project ()
 templates ()
 template ($id)
 languages ()
 models ()
 other ()

Öffentliche Attribute

 $projectId
 $userIsProjectAdmin = false


Ausführliche Beschreibung

Definiert in Zeile 27 der Datei ProjectTree.class.php.


Dokumentation der Elementfunktionen

ProjectTree::folder ( id  ) 

Laedt Elemente zu einem Ordner

Rückgabe:
Array

Definiert in Zeile 170 der Datei ProjectTree.class.php.

Benutzt $SESS, AbstractTree::addTreeElement(), lang(), Text::maxLaenge() und Html::url().

00171      {
00172           global
00173           $SESS,
00174           $projectid;
00175 
00176           $f = new Folder( $id );
00177           $t = time();
00178      
00179           foreach( $f->getObjects() as $o )
00180           {
00181                // Wenn keine Leseberechtigung     
00182                if   ( !$o->hasRight( ACL_READ ) )
00183                     continue;
00184      
00185                $treeElement = new TreeElement();
00186                $treeElement->internalId = $o->objectid;
00187                $treeElement->target     = 'cms_main';
00188                $treeElement->text       = Text::maxLaenge( 25,$o->name );
00189                $treeElement->description= lang( 'GLOBAL_'.$o->getType() ).' '.$o->objectid;
00190 
00191                if   ( $o->desc != '' )
00192                     $treeElement->description .= ': '.$o->desc;
00193                else
00194                     $treeElement->description .= ' - '.lang('GLOBAL_NO_DESCRIPTION_AVAILABLE');
00195 
00196                $treeElement->url        = Html::url( 'main',$o->getType(),$o->objectid,array('readit'=>'__OID__'.$o->objectid.'__') );
00197                $treeElement->icon       = $o->getType();
00198                
00199                // Besonderheiten fuer bestimmte Objekttypen 
00200 
00201                if   ( $o->isLink )
00202                {
00203                     $treeElement->type='link';
00204                }
00205 
00206                if   ( $o->isPage )
00207                {
00208                     // Nur wenn die Seite beschreibbar ist, werden die
00209                     // Elemente im Baum angezeigt
00210                     if   ( $o->hasRight( ACL_WRITE ) )
00211                          $treeElement->type='pageelements';
00212                }
00213 
00214                if   ( $o->isFile )
00215                {
00216                     $file = new File( $o->objectid );
00217                     $file->load();
00218 
00219                     if   ( substr($file->mimeType(),0,6) == 'image/' )
00220                          $treeElement->icon = 'image';
00221                     else $treeElement->icon = 'file';
00222                }
00223 
00224                if   ( $o->isFolder )
00225                {
00226                     $treeElement->type = 'folder';
00227                }
00228 
00229 
00230                $this->addTreeElement( $treeElement );
00231           }
00232      }

ProjectTree::languages (  ) 

Sprachen

Definiert in Zeile 394 der Datei ProjectTree.class.php.

Benutzt AbstractTree::addTreeElement(), Session::getProjectLanguage() und Html::url().

00395      {
00396           // Sprachvarianten
00397           //
00398           $l = Session::getProjectLanguage();
00399           $languages = $l->getAll();
00400 
00401           foreach( $languages as $languageid=>$name )
00402           {
00403                $treeElement = new TreeElement();
00404                $treeElement->text         = $name;
00405                $treeElement->url          = Html::url('main','language',$languageid,
00406                                                       array(REQ_PARAM_TARGETSUBACTION=>'edit') );
00407                $treeElement->icon         = 'language';
00408                $treeElement->description  = '';
00409                $treeElement->target       = 'cms_main';
00410                $this->addTreeElement( $treeElement );
00411           }
00412      }

ProjectTree::link ( id  ) 

Definiert in Zeile 128 der Datei ProjectTree.class.php.

Benutzt AbstractTree::addTreeElement(), lang(), Text::maxLaenge() und Html::url().

00129      {
00130           $link = new Link( $id );
00131           $link->load();
00132 
00133           if   ( $link->isLinkToObject )
00134           {
00135                $o = new Object( $link->linkedObjectId );
00136                $o->load();
00137                
00138                $treeElement = new TreeElement();
00139                $treeElement->internalId = $o->objectid;
00140                $treeElement->target     = 'cms_main';
00141                $treeElement->text       = Text::maxLaenge( 25,$o->name );
00142                $treeElement->description= lang( 'GLOBAL_'.$o->getType() ).' '.$id;
00143 
00144                if   ( $o->desc != '' )
00145                     $treeElement->description .= ': '.$o->desc;
00146                else
00147                     $treeElement->description .= ' - '.lang('GLOBAL_NO_DESCRIPTION_AVAILABLE');
00148 
00149                $treeElement->url        = Html::url('main',$o->getType(),$o->objectid );
00150                $treeElement->icon       = $o->getType();
00151                
00152                // Besonderheiten fuer bestimmte Objekttypen 
00153 
00154                if   ( $o->isPage )
00155                {
00156                     // Nur wenn die Seite beschreibbar ist, werden die
00157                     // Elemente im Baum angezeigt
00158                     if   ( $o->hasRight( ACL_WRITE ) )
00159                          $treeElement->type='pageelements';
00160                }
00161                $this->addTreeElement( $treeElement );
00162           }
00163      }

ProjectTree::models (  ) 

Definiert in Zeile 417 der Datei ProjectTree.class.php.

Benutzt AbstractTree::addTreeElement(), Session::getProjectModel() und Html::url().

00418      {
00419           $m = Session::getProjectModel();
00420           $models = $m->getAll();
00421 
00422           foreach( $models as $id=>$name )
00423           {
00424                $treeElement = new TreeElement();
00425                $treeElement->text        = $name;
00426                $treeElement->url         = Html::url('main','model',$id,
00427                                                      array(REQ_PARAM_TARGETSUBACTION=>'edit'));
00428                $treeElement->icon        = 'model';
00429                $treeElement->description = '';
00430                $treeElement->target      = 'cms_main';
00431                $this->addTreeElement( $treeElement );
00432           }
00433      }

ProjectTree::other (  ) 

Definiert in Zeile 436 der Datei ProjectTree.class.php.

Benutzt AbstractTree::addTreeElement(), lang() und Html::url().

00437      {
00438 // Deaktiviert, da
00439 // - Dateien auf den Server laden unverst�ndlich/undurchsichtig erscheint
00440 // - M�glichkeit zum Entpacken von ZIP/TAR online besteht.
00441 //        if   ( $this->userIsProjectAdmin )
00442 //        {
00443 //             $treeElement = new TreeElement();
00444 //             $treeElement->text        = lang('GLOBAL_FILE_TRANSFER');
00445 //             $treeElement->description = lang('GLOBAL_FILE_TRANSFER_DESC');
00446 //             $treeElement->url         = Html::url('main','transfer');
00447 //             $treeElement->icon        = 'transfer';
00448 //             $treeElement->target      = 'cms_main';
00449 //             $this->addTreeElement( $treeElement );
00450 //        }
00451 
00452           $treeElement = new TreeElement();
00453           $treeElement->text        = lang('GLOBAL_SEARCH');
00454           $treeElement->url         = Html::url('main','search');
00455           $treeElement->icon        = 'search';
00456           $treeElement->description = lang('GLOBAL_SEARCH_DESC');
00457           $treeElement->target      = 'cms_main';
00458           $this->addTreeElement( $treeElement );
00459 
00460 
00461           $treeElement = new TreeElement();
00462           $treeElement->text        = lang('USER_YOURPROFILE');
00463           $treeElement->url         = Html::url('profile','edit');
00464           $treeElement->icon        = 'user';
00465           $treeElement->description = lang('USER_PROFILE_DESC');
00466           $treeElement->target      = 'cms_main_main';
00467           $this->addTreeElement( $treeElement );
00468 
00469 
00470           $treeElement = new TreeElement();
00471           $treeElement->text        = lang('GLOBAL_PROJECTS');
00472           $treeElement->url         = Html::url('index','projectmenu');
00473           $treeElement->icon        = 'project';
00474           $treeElement->description = lang('GLOBAL_PROJECTS');
00475           $treeElement->target      = 'parent';
00476           $this->addTreeElement( $treeElement );
00477      }

ProjectTree::pageelements ( id  ) 

Definiert in Zeile 45 der Datei ProjectTree.class.php.

Benutzt AbstractTree::addTreeElement(), lang() und Html::url().

00046      {
00047           $page = new Page( $id );
00048           $page->load();
00049      
00050           $template = new Template( $page->templateid );
00051      
00052           foreach( $template->getElementIds() as $elementid )
00053           {
00054                $element = new Element( $elementid );
00055                $element->load();
00056      
00057                if   ( $element->isWritable() )
00058                {
00059                     $treeElement = new TreeElement();
00060                     $treeElement->text = $element->name;
00061                     $treeElement->url  = Html::url('main',
00062                                                    'pageelement',
00063                                                    $id,
00064                                                    array('elementid'=>$elementid,
00065                                                          REQ_PARAM_TARGETSUBACTION=>'edit'));
00066                     $treeElement->icon = 'el_'.$element->type;
00067 
00068                     $treeElement->description = lang('EL_'.$element->type);
00069                     if   ( $element->desc != '' )
00070                          $treeElement->description .= ' - '.Text::maxLaenge( 25,$element->desc );
00071                     else
00072                          $treeElement->description .= ' - '.lang('GLOBAL_NO_DESCRIPTION_AVAILABLE');
00073                     $treeElement->target      = 'cms_main';
00074 
00075                     if   ( in_array($element->type,array('link','list','include') ) )
00076                     {
00077                          $treeElement->type = 'value';
00078                          $value = new Value();
00079                          $value->pageid  = $page->pageid;
00080                          $value->element = $element;
00081                          $value->load();
00082                          $treeElement->internalId = $value->valueid;
00083                     }
00084 
00085                     $this->addTreeElement( $treeElement );
00086                }
00087           }
00088      }

ProjectTree::project (  ) 

Definiert in Zeile 235 der Datei ProjectTree.class.php.

Benutzt AbstractTree::addTreeElement(), Session::getProject(), Session::getProjectLanguage(), Session::getProjectModel(), Session::getUser(), lang() und Html::url().

00236      {
00237           $language = Session::getProjectLanguage();
00238           $model    = Session::getProjectModel();
00239           $user     = Session::getUser();
00240 
00241           $project  = Session::getProject();
00242           $this->projectid = $project->projectid;
00243 
00244           // Hoechster Ordner der Projektstruktur
00245           $f      = new Folder();
00246           $f->projectid = $this->projectid;
00247           $folder = new Folder( $project->getRootObjectId() );
00248           unset( $f );
00249           $folder->load();
00250 
00251           
00252           // Ermitteln, ob der Benutzer Projektadministrator ist
00253           // Projektadministratoren haben das Recht, im Root-Ordner die Eigenschaften zu aendern.
00254           if   ( $folder->hasRight( ACL_PROP ) )
00255                $this->userIsProjectAdmin = true;
00256 
00257           if   ( $folder->hasRight( ACL_READ ) )
00258           {
00259                $treeElement = new TreeElement();
00260 //             $treeElement->text        = $folder->name;
00261                $treeElement->text        = lang('FOLDER_ROOT');
00262                $treeElement->description = lang('FOLDER_ROOT_DESC');
00263                $treeElement->icon        = 'folder';
00264                $treeElement->url         = Html::url( 'main','folder',$folder->objectid );
00265                $treeElement->target      = 'cms_main';
00266                $treeElement->type        = 'folder';
00267                $treeElement->internalId  = $folder->objectid;
00268                $this->addTreeElement( $treeElement );
00269           }
00270 
00271 
00272           if   ( $this->userIsProjectAdmin )
00273           {
00274                // Templates
00275                $treeElement = new TreeElement();
00276                $treeElement->text       = lang('GLOBAL_TEMPLATES');
00277                $treeElement->url        = Html::url('main','template',0,array(REQ_PARAM_TARGETSUBACTION=>'listing'));
00278                $treeElement->description= lang('GLOBAL_TEMPLATES_DESC');
00279                $treeElement->icon       = 'template_list';
00280                $treeElement->target     = 'cms_main';
00281                $treeElement->type       = 'templates';
00282                $this->addTreeElement( $treeElement );
00283           }
00284 
00285 
00286           // Sprachen
00287           $treeElement = new TreeElement();
00288           $treeElement->description= '';
00289           $treeElement->text       = lang('GLOBAL_LANGUAGES');
00290           $treeElement->url        = Html::url('main','language',0,array(REQ_PARAM_TARGETSUBACTION=>'listing'));
00291           $treeElement->icon       = 'language_list';
00292           $treeElement->description= lang('GLOBAL_LANGUAGES_DESC');
00293           $treeElement->target     = 'cms_main';
00294 
00295           // Nur fuer Projekt-Administratoren aufklappbar
00296           if   ( $this->userIsProjectAdmin )
00297                $treeElement->type   = 'languages';
00298 
00299           $this->addTreeElement( $treeElement );
00300 
00301 
00302           // Projektmodelle
00303           $treeElement = new TreeElement();
00304           $treeElement->description= '';
00305 
00306           // Nur fuer Projekt-Administratoren aufklappbar
00307           if   ( $this->userIsProjectAdmin )
00308                $treeElement->type   = 'models';
00309 
00310           $treeElement->description= lang('GLOBAL_MODELS_DESC');
00311           $treeElement->text       = lang('GLOBAL_MODELS');
00312           $treeElement->url        = Html::url('main','model',0,array(REQ_PARAM_TARGETSUBACTION=>'listing'));
00313           $treeElement->icon       = 'model_list';
00314           $treeElement->target     = 'cms_main';
00315           $this->addTreeElement( $treeElement );
00316 
00317 
00318           // Sonstiges
00319 //        $treeElement = new TreeElement();
00320 //        $treeElement->text       = lang('GLOBAL_OTHER');
00321 //        $treeElement->description= lang('GLOBAL_OTHER_DESC');
00322 //        $treeElement->icon       = 'other';
00323 //        $treeElement->type       = 'other';
00324 //        $this->addTreeElement( $treeElement );
00325           
00326           // Suche
00327           $treeElement = new TreeElement();
00328           $treeElement->text        = lang('GLOBAL_SEARCH');
00329           $treeElement->url         = Html::url('main','search');
00330           $treeElement->icon        = 'search';
00331           $treeElement->description = lang('GLOBAL_SEARCH_DESC');
00332           $treeElement->target      = 'cms_main';
00333           $this->addTreeElement( $treeElement );
00334           
00335      }

ProjectTree::root (  ) 

Definiert in Zeile 32 der Datei ProjectTree.class.php.

Benutzt AbstractTree::addTreeElement() und lang().

00033      {
00034           $treeElement = new TreeElement();
00035           $treeElement->text        = lang('GLOBAL_PROJECT');
00036           $treeElement->description = lang('GLOBAL_PROJECT');
00037           $treeElement->type        = 'project';
00038           $treeElement->icon        = 'project';
00039 
00040           $this->addTreeElement( $treeElement );
00041      }

ProjectTree::template ( id  ) 

Definiert in Zeile 358 der Datei ProjectTree.class.php.

Benutzt AbstractTree::addTreeElement(), lang(), Text::maxLaenge() und Html::url().

00359      {
00360 
00361           $t = new Template( $id );
00362           $t->load();
00363 
00364           // Anzeigen der Template-Elemente
00365           //
00366           foreach( $t->getElementIds() as $elementid )
00367           {
00368                $e = new Element( $elementid );
00369                $e->load();
00370 
00371                // "Code"-Element nur fuer Administratoren             
00372                if   ( $e->type == 'code' && !$this->userIsAdmin )
00373                     continue;
00374 
00375                $treeElement = new TreeElement();
00376                $treeElement->text        = $e->name;
00377                $treeElement->url         = Html::url('main','element',$elementid );
00378                $treeElement->icon        = 'el_'.$e->type;
00379                
00380                if   ( $e->desc == '' )
00381                     $desc = lang('GLOBAL_NO_DESCRIPTION_AVAILABLE');
00382                else
00383                     $desc = $e->desc; 
00384                $treeElement->description = $e->name.' ('.lang('EL_'.$e->type).'): '.Text::maxLaenge( 40,$desc );
00385                $treeElement->target      = 'cms_main';
00386                $this->addTreeElement( $treeElement );
00387           }
00388      }

ProjectTree::templates (  ) 

Definiert in Zeile 338 der Datei ProjectTree.class.php.

Benutzt AbstractTree::addTreeElement(), Template::getAll(), lang(), Text::maxLaenge() und Html::url().

00339      {
00340           foreach( Template::getAll() as $id=>$name )
00341           {
00342                $treeElement = new TreeElement();
00343 
00344                $t = new Template( $id );
00345                $t->load();
00346                $treeElement->text        = $t->name;
00347                $treeElement->url         = Html::url('main','template',$id,array(REQ_PARAM_TARGETSUBACTION=>'src'));
00348                $treeElement->icon        = 'template';
00349                $treeElement->target      = 'cms_main';
00350                $treeElement->internalId  = $id;
00351                $treeElement->type        = 'template';
00352                $treeElement->description = $t->name.' ('.lang('GLOBAL_TEMPLATE').' '.$id.'): '.htmlentities(Text::maxLaenge( 40,$t->src ));
00353                $this->addTreeElement( $treeElement );
00354           }
00355      }

ProjectTree::value ( id  ) 

Definiert in Zeile 91 der Datei ProjectTree.class.php.

Benutzt AbstractTree::addTreeElement(), lang() und Html::url().

00092      {
00093                     //echo "id: $id";
00094           if   ( $id != 0 )
00095           {
00096                $value = new Value();
00097                $value->loadWithId( $id );
00098           
00099                $objectid = intval($value->linkToObjectId);
00100                if   ( $objectid != 0 )
00101                {
00102                     $object = new Object( $objectid );
00103                     $object->load();
00104           
00105                     $treeElement = new TreeElement();
00106                     $treeElement->text       = $object->name;
00107                     if   ( in_array($object->getType(),array('page','folder')))
00108                     {
00109                          $treeElement->type       = $object->getType();
00110                          $treeElement->internalId = $object->objectid;
00111                     }
00112                     $treeElement->url  = Html::url('main',$object->getType(),$objectid);
00113                     $treeElement->icon = $object->getType();
00114      
00115                     $treeElement->description = lang('GLOBAL_'.$object->getType());
00116                     if   ( $object->desc != '' )
00117                          $treeElement->description .= ' - '.Text::maxLaenge( 25,$object->desc );
00118                     else
00119                          $treeElement->description .= ' - '.lang('GLOBAL_NO_DESCRIPTION_AVAILABLE');
00120                     $treeElement->target      = 'cms_main';
00121      
00122                     $this->addTreeElement( $treeElement );
00123                }
00124           }
00125      }


Dokumentation der Datenelemente

ProjectTree::$projectId

Definiert in Zeile 29 der Datei ProjectTree.class.php.

ProjectTree::$userIsProjectAdmin = false

Definiert in Zeile 30 der Datei ProjectTree.class.php.


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