| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- <?php
- namespace Opentalent\OtTemplating\ViewHelpers\Request;
- use Closure;
- use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
- use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
- /**
- * Returns the current url with a 'page=' argument set up or updated
- *
- * {namespace ot=Opentalent\OtTemplating\ViewHelpers}
- *
- * {ot:request.withPage(page: 1)}
- *
- * @package Opentalent\OtTemplating\ViewHelpers
- */
- class WithPageViewHelper extends AbstractViewHelper {
- /**
- * -- This method is expected by Fluid --
- * Declares the viewhelper's parameters
- */
- public function initializeArguments()
- {
- $this->registerArgument('page',
- 'int',
- "The page's number",
- true);
- }
- /**
- * -- This method is expected by Fluid --
- * Renders the content as html
- *
- * @param array $arguments
- * @param Closure $renderChildrenClosure
- * @param RenderingContextInterface $renderingContext
- * @return string
- */
- public static function renderStatic(
- array $arguments,
- Closure $renderChildrenClosure,
- RenderingContextInterface $renderingContext
- ) {
- $page = $arguments['page'];
- $request = $GLOBALS['TYPO3_REQUEST'];
- $uri = $request->getUri();
- $query = $uri->getQuery();
- if (preg_match("/.*page=\d+.*/", $query)) {
- $query = preg_replace(
- "/page=\d+/",
- "page=" . $page,
- $query
- );
- } elseif ($query != '') {
- $query .= "&page=" . $page;
- } else {
- $query .= "page=" . $page;
- }
- return (string)$uri->withQuery($query);
- }
- }
|