2017-09-26 3 views
0

J'ai une application de contenu avec un champ unique dominant que je voudrais utiliser comme nom de nœud pour les nouveaux nœuds. Le problème est qu'il contient des caractères qui ne peuvent pas faire partie d'un nom de noeud JCR, et donc si je devais le lier à jcrName plutôt qu'une propriété personnalisée, il sera muté en quelque chose qui n'est pas utile pour les champs d'origine (parmi d'autres, la valeur du champ contiendra des barres obliques).Magnolia CMS, application de contenu, nommant un nœud d'une propriété

Ma solution actuelle ajoute un champ supplémentaire pour le nom de noeud, et bien que cela fonctionne certainement, il ajoute un champ d'interface utilisateur au détail sans raison apparente pour les utilisateurs de l'application.

Existe-t-il un moyen d'avoir un champ qui lit et écrit une valeur de chaîne dans une propriété personnalisée, mais qui est également utilisé (sous sa forme clinchante) pour nommer le noeud?

Répondre

1

Vous pouvez utiliser this comme base, en accordant une attention particulière au code de 2.b.ii. (en particulier setNodeName), et en ignorant les bits yaml.

J'espère que cela aide!

+1

Vous pouvez utiliser info.magnolia.jcr.util.NodeNameHelper # getValidatedName (suppression des caractères illégaux) et NodeNameHelper # getUniqueName (évitant les doublons) lors de la définition d'un nom de noeud personnalisé. – MattDiMu