JaliosXperience
fr en
Link

Comment spécifier les catégories d'un contenu créé en webservice

David Koss - on 12/2/10 at 12:03 PM

Bonjour,

Je ne trouve pas dans la doc de l'API WebService de JCMS la façon de spécifier les catégories d'un contenu créé ou mis à jour.

Je sais qu'il suffit de faire une requête POST pour créer un contenu avec en paramètre les champs du contenu, mais je me pose la question de la façon de passer des catégories. D'une part parce que je n'ai pas trouvé la façon de fournir plusieurs valeurs pour un champ multivalué et d'autre part parce que je n'ai pas trouvé le paramètre correspondant aux catégories.

Si j'essai de deviner, j'imagine qu'il faut passer plusieurs fois le paramètre "category" avec à chaque fois l'ID de la catégorie en question ?

David Koss - on 12/2/10 at 5:25 PM

OK, en fait j'ai trouvé tout seul. J'avais mal lu la phrase : Les paramètres sont ici dans le corps de la requête, tels qu'envoyés par un formulaire HTML

Du coup je suis allez voir le nom du champ dans le formulaire et j'ai vue qu'il s'appelle en fait "cids". Du coup avec ce nom de paramètre ça marche...

Et pour l'aspect multivalué, en testant j'ai vue qu'il faut bien passer plusieurs fois le même paramètre avec plusieurs valeurs.

Ça pourra servir à d'autre qui auront lu la doc un peu trop vite comme moi ;-)

Benoît Dissert - on 12/3/10 at 9:27 AM

Qu'elle est bien faite cette doc :-)

Thierry BANEL - on 12/19/11 at 5:51 PM

D'accord, "cids" est un nom câblé pour renseigner une catégorie, en ignorant le vrai nom du champs. On écrit donc quelque chose comme cela (si on utilise l'Open API côté client): fields.add("cids","c_5035");

Mais il se trouve que j'ai un type de contenu avec plusieurs champs catégorie. Je ne vois pas d'autre solution que de tout mélanger en vrac: fields.add("cids","c_5035"); // pour le 1er champs fields.add("cids","c_5019"); // pour le 2ème champs en espérant que JCMS saura faire le tri et mettre la bonne catégorie dans le bon champs. C'est possible si les deux champs ont des catégories racines différentes.

Mais ça ne fonctionne pas. Seul mon 1er champs est renseigné, le 2ème reste désespérément vide.

Comment faire pour remplir ce 2ème champs ? (Après j'aurai aussi un 3ème et un 4ème champs catégorie).

Thierry BANEL - on 12/19/11 at 5:53 PM

D'accord, "cids" est un nom câblé pour renseigner une catégorie, en ignorant le vrai nom du champs.
On écrit donc quelque chose comme cela (si on utilise l'Open API côté client):
fields.add("cids","c_5035");

Mais il se trouve que j'ai un type de contenu avec plusieurs champs catégorie.
Je ne vois pas d'autre solution que de tout mélanger en vrac: fields.add("cids","c_5035"); // pour le 1er champs
fields.add("cids","c_5019"); // pour le 2ème champs
en espérant que JCMS saura faire le tri et mettre la bonne catégorie dans le bon champs.
C'est possible si les deux champs ont des catégories racines différentes.

Mais ça ne fonctionne pas.
Seul mon 1er champs est renseigné, le 2ème reste désespérément vide.

Comment faire pour remplir ce 2ème champs ?
(Après j'aurai aussi un 3ème et un 4ème champs catégorie).

Benoît Dissert - on 12/19/11 at 6:01 PM

Bonjour,

Les catégories associées à une publication sont dans une unique arborescence et correspondent toutes à "cids". Quand vous avez un champs de type catégorie dans un contenu ou une portlet, seule l'interface d'édition diffère, mais techniquement tout est dans la même arborescence.

C'est la raison pour laquelle vous ne pouvez utiliser deux fois la même arborescence de catégories comme choix pour deux champs d'un même type de publication.

Dans votre cas, il faut, comme vous dites "mettre les catégories en vrac" (JCMS reconnaîtra les siens).

Benoît Dissert

Frédéric Touitou - on 12/19/11 at 6:18 PM

Bonsoir,

Pour que le mécanisme de "reconnaissance des siens" fonctionne, il ne faut pas que les N champs de type "Catégorie" aient "simplement" des racines différentes : il faut que ces N racines portent des arborescences réellement disjointes ...

Est-ce bien votre cas ?

Cordialement,
Frédéric Touitou

Login   Home   fr en
JALIOS SA - SIREN 440 126 035