TYPO3 - ловушка / сигнал после отображения страницы - PullRequest
2 голосов
/ 06 июня 2019

Есть ли какой-нибудь хук / сигнал или что-то еще, чтобы я мог изменить окончательный HTML-код страницы веб-интерфейса, отображаемой TYPO3?

Мой вариант использования: Я хочу применить некоторые регулярные выражения и ведение журнала для ссылок, которые отображаются на всем веб-сайте - независимо от того, отображается ли ссылка с помощью tt_content bodytext (typolink или hardcoded) или с помощью плагина внешнего интерфейса, или через typoscript или, возможно, любым другим способом.

Ответы [ 2 ]

1 голос
/ 06 июня 2019

Объект PAGE в TypoScript имеет stdWrap, поэтому вы можете использовать userFunc там.

page = PAGE
page {
  ...
  stdWrap.userFunc = Your\NameSpace\YourClass->doStuff
}
0 голосов
/ 06 июня 2019

Если вы предпочитаете использовать реальные хуки вместо stdWrap, вы можете посмотреть на функцию generatePage_postProcessing , которая имеет три хука. В CoreApi Documentation вы можете найти способ использования хуков.

В вашем ext_localconf.php вы можете определить свое использование крючка. Как пример:

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['contentPostProc-all'][] = My\NameSpace\Hooks\PageGenerateHooks::class . '->contentPostProcAll'

Теперь в вашем классе ловушек вы можете изменить содержимое:

<?php
namespace My\Namespace\Hooks;

use TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController;

class PageGenerateHooks
{

  /*
   * \TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController $pObj
   */
  public function contentPostProcAll(TypoScriptFrontendController $pObj)
  {
     $pObj->content = preg_replace('#mySearch#i','myTerm', $pObj->content;
  }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...