openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

FolderShowAction.class.php (2553B)


      1 <?php
      2 namespace cms\action\folder;
      3 use cms\action\FolderAction;
      4 use cms\action\Method;
      5 use cms\generator\FileContext;
      6 use cms\generator\FileGenerator;
      7 use cms\generator\PageContext;
      8 use cms\generator\PageGenerator;
      9 use cms\generator\Producer;
     10 use cms\model\Element;
     11 use cms\model\Folder;
     12 use cms\model\Permission;
     13 use cms\model\BaseObject;
     14 use util\Html;
     15 
     16 
     17 class FolderShowAction extends FolderAction implements Method {
     18     public function view() {
     19 
     20         // Angabe Content-Type
     21         $this->setContentType('text/html' );
     22 
     23         $this->addHeader('X-Folder-Id'        ,$this->folder->folderid   );
     24         $this->addHeader('X-Id'               ,$this->folder->objectid   );
     25         $this->addHeader('Content-Description',$this->folder->filename() );
     26 
     27         echo '<html><body>';
     28         echo '<h1>'.$this->folder->filename.'</h1>';
     29         echo '<ul>';
     30 
     31 
     32 		if   ( $this->folder->parentid ) {
     33 			echo '<li><a href="'. Html::url('folder','show',$this->folder->parentid).'">..</a></li>';
     34 		}
     35 
     36 
     37 		// Schleife ueber alle Objekte in diesem Ordner
     38         foreach( $this->folder->getObjects() as $o )
     39         {
     40             /* @var $o BaseObject */
     41             $id = $o->objectid;
     42 			$o->load();
     43 
     44 			if   ( $o->hasRight(Permission::ACL_READ) )
     45             {
     46 				switch( $o->typeid ) {
     47 					case BaseObject::TYPEID_PAGE:
     48 						foreach( $this->folder->getProject()->getModelIds() as $modelId ) {
     49 							foreach( $this->folder->getProject()->getLanguageIds() as $languageId ) {
     50 								$previewContext = new PageContext( $o->objectid, Producer::SCHEME_PREVIEW );
     51 								$previewContext->languageId = $languageId;
     52 								$previewContext->modelId    = $modelId;
     53 								$context = new PageContext( $o->objectid, Producer::SCHEME_PUBLIC );
     54 								$context->languageId = $languageId;
     55 								$context->modelId    = $modelId;
     56 								$generator = new PageGenerator( $context );
     57 								echo '<li><a href="'. $previewContext->getLinkScheme()->linkToObject($o,$o).'">'.basename($generator->getPublicFilename()).'</a></li>';
     58 							}
     59 						}
     60 						break;
     61 					default:
     62 						echo '<li><a href="'. Html::url($o->getType(),'show',$o->objectid).'">'.$o->filename().'</a></li>';
     63 				}
     64 
     65                 //echo date( \cms\base\Language::lang('DATE_FORMAT'),$o->lastchangeDate );
     66                 //echo $o->lastchangeUser;
     67             } else {
     68 				// do not show anything.
     69 				// the existence of the unreadable ojbect should be not visible.
     70 			}
     71         }
     72 
     73         echo '</ul>';
     74         echo '</body></html>';
     75 
     76         exit;
     77     }
     78     public function post() {
     79     }
     80 }