Подтвердить что ты не робот

TYPO3: Крюк после создания или редактирования страницы

Я ищу крючок, который вызывается после создания страницы или изменяется на страницах типа "hide page in nav", "deactivate page" или "move/delete page"

Знает ли кто-нибудь о нем?

Спасибо!

4b9b3361

Ответ 1

Эти Крюки расположены в t3lib/class.t3lib_tcemain.php

Ниже перечислены только некоторые из них:

  • processDatamap_preProcessFieldArray
  • processDatamap_postProcessFieldArray
  • hook_processDatamap_afterDatabaseOperations
  • processDatamap_afterAllOperations

В вашем случае, я думаю, вы могли бы использовать processDatamap_postProcessFieldArray.

Пример того, как включить его в ext_localconf.php:

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass'][] = 'EXT:your_extension/hooks/class.tx_yourextension_tcemain.php:tx_yourextension_tcemain';

Пример класса:

<?php
    class tx_yourextension_tcemain {
            function processDatamap_postProcessFieldArray($status, $table, $id, &$fieldArray, &$pObj) {
                if($table == 'pages' && $status =='new') {
                    // do some stuff
                }
            }
    }
?>

С $table вы можете проверить, какая таблица изменена. $status позволяет вам получить текущее действие, например "новое", "обновление" или "удалить".

Пример для TYPO3 > 6 с пространствами имен на другом крюке:

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/tslib/class.tslib_menu.php']['filterMenuPages']['YourExtension\\Hook\\FilterMenuPages'] = 'EXT:your_extension/Classes/Hook/FilterMenuPages.php:YourExtension\Hook\FilterMenuPages';

Ответ 2

Для версии TYPO3 7.6

Напишите следующее в ext_localconf.php

$GLOBALS ['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass']['extkey'] = 'Vendor\\Extension\\Hook\\TCEmainHook';
$GLOBALS ['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processCmdmapClass']['extkey'] = 'Vendor\\Extension\\Hook\\TCEmainHook';

Создайте класс hook /Classes/Hook/TCEmainHook.php, выберите подходящую функцию из списка ниже

<?php
namespace Vendor\Extension\Hook;

class TCEmainHook {
    public function processCmdmap_preProcess($command, $table, $id, $value, \TYPO3\CMS\Core\DataHandling\DataHandler &$pObj) {}
    public function processCmdmap_postProcess($command, $table, $id, $value, \TYPO3\CMS\Core\DataHandling\DataHandler &$pObj) {}
    public function processDatamap_preProcessFieldArray(array &$fieldArray, $table, $id, \TYPO3\CMS\Core\DataHandling\DataHandler &$pObj) {}
    public function processCmdmap_deleteAction($table, $id, $recordToDelete, $recordWasDeleted=NULL, \TYPO3\CMS\Core\DataHandling\DataHandler &$pObj) {}
    public function processDatamap_afterAllOperations(\TYPO3\CMS\Core\DataHandling\DataHandler &$pObj) {}
    public function processDatamap_postProcessFieldArray($status, $table, $id, array &$fieldArray, \TYPO3\CMS\Core\DataHandling\DataHandler &$pObj) {}
    public function processDatamap_afterDatabaseOperations($status, $table, $id, array $fieldArray, \TYPO3\CMS\Core\DataHandling\DataHandler &$pObj) {}
}

Ответ 3

Существует расширение dmc_hooklist, в котором перечислены все перехватчики. (используется несколько лет назад)

Или посмотрите на t3lib/class.t3lib_tcemain.php, есть нужные вам крючки.