Personalizarea butonului Quicktags din editorul HTML pentru a deschide un dialog de alegere a opțiunilor de inserare
Caut să adaug butoane Quicktags personalizate, care să-mi permită să afișez un dialog intermediar înainte de a insera codul.
Situație
- Click pe un buton Quicktags deschide un dialog sau fereastră modală thickbox.
- Dialogul deschis afișează câteva opțiuni pentru clasă etc. și un buton "Inserare".
- Click pe butonul "Inserare" inserează codul.
Context
Pentru a adăuga un buton quicktags, am folosi:
edButtons[ edButtonsLength+ ] = new edButton(
'ed_mybutton' , 'Insert button', '<div class="class-name">', '</div>'
);
////
edHTML += '<input type="button" value="Insert custom code" id="ed_my_button" class="ed_button" onclick="edInsertTag( edCanvas, edButtonLength_t + 1)" title="Insert code" />';
Cum pot să modific butonul pentru a deschide un dialog (sau fereastră modală thickbox) în loc să insereze direct?
Pot adăuga un buton fără să-l definesc, astfel:
edHTML += '<input type="button" value="Insert custom code" id="ed_my_button" class="ed_button" onclick="customFunction()" title="Insert code" />';
// și
var customFunction = function() {
openURL = '<?php admin_url() ?>admin-ajax.php?action="insertCodeAction&TB_iframe=true';
tb_show( 'Insert custom code', openURL );
};
Vă rog să împărtășiți din înțelepciunea voastră. Mulțumesc anticipat.
PS: realizarea acestui lucru cu TinyMCE este relativ ușoară, mă întreb cum să fac același lucru cu quicktags HTML. :)
Conform Codex, nu poți face asta direct prin API. Totuși, poți realiza acest lucru folosind propriul fișier quicktags.js, așa cum este prezentat mai jos.
function sample_load_admin_scripts()
{
if ( is_admin() ) {
wp_deregister_script('quicktags');
wp_register_script('quicktags', ("/calea/către/quicktags.js"), false, '', true);
}
}
if (is_admin()) {
add_action('init', sample_load_admin_scripts);
}
Apoi, adaugă pur și simplu Javascript pentru a-ți face treaba. Formatarea este relativ ușoară, dar din moment ce știi cum să faci totul cu TinyMCE, nu voi intra în detalii. Obține aici propriul tău fișier quicktags.js.
