WordPress 2.6, TinyMCE

Usando o wordpress 2.6, que vem com o TinyMCE 3.1.1 (que a propósito, não é bem um 3.1.1), mesmo depois deu ter conseguido habilitar o plugin para tabelas do TinyMCE (ei, elas podem ser úteis e necessárias em alguns contextos), a tela ficava como no screenshot abaixo.

Wordpress TinyMCE

Após ler alguns posts, eu consegui ‘resolver’ (vulgo, usar um tipo leve de POG) para fazer funcionar. Segue os passos!

  1. Baixar o TinyMCE do site
  2. Copiar o plugin table para wp-includes/js/tinymce/plugins
  3. Editar o wp-includes/js/tinymce/tiny_mce_config.php e incluir o ‘table’ no array $plugins;
  4. Editar o wp-includes/js/tinymce/tiny_mce_config.php e incluir o ‘tablecontrols’ no array $mce_buttons_3;

Verifique também se não existe um cache do javascript do tiny_mce. Ele fica em /wp-content/uploads/js_cache. Você pode precisar apagá-lo para que suas configurações do plugin sejam lidas. Adicionalmente, você pode desabilitar o cache em wp-includes/js/tinymce/tiny_mce_config.php .

Se tudo correu bem até aqui, o seu editor de tabelas no tinyMCE deverá estar funcionando como o meu.

Segundo um comentário no fórum do tinymce, a chamada (!tinymce.ScriptLoader.isDone(u)) na função requireLangPack nunca retornava verdadeiro. Como Javascript nos permite fazer alterar um método dinamicamente, podemos aplicar um pequeno hack no table.js, logo no início do arquivo, antes da chamana a requireLangPack:

tinyMCEPopup.requireLangPack = function () {
    var u = this.getWindowArg("plugin_url") || this.getWindowArg("theme_url");
    if (u && this.editor.settings.language) {
        u += "/langs/" + this.editor.settings.language + "_dlg.js";
        tinymce.ScriptLoader.lookup[u] = {state:0} //HACK MALIGNO
        if (!tinymce.ScriptLoader.isDone(u)) {
            document.write("&ltscript type="text/javascript" src="" + tinymce._addVer(u) + "">");
            tinymce.ScriptLoader.markDone(u);
        }
    }
}
 

Basicamente, estamos fazendo um HACK MALIGNO, dizendo que o script nunca está carregado, portanto, sempre o carregue. Se você estiver usando o locale pt_BR no wordpress, vai precisar criar um arquivo pt_dlg.js na pasta langs do plugin table.

Curioso para saber o que eu ando fazendo com wordpress? Dá uma olhada no site da China 2008!

This entry was posted in PHP and tagged , , , , . Bookmark the permalink.

4 Responses to WordPress 2.6, TinyMCE

  1. Está passando pro outro lado da força :-)

    Nosso jedi do b2evolution ;-)

  2. Hehhee.. Apenas observando o outro lado ;)

  3. Além de ser ótimo, este artigo me ajudou a encontrar o que eu estava procurando há muito tempo: O local onde se poderia modificar as configs do tiny. Agora conseguirei inserir/retirar todos os botões que desejo! eu acho… :-)

Deixe um Comentário

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>