Tutorial : Le développement d’extensions (partie 1)

Publié le Mis à jour le

Nous allons aborder le développement d’extension mais pas dans un article détaillé. Je dirais plutôt dans la rédaction de billets. C’est un blog, non ? Par contre, je vais probablement mettre à jour le tutorial existant sur Typo3journal : Développement d’extensions sous TYPO3
 
Pour rendre une extension dynamique, on lui passe souvent des paramètres. On peut citer tt_news comme exemple. En effet, on indique par exemple à l’extension l’emplacement d’un template pour l’affichage des résultats en frontend (c’est tellement mieux de séparer le contenu de la présentation !), le dossier système des enregistrements, le mode d’affichage (LIST, SINGLE, etc).
 
Bref, on passe généralement des valeurs dans les constantes que l’on récupère ensuite dans le setup. L’extension reçoit les valeurs passées dans le setup. Vous pouvez passer directement des valeurs depuis le setup mais dixit la modification des constantes depuis le menu ‘Constants editor". Et puis, c’est quand même plus explicite de passer par les constantes car on peut ajouter une légende pour chaque valeur.
 
Supposons les constantes suivantes pour mon extension qui a comme classe principale tx_extension_pi1.
 
On placera donc dans les constantes des lignes de type :
 
plugin.tx_extension_pi1 {
 
#cat=extension_pi1, type=string, label=Template pour l’affichage
 file.templateFile = fileadmin/template/ext/tmpl_fe.html
#cat=extension_pi1, type=int, label=Dossier système pour les enregistrements
items = 15
}
 
Ensuite, on récupère les constantes dans le setup
 
plugin.tx_extension_pi1 {
 
# Template pour l’affichage

templateFile = {$plugin.tx_extension_pi1.file.templateFile}

# Dossier système pour les enregistrements
sysFolder = {$plugin.tx_extension_pi1.items}
 
}
 
Comme vous le savez sans doute, les constantes sont précédées du signe ‘$’ et placées entourées d’accolades
 
Ensuite, dans le pi1 de notre extension, on récupère la configuration de la sorte :
$this->conf[‘templateFile’] pour le chemin vers notre fichier html
$this->conf[‘sysFolder’] pour récupérer l’id du dossier système des enregistrements.
 
Ainsi, si nous souhaitons par exemple lister les éléments contenus dans le dossier système ‘items’, il suffira d’utiliser la valeur de $this->conf[‘sysFolder’] dans la requête $res = $GLOBALS[‘TYPO3_DB’]->exec_SELECTquery […], clause WHERE 🙂
 
 
 
Publicités