<?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_introtext"
 */
class MrmBeCmThemaDerWochePreviewRenderer 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_themaderwoche') {

      $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']);

      $days = '';
      $days .= 'Montag: '.($flex["monday"] != '' ? '&check;' : '&times;').'<br />';
      $days .= 'Dienstag: '.($flex["tuesday"] != '' ? '&check;' : '&times;').'<br />';
      $days .= 'Mittwoch: '.($flex["wednesday"] != '' ? '&check;' : '&times;').'<br />';
      $days .= 'Donnerstag: '.($flex["thursday"] != '' ? '&check;' : '&times;').'<br />';
      $days .= 'Freitag: '.($flex["friday"] != '' ? '&check;' : '&times;').'<br />';
      $days .= 'Samstag: '.($flex["saturday"] != '' ? '&check;' : '&times;').'<br />';
      $days .= 'Sonntag: '.($flex["sunday"] != '' ? '&check;' : '&times;');

      $kw = new \DateTime();
      $kw->setTimestamp($flex["starttime"]);
      $kw = $kw->format('W');

      $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', '').' (KW '.$kw.'):</strong> '.$flex['key'].'<br /><em style="white-space:nowrap; overflow:hidden;text-overflow: ellipsis;">'.$days.'</em></div></div>';

      $drawItem = false;
    }
  }
}
