Développer avec RBS Change : [Import-data] Doublons de forums/thread
-
15/11/2011 11:49
Bonjour,
Je suis en train d'intégrer le module forums, mais, lors de multiples exécutions d'import-data, un thread sur lequel j'ai positionné un byLabel est réinséré et est donc présent en plusieurs exemplaires dans ma base. Est-ce un bug ou ai-je loupé quelque chose ?
Merci d'avance -
15/11/2011 12:39
Bonjour,
Jusqu'à présent ça n'a pas trop été fait sur des thread (quand on en insère dans nos sample, on ne les insère qu'une fois).
A priori là ce qui se passe c'est que :
- le sujet n'est pas dans un arbre (il a juste un champ "forum" pour le ratacher à son forum)
- le forum par contre est dans l'arbre du module forums
Si les deux étaient dans l'arbre du module forums, ça passerait bien. Si aucun des deux n'y était ça passerait bien aussi (sauf que le byLabel ferait sa recherche sans tenir compte du forum parent).
Là par contre c'est le cas un peu bâtard où le parent est dans l'arbre et pas l'autre. Du coup la méthode import_ScriptDocumentElement:getChildDocumentByProperty (cf framework/persistentdocument/import/ScriptDocumentElement.class.php) va bien retrouver un treenode pour le forum et ajouter la restriction childOf mais comme le sujet n'étant pas dans l'arbre, il ne sera pas retourné.
Le plus simple serait d'écrire votre fichier "à plat" :
- importer les forums d'abord en leur spécifiant chacun un id
- ensuite, importer les thread sans les mettre sous les forums en utilisant plutôt un forum-refid pour renseigner la propriété forum
J'avoue ne pas avoir testé mais de cette manière ça devrait passer. La recherche byLabel sera par contre faite sans tenir compte du forum du coup, vous ne pourrez pas insérer de cette manière plusieurs sujets ayant le même titre dans des forums différents.Édité par Gaël Port 15/11/2011 12:39
-
15/11/2011 16:20
OK merci ça fonctionne (de même pour les posts par rapport aux threads et pour les members).
Je trouve un peu surprenant que le traitement soit différent selon qu'on fasse :<objet_pere><objet_fils /></objet_pere>
ou<objet_pere id="pere" /> <objet_fils pere-refid="pere" />
... Il faudrait le signaler dans une documentation en précisant les différences ;-) -
16/11/2011 09:19
Il y aurait sans doute moyen d'améliorer l'implémentation du byXxx pour supprimer cette différence...
Je me le note pour voir ça quand j'aurai un peu de temps.
Merci de prendre connaissance et de respecter les règles des forums.