Hola a todo el mundo,
Lo que sigue ahora es una « traducción » de un correo que mandé hace un par de días a la lista de spip (todavía no sabía que existía esta lista). Si alguno de vosotros está suscrito a [spip], ya lo habrá visto. Bueno, ahí va:
Soy nuevo en esta lista, así que me gustaría presentarme brevemente: Soy usuario de spip desde hace muy poco. Hace un tiempo, un amigo me pidió que escribiese un plugin que permitiese a los usuarios de spip hacer « grupos », y tener un « blog » para cada grupo. Y yo, ingenuamente, le dije que lo intentaría.
Para hacerme una idea de cómo va lo de los plugins, empecé a leer el código de otros plugins, y a preguntar en el canal #spip en el irc (por cierto, que no se si hay un #spip-es…).
Total, que ahora estoy escribiendo el plugin en cuestión. Por ahora, he creado, en la base de datos, las tablas:
« spip_blogs_blogs »: con los campos « id_blog »,« nombre », « estilo », « titulo »
« spip_blogs_permisos »: que tiene los campos « id_permiso »(es la clave, pero no se usa para nada), « id_auteur », « id_grupo », y « rol » (que es un numero,« 5 » significa « administrador », « 4 » autor, etc.)
También he modificado la tabla « spip_articles » para que incluya el campo « id_blog ».
Funciona así: imaginad que hay una entrada en « spip_blogs_blogs » con id_blog=1, nombre=« miblog », estilo=« un_estilo », titulo=« Mi Blog »
Y que hay una entrada en « spip_blogs_permisos » como esta: id_permiso=1, id_auteur=1, id_grupo=1, rol=5.
Esto significa que el autor con id_auteur =1 (llamémosle « Pepe ») es el « administrador » del blog « Mi Blog ». Por lo tanto, puede añadir más usuarios al blog, y cosas así.
Todo esto ya está implementado. Hay páginas de administración que permiten a los administradores de blogs invitar usuarios a los blogs, cambiarles el título, el estilo… todo el rollo. Y he creado unas páginas sencillitas que permiten visitar, por ejemplo, lo que sería
« http://mi.pagina-spip.net/?page=blogs&nombre_blog=miblog »
o « http://mi.pagina-spip.net/blogs/miblog », con unos cambios que he hecho en el fichero .htaccess
En esta página (blogs.html) hay un BOUCLE como este (es un poco más complicado en realidad, pero en resumen hace esto):
<BOUCLE_blog(BLOGS_BLOGS){nombre = #NOMBRE_BLOG} >
#TITULO#TITULO
#TITRE #INTRODUCTIONLa idea era, una vez alterada la tabla « spip_articles », que si un usuario escribe un artículo que va a ir en la portada, o en la « página general » (NO en un blog), este campo quedaría vacío (o sería « 0 », o « NULL », todavía no lo sé, da un poco igual).
Pero si escribe un artículo que vaya a ir en un blog, ese artículo llevaría el « id_blog » correspondiente al blog al que pertenece.
Así, si Pepe quiere escribir una entrada en el blog « Mi Blog », ese campo llevará « 1 ».
Habría que modificar los BOUCLEs de las páginas genéricas para que solo incluyan « articles » sin « id_blog », claro.
Y… aquí está el problema. Que no tengo ni idea de cómo hacer esto. Por ahora, he probado a:
- copiar el fichero « spip/prive/editer/article.html » en « plugins/blogs/prive/editer/editar_entrada.html »
- copiar « ecrire/exec/articles_edit.php » en « plugins/blogs/exec/editar_entrada.php » (y cambiar los nombres de las funciones, para que coincidan y tal)
- copiar formularios adicionales, necesarios para que esto funcione, cambiando nombres para que no haya conflictos ni nada
- ir a la dirección « http://mi.pagina-spip.net/ecrire/?exec=editar_entrada&new=oui&id_blog=1 »
Todavía no funciona, porque pensé que seguro que hay mejores formas de hacerlo, y dejé de trastear con ello. Muestra los formularios y tal, pero no inserta nada en las tablas todavía.
En resumen: Alguien puede imaginar una manera de hacer esto? Sólo necesito una manera de insertar el « id_blog » cuando sea necesario, lo demás está ya listo… Pero es que me he quedado atascado en este punto…
Creo que no me he dejado nada por explicar, pero si necesitáis más información sobre lo que he hecho, o cualquier cosa, decídmelo y lo contaré.
Gracias por adelantado!
PD: Por ahora, el plugin es un lío, con errores y tal. Cuando esté terminado, lo liberaré en algún lado, por si alguien está interesado. A mi la idea me pareció buena, y puede serle útil a alguien…
Venga, un saludo. Y gracias por adelantado otra vez!
–
Saúde,
Chaves.