SPIP: fechas

Publicado el 31 de Enero de 2010 por Marga

Cuando los artículos funcionan como eventos, se suelen listar los que tienen una fecha de redacción anterior futura, es decir, los ventos que aún no se han realizado.

Eso lo da el criterio {age_redac<1} si se quieren listar los eventos de hoy y los del futuro, y {age_redac<0} si solo se quieren listar los eventos futuros pero no los de hoy.

Lo mismo valdría para la fecha {age<1}

No obstante, aquí pongo cómo se obtendría la fecha del sistema, en PHP:

<?php
$fecha = time();
$dia = date(d);
echo 'dia'.$dia;
$mes = date(m);
echo 'mes'.$mes;
$year = date(Y);
echo 'año'.$year;
?>

SPIP. Navegar por secciones vacías o por artículos vacíos

Publicado el 31 de Enero de 2010 por Marga

Por defecto, SPIP en los listados no muestra las secciones vacías para evitar que el usuario llegue a callejones sin salida, vistas en las que no hay nada.

Sin embargo, es posible modificar ese comportamiento.

Para ello está el criterio {tout}.

Si se quiere que un menú muestre las secciones vacías:

<BOUCLE_secciones(RUBRIQUES){id_parent}{par num titre, titre}{tout}>

Si dentro de ese bucle se quiere hacer un tratamiento distinto para secciones vacías y no vacías se puede usar la sintaxis “if” en SPIP, o bien un if en PHP, o en javaScript, etc. Algo de este tipo:

if (”#STATUT”==”publie”) {bla bla bla;}
else {bla bla ba;}

Con esto se consigue navegar hacia la sección vacía, pero al invocar un esquerelo rubrique para una sección vacía SPIP dará un error 404.

Para evitar ese error, en el bucle pincipal de la rubrique, el del esqueleto rubrique,  también tiene que tener el criterio {tout}:

[(#REM)
 Un cache plus court, pour la boucle syndic_articles
]#CACHE{3600}
<BOUCLE_principale(RUBRIQUES) {tout} {id_rubrique}>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0...bla bla bla



				
				

MP3, descargar el fichero en lugar de abrirlo

Publicado el 21 de Enero de 2010 por Marga

Según la configuración del navegador, los ficheros mp3 se desacargan o se abren y empiezan a sonar.

Si se desea forzar la descarga, es decir, que independientemente
de la configuración del cliente
el fichero mp3 o ogg se descargue,
hay que añadir esta línea en el fichero

.htaccess:
AddType application/octet-stream .mp3 .ogg

SPIP: Cómo hacer una biblioteca mediateca

Publicado el 21 de Enero de 2010 por Marga

En edulibre.info han realizado una integración PBM+SPIP con la que se puede crear un portal bibliotecario y mediateca para una escuela en Internet.

Acuse de recibo en Thunderbird 2.00.23

Publicado el 30 de Septiembre de 2009 por ana

No funciona aunque se configure por GUI en Preferencias o Configuración de las cuentas.

La solución es editar el fichero /home/quiensea/.mozilla-thunderbird/loquesea.default/prefs.js y en él poner una nueva línea:
user_pref(”mail.mdn.report.enabled”, true);

La recepción de tal notificación de acuse de recibo depende del gestor de correo del destinatarix. No todos los gestores lo tienen. Si no lo tienen, el acuse de recibo será obviado.

Esto funciona en Ubuntu 8.10. En Ubuntu 9.04 no.

Para Thunderbird sobre Windows XP supongo que habrá que buscar el fichero de configuración prefs.js  y hacer lo mismo.

SPIP: Agenda Sarka_spip. Mostrar todos los eventos del día

Publicado el 24 de Agosto de 2009 por Marga

Cuando se pincha en una fecha del minicalendario de la agenda Sarka_SPIP, se muestra el primer evento del día.

Queríamos que, en lugar de mostrar el primer evento del día, los mostrase todos.

Para ello, prescindimos de la página evenements.html y creamos una propia: eventos_dia.html.

En eventos_dia.html pusimos un bucle con los artículos cuya #DATE_REDAC fuera la de una fecha determinada. El problema era que #DATE_REDAC almacenta la fecha y la hora del evento, pero solo queríamos la fecha, por lo que teníamos que “limpiar” la hora.

Eso lo hicimos con la función substr de PHP:

<BOUCLE_evenements(ARTICLES){id_rubrique=**la de la agenda**}>
<?php
$fecha_redaccion=substr("#DATE_REDAC", 0, 10);
if ($fecha==$fecha_redaccion) {
?>

Aquí el código del bucle

<?php
}
?>
</BOUCLE_evenements>

Además, teníamos que hacer que el minicalendario pasase la fecha en la url, pero también habiendo eliminado la hora.

En el fichero agenda.php, en la function agenda_mini_afficher, a la variable $lien se le asigna la url del enlace del minicalendario.

Modificamos la asignación a $lien por esto:

// extraigo la fecha omitiendo la hora
$fecha=substr(($evenements[$index_evt1]['date_redac']), 0, 10);
$lien = 'spip.php?page=eventos_dia'.'&fecha='.$fecha;

En resumen: en agenda.php modificamos la url del mini_calendrier para que apunte a una página propia y le pase la fecha del calendario.

Y en la página propia filtramos los artículos de la agenda cuya fecha de redacción es esa fecha. Teniendo en cuenta que para comparar ambas fechas hemos tenido que “quitarles” la hora.

El resultado puede verse en el periódico Diagonal Aragón.

SPIP: algunos enlaces de la ayuda no funcionan

Publicado el 19 de Agosto de 2009 por Marga

En la ayuda de la interface de administración (botón Ayuda en línea), algunos enlaces no funcionan.

Por ejemplo, el enlace a “más información acerca de las listas” del apartado  Los artículos -> Los atajos tipográficos.

Si se mira esa url se verá que es de la forma:

http://www.dabne.net/aide/es-aide.html#listes

El problema es que esta url no existe porque, como puede verse en cualquier url de la columna izquierda, estas son de la forma:

http://www.dabne.net/ecrire/?exec=aide_index&aide=&var_lang=es&frame=menu

La solución consiste en editar el fichero de ayuda y modificar las url.

El fichero es:

tmp/cache/aide-es-aide.html

Hay que buscar las url del tipo:

<a href='/aide/es-aide.html#listes'>

Y cambiarlas por:

<a href='#listes'>

Eso es todo.

Error 403 y .htaccess

Publicado el 18 de Agosto de 2009 por ana

En nuestro caso, en un sitio hecho con Spip, no podíamos activar los plugins recién instalados, apareciendo el código de error 403. Incluso dando permisos a las carpetas que los contenían, por ftp.

Algunos foros recomiendan borrar las carpetas /tmp/cache y /tmp/sessions y volverlas a crear dándoles permisos de lectura y escritura para todxs. Así lo hicimos, pero no funcionó. También llegó un momento en que no podíamos ver ni el espacio público, sólo el privado….

Este error 403 se produce cuando no se tiene permiso para acceder a una página. Estos permisos están configurados en directivas dentro del archivo de configuración principal de Apache (httpd.conf, típicamente en una sección del tipo <Directory>), o en archivos de configuración por directorios (archivos .htaccess).

En nuestro caso, el archivo .htaccess había sido desconfigurado.

Solucionamos el asunto escribiendo esta línea en el archivo .htaccess de la raíz del sitio:

SecFilterEngine Off

SPIP: Agenda

Publicado el 28 de Julio de 2009 por ana

Para hacer un calendario de eventos en la parte pública de  Spip 1.9.x.

(tomada de la plantilla  Sarka-spip)

Hacen falta los ficheros (adjuntos):
* agenda.php
* mes_fonctions.php
* mini-agenda.html (el calendario en pequeño)
* agenda.html (todos los eventos de la agenda)
* evenement.html (que en nuestro caso es idéntico a article.html pero la fecha que hemos puesto que aparezca es la fecha de redacción anterior, que es la que aparece en el calendario)

Para hacer funcionar la agenda:
* Hay que crear una sección que contendrá los eventos.
* Se crea un grupo de palabras clave llamado “squelette_habillage”
* Y en este grupo, se crea la palabra clave “agenda”.
* Esta palabra se asocia a la sección en cuestión (no hace falta ya asociarla a los artículos dentro).
* Al publicar un artículo dentro de esa sección, hay que especificar la “fecha de redacción anterior” que es la que aparece en el calendario.

Ahora todos los artículos que haya dentro de esta sección serán considerados como eventos, aunque siguen siendo artículos y como tal se editan.
El día que tenga un evento o más aparecerá en otro color en el calendario.

Para incluir un mini-calendario en la web hay que incluir el código con parámetros en el lugar donde queremos que aparezca:
[(#NOOP) <!-- affichage du mini-agenda --> ] <BOUCLE_acces_agenda(RUBRIQUES) {id_rubrique=#RUBRIQUE_AGENDA}> [(#RUBRIQUE_AGENDA|=={0}|?{'', ' '})<INCLURE{fond=mini-agenda}{id_article}{id_rubrique}{calendrier_mois}{calendrier_annee}>] </BOUCLE_acces_agenda>

Si hay inclures dentro de otras inclures en esqueletos, hay que tener cuidado con las relaciones. En nuestro caso teníamos los esqueletos de sommaire, secciones y artículos con una columna izquierda donde a su vez estaba incluida la agenda. Por lo tanto el código anterior está puesto en la col-izq, que es desde donde se llama a la agenda.

Además, en el sommaire y en las secciones, se ha escrito:

<INCLURE(page.php3){fond=col_izq}{id_rubrique=#ID_RUBRIQUE}{calendrier_mois}{calendrier_annee}>

En los artículos:

<INCLURE(page.php3){fond=col_izq}{id_article=#ID_ARTICLE}{calendrier_mois}{calendrier_annee}>

SPIP: permisos

Publicado el 28 de Julio de 2009 por Marga

Según leo en la lista de SPIP, para que SPIP no nos obligue a tener los
directorios IMG, tmp, local y config en 777 (es decir, completamente
abiertos), hay que tener el PHP en modo CGI y no en Apache.