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:
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 )