2011-11-02 1 views
0

Je dois créer un élément de menu qui insère un balisage propriétaire, par ex. un marqueur de code commeComment créer des éléments de menu Insertion personnalisés dans dreamweaver?

<###LoginForm###> 

tel qu'utilisé par mon CMS.

Je trouve cela très difficile - logiquement, et selon la documentation, je devrais être capable de le faire en éditant menus.xml dans configuration/Menus dans le dossier de Dreamweaver dans Program Files. Mais cela ne fonctionne pas comme prévu. J'ai essayé de copier l'item qui insère un tag HR, en substituant mon "tag", mais rien n'est inséré.

Il y a des fichiers dans la configuration/objets/commune, référencés dans le fichier XML, qui semblent contenir des morceaux insérables de code, soit il y a une HR.htm qui ressemble à elle doit insérer <HR> mais il insère <hr /> lorsque l'élément de menu réel est utilisé en XHTML, ils sont donc obsolètes? J'aimerais beaucoup que quelqu'un me donne une recette infaillible pour créer un menu qui me permettrait d'insérer mes propres extraits de code semblables à des étiquettes comme ci-dessus.

Répondre

1

La documentation relative à la création d'extensions/d'extensions Dreamweaver peut faire l'objet de nombreuses améliorations. Vous avez peut-être lu comment ajouter un élément de menu, mais il n'a probablement pas dit ce que vous devriez inclure dans les valeurs d'attribut pour faire exactement ce que vous vouliez. Essayer de copier quelque chose d'autre est un bon point de départ, mais il peut y avoir une certaine «magie» dans le fonctionnement de certaines choses.

S'il s'agit d'un extrait de code, pourquoi ne pas utiliser le panneau Snippets (Fenêtre -> Snippet)? Vous avez même l'option d'assigner un raccourci clavier à des extraits individuels? Comme pour les objets (dont le menu Insertion et la barre Insérer sont utilisés pour ajouter du code à la page), les balises intégrées, telles que HR, insèrent les versions compatibles XHTML du tag dans des documents avec un doctype XHTML. C'est par conception, et est interne à Dreamweaver.

Si vous avez ajouté l'élément de menu suivant au fichier menus.xml dessus de l'entrée HR:

<menuitem id="DWMenu_Insert_LoginForm" name="LoginForm" enabled="(dw.getActiveWindow(true) != null && dw.getActiveWindow(true).allowsEdits()) && dw.getFocus() != 'browser' && dw.getDocumentDOM() != null && dw.getDocumentDOM().getParseMode() == 'html'" command="var dom = dw.getDocumentDOM(); var offsets = dom.source.getSelection(); dom.source.replaceRange(offsets[0], offsets[1], '<###LoginForm###>')" /> 

Note: Je me suis éloigné de l'attribut de fichier et plutôt utilisé l'attribut de commande qui permet l'exécution de code JavaScript, en ce cas:

var dom = dw.getDocumentDOM(); var offsets = dom.source.getSelection(); dom.source.replaceRange(offsets[0], offsets[1], '<###LoginForm###>') 

qui obtient une référence au document, trouve les décalages de sélection dans le document et remplace la sélection avec votre morceau de code.

Je n'ai pas testé cela de toutes les manières possibles, mais je travaille pour moi dans un document HTML et XHTML.

+0

C'est exactement ce dont j'avais besoin. Merci beaucoup. – AmbroseChapel

Questions connexes