Hola a todos!
Hoy les traigo esta pequeña guía para poder actualizar al 100% su script para poder usarlo con Php 7.0, usar frameworks más modernos, etc.
Cabe recalcar que esta guía está basada en la versión 1.3.0 de Phpost Risus.
Además es recomendable de ir creando respaldos de los archivos, por las dudas.
Cabe recalcar que existen pasos adicionales en la forma automática de cada actualización (estos se mostrarán en los actualizadores).
Actualizar archivos Javascript y/o Jquery de tu tema actual:
Automática:
Descarga la última versión del actualizador de JS para Phpost Risus creado por Rascii: aquí.
Copia el contenido de la carpeta script en la raíz de tu web.
Accede al actualizador desde tuweb.com/updatejs/
La actualización será completamente automática, solo debes darle al botón "realizar actualización" (también podrás seleccionar si eliminar archivos obsoletos después de la actualización).
Nota: Si deseas actualizar otro tema, debes seleccionarlo desde la administración y luego volver al actualizador.
Manual:
Esto lo debes realizar para cada archivo que exista dentro de la carpeta JS (exceptuando jquery.min.js, jquery.color.js y jquery,plugins.js), por eso es recomendable usar el actualizador automático que te libra de realizar todo este tedioso proceso.
Ir en orden, porque hay funciones que se pueden repetir.
Es recomendable usar Notepad++ o Sublime Text para poder hacer este "Buscar & Remplazar" (aunque estos editores permiten hacer una búsqueda en varios archivos al mismo tiempo, esto puede ahorrarte bastante).
Nota: Siempre colocar el punto (.) antes de hacer la búsqueda y remplazar.
Buscar: .live( y remplazar por: .on(
Buscar: .bind( y remplazar por: .on(
Buscar: .unbind( y remplazar por: .off(
Buscar: .size() y remplazar por: .length
Buscar: .attr('checked') y remplazar por: .prop('checked')
Remplazar archivos de la carpeta por estos.
(Opcional si remplazaste en el paso anterior)
1.- Eliminar archivos: cuentados.js, jquery.form.js, jquery.tablednd.js.
2- Ir al archivo cuenta.js y borrar todo desde:
// Jcrop-0.9.8-min - K. Hallman / DeepLiquid.com 08 - http://deepliquid.com/content/Jcrop.html - MIT License
Pasos Adicionales:
Elimina el caché de tu navegador (guía).
Ingresa la consola de desarrollador (Generalmente apretar tecla F12 y luego clic en consola) y verifica que todo esté correcto (también realiza acciones dentro del sitio por si alguna función tiene problemas).
Actualizar Smarty:
Automática:
Descarga la última versión del actualizador de Smarty 3 por Rascii para Phpost Risus (Descarga el primer zip (El de Minimal Release) no el que dice Source code): AQUÍ.
Descomprime el contenido del primer archivo .zip en la raíz de tu sitio.
Ingresa al actualizador mediante tuweb.com/updater/.
Sigue lo que te muestra el actualizador.
Manual:
Descarga este ZIP.
Vacía el contenido de la carpeta /inc/smarty/.
Descomprime el ZIP descargado en la carpeta /inc/smarty/.
Vacía el contenido de la carpeta /cache/.
Elimina el archivo /inc/class/c.smarty.php
(A veces no aparece, en ese caso, omitir) En el archivo header.php busca $smarty =& tsSmarty::getInstance(); y remplaza por $smarty = new smartyBC();
(A veces no aparece, en ese caso, omitir) En el archivo header.php busca $smarty = new tsSmarty(); y remplaza por $smarty = new smartyBC();
En el archivo header.php busca include TS_CLASS.'c.smarty.php'; y remplaza por require(TS_ROOT . DIRECTORY_SEPARATOR .'inc'. DIRECTORY_SEPARATOR .'smarty'. DIRECTORY_SEPARATOR .'SmartyBC.class.php');
Remplaza el archivo /inc/php/ajax_files.php por este.
Remplaza el archivo /footer.php por este.
En el archivo t.moderacion.tpl de nuestro tema actual buscamos: {include file='admin_mods/m.mod_report_posts.tpl} y remplaza por {include file='admin_mods/m.mod_report_posts.tpl'}
Actualizar PHP:
Al parecer el repositorio de Phpost Risus en GitHub ya viene con php actualizado, pero aún quedan algunos pasos que posiblemente sean corregidos si @Isidro ve este tópico (en ese caso, modificaré el topic).
En el archivo c.core.php buscar:
function setJSON($data, $type = 'encode'){
require_once(TS_EXTRA . 'JSON.php'); // INCLUIMOS LA CLASE
$json = new Services_JSON; // CREAMOS EL SERVICIO
if($type == 'encode') return $json->encode($data);
elseif($type == 'decode') return $json->decode($data);
}
Remplazar por:
function setJSON($data = '', $type = 'encode'){
if($type == 'encode') return json_encode($data);
elseif($type == 'decode') return json_decode($data);
}
Eliminar el archivo /inc/ext/JSON.php.
Nueva Herramienta para actualizar archivos de /inc/class/
Además me complace en presentarles esta herramienta para actualizar archivos de clases (esto para el error "Too Many Arguments" que a veces sale). En ella es cuestión de pegar el contenido de nuestro archivo de /inc/class/ y convertirá automáticamente cada función que se pueda actualizar para "parchear" este fallo.
Pueden obtener el código fuente desde el repositorio en GitHub por si quieren hacer experimientos o un actualizador automático como los que hice, que no sería tan difícil pero por tiempo yo no puedo realizarlo, o quizás lo haga?
Fin.
Eso fue todo en esta guía, espero que les sirva y puedan tener sus scripts actualizados y sin problemas con nuevas versiones de PHP .