File modules/cms/action/page/PageInfoAction.class.php

Last commit: Sat Oct 17 02:16:28 2026 +0200	Jan Dankert	Refactoring: Removed empty view() and post() methods; OpenAPI cleanup, removed these unused paths.
1 <?php 2 namespace cms\action\page; 3 use cms\action\Method; 4 use cms\action\object\ObjectInfoAction; 5 use cms\action\PageAction; 6 use cms\generator\PageContext; 7 use cms\generator\PageGenerator; 8 use cms\generator\Producer; 9 use cms\generator\Publisher; 10 use cms\model\BaseObject; 11 use cms\model\File; 12 use cms\model\Permission; 13 use cms\model\Template; 14 use util\Html; 15 16 class PageInfoAction extends PageAction implements Method { 17 public function view() { 18 $this->setTemplateVar('id',$this->page->objectid); 19 20 $parentAction = new ObjectInfoAction(); 21 $parentAction->request = $this->request; 22 $parentAction->response = $this->response; 23 $parentAction->init(); 24 $parentAction->view(); 25 26 $this->page->load(); 27 28 $this->setTemplateVars( $this->page->getProperties() ); 29 30 $alias = $this->page->getAliasForLanguage(null); 31 $this->setTemplateVar( 'alias', $alias->full_filename() ); 32 33 $languages = $this->page->getProject()->getLanguages(); 34 $models = $this->page->getProject()->getModels(); 35 $languagesVars = array(); 36 37 foreach( $languages as $id => $name ) 38 { 39 $this->page->load(); 40 41 $languagesVar = $this->page->getProperties(); 42 $languagesVar['languagename'] = $name; 43 $languagesVar['languageid' ] = $id; 44 $alias = $this->page->getAliasForLanguage( $id ); 45 if ( $alias->isPersistent() ) 46 $languagesVar['alias' ] = $alias->full_filename(); 47 else 48 $languagesVar['alias' ] = ''; 49 50 $languagesVars[] = $languagesVar; 51 } 52 53 $this->setTemplateVar('languages',$languagesVars ); 54 55 $filenames = []; 56 foreach( $languages as $languageid=>$language ) 57 foreach( $models as $modelid=>$model ) { 58 $pagecontext = new PageContext( $this->page->objectid,Producer::SCHEME_PUBLIC ); 59 $pagecontext->languageId = $languageid; 60 $pagecontext->modelId = $modelid; 61 62 $pageGenerator = new PageGenerator( $pagecontext ); 63 $filenames[] = [ 64 'filename' => $pageGenerator->getPublicFilename(), 65 'mimetype' => $pageGenerator->getMimeType(), 66 'modelid' => $modelid, 67 'modelname' => $model, 68 'languageid' => $languageid, 69 'languagename'=> $language, 70 ]; 71 } 72 73 $this->setTemplateVar('filenames',$filenames ); 74 $this->setTemplateVar('is_valid' ,$this->page->isValid() ); 75 76 77 if ( $this->userIsProjectAdmin() ) 78 { 79 $this->setTemplateVar('templateid',$this->page->templateid); 80 } 81 82 $template = new Template( $this->page->templateid ); 83 $template->load(); 84 $this->setTemplateVar('template_name',$template->name ); 85 86 $generator = new PageGenerator( $this->createPageContext( Producer::SCHEME_PUBLIC) ); 87 88 $this->setTemplateVar('tmp_filename' ,$generator->getPublicFilename() ); 89 90 $references = []; 91 92 // Schleife ueber alle Objekte in diesem Ordner 93 foreach( $this->page->getDependentObjectIds() as $id ) 94 { 95 /* @var BaseObject */ 96 $o = new BaseObject( $id ); 97 $o->load(); 98 99 if ( $o->hasRight(Permission::ACL_READ) ) 100 { 101 $references[$id]['name'] = $o->getDefaultName()->name; 102 $references[$id]['type'] = $o->getType(); 103 $references[$id]['id' ] = $id; 104 105 $references[$id]['date'] = $o->lastchangeDate; 106 $references[$id]['user'] = $o->lastchangeUser; 107 } 108 } 109 110 $this->setTemplateVar( 'references',$references ); 111 112 $this->setTemplateVar( 'tags' , $this->baseObject->getTags() ); 113 } 114 115 }
Download modules/cms/action/page/PageInfoAction.class.php
History Sat, 17 Oct 2026 02:16:28 +0200 Jan Dankert Refactoring: Removed empty view() and post() methods; OpenAPI cleanup, removed these unused paths. Sat, 17 Oct 2026 01:14:30 +0200 Jan Dankert New: Using a structured class for the API-Response. The output for GET-Requests is now without the "output" layer. Tue, 14 May 2024 23:48:28 +0200 Jan Dankert Enabling Fulltext-Search in Settings Thu, 16 Feb 2023 23:18:09 +0100 Jan Dankert Fix: Tags for pages. Sun, 5 Dec 2021 20:33:24 +0100 dankert Cleanup: Removed unusable properties from class 'Value' and 'BaseObject'. Tue, 9 Mar 2021 09:17:27 +0100 Jan Dankert New: Show all links ('references') to the current object. Thu, 4 Mar 2021 02:24:45 +0100 Jan Dankert New: The calculation of the mime types should be done in the generators. Thu, 4 Mar 2021 02:00:11 +0100 Jan Dankert New: Show all page filenames in info. Wed, 18 Nov 2020 01:46:36 +0100 Jan Dankert Refactoring of model classes: New method persist() and some other cleanups. Tue, 17 Nov 2020 23:51:00 +0100 Jan Dankert Refactoring: Every Actionmethod has now its own class.