Hallo, seit die neue Version veröffentlicht wird, dachte ich, ich würde sie herunterladen und sehen, ob mein Thema noch funktioniert.
Alles funktioniert gut, abgesehen von der Dropdown-Box, die jetzt länger angezeigt wird.
Hier sind die Codes, die wir in früheren Versionen verwendet haben.
PHP-Code:
function register_ppp_shortcodes( $buttons ) { array_unshift( $buttons, "Shortcodes" ); return $buttons; } function add_ppp_shortcodes( $plugin_array ) { $plugin_array['Shortcodes'] = get_template_directory_uri() . '/js/Shortcodes_js.js'; return $plugin_array; } function ppp_shortcodes() { if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') ) { return; } if ( get_user_option('rich_editing') == 'true' ) { add_filter( 'mce_external_plugins', 'add_ppp_shortcodes' ); add_filter( 'mce_buttons', 'register_ppp_shortcodes' ); } } add_action('init', 'ppp_shortcodes');
JS CODE:
/*global tinyMCE, tinymce*/ /*jshint forin:true, noarg:true, noempty:true, eqeqeq:true, bitwise:true, strict:true, undef:true, unused:true, curly:true, browser:true, devel:true, maxerr:50 */ (function() { "use strict"; tinymce.create('tinymce.plugins.Shortcodes', { init : function(ed, url) { ed = ed; url = url; }, createControl : function(n, cm) { if(n==='Shortcodes'){ var mtb = cm.createListBox('Shortcodes', { title : 'Shortcodes', onselect : function(p) { var selected = false; var content = ''; switch (p){ case 'H1 Title':{ var h1titleclass = prompt("Would you like a custom class?", ""); selected = tinyMCE.activeEditor.selection.getContent(); if(h1titleclass != ''){ h1titleclass = 'class= "'+h1titleclass+'"'; } if (selected) { content = '[h1'+h1titleclass+']' + selected + '[/h1]'; } else { content = '[h1'+h1titleclass+'][/h1]'; } tinymce.execCommand('mceInsertContent', false, content); } // finished shortcode break; case 'H2 Title':{ var h2titleclass = prompt("Would you like a custom class?", ""); selected = tinyMCE.activeEditor.selection.getContent(); if(h2titleclass != ''){ h2titleclass = 'class= "'+h2titleclass+'"'; } if (selected) { content = '[h2'+h2titleclass+']' + selected + '[/h2]'; } else { content = '[h2'+h2titleclass+'][/h2]'; } tinymce.execCommand('mceInsertContent', false, content); } // finished shortcode break; } } }); // Add some menu items var my_shortcodes = ['H1 Title','H2 Title']; for(var i in my_shortcodes){ if (true) {mtb.add(my_shortcodes[i],my_shortcodes[i]);} } return mtb; } return null; } }); tinymce.PluginManager.add('Shortcodes', tinymce.plugins.Shortcodes); })();
Kann mir jemand in die richtige Richtung zeigen, wo ich anfangen soll?
Ich weiß sehr wenig über Tinymce, wie Sie sagen können 🙁
Vielen Dank
Ich habe mit einem ähnlichen Problem herumgestochert. (Schaltfläche nicht in MCE-Editor-Symbolleiste angezeigt). Dieses Muster funktionierte für mich in WP 3.9 / tinymce 4.0:
tinymce.PluginManager.add( 'thing' , function( editor ){ editor.addButton('thing', { type: 'listbox', text: 'My listbox', onselect: function(e) { // do things... }, values: [ {text: 'Menu item 1', value: 'Some text 1'}, {text: 'Menu item 2', value: 'Some text 2'} ] }); });
Leider ist dies nicht rückwärtskompatibel, Sie werden entweder die 3.8-Unterstützung brechen oder Sie müssen etwas Version-Sniffing implementieren.