Bonjour,
J'ai un modèle de données qui contient (entre autres) ces quatre tables :
#__fiches(id_fiche, id_type_fiche, nom)
#__types_fiches(id_type_fiche, nom)
#__langues(id_langue, code, nom)
et
#__textes(id_texte, id_fiche, id_langue, texte : MEDIUMTEXT)
pour gérer un catalogue multilingue avec différents types de fiches écrites dans différentes langues.
les id's sont des INT(11), les autres champs, des VARCHAR(...) et le dernier champ de la quatrième table est un MEDIUM TEXT. Il y a bien sur d'autres champs (par_defaut, publiee) que je ne présente pas ici par souci de clarté.
Le type de fiche (produit, machine, fiche-technique...) conditionne le masque de saisie utlisé en back-office et le template de rendu en front-end.
J'ai deux questions : la première pour écrire une requête, la seconde pour un choix de conception MVC de Joomla!
1. LA REQUETE PROBLEME :
supposons que le type de fiche 'produit' a le numéro '1234' et que la langue 'espagnol' a 1'id '5' et que je veux sortir toutes ltextes des produits écrits en espagnol, je dois faire :
et je dois placer cela quelque part dans getListQuery() du modèle #Textes (au pluriel)
OUF ! cela fait un peu lourd...
Comment faire pour splitter et alléger le boulot ?
comment éviter d'utiliser explicitement des id's dans la clause WHERE ?
Je pense qu'une piste de réponse est d'écrire
- getLangueId($nom) dans la csse de modèle Langue(s)
- getTypeFicgeId($nom) dans la classe de modèle TypeFiche(s)
mais dans ce cas comment utiliser proprement les classes de modèles TypeFche(s) et Langue(s) depuis la classe Textes (avec un s) ???
2. Design d'interface MVC admin composant Joomla!
vous l'aurez compris ce n'est pas simple...
donc pour simplifier la vie de l'utilisateur du site, je vais devoir coder des sortes de 'wizards' (assistants) de saisie côté back-office.
or ce que je constate, c'est que dans Joomla! MVC! on a essentiellement :
- une vue liste (contrôleur ADMIN, action default)
- une vue détail (côntroleur FORM, action defaut)
mais pas grand chose qui puisse ressembler à un assisant en plusieurs étapes (genre installateur de programmmes Windows : click sur suivant, suivant, ..., terminé !)
comment créeriez vous un assistant multi-étapes INTEGRE correctement au fonctionnement de Joomla !
merci de vos réponse, même concises, bonne soirée, Héfeust.
J'ai un modèle de données qui contient (entre autres) ces quatre tables :
#__fiches(id_fiche, id_type_fiche, nom)
#__types_fiches(id_type_fiche, nom)
#__langues(id_langue, code, nom)
et
#__textes(id_texte, id_fiche, id_langue, texte : MEDIUMTEXT)
pour gérer un catalogue multilingue avec différents types de fiches écrites dans différentes langues.
les id's sont des INT(11), les autres champs, des VARCHAR(...) et le dernier champ de la quatrième table est un MEDIUM TEXT. Il y a bien sur d'autres champs (par_defaut, publiee) que je ne présente pas ici par souci de clarté.
Le type de fiche (produit, machine, fiche-technique...) conditionne le masque de saisie utlisé en back-office et le template de rendu en front-end.
J'ai deux questions : la première pour écrire une requête, la seconde pour un choix de conception MVC de Joomla!
1. LA REQUETE PROBLEME :
supposons que le type de fiche 'produit' a le numéro '1234' et que la langue 'espagnol' a 1'id '5' et que je veux sortir toutes ltextes des produits écrits en espagnol, je dois faire :
Code:
SELECT t.id_texte, t.texte FROM #__textes AS t JOIN #__langues AS l ON t.id_langue = l.id_langue JOIN #__fiches AS f ON f.id_fiche = t.id_fiche JOIN #__type_fiche AS tf ON tf.id_type_fiche = f.id_type_fiche WHERE l.id_langue = 5 AND tf.id_type_fiche = 1234
OUF ! cela fait un peu lourd...
Comment faire pour splitter et alléger le boulot ?
comment éviter d'utiliser explicitement des id's dans la clause WHERE ?
Je pense qu'une piste de réponse est d'écrire
- getLangueId($nom) dans la csse de modèle Langue(s)
- getTypeFicgeId($nom) dans la classe de modèle TypeFiche(s)
mais dans ce cas comment utiliser proprement les classes de modèles TypeFche(s) et Langue(s) depuis la classe Textes (avec un s) ???
2. Design d'interface MVC admin composant Joomla!
vous l'aurez compris ce n'est pas simple...
donc pour simplifier la vie de l'utilisateur du site, je vais devoir coder des sortes de 'wizards' (assistants) de saisie côté back-office.
or ce que je constate, c'est que dans Joomla! MVC! on a essentiellement :
- une vue liste (contrôleur ADMIN, action default)
- une vue détail (côntroleur FORM, action defaut)
mais pas grand chose qui puisse ressembler à un assisant en plusieurs étapes (genre installateur de programmmes Windows : click sur suivant, suivant, ..., terminé !)
comment créeriez vous un assistant multi-étapes INTEGRE correctement au fonctionnement de Joomla !
merci de vos réponse, même concises, bonne soirée, Héfeust.
Commentaire