commit 66c6090d069dedbf4fc93f74dc324fec541198c0
parent 6963689368d129bd306273174bc39a97a9929f59
Author: Jan Dankert <develop@jandankert.de>
Date: Tue, 14 Jun 2022 23:41:16 +0200
Fix: A method is really better here...
Diffstat:
1 file changed, 59 insertions(+), 63 deletions(-)
diff --git a/modules/cms/generator/ValueGenerator.class.php b/modules/cms/generator/ValueGenerator.class.php
@@ -192,68 +192,6 @@ class ValueGenerator extends BaseGenerator
{
case Element::ELEMENT_TYPE_INSERT:
-
- /**
- * @param $pageContext PageContext
- * @param $element Element
- * @param $oid integer
- * @return string
- */
- if (!function_exists('generatePageValue') ) {
- function generatePageValue($pageContext, $element, $oid ) {
-
- $o = new BaseObject( $oid );
- $o->load();
-
- switch( $o->typeid )
- {
- case BaseObject::TYPEID_FOLDER:
- $f = new Folder( $oid );
- $value = '';
- foreach( $f->getObjectIds() as $childOid ) {
- $value .= generatePageValue( $pageContext,$element,$childOid );
- }
- return $value;
-
- case BaseObject::TYPEID_PAGE:
-
- $subtype = $element->subtype;
- if ( $pageContext->scheme == Producer::SCHEME_PREVIEW )
- $subtype = null; // In preview the SSI/ESI are not available.
-
- switch( $subtype )
- {
- case ValueGenerator::INSERT_INLINE:
- default:
-
- $newPageContext = clone $pageContext;
- $newPageContext->objectId = $oid;
- $pageGenerator = new PageGenerator( $newPageContext );
-
- return $pageGenerator->getCache()->get();
-
- case ValueGenerator::INSERT_SSI:
- $linkScheme = $pageContext->getLinkScheme();
- return '<!--#include virtual="'.$linkScheme->linkToObject( new BaseObject($pageContext->sourceObjectId),(new BaseObject($oid))->load()).'" -->';
-
- case ValueGenerator::INSERT_ESI:
- $linkScheme = $pageContext->getLinkScheme();
- return '<esi:include src="'.$linkScheme->linkToObject( new BaseObject($pageContext->sourceObjectId),(new BaseObject($oid))->load()).'"/>';
- }
-
- case BaseObject::TYPEID_LINK:
- $l = new Link( $oid );
- $l->load();
-
- return generatePageValue( $pageContext,$element,$l->linkedObjectId );
- default:
- return '';
- }
-
- }
- }
-
-
$objectid = $value->linkToObjectId;
if ( ! $objectid )
@@ -262,7 +200,7 @@ class ValueGenerator extends BaseGenerator
if ( ! BaseObject::available( $objectid) )
break;
- $inhalt = generatePageValue( $pageContext,$element,$objectid );
+ $inhalt = $this->generatePageValue( $pageContext,$element,$objectid );
if ( false&& $value->publisher->isSimplePreview() )
{
@@ -1235,4 +1173,62 @@ class ValueGenerator extends BaseGenerator
return $inhalt;
}
+ /**
+ * @param $pageContext PageContext
+ * @param $element Element
+ * @param $oid integer
+ * @return string
+ */
+ protected function generatePageValue($pageContext, $element, $oid ) {
+
+ $o = new BaseObject( $oid );
+ $o->load();
+
+ switch( $o->typeid )
+ {
+ case BaseObject::TYPEID_FOLDER:
+ $f = new Folder( $oid );
+ $value = '';
+ foreach( $f->getObjectIds() as $childOid ) {
+ $value .= $this->generatePageValue( $pageContext,$element,$childOid );
+ }
+ return $value;
+
+ case BaseObject::TYPEID_PAGE:
+
+ $subtype = $element->subtype;
+ if ( $pageContext->scheme == Producer::SCHEME_PREVIEW )
+ $subtype = null; // In preview the SSI/ESI are not available.
+
+ switch( $subtype )
+ {
+ case ValueGenerator::INSERT_INLINE:
+ default:
+
+ $newPageContext = clone $pageContext;
+ $newPageContext->objectId = $oid;
+ $pageGenerator = new PageGenerator( $newPageContext );
+
+ return $pageGenerator->getCache()->get();
+
+ case ValueGenerator::INSERT_SSI:
+ $linkScheme = $pageContext->getLinkScheme();
+ return '<!--#include virtual="'.$linkScheme->linkToObject( new BaseObject($pageContext->sourceObjectId),(new BaseObject($oid))->load()).'" -->';
+
+ case ValueGenerator::INSERT_ESI:
+ $linkScheme = $pageContext->getLinkScheme();
+ return '<esi:include src="'.$linkScheme->linkToObject( new BaseObject($pageContext->sourceObjectId),(new BaseObject($oid))->load()).'"/>';
+ }
+
+ case BaseObject::TYPEID_LINK:
+ $l = new Link( $oid );
+ $l->load();
+
+ return $this->generatePageValue( $pageContext,$element,$l->linkedObjectId );
+ default:
+ return '';
+ }
+
+ }
+
}
\ No newline at end of file