<?php /* * This file is part of the package thucke/th-rating. * * For the full copyright and license information, please read the * LICENSE file that was distributed with this source code. */ namespace WapplerSystems\BookmarksLikesRatings\ViewHelpers; use TYPO3\CMS\Core\Log\LogLevel; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface; use TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder; use TYPO3\CMS\Extbase\Object\ObjectManager; use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer; use TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController; use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper; use TYPO3Fluid\Fluid\Core\ViewHelper\TagBuilder; use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic; /** * * */ class LikeViewHelper extends AbstractViewHelper { protected $escapeOutput = false; /** * @var \WapplerSystems\BookmarksLikesRatings\Service\ExtensionHelperService */ protected $extensionHelperService; public function initializeArguments(): void { $this->registerArgument('table', 'string', 'The rating tablename'); $this->registerArgument('uid', 'integer', 'The uid of the object', true); $this->registerArgument('class', 'string', 'The class', true); $this->registerArgument('id', 'string', 'The id'); } /** * Renders the ratingView * * @param array $arguments * @param \Closure $renderChildrenClosure * @param RenderingContextInterface $renderingContext * @return mixed * @throws \TYPO3Fluid\Fluid\Core\ViewHelper\Exception * @noinspection PhpFullyQualifiedNameUsageInspection */ public static function renderStatic( array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext ) { $tagBuilder = new TagBuilder('button'); if ($arguments['id']) { $tagBuilder->addAttribute('id',$arguments['id']); } $tagBuilder->addAttribute('class',$arguments['class']); $tagBuilder->addAttribute('data-table',$arguments['table']); $tagBuilder->addAttribute('data-uid',$arguments['uid']); $tagBuilder->addAttribute('data-blr-type','like'); /** @var UriBuilder $uriBuilder */ $uriBuilder = $renderingContext->getControllerContext()->getUriBuilder(); $uriBuilder->reset(); $uriBuilder->setTargetPageType(874645); $tagBuilder->addAttribute('data-status-url',$uriBuilder->buildFrontendUri()); $uriBuilder->reset(); $uriBuilder->setTargetPageType(874644); $tagBuilder->addAttribute('data-toggle-url',$uriBuilder->buildFrontendUri()); $tagBuilder->setContent((string)$renderChildrenClosure()); return $tagBuilder->render(); } }