CMS Automne

Forum de la communauté du CMS Automne
Nous sommes actuellement le Dim Nov 24, 2024 1:32 am

Le fuseau horaire est UTC [Heure d’été]




Publier un nouveau sujet Répondre au sujet  [ 5 messages ] 
Auteur Message
 Sujet du message: Les objets polymod
MessagePublié: Mer Août 12, 2009 9:59 am 
Hors-ligne
Utilisateur enthousiaste

Inscrit(e) le : Lun Mars 17, 2008 8:51 pm
Message(s) : 81
Contexte :
J'ai créé un module qui contient des objets "Article" et des objets "Commentaire". Le premier est une ressource primaire soumis à validation, le second n'est pas soumis à validation. Un Article peut avoir plusieurs Commentaires.

Quelques questions :
- Lors d'une recherche (en utilisant le tag <atm-search ... />) est-il possible de fournir un paramètre me permettant d'obtenir à la fois les articles validés et les articles en cours de validation ? Si oui, puis-je connaitre l'état dans lequel se trouve l'article ?
- Lorsque j'ajoute un commentaire (depuis le site grâce à l'utilisation du tag <atm-form ... /> et à la mise en place d'un traitement ad'hoc), logiquement, mon objet Article se met dans l'état "Attente de validation". Puis-je valider cette ressource après l'ajout du commentaire ?
- Est-il possible de valider l'ajout d'un commentaire mais pas la modification de contenu de l'article ?

_________________
Chrys.
"Il y a 10 sortes de gens, ceux qui savent compter en binaire et les autres..."


Haut
 Profil  
 
 Sujet du message: Re: Les objets polymod
MessagePublié: Mer Août 12, 2009 10:09 am 
Hors-ligne
Administrateur
Avatar de l’utilisateur

Inscrit(e) le : Mer Juin 15, 2005 8:28 am
Message(s) : 759
Localisation : Sophia Antipolis
Chrys a écrit:
- Lors d'une recherche (en utilisant le tag <atm-search ... />) est-il possible de fournir un paramètre me permettant d'obtenir à la fois les articles validés et les articles en cours de validation ?

Oui, il faut faire une recherche dans le domaine "edited" (non validé) :
Code :
<atm-search what="objet" name="searchName" public="false">...</atm-search>

Chrys a écrit:
Si oui, puis-je connaitre l'état dans lequel se trouve l'article ?

Oui mais en PHP via le code suivant (ou $object est l'article dont tu veux connaitre l'état) :
Code :
if ($object->getStatus()->getEditions() & RESOURCE_EDITION_CONTENT) {
//l'article est en attente de validation
}

Chrys a écrit:
- Lorsque j'ajoute un commentaire (depuis le site grâce à l'utilisation du tag <atm-form ... /> et à la mise en place d'un traitement ad'hoc), logiquement, mon objet Article se met dans l'état "Attente de validation". Puis-je valider cette ressource après l'ajout du commentaire ?

Oui via le code suivant (ou $object est l'article en attente de validation et $codename le codename du module de l'article) :
Code :
$validation = new CMS_resourceValidation($codename, RESOURCE_EDITION_CONTENT, $object);
$mod = CMS_modulesCatalog::getByCodename($codename);
$mod->processValidation($validation, VALIDATION_OPTION_ACCEPT);

Chrys a écrit:
- Est-il possible de valider l'ajout d'un commentaire mais pas la modification de contenu de l'article ?

Non ça n'est pas possible car un commentaire fait parti du contenu d'un article et ajouter/supprimer un commentaire est une modification du contenu de l'article.


Haut
 Profil  
 
 Sujet du message: Re: Les objets polymod
MessagePublié: Mer Août 12, 2009 10:17 am 
Hors-ligne
Administrateur
Avatar de l’utilisateur

Inscrit(e) le : Mer Juin 15, 2005 8:28 am
Message(s) : 759
Localisation : Sophia Antipolis
Juste deux petites explications concernant ces codes :
Code :
if ($object->getStatus()->getEditions() & RESOURCE_EDITION_CONTENT) {
//l'article est en attente de validation
}

L'état de validation d'un élément est une information codée en binaire, l'opérateur de vérification du statut est donc un opérateur sur les bits (http://www.php.net/manual/fr/language.operators.bitwise.php). Ici le & simple (ce n'est donc pas une erreur).

Code :
$validation = new CMS_resourceValidation($codename, RESOURCE_EDITION_CONTENT, $object);
$mod = CMS_modulesCatalog::getByCodename($codename);
$mod->processValidation($validation, VALIDATION_OPTION_ACCEPT);


Ici on déclare un objet de validation (resourceValidation) qui prendra en charge les informations relatives à la validation de l'objet à valider. On passe ensuite cet objet de validation au module responsable de l'objet à valider pour qu'il pilote la validation en fonction des caractéristiques de l'objet à valider. C'est un processus un peu tordu, je l'accorde :P


Haut
 Profil  
 
 Sujet du message: Re: Les objets polymod
MessagePublié: Mer Août 12, 2009 10:40 am 
Hors-ligne
Utilisateur enthousiaste

Inscrit(e) le : Lun Mars 17, 2008 8:51 pm
Message(s) : 81
Questions subsidiaires :
Dans le code
Code :
<atm-search what="objet" name="searchName" public="false">...</atm-search>

Les objets supprimé en attente de validation (validation de la suppression) sont-ils remontés ?

Dans ce code
Code :
if ($object->getStatus()->getEditions() & RESOURCE_EDITION_CONTENT) {
//l'article est en attente de validation
}

Est-ce que je teste également les objets supprimés ?
Puis savoir si c'est un objet modifié en attente de validation ou un objet supprimé en attente de validation ?

Merci pour ces premiers éléments très clairs.

_________________
Chrys.
"Il y a 10 sortes de gens, ceux qui savent compter en binaire et les autres..."


Haut
 Profil  
 
 Sujet du message: Re: Les objets polymod
MessagePublié: Mer Août 12, 2009 11:00 am 
Hors-ligne
Administrateur
Avatar de l’utilisateur

Inscrit(e) le : Mer Juin 15, 2005 8:28 am
Message(s) : 759
Localisation : Sophia Antipolis
Chrys a écrit:
Dans le code
Code :
<atm-search what="objet" name="searchName" public="false">...</atm-search>

Les objets supprimé en attente de validation (validation de la suppression) sont-ils remontés ?

Oui puisque tant que la suppression n'est pas validée, l'objet existe toujours. Tu obtiens d'ailleurs les objets en attente de suppression même sans le public="false" à partir du moment ou ils ont été validés une fois. Par contre avec le public="false" tu obtiens aussi les éléments dont les dates de publications sont invalides actuellement.

Chrys a écrit:
Dans ce code
Code :
if ($object->getStatus()->getEditions() & RESOURCE_EDITION_CONTENT) {
//l'article est en attente de validation
}

Est-ce que je teste également les objets supprimés ?

Non, là tu ne teste que la modification de contenu en attente de validation.

Chrys a écrit:
Puis savoir si c'est un objet modifié en attente de validation ou un objet supprimé en attente de validation ?

Voila le code pour savoir si un objet est en attente de suppression :
Code :
if ($object->getStatus()->getProposedFor() == RESOURCE_LOCATION_DELETED) {
//élément en attente du suppression
}


D'une manière générale, le nombre de cas de figure est aussi important que le nombre d'images se trouvant dans /automne/admin/img/status (important donc ...).

Si tu veux pouvoir traiter différents cas de figure, je te conseille de jeter un oeil aux fonctions _getStatusLabel et getHTML de la classe CMS_resourceStatus (automne/classes/workflow). Ce sont ces fonctions qui génèrent l'icône de statut (ainsi que le texte alternatif sur ces icônes) présente pour chaque ressource Automne. ça te permettra de voir les tests effectués dans chacun des cas existant.

Seb


Haut
 Profil  
 
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 5 messages ] 

Le fuseau horaire est UTC [Heure d’été]


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 33 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Recherche de:
Aller vers :  
cron
Powered by phpBB® Forum Software © phpBB Group
Traduit par Maël Soucaze et Elglobo © phpBB.fr