2017-06-30 5 views
0

Ich habe TYPO3 Version 7.6.18, und ich möchte Hook, die funktionieren, wenn alle Dateien auf der Website auf BE oder FE hochgeladen werden. Ist es möglich ? Hilf mir bitte, wie es benutzt?TYPO3 Hook für alle Dateien hochladen

+0

Hier ist das Beispiel für das Hochladen von Bildern für BE und Frontend. https://github.com/helhum/upload_example –

+0

Ich brauche Haken! Es ist nicht was ich will – Mikael

Antwort

2

Es gibt eigentlich zwei Antworten, die ich Ihnen hier geben kann:

Sie werden nicht den einen Haken für jede Datei-Upload im Frontend, weil das Hochladen im Frontend Teil von TYPO3 kann durch Erweiterungen und sie erfolgt kann es auf jede erdenkliche Weise implementieren und muss keinen Haken für andere Entwickler setzen. Also sry, für das Frontend gibt es keinen Haken.

Das Backend bietet jedoch einen Haken in der \TYPO3\CMS\Core\Utility\File\ExtendedFileUtility Klasse. Es kann ext_localconf.php wie so in einer Erweiterung registriert werden:

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_extfilefunc.php']['processData'][] = \MyVendor\MyExt\Hook\FileUtilityHook::class; 

wo die Klasse \MyVendor\MyExt\Hook\FileUtilityHook implementiert \TYPO3\CMS\Core\Utility\File\ExtendedFileUtilityProcessDataHookInterface Eine beispielhafte Implementierung könnte wie folgt aussehen:

class FileUtilityHook implements \TYPO3\CMS\Core\Utility\File\ExtendedFileUtilityProcessDataHookInterface{ 
    /** 
    * Post process hook that gets executed when all operations have been done 
    * 
    * @param string $action The action that got processed 
    * @param array $cmdArr The cmdArray contains data about the file, for example $cmdArr['data'] is the file/folder to delete 
    * @param array $result The results of all calls to the action handler, for example $result['delete'] = true 
    * @param \TYPO3\CMS\Core\Utility\File\ExtendedFileUtility $parentObject 
    */ 
    public function processData_postProcessAction ($action, array $cmdArr, array $result, \TYPO3\CMS\Core\Utility\File\ExtendedFileUtility $parentObject): void { 
     if($action === 'delete'){ 
      // something got deleted 
     } 
    } 
} 

Bitte beachten Sie, dass dies ein nachbearbeiten Haken ist, Daher wurden alle Operationen bereits ausgeführt, wenn dieser Haken verwendet wird.

+0

Vielen Dank! – Mikael