Instalar Menéame desde cero (parte II) #meneame

Tamaño de letra:

Diferentes errores en la versión 4 que en la 5

Icono menéameEn el anterior artículo comenzamos la instalación del código de Menéame desde cero. Tras copiar los archivos, crear el nuevo archivo de configuración, crear la base de datos e importar los tres archivos sql, observamos que saltan dos importantes errores que impiden continuar con el proceso.
Estos dos errores solo me han aparecido al intentar instalar la versión 4 del código de Menéame, en la 5 no han aparecido.
El primero de ellos dice lo siguiente:

Error, site_shortname not found, check your global['site_shortname']: mnmerror in query: set @user_id = 0, @ip_int = 1, @ip_int = 1, @enabled_votes = date_sub(now(), interval 96 hour), @site = (You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1)

Parece que no hemos definido la variable site_shortname (nombre corto del sitio) pero esto es totalmente falso ya que si vas al archivo config.php verás que sí está definida. ¿Entonces? Me fijo en el error de la consulta y me quedo con esto:

Error, site_shortname not found

Variable site_shortname not found

Solucionando y entendiendo el primer error

Ahora voy a usar uno de mis favoritos programas del que he hablado varias veces en esta web. El programa es FileSeek y es muy útil para buscar expresiones regulares en archivos. Introduzco el texto de antes y observo que proviene de 2 archivos, uno de ellos es:

C:\xampp\htdocs\karmanyMNM\libs\sites.php en la línea 22

Si observas esa consulta y depuras, verás que el error viene porque no puede evaluar esta consulta:

select id, parent from subs where name = '".$globals['site_shortname']."'

Es decir, está haciendo una consulta a la tabla subs seleccionando los campos id y parent y además en el campo name debe contener (en texto) lo mismo que nuestra variable local. En el anterior artículo no modificamos la variable $globals['site_shortname'], así que, por defecto, y puedes observar también en el archivo config.php, dicha variable tiene que ser mnm. Lo puedes ver en el código de error del segundo párrafo de este tutorial. $globals['site_shortname'] : mnm

Nota: mnm es por defecto el nombre corto de menéame. Tú puedes cambiarlo por el que más te guste.

Así que tenemos que crear un subsite. Así que voy en phpMyAdmin a la tabla subs y creo (insertar) el siguiente registro:

id = 1
name = mnm
enabled = 1
parent = 0
server_name = localhost
url_name = /karmanymnm/

Con esto ya estará solucionado el primer error. Un subsite en menéame es, por ejemplo, general y otro deportes (para que se entienda), son sitios completamente diferentes.

Solucionando y entendiendo el segundo error

Haanga Compiler Exception. Este error no sale (o no me ha salido en servidor, solo en local). Imagen del error:

Haanga Compiler Exception

Esta excepción es más compleja pero gracias a que esto mismo ya le pasó a otro usuario, éste se lo comentó en este hilo directamente al autor de Haanga (César D. Rodas) y la solución la dejó bien clara en un tweet:

Por si un día desaparece el Tweet, o no quieres leerlo, viene a decir que en el archivo:

C:\xampp\htdocs\karmanyMNM\libs\init.php

Modifiques esto:

$config = array(
    'template_dir' => mnmpath.'/'.$globals['haanga_templates'],
    'autoload'     => FALSE, /* Don't use Haanga's autoloader */

por esto:

$config = array(
    'template_dir' => mnmpath.'/'.$globals['haanga_templates'],
    'autoload'     => TRUE, /* Don't use Haanga's autoloader */

Corrigiendo estos 2 errores, si vuelvo a recargar el proyecto: localhost/karmanyMNM en un primer momento aparece lo siguiente:

Fatal error: Class 'Link' not found in C:\xampp\htdocs\karmanyMNM\index.php on line 73

Tal vez sea por varias pruebas que he hecho, pero parece que se soluciona deteniendo el módulo Apache de XAMPP y volviéndolo a activar o simplemente recargando el navegador. Ahora, solo en la versión 5, tengo este otro error (o similares haciendo referencia al archivo basic.js):

Fatal error: Uncaught exception 'Exception' with message 'View js/basic.js doesn't exists' in C:\xampp\htdocs\karmanyMNM\libs\Haanga.php on line 347

Si lo depuro con Eclipse, veo que el problema es que no existe el archivo basic.js en esta dirección:

C:\xampp\htdocs\karmanyMNM\templates\js\basic.js

Esto me llama la atención porque dentro de la carpeta templates, existe un archivo js (con contenido ../js) que es un enlace simbólico a la carpeta del directorio superior js. Este error seguramente no ocurra en servidor pero en Apache/XAMPP sí. Una sencilla y rápida solución, para trabajar en local, es copiar el archivo:

C:\xampp\htdocs\karmanyMNM\js\basic.js

Y crear el directorio js en templates y pegar ahí el archivo, quedando así:

C:\xampp\htdocs\karmanyMNM\templates\js\basic.js

Del mismo modo que he copiado el archivo basic.js, como pueden fallar más enlaces a archivos, copio completamente los dos directorios js y css y los pego dentro de la carpeta templates.

He intentado buscar si esto era problema de la directiva para servidores Apache relacionada con enlaces simbólicos: "FollowSymLinks", pero no he encontrado solución. En local no me importa.

Primera ejecución sin errores

Por fin, la primera ejecución sin errores. Sin embargo, al recargar la web observo que solo aparece el código HTML y ¡no hay ningún estilo!. Observa:

menéame sin estilos

Como podrás ver, también ha reconocido la variable global "Menéame desde karmanyNET" del archivo localhost-local.php. Por el estilo (en la versión 4) no te desesperes que tiene fácil solución y te ahorrarás las más de 2 horas que tardé en encontrar el problema... Lo veremos en la tercera parte...

Última actualización: Miércoles, 13 Agosto 2014
Comentarios  
+1 # Litux 17-08-2014 11:10
De momento ha funcionado todo a la primera, esperando la parte 3, gracias
+2 # karmany 17-08-2014 20:18
HOla Litux, realmente quería publicar los artículos más rápidamente pero existe un problema que me está ralentizando demasiado:
Los tutoriales estaban escritos para la versión 4 del código de menéame y la versión 5 trae muchas novedades y otros errores complejos. El siguiente artículo ya está hecho y pensaba publicarlo hoy pero estoy analizando detenidamente el código de la versión 5 para no tener problemas en los siguientes tutoriales y no tener que reescribirlos.
Un saludo y gracias por tu comentario.
+1 # Litux 28-08-2014 15:45
Buenas, Como va el nuevo articulo, necesitas alguna ayuda?


Un saludo
+1 # karmany 28-08-2014 16:37
Hola Litux, estoy en varias cosas y no saco suficiente tiempo para la v5 de menéame. El 3º artículo ya está escrito. Ahora estoy parado en las categorías. En la v4 y anteriores existían categorías pero en la v5 crearon los subs y estoy probando cómo generar los subs dentro de la base de datos. El siguiente artículo será el III de menéame, y lo publicaré este fin de semana. Si tú quieres probar a hacer los subs en la base de datos. El problema es el tiempo, a ver si saco algo para analizarlo... Un saludo.
0 # Litux 28-08-2014 22:53
Los artículos de la versión 4 están accesibles?
+1 # karmany 28-08-2014 23:23
En total son 9 artículos de la versión 4. Están todos escritos y casi terminados, pero tengo que retocarlos. No los he publicado todavía, pero los dos siguientes (el 3º y 4º) los publicaré enseguida.

No tiene privilegios para responder a los comentarios.


 
Visitas: 8562262