[TASK] Move all marker-based logic from cObj to MarkerBasedTemplateService
[Packages/TYPO3.CMS.git] / typo3 / sysext / frontend / Classes / ContentObject / TemplateContentObject.php
index 2a6ccba..40f2944 100644 (file)
@@ -15,6 +15,7 @@ namespace TYPO3\CMS\Frontend\ContentObject;
  */
 
 use TYPO3\CMS\Core\Html\HtmlParser;
+use TYPO3\CMS\Core\Service\MarkerBasedTemplateService;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 
 /**
@@ -22,6 +23,22 @@ use TYPO3\CMS\Core\Utility\GeneralUtility;
  */
 class TemplateContentObject extends AbstractContentObject
 {
+    /**
+     * @var MarkerBasedTemplateService
+     */
+    protected $templateService;
+
+    /**
+     * Default constructor, which also instantiates the MarkerBasedTemplateService.
+     *
+     * @param ContentObjectRenderer $cObj
+     */
+    public function __construct(ContentObjectRenderer $cObj)
+    {
+        $this->templateService = GeneralUtility::makeInstance(MarkerBasedTemplateService::class);
+        parent::__construct($cObj);
+    }
+
     /**
      * Rendering the cObject, TEMPLATE
      *
@@ -45,7 +62,7 @@ class TemplateContentObject extends AbstractContentObject
         $content = $this->cObj->cObjGetSingle($conf['template'], $conf['template.'], 'template');
         $workOnSubpart = isset($conf['workOnSubpart.']) ? $this->cObj->stdWrap($conf['workOnSubpart'], $conf['workOnSubpart.']) : $conf['workOnSubpart'];
         if ($workOnSubpart) {
-            $content = $this->cObj->getSubpart($content, $PRE . $workOnSubpart . $POST);
+            $content = $this->templateService->getSubpart($content, $PRE . $workOnSubpart . $POST);
         }
         // Fixing all relative paths found:
         if ($conf['relPathPrefix']) {
@@ -68,10 +85,10 @@ class TemplateContentObject extends AbstractContentObject
                 if (is_array($conf['subparts.'])) {
                     foreach ($conf['subparts.'] as $theKey => $theValue) {
                         if (!strstr($theKey, '.')) {
-                            $subpart = $this->cObj->getSubpart($content, $PRE . $theKey . $POST);
+                            $subpart = $this->templateService->getSubpart($content, $PRE . $theKey . $POST);
                             if ($subpart) {
                                 $this->cObj->setCurrentVal($subpart);
-                                $content = $this->cObj->substituteSubpart($content, $PRE . $theKey . $POST, $this->cObj->cObjGetSingle($theValue, $conf['subparts.'][$theKey . '.'], 'subparts.' . $theKey), true);
+                                $content = $this->templateService->substituteSubpart($content, $PRE . $theKey . $POST, $this->cObj->cObjGetSingle($theValue, $conf['subparts.'][$theKey . '.'], 'subparts.' . $theKey), true);
                             }
                         }
                     }
@@ -80,10 +97,10 @@ class TemplateContentObject extends AbstractContentObject
                 if (is_array($conf['wraps.'])) {
                     foreach ($conf['wraps.'] as $theKey => $theValue) {
                         if (!strstr($theKey, '.')) {
-                            $subpart = $this->cObj->getSubpart($content, $PRE . $theKey . $POST);
+                            $subpart = $this->templateService->getSubpart($content, $PRE . $theKey . $POST);
                             if ($subpart) {
                                 $this->cObj->setCurrentVal($subpart);
-                                $content = $this->cObj->substituteSubpart($content, $PRE . $theKey . $POST, explode('|', $this->cObj->cObjGetSingle($theValue, $conf['wraps.'][$theKey . '.'], 'wraps.' . $theKey)), true);
+                                $content = $this->templateService->substituteSubpart($content, $PRE . $theKey . $POST, explode('|', $this->cObj->cObjGetSingle($theValue, $conf['wraps.'][$theKey . '.'], 'wraps.' . $theKey)), true);
                             }
                         }
                     }
@@ -94,7 +111,7 @@ class TemplateContentObject extends AbstractContentObject
                 if (is_array($conf['subparts.'])) {
                     foreach ($conf['subparts.'] as $theKey => $theValue) {
                         if (!strstr($theKey, '.')) {
-                            $subpart = $this->cObj->getSubpart($content, $PRE . $theKey . $POST);
+                            $subpart = $this->templateService->getSubpart($content, $PRE . $theKey . $POST);
                             if ($subpart) {
                                 $GLOBALS['TSFE']->register['SUBPART_' . $theKey] = $subpart;
                                 $subparts[$theKey]['name'] = $theValue;
@@ -144,10 +161,10 @@ class TemplateContentObject extends AbstractContentObject
                 // Substitution
                 $substMarksSeparately = isset($conf['substMarksSeparately.']) ? $this->cObj->stdWrap($conf['substMarksSeparately'], $conf['substMarksSeparately.']) : $conf['substMarksSeparately'];
                 if ($substMarksSeparately) {
-                    $content = $this->cObj->substituteMarkerArrayCached($content, [], $subpartArray, $subpartWraps);
-                    $content = $this->cObj->substituteMarkerArray($content, $markerArray);
+                    $content = $this->templateService->substituteMarkerArrayCached($content, [], $subpartArray, $subpartWraps);
+                    $content = $this->templateService->substituteMarkerArray($content, $markerArray);
                 } else {
-                    $content = $this->cObj->substituteMarkerArrayCached($content, $markerArray, $subpartArray, $subpartWraps);
+                    $content = $this->templateService->substituteMarkerArrayCached($content, $markerArray, $subpartArray, $subpartWraps);
                 }
             }
         }