1<?php
2namespace TYPO3\CMS\Frontend\ContentObject;
3
4/*
5 * This file is part of the TYPO3 CMS project.
6 *
7 * It is free software; you can redistribute it and/or modify it under
8 * the terms of the GNU General Public License, either version 2
9 * of the License, or any later version.
10 *
11 * For the full copyright and license information, please read the
12 * LICENSE.txt file that was distributed with this source code.
13 *
14 * The TYPO3 project - inspiring people to share!
15 */
16
17/**
18 * interface for classes which hook into \TYPO3\CMS\Frontend\ContentObject and do additional stdWrap processing
19 */
20interface ContentObjectStdWrapHookInterface
21{
22    /**
23     * Hook for modifying $content before core's stdWrap does anything
24     *
25     * @param string $content Input value undergoing processing in this function. Possibly substituted by other values fetched from another source.
26     * @param array $configuration TypoScript stdWrap properties
27     * @param ContentObjectRenderer $parentObject Parent content object
28     * @return string Further processed $content
29     */
30    public function stdWrapPreProcess($content, array $configuration, ContentObjectRenderer &$parentObject);
31
32    /**
33     * Hook for modifying $content after core's stdWrap has processed setContentToCurrent, setCurrent, lang, data, field, current, cObject, numRows, filelist and/or preUserFunc
34     *
35     * @param string $content Input value undergoing processing in this function. Possibly substituted by other values fetched from another source.
36     * @param array $configuration TypoScript stdWrap properties
37     * @param ContentObjectRenderer $parentObject Parent content object
38     * @return string Further processed $content
39     */
40    public function stdWrapOverride($content, array $configuration, ContentObjectRenderer &$parentObject);
41
42    /**
43     * Hook for modifying $content after core's stdWrap has processed override, preIfEmptyListNum, ifEmpty, ifBlank, listNum, trim and/or more (nested) stdWraps
44     *
45     * @param string $content Input value undergoing processing in this function. Possibly substituted by other values fetched from another source.
46     * @param array $configuration TypoScript "stdWrap properties".
47     * @param ContentObjectRenderer $parentObject Parent content object
48     * @return string Further processed $content
49     */
50    public function stdWrapProcess($content, array $configuration, ContentObjectRenderer &$parentObject);
51
52    /**
53     * Hook for modifying $content after core's stdWrap has processed anything but debug
54     *
55     * @param string $content Input value undergoing processing in this function. Possibly substituted by other values fetched from another source.
56     * @param array $configuration TypoScript stdWrap properties
57     * @param ContentObjectRenderer $parentObject Parent content object
58     * @return string Further processed $content
59     */
60    public function stdWrapPostProcess($content, array $configuration, ContentObjectRenderer &$parentObject);
61}
62