hook postUpload : comment ça marche ?

Comment utiliser Contao
vinny38
Membre
Messages : 61
Inscription : 26 Jan 2011 12:45

hook postUpload : comment ça marche ?

Messagepar vinny38 » 26 Juil 2016 10:36

Bonjour,

je souhaiterais générer automatiquement une image JPG de la première page des PDFs uploadés en back-end.
Pour cela, je pense utiliser l'extension php "imagick".

Je suppose qu'il est opportun d'utiliser le hook postUpload de Contao (https://docs.contao.org/books/api/extensions/hooks/postUpload.html), mais je n'ai aucune expérience des hooks et aucune doc n'est disponible sur le sujet.

Par rapport au peu que j'ai compris, voici ce que j'ai fait :
J'ai dupliqué le dossier \system\modules\core\drivers que j'ai renommé, mettons "imagick", et placé dans \system\modules.
Dans ce nouveau dossier, j'ai créé un dossier config dans lequel j'ai enregistré un fichier config.php contenant le hook suivant :

Code : Tout sélectionner

<?php

// Put your custom configuration here
$GLOBALS['TL_HOOKS']['postUpload'][] = array('MyClass', 'myPostUpload');


Puis à la racine de mon dossier, un fichier MyClass.php contenant :

Code : Tout sélectionner

public function myPostUpload($arrFiles)
{
    // Do something
print ("test ok");
}


A ce stade, je reçois une erreur php quand je tente d'uploader un fichier depuis le backend :

Code : Tout sélectionner

Warning: in_array() expects parameter 2 to be array, null given in system\modules\core\library\Contao\System.php on line 140
#0 [internal function]: __error(2, 'in_array() expe...', 'C:\Program File...', 140, Array)
#1 system\modules\core\library\Contao\System.php(140): in_array('getInstance', NULL)
#2 system\modules\core\drivers\DC_Folder.php(975): Contao\System->import('MyClass')
#3 system\modules\core\classes\Backend.php(650): Contao\DC_Folder->move()
#4 system\modules\core\controllers\BackendMain.php(131): Contao\Backend->getBackendModule('files')
#5 contao\main.php(20): Contao\BackendMain->run()
#6 {main}

Fatal error: Class 'MyClass' not found in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\monsite\system\modules\core\library\Contao\System.php on line 140


Je rajoute donc un fichier autoload.php dans mon dossier config pour charger la classe MyClass :

Code : Tout sélectionner

<?php

/**
 * Register the classes
 */
ClassLoader::addClasses(array
(
   'Contao\Imagick' => 'system/modules/imagick/MyClass.php'
));


Hélas, cela ne change rien... même erreur PHP...

Si un(e) fin(e) connaisseur des Hooks pouvait me donner un petit coup de main à comprendre là où fait fait une grosse bouse, je lui en serait éternellement reconnaissant.

Merci d'avance
Vinny

NB : ma version de contao : 3.5.14

Revenir vers « Utilisation de Contao »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités