web-dev-qa-db-fra.com

Shortcode personnalisé et bouton fonctionnant après la mise à jour 3.9

J'ai ajouté un nouveau bouton qui crée un code court, mais il semble qu'après la dernière mise à jour de WordPress, le bouton ne fonctionne plus. Le bouton est visible mais quand quelqu'un clique dessus, rien ne se passe.

Le code que j'ai utilisé est le suivant- partie js

(function() {
tinymce.create('tinymce.plugins.affiliate', {
    init : function(ed, url) {
        ed.addButton('affiliate', {
            title : 'Add Affiliate Link',
            cmd : 'Affiliate link',
            image : url+'/euro.png',
            onclick : function() {
                 ed.selection.setContent('[aff afftitle="" afflink=""]' + ed.selection.getContent() + '[/aff]');

            }
        });
    },
    createControl : function(n, cm) {
        return null;
    },
});
tinymce.PluginManager.add('affiliate', tinymce.plugins.affiliate);
})();

Ι ai aussi écrit du code pour la partie PHP, mais je ne suis pas sûr que le problème existe. Le problème est dans le JavaScript ci-dessus.

Je sais que createControl n'existe plus. J'essaie de contourner ce problème, mais sans succès en ce moment.

3
Archimidis M

Essayez comme ça:

<script type="text/javascript">
    tinymce.init({
    selector: "textarea",
    toolbar: "mybutton",
    setup: function(editor) {
        editor.addButton('mybutton', {
            type: 'splitbutton',
            text: 'My button',
            icon: false,
            onclick: function() {
                editor.insertContent('Main button');
            },
            menu: [
                {text: 'Menu item 1', onclick: function() {
                                  tinyMCE.activeEditor.execCommand("myPopup", false, {
                                      title: 'Divider',
                                      identifier: 'divider'
                              })}},
                {text: 'Menu item 2', onclick: function() {editor.insertContent('Menu item 2');}}
            ]
        });
    }
    });
1
Bindiya Patoliya

Malheureusement, j'ai eu le même problème et j'ai dû réécrire mon plugin. Voir ceci TinyMCE Fiddle

J'ai créé un exemple pour ajouter un bouton permettant d'insérer un shortcode (sélection d'insertion ou d'emballage).

tinymce.PluginManager.add('example', function(editor, url) {
// Add a button that insert a shortcode
editor.addButton('example', {
    text: 'Custom Button',
    icon: false,
    onclick: function() {
        // Do something...
        if (editor.selection.getContent())
        {
            editor.selection.setContent('[aff afftitle="" afflink=""]' + editor.selection.getContent() + '[/aff]');
        }
        else
        {
            editor.selection.setContent('[aff afftitle="" afflink=""]Your text here...[/aff]');
        }
    }
});

});

Cordialement

1
MavBzh