Guide:Développer avec Typo3

Extension Key: none

Copyright 2003, Jean-Gaël Rouchon, <jean-gael@rouchon.org>

This document is published under the Open Content License

available from http://www.opencontent.org/opl.shtml

The content of this document is related to TYPO3

- a GNU/GPL CMS/Framework available from www.typo3.com

Table of Contents

Guide:Développer avec Typo3	1

Développer une extension de Front-End	2

Développer une extension de Front-End

Mettre en place les éléments

Aller dans l'extension manager :

Activer le kickstarter

S'il est activé : présence de d'icônes :

Créer une nouvelle extension :

Choisir dans le menu de haut de page Make a new extension (créer une extension)

Donner à cette extension une clé (extension key) en la saisissant dans la boite sous le menu de l'assistant et faire [UPDATE]

Remplir les propriétés générales

Ne pas oublier [Update]

NB : il est possible de faire des sauvegardes intermédiaires en écrivant l'extension (et en l'écrasant voir plus loin)

Ajouter la gestion du français

Avant toute choses afin de disposer des champs localisés dans les bases de données (Entrée “Setup Language du menu”)

Créer les tables

En utilisant + de “New Database Table”

On saisira les noms de de tables :

Tablename sera le nom stocké dans la table (automatiquement préfixé par Typo3)

Title seront les libellés dans les formulaires de backend

On ajoutera également les champs de contrôles (hidden / deleted / access / dates)

On cochera également Allowed on pages afin de faciliter l'ajout de ces enregistrement (ils pourront être insérés dans les pages normales).

Créer les champs

En bas de la page de table on peux ajouter les champs de celle-ci un par un.

Saisir le nom du champ, ses libellés et son type et faire UPDATE afin d'accéder au propriétés du champ et pouvoir en sasisir une deuxième.

Pour le champ name on obtient un formulaire simple. La coche Exclude permet un contrôle très fin des droits affectés aux
contributeurs. On la décochera. On rend également ce champ obligatoire.

On complète également la définition de la table en complétant Label Field. Ce champ permet d'afficher dans les listes de backend le nom de l'objet. Si nous ne faisons pas cela, les owners apparaîtront avec les libelles 1, 2, 3 .. (uid) dans les listes.

Il est possible de créer des champs de saisie en RTE :

Pour les transformations disponibles voir le manuel du RTE pour plus de détails. On laissera à défaut pour plus de simplicité.

Le champ image est un champ de type fichier.

Il est également possible de faire des liens entre tables en utilisant le type Database Relation.

Lorsque les tables sont finies on crée le plugin de front-end qui permettra l'affichage des informations. Un plugin générique sera créé et il restera à coder son action

Gérer des liens pour le plugin (l'afficheur).

Il serait sympathique que lorsque l'on crée un afficheur de la liste de cadeaux on puisse directement choisir d'afficher les présents pour une personne donnée (et non pour tous).

Ceci est possible en étendant la table tt_content d'un champ relatif à la wishlist.

On sélectionnera le menu Extend Table et on étendra la table tt_content.

Pour le reste c'est un champ de type database relation. On choisira la sélection dans la liste globale des owners pour des raisons de simplicité.

Créer les plugins

On attribue un nom au plugin, on l'ajoute à la liste des plugins disponibles (dans la liste déroulante) ET dans la liste des plugins du wizard

NB ces icônes ont l'air désactivées par Templavoila.

Écrire l'extension

En fin on écrit l'extension sur le disque. C'est à ce moment qu'elle est sauvegardée. Vous pouvez sélectionner à quel endroit vous écrivez l'extension (GLOBAL OU LOCAL) si vous disposez des droits d'installation dans GLOBAL (voir menu “'NSTALLATION”) et des droits d'écriture.

Il est possible de relancer le kickstarter (par exemple pour rajouter un champ). Cependant, les fichiers php modifiés seront réinitialisés et le travail de développement perdu. YOU'VE BEEN WARNED !!

Il est possible de relancer le kickstarter en accèdant à l'extension dans l'extension manager et en déroulant le menu à Edit in kickstarter.

C'est aussi à cet endroit que vous pouvez exporter votre extension (Backup and Delete).

Installer l'extension

Modifications Post kickstarter:

Le kickstarter crée rapidement une base d'extension qu'il reste à affiner.

Les fichiers créés sont :

ext_emconf.php : Descripteur de l'extension

ext_tables.sql : le fichier sql de création des tables.

Icon* : les icones d'objets (owners et gifts)

locallang : les fichier de traduction du BE

tca.php : le fichier décrivant le fonctionnement de chaque champs

pi1/class.tx_jgwishlist_pi1.php : le fichier du plugin (la partie front-end active)

Le fichier tca.php décrit par le menu le comportement de chaque champ (type, taille, validation). Il est possible de modifier les valeurs saisies dans le kickstarter (par exemple pour changer le comportement d'un database relation). Il est également possible de modifier le comportement du RTE en changeant les propriétés du champ types[0][showitem].(déconseillé : utiliser TSConfig).

On modifiera l'extension de la table tt_content. En effet par défaut, le sélecteur de bénéficiaire des cadeaux est créé dans tous les types de tt_content. On ne veut l'afficher que pour les afficheurs de whislist et pas dans les news ou les forums. On modifie ext_tables.php :

//t3lib_extMgm::addToAllTCAtypes("tt_content","tx_jgwishlist_jgwishlit;;;;1-1-1"); devient

$TCA["tt_content"]["types"]["list"]["subtypes_addlist"][$_EXTKEY."_pi1"]="tx_jgwishlist_jgwishlit;;;;1-1-1";

On pensera également à ajouter des icones (18x16 pour les objets et 22x23 pour le wizard)

Créer des enregistrements

Il ne reste plus qu'à créer les enregistrements dans le BE.

Et l'afficheur :

Faire quelque chose avec le plugin

Par défaut le plugin affiche un formulaire basique. Il faut lui faire afficher par défaut une liste des cadeaux pour la personne sélectionnée dans l'afficheur et lorsque l'on clique sur un cadeau de la liste, les détails de ce cadeau.

Voir le code pour plus de compréhension.

Développer avec Typo3 - 10

Typo3 Template Basics

Kasper Skårhøj

2002-11-01T00:32:00