Extension annonce OBSOLETE
Pour la prise en charge des petites annonces, j'ai exploré
- le catalogue des extensions, mais je n'ai rien trouvé de satisfaisant
- l'extension listaing, mais si elle permettait d'afficher la liste, il était plus difficile de gérer les formulaires, leur traitement et les acuittement.
J'ai finalement décidé de créer une extesion spécifique.
Création de l'extension
- Outils de développement->Créateur d'extension
- Nouvelle extension
- cocher Ajouter un module back office, Ajouter un module front office, Ajouter des packs de langue
on peut toujours en supprimer ensuite - remplir les champs
- sauvegarder et fremer
- cliquer sur l'icone à droite de la nouvelle extension (ATTENTION : pas le refaire par la suite)
Cela va créer les fichiers de la nouvelle extension
- les classes apparaîtront dans la dossier classes
- un Model apparara dans le dossier models
- les tables apparaîtront dans la dossier dca
- les templates apparaîtront dans la dossier templates
- les packs da langues dans des dossiers du dossier languages
- ainsi autoload.ini et config.php dans le dossier config
Il ne reste plus qu'à remplir les fichiers
Les fichiers
Ils sont dans le dossier system/modules/annonce
assets |
petites_annonces.png |
l'icone qui apparait dans la section Contenu | elle est déclarée dans config.php |
classes |
AnnonceDemande.php |
cette classe contient les fonctions
|
cette classe est déclaréedans autoload.php elle est référencée dans dca/tl_annonce.php |
config |
autoload.ini |
inchangé | |
config |
autoload.php |
déclaration de la localisation des classes et des templates | |
config |
config.php |
définit le module backend, le module fronend et le hook pour la prise en compte du formulaire de demande d'info | |
dca | tl_annonce.php | la description de la table des annonces et du module backend de gestion |
pour la gestion automatique des annonces en backend pour la mise à jour de la BDD |
tl_module.php | les champs du formulaire de création d'un module frontend | ||
languages/fr |
modules.xlf |
les libellés pour les modules backend et frontend | |
|
tl_module.xlf |
les libellés pour les champs du formulaire de création d'un module frontend backend et frontend | référencé dans dca/tl_module.php |
tl_annonce.xlf |
les libellés pour les champs du formulaire de création d'une annonce | référencé dans dca/tl_annonce.php |
|
modules |
ModuleAnnonceList.php |
le module Frontend d'affichage de la liste |
localisé dans déclaré dans |
templates |
annonce_list.html5 |
le template d'affichage de la liste |
localisé dans appelé par le module |
modules.xlf
Ce fichier décrite le libellés
- pour le module backend de gestion des petites annonces (MOD)
- pour le module backen de création de modules frontend (FMD)
dca/tl_module.php et languages/fr/tl_module.xlf
Ce fichier décrit le formulaire de création (en backend) du module frontend annoncelist; en fait il ne fait que compléter le module général de création de module:
- palettes : la liste des champs
- fields : description des champs spécifiques
- un callback pour le champ jumpTo
Il est complété pour les libellés par le fichier tl_module.xlf
dca/tl_annonce.php et languages/fr/tl_annonce.xlf
C'est dans ce fichier que l'on décrit
- la table des petites annonce tl_annonce et ses champs : config et fields
- l'interface d'administraion des petites annonces
- les opérations edit, delete, toggle et show
- le formulaire : pllettes
- la fonction de traitement du toggle
Il est complété pour les libellés par le fichier tl_annonce.xlf
IMPORTANT : après avoir modifier un champ, il faut mettre à joure la base de données par Gestionnaire d'extensions->Mettre à jour la base de données
ModuleAnnonceList.php et le template annonce_list.html5
Le template décrit la construction du code-HTML de la liste des annonces
La classe ModuleAnnonceList contient 2 fonctions :
- generate construit l'apparence du module frontenddans la liste des contenus d'un article
- compile calcule les variables nécessaires au template
Le template affiche les champs de l'annonce avec le cas particulier de l'imagette :pour activer la lightbox vour afficher l'image
classes/AnnonceDemande.php
Cette classe contient la foncion processFormData de traitement du formulaire de demande d'info d'une annonce
CORRIGER : les adresses-mail
config/autoload.php
Ce fichier indique dans quel fichier se trouvent
- les classes ModuleAnnonceList et AnnonceDemande
- le template annonce_list
config/config.php
Ce fichier contient la déclaration
- du module backend de gestion des petites annonces : en fait son fichier dca
- du module frontend ModuleAnnonceList d'affichage de la liste des annonces
Les pages
Il y a 5 pages :
- La page Bonnes affaires affiche la liste des annonces et le formulaire Petite annonce (dépôt)
- La page Acquittement Dépôt Annonce s'affiche en réponse à un dépôt d'annonce
- la page Demande Info Annonce est affichée lorsqu'une personne intéressée demande les coordonnées du déposant d'une annonce; elle contient le formulaire PetiteAnnonce (demande info&)
- la page Acquittement Demande Info Annonce est affichée en réponse à une demande des coordonnées du déposant d'une annonce
Les données transmises par le formulaire (en POST) sont obtenues gràce à l'extension inputvar. - la page erreur Numéro annonce est affichée en réponse à une demande des coordonnées du déposant d'une annonce lorsque le numéro est incorrect
Les formulaires
Il y a 2 formulaires :
PetiteAnnonce (dépôt) | affiché dans la page Petites annonces |
PetiteAnnonce (demande info) | affiché dans la page Demande Info Annonce |
Les points qui ont posé problème
Le lien vers la photo
Pour voir le lien dans le backend, il faut mettre dans tl_annonce l'UUID du fichier en binaire
Pour le faire on utilise le HOOK AnnonceDemande::storeFormData()
Le traitement de la demande d'info
Il est effectué par le HOOK AnnonceDemande::processFormData()
Mais il faut vérifier le formulaire.