Développer avec RBS Change : Editeur de document

  • 44979.1

    12/10/2011 16:38


    David Guillot
    Rang : Expert
    Bonjour,

    J'ai créé un document mymodule/mydocument qui étend event/baseevent et que je souhaite voir éditable dans le module "Actualités et événements" et non pas dans mymodule (qui est invisible en BO).

    Étapes exécutées :
    - Dans override/modules/event/actions.xml, nouvelle action createMydocument
    - Dans override/modules/event/perspective.xml, nouveau modèle modules_mymodule/mydocument et référence à la nouvelle action createMydocument
    - Dans override/modules/event/rights.xml, référence à la nouvelle action createMydocument
    - compile-config
    - compile-editors-config

    Résultat obtenu :
    - Dans le module "Actualités et événements", là où je peux créer des news et des events, j'ai maintenant un accès pour créer un mydocument*
    - Mais quand je clique pour déclencher cette action, rien ne se passe hormis l'affichage de "(Nouveau document)" dans le fil d'ariane du BO

    Qu'est-ce que j'ai loupé ?

    Merci d'avance
  • 44979.2 en réponse à 44979.1 écrit par David Guillot

    13/10/2011 09:31


    Gaël Port
    Titre : Développeur RBS Change
    Rang : Expert
    Alors il manque juste une dernière partie effectivement, à savoir la déclaration de l'éditeur.

    On a un exemple avec le document fees du module order (à partir de 3.5) qui va s'afficher dans le backoffice du module catalog :

    1) l'éditeur du document doit être déclaré normalement dans le dossier forms/editor du module qui l'apporte (donc order dans notre exemple) à ceci près que dans le fichier panels.xml contient en plus l'attribut hidden="true" sur le nœud panels. Cet attribut sert à éviter qu'il ne soit généré dans l'interface du module order ce qui pourrait donner des conflits d'id vu que l'ensemble des modules se retrouvent au final au sein du même arbre DOM.

    2) dans le dossier override/modules/<moduleDestination>/forms/editor, déclarer l'éditeur comme étant repris de la déclaration présente dans le module d'origine : présence uniquement d'un fichier panels.xml avec la mention du module d'origine (module="order" dans notre exemple). Cette déclaration peut être ajoutée automatiquement à l'installation du module via les quelques lignes suivantes (tirées du fichier setup/initData.php du module order, toujours dans le cadre de notre exemple) qui ajoutent le fichier requis dans override et recompile les éditeurs :
    $result = uixul_ModuleBindingService::getInstance()->addImportform('catalog', 'modules_order/fees');
    if ($result['action'] == 'create')
    {
    	uixul_DocumentEditorService::getInstance()->compileEditorsConfig();
    }

    Édité par Gaël Port 13/10/2011 10:45

  • 44979.3

    13/10/2011 10:31


    David Guillot
    Rang : Expert
    Merci beaucoup, ça fonctionne parfaitement !
 
Merci de prendre connaissance et de respecter les règles des forums.
 
1453 membres
Aucun membre connecté