openrat-cms

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

commit 14c91b80bce0bd9739138d93b9484dc85d225d20
parent 275936a2d74519d2920e08cff6081d9a3d7054ca
Author: dankert <openrat@jandankert.de>
Date:   Fri, 18 Mar 2022 14:02:20 +0100

New: Show all page links in the folder preview.

Diffstat:
Mmodules/cms/action/folder/FolderShowAction.class.php | 42++++++++++++++++++++++++++++++++++++++----
Mmodules/cms/generator/link/PreviewLink.class.php | 2+-
2 files changed, 39 insertions(+), 5 deletions(-)

diff --git a/modules/cms/action/folder/FolderShowAction.class.php b/modules/cms/action/folder/FolderShowAction.class.php @@ -2,6 +2,13 @@ namespace cms\action\folder; use cms\action\FolderAction; use cms\action\Method; +use cms\generator\FileContext; +use cms\generator\FileGenerator; +use cms\generator\PageContext; +use cms\generator\PageGenerator; +use cms\generator\Producer; +use cms\model\Element; +use cms\model\Folder; use cms\model\Permission; use cms\model\BaseObject; use util\Html; @@ -21,19 +28,46 @@ class FolderShowAction extends FolderAction implements Method { echo '<h1>'.$this->folder->filename.'</h1>'; echo '<ul>'; - // Schleife ueber alle Objekte in diesem Ordner + + if ( $this->folder->parentid ) { + echo '<li><a href="'. Html::url('folder','show',$this->folder->parentid).'">..</a></li>'; + } + + + // Schleife ueber alle Objekte in diesem Ordner foreach( $this->folder->getObjects() as $o ) { /* @var $o BaseObject */ $id = $o->objectid; + $o->load(); - if ( $o->hasRight(Permission::ACL_READ) ) + if ( $o->hasRight(Permission::ACL_READ) ) { - echo '<li><a href="'. Html::url($o->getType(),'show',$id).'">'.$o->filename.'</a></li>'; + switch( $o->typeid ) { + case BaseObject::TYPEID_PAGE: + foreach( $this->folder->getProject()->getModelIds() as $modelId ) { + foreach( $this->folder->getProject()->getLanguageIds() as $languageId ) { + $previewContext = new PageContext( $o->objectid, Producer::SCHEME_PREVIEW ); + $previewContext->languageId = $languageId; + $previewContext->modelId = $modelId; + $context = new PageContext( $o->objectid, Producer::SCHEME_PUBLIC ); + $context->languageId = $languageId; + $context->modelId = $modelId; + $generator = new PageGenerator( $context ); + echo '<li><a href="'. $previewContext->getLinkScheme()->linkToObject($o,$o).'">'.basename($generator->getPublicFilename()).'</a></li>'; + } + } + break; + default: + echo '<li><a href="'. Html::url($o->getType(),'show',$o->objectid).'">'.$o->filename().'</a></li>'; + } //echo date( \cms\base\Language::lang('DATE_FORMAT'),$o->lastchangeDate ); //echo $o->lastchangeUser; - } + } else { + // do not show anything. + // the existence of the unreadable ojbect should be not visible. + } } echo '</ul>'; diff --git a/modules/cms/generator/link/PreviewLink.class.php b/modules/cms/generator/link/PreviewLink.class.php @@ -35,7 +35,7 @@ class PreviewLink implements LinkFormat /** * Calculates the Preview Link to an object. * - * @param $from \cms\model\BaseObject this is the source object from which the links points to $to. + * @param $from \cms\model\BaseObject unused in preview. * @param $to \cms\model\BaseObject the target where the link points to. */ public function linkToObject( BaseObject $from, BaseObject $to )