- Plan du Site | Contact |
|
Intégration de code PHP avec Typo3Cet article est destiné à répondre à une question que l'on se pose souvent lors de l'intégration de sites avec Typo3 : comment intégrer son propre code PHP dans les pages.
A cela il existe - pour le moins - 3 solutions : - modifier une extension existante, - créer une nouvelle extension, - appeller un script PHP "directement" depuis une page.
Jusqu'à il y a encore peu de temps il était possible de réaliser cette opération directement en utilisant une petite extension appelée php_script. Bien evidemment, cette extension n'est plus d'actualité dans le repository actuel de typo3.org (certainement pour des raisons de sécurité). Donc pour intégrer son script il nous reste et c'est l'objet des paragraphes suivants l'utilisation de fonctions utilisateur.
Globalement, cet emploi est relativement simple, on appelle dans le typoscript de son template la fonction que l'on veut exécuter, par exemple ici : la fonction makeTableau encapsulée dans la classe myclass.
includeLibs.user_myclass = fileadmin/templates/libs/class.user_myclass.php lib.Tableau = USER lib.Tableau.userFunc = user_myclass->makeTableau
Comme on peut le voir ici, la librairie class.user_myclass.php pourra être située à l'endroit de l'arborescence que vous aurez défini dans votre architecture.
Il y a quelques contraintes à respecter pour que tout fonctionne correctement (ceci peut évoluer avec les futures versions de Typo3): - obligation d'ancapsuler la fonction dans une classe - la librairie doit s'appeller user_* (* = nom de la classe)
Exemple :
<?php class user_myclass {
function user_myclass(){//constructeur de classe - PHP4
function makeTableau(){ // Traitement des Données etc... return $contenu }
} ?>
Pour finir et afficher les résultats de makeTableau, il suffit de "mapper" le champ lib.Tableau avec templavoilà comme un champ de type Typoscript Object Path en prenant bien soin de nommer la variable comme il se doit (lib.Tableau !). NoteSi cet article vous a été de quelque secours, n'hésitez pas à laisser un message sur notre Blog / FAQ, il est là pour cela ! Merci. |
|
||||||
Services | Solutions | Formations | Portfolio | Accès Client |