Para realizar un CD con contenido HTML, pensamos en instalar un WordPress, hacer el tema, configurar los plugins, etc., y luego de alguna manera obener una copia estática y con ella hacer la iso para el CD-ROM.

El plugin de WordPress Really Static tiene muy buena pinta pero hace justo al revés: permite tener una copia online estática de un WordPress que tengas instalado en local. Es una buena opción para tener un sitio dinámico mantenido por una sola persona y en un hosting que no dé acceso a bases de datos.

Pero no solucionaba el problema.

Encontramos HTTrack que sí que lo soluciona. Instalas en paquete httrack en tu Ubuntu (o Debian o Windows).

Luego en la consola local ejecutas httrack. Te pide el nombre del proyecto, que es el destino para el HTML estático, y la url del sitio que quieres descargar. Salvo que indiques lo contrario, los proyectos se guardan en la carpeta websites de tu home.

En realidad sirve para cualquier CMS, no solo para WordPress.

Aquí hay ayuda sobre httrack.

 

Si los feeds de SPIP os dan un error como este:

Error de lectura XML: declaración de texto o XML en un lugar distinto del principio de la entidad
Ubicación: https://www.tudominio.net/spip.php?page=backend
Número de línea 3, columna 1:<?xml version="1.0" encoding="iso-8859-1"?>
^

Lo que ocurre es que las dos primeras líneas se quedan en blanco.  Para solucionarlo, en el fichero backend.html hay que borrar la línea:

<?xml version="1.0"[ encoding="(#CHARSET)"]?>

Es decir, que en lugar de:

#CACHE{3600}
[(#HTTP_HEADER{Content-type: text/xml[; charset=(#CHARSET)]})]
<?xml version="1.0"[ encoding="(#CHARSET)"]?>
<rss version="2.0"

Ponga:

#CACHE{3600}
[(#HTTP_HEADER{Content-type: text/xml[; charset=(#CHARSET)]})]
<rss version="2.0"
 

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;
?>
 

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

		
 

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.

 

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.

 

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.

 

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
 

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}>

 

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.

Blog de Dabne || Web de Dabne Suffusion theme by Sayontan Sinha