Forum ZitePLUS

La communauté des utilisateurs du CMS ZitePLUS

Vous n'êtes pas identifié(e).

#1 17/02/2012 14:37:08

Super_chemist
Membre
Inscription : 27/05/2011
Messages : 417

gestion des documents orientée objet.

Bonjour

Pour développer zdiaporama, j'ai eu besoin de lister les documents d'une rubrique.
Pour cela, j'ai copié/collé/adapté à l'époque le code du module photoshow.

Mais voilà, jpg tu as depuis changé cette partie de ton code dans photoshow (pour améliorer les performances je crois...).
Ce n'est pas viable pour les développeurs de modules de faire des mises à jour par copier/coller de la sorte !


Donc ma question est simple : Y a-t-il une méthode dans l'objet Trubs ou Tdocs (ou dans ziteplus de manière générale) pour avoir directement un array propre des documents de la rubrique, sans se soucier de devoir les trier soi même ou de mettre à jour en fonction de la version de ziteplus?

En clair, un $this->get_document_by_rubrique($rubrique)

Ca serait un plus !


Adrien

Hors ligne

#2 18/02/2012 00:26:46

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : gestion des documents orientée objet.

Super_chemist a écrit :

Pour développer zdiaporama, j'ai eu besoin de lister les documents d'une rubrique.
Pour cela, j'ai copié/collé/adapté à l'époque le code du module photoshow.

Mais voilà, jpg tu as depuis changé cette partie de ton code dans photoshow (pour améliorer les performances je crois...).

Oui ... très grosse optimisation des performances smile

Super_chemist a écrit :

Ce n'est pas viable pour les développeurs de modules de faire des mises à jour par copier/coller de la sorte !

D'un autre coté j'ai bien le droit d'améliorer mon module photoshow non wink
Cela n'entraine pas pour toi l'obligation de modifier ton code.
D'autant plus que sauf erreur de ma part, j'ai fait évoluer la class Tdocs de manière totalement compatible avec l'existant
=> si on appelle comme avant les documents, cela devrait toujours fonctionner ... mais on aura pas forcement toutes les améliorations de performances.

Super_chemist a écrit :

Donc ma question est simple : Y a-t-il une méthode dans l'objet Trubs ou Tdocs (ou dans ziteplus de manière générale) pour avoir directement un array propre des documents de la rubrique, sans se soucier de devoir les trier soi même ou de mettre à jour en fonction de la version de ziteplus?

Les appels précédents doivent toujours fonctionner, donc ou est le problème ?

Par contre pour le nouveau code, on peut faire plus simple qu'avant et plus performant en faisant par exemple un:
        $docs = new Tdocs(self::$cms->cpath.'/docs.dta',cDocRub,'marubrique');
Avant il fallait le faire en plusieurs fois

Si on veut trier, on va faire un
                $doc->sort()
avec ou sans paramètres en fonction du tri voulu => c'est simple et compatible wink

Si on veut parcourir la liste des documents qui répondent aux critères précédent, on va faire un
        foreach ($docs as $docname => $doc) {
                        // ici le traitement sur un document
                }

Manipuler un objet me semble bien plus préférable que de manipuler un simple tableau => cela permet de faire du code puissant, compatible et évolutif.

a+
Jean-Paul

Hors ligne

#3 18/02/2012 11:08:37

Super_chemist
Membre
Inscription : 27/05/2011
Messages : 417

Re : gestion des documents orientée objet.

Désolé si je me suis mal exprimé dans mon message précédent.
Je suis 100% d'accord avec toi !
Ca n'a jamais cassé l'existant, donc aucun soucis.


Je ne savais pas que tu avais ajouté des paramètres dans le constructeur de Tdocs (j'ai suivi la 092 d'assez loin...). Ca m'a l'air intéressant !
Il faudra que je me plonge dans le code de Tdocs alors wink , pour remplacer mon copier/collé aveugle par quelque chose que je comprendrai et voir ce qu'on peux en faire !


Merci
Adrien

Hors ligne

Pied de page des forums