<?php
namespace Meramo\mrm_be\Hooks\PageLayoutView;

/*
 * This file is part of the TYPO3 CMS project.
 *
 * It is free software; you can redistribute it and/or modify it under
 * the terms of the GNU General Public License, either version 2
 * of the License, or any later version.
 *
 * For the full copyright and license information, please read the
 * LICENSE.txt file that was distributed with this source code.
 *
 * The TYPO3 project - inspiring people to share!
 */

use \TYPO3\CMS\Core\Utility\GeneralUtility;
use \TYPO3\CMS\Core\Service\FlexFormService;
use \TYPO3\CMS\Backend\View\PageLayoutViewDrawItemHookInterface;
use \TYPO3\CMS\Backend\View\PageLayoutView;

/**
 * Contains a preview rendering for the page module of CType="mrm_be_cm_statementbox"
 */
class MrmBeCmStatementboxPreviewRenderer implements PageLayoutViewDrawItemHookInterface
{

   /**
    * Preprocesses the preview rendering of a content element of type "My new content element"
    *
    * @param \TYPO3\CMS\Backend\View\PageLayoutView $parentObject Calling parent object
    * @param bool $drawItem Whether to draw the item using the default functionality
    * @param string $headerContent Header content
    * @param string $itemContent Item content
    * @param array $row Record row of tt_content
    *
    * @return void
    */
   public function preProcess(
      PageLayoutView &$parentObject,
      &$drawItem,
      &$headerContent,
      &$itemContent,
      array &$row
   )
   {
      if ($row['CType'] === 'mrm_be_cm_statementbox') {
        $headerContent = '<b>'.\TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('LLL:EXT:mrm_be/Resources/Private/Language/locallang_ttc.xlf:'.$row['CType'].'.title', '').'</b>';
        $ffs = GeneralUtility::makeInstance(FlexFormService::class);
        $flex = $ffs->convertFlexFormContentToArray($row['pi_flexform']);

        $dynamicContent = "<span style=\"flex-direction: row; display: flex;\">";
        $dynContentCounter = 0;
        while(1){
          $dynContentCounter++;
          if(!isset($flex['text'.$dynContentCounter])) break;
          $dynamicContent .= '<i style="margin: 5px; padding: 5px;"><strong>Zitat '.$dynContentCounter.':</strong><br />Text: '.($flex["text".$dynContentCounter] != '' ? '&check;' : '&times;').'<br/>Bild: '.($flex["image".$dynContentCounter] != 0 ? '&check;' : '&times;').'<br />Name: '.($flex["name".$dynContentCounter] != '' ? '&check;' : '&times;').'</i>';
        }
        $dynamicContent .= "</span>";

        $itemContent .= '<div style="display: flex; flex-direction: row; justify-content: flex-start;"><img src="/typo3conf/ext/mrm_be/Resources/Public/Icons/'.$row['CType'].'.svg" style="width: 32px; height: 32px; margin-right: 6px;"><div style="display: flex; flex-direction: column; min-width: 0;"><strong>'.\TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('LLL:EXT:mrm_be/Resources/Private/Language/locallang_ttc.xlf:'.$row['CType'].'.title', '').':</strong>'.$dynamicContent.'</div></div>';

        $drawItem = false;


        /*
        file_put_contents('/var/www/html/typo3temp/debug.log', json_encode($flex, JSON_PRETTY_PRINT).PHP_EOL, FILE_APPEND);
        file_put_contents('/var/www/html/typo3temp/debug.log', $itemContent.PHP_EOL, FILE_APPEND);
        file_put_contents('/var/www/html/typo3temp/debug.log', '----'.PHP_EOL, FILE_APPEND);
        */
      }
   }
}
