Recientemente actualizamos un servidor de php 5.3 a php 7, en realidad no sé si la actualización causa este problema, pero cuando voy a insertar un archivo en TinyMCE javascirpt, recibo este mensaje de error:

La respuesta del servidor no era formato JSON

No he encontrado nada en Internet al respecto.

Aquí está Json_data:

{"method":"fm.insertFiles","params":[{"path0":"{0}/Sage.JPG"}],"id":"c0"}

Aquí está la configuración de TinyMCE:

    tinyMCE.init({
    // General options
        mode : "exact",
        elements : "msg_body",
    theme : "advanced",
    theme_advanced_resizing_max_width : 530,
    plugins : "pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,wordcount,advlist,autosave,spellchecker,filemanager",

    // Theme options
    theme_advanced_buttons1 : "bold,italic,underline,|,justifyleft,justifycenter,justifyright,justifyfull,|,bullist,|,styleselect,formatselect,|,forecolor,backcolor,<?if ($staff[perm][msg_replies]==1) {?>|,insertfile,link,<?}?>|,spellchecker",
    theme_advanced_buttons2 : "",
    theme_advanced_buttons3 : "",
    theme_advanced_buttons4 : "",
    theme_advanced_toolbar_location : "top",
    theme_advanced_toolbar_align : "left",
    theme_advanced_statusbar_location : "bottom",
    theme_advanced_resizing : true,

    //External
    extended_valid_elements : "iframe[src|width|height|name|align]",

    // Example content CSS (should be your site CSS)
    content_css : "../style-bijou.css",

    // Drop lists for link/image/media/template dialogs
    template_external_list_url : "lists/template_list.js",
    external_link_list_url : "lists/link_list.js",
    external_image_list_url : "cms-image_list.php",
    media_external_list_url : "lists/media_list.js",

    // Style formats
    style_formats : [
        {title : 'Bijou Weddings styles'},
        {title : 'Bijou copy', block : 'p', classes : 'copy'},
        {title : 'Bijou copy bold', inline : 'span', classes : 'title'},
        {title : 'Corporate Event styles'},
        {title : 'Event bullets small', block : 'p', classes : 'corpbodybull'},
        {title : 'Event bullets big', block : 'p', classes : 'corpbull'},
        {title : 'Table styles'},
        {title : 'Table row 1', selector : 'tr', classes : 'tablerow1'}
    ],

    // Replace values for the template plugin
    template_replace_values : {
        username : "Some User",
        staffid : "991234"
    }

});

¿Tienes alguna idea por favor? Gracias

0
Marcello Perri 13 nov. 2017 a las 19:35

2 respuestas

La mejor respuesta

Finalmente encontré la causa del problema

El complemento "filemanager" genera un error de php, el archivo History.php ubicado en la carpeta /plugins/filemanager/plugins/History está usando una función php llamada split que está obsoleta para php7.

Entonces cambio la función split con la función explode. Ahora la inserción de archivos está funcionando correctamente.

Espero que esto sea útil.

Aquí está la explicación en php.net: http://php.net/manual/en/function.split.php y http://php.net/manual/en/function.explode.php

3
Marcello Perri 1 ene. 2020 a las 14:35

Intente enviar la respuesta con

$ data = {"method": "fm.insertFiles", "params": [{"path0": "{0} /Sage.JPG"}], "id": "c0"}; json_encode ($ datos);

en lugar de json_data

1
MarcoMontilla 13 nov. 2017 a las 17:09