Hola gente! Estoy trabajando en un sitio con spip (http://www.famaf.unc.edu.ar/novedades) y tengo muchas dudas para lo que quiero lograr.
En el ecrire cuando redacto un articulo y pongo guardar (aun sin publicar), se inserta el articulo en la base de datos con estado « en redaccion » (o como se diga en francés), verdad?
Y luego si puedo cambiarle el estado a publicado y apreto validar y ya aparece en el sitio. Lo que no encuentro en los archivos de configuracion del ecrire es el php que inserta el estado « publie » de un articulo. Porque cuando se publique un nuevo articulo debo mandarlo por mail a cierta lista de correo (hay un mail distinto para cada seccion al que debo enviar las noticias). Entonces necesito hacer una funcion send_article(que recibe el id_article) y que dependiendo la seccion a la cual pertenezca envie un mail con ese articulo a determinado correo (para esto utilizaria phpmailer que viene en el plugin enviar_mail). Alguien me ayuda para ver donde debo insertar esa llamad a la función, para que el envío sea automático al publicar cada artículo?
Gracias!!!
Yanina Iberra
Busca desde cualquier página Web con una protección excepcional. Consigue la Barra de herramientas de Windows Live hoy mismo GRATUITAMENTE. Pruébalo
El 25/09/07, Yanina Iberra <yaniyuri@hotmail.com> escribió:
Hola gente! Estoy trabajando en un sitio con spip
(http://www.famaf.unc.edu.ar/novedades) y tengo muchas
dudas para lo que quiero lograr.
En el ecrire cuando redacto un articulo y pongo guardar (aun sin publicar),
se inserta el articulo en la base de datos con estado "en redaccion" (o como
se diga en francés), verdad?
Y luego si puedo cambiarle el estado a publicado y apreto validar y ya
aparece en el sitio. Lo que no encuentro en los archivos de configuracion
del ecrire es el php que inserta el estado "publie" de un articulo. Porque
cuando se publique un nuevo articulo debo mandarlo por mail a cierta lista
de correo (hay un mail distinto para cada seccion al que debo enviar las
noticias). Entonces necesito hacer una funcion send_article(que recibe el
id_article) y que dependiendo la seccion a la cual pertenezca envie un mail
con ese articulo a determinado correo (para esto utilizaria phpmailer que
viene en el plugin enviar_mail). Alguien me ayuda para ver donde debo
insertar esa llamad a la función, para que el envío sea automático al
publicar cada artículo?
Gracias!!!
Yanina Iberra
Hola!
Ya te habia mandado una propuesta para esto en tu anterior consulta.
si no te sirve, para hacer tu hack, el asunto que buscás está en el
codigo ecrire/actions/editer_article.php lineas 219:224
// Creer la requete SQL
$update = array();
foreach ($champs as $champ => $val)
$update = $champ . '=' . _q($val);
spip_query("UPDATE spip_articles SET ".join(', ',$update)." WHERE
id_article=$id_article");
podrias agregar algo asi antes del query
if ($champs['statut']=='publie'){
switch($id_rubrique){
case 1:
mail("seccion_1@famaf.org", "nuevo articulo", "nuevo articulo en la
seccion 1");
break;
case 2:
mail("seccion_2@famaf.org", "nuevo articulo", "nuevo articulo en la
seccion 2");
break;
//etc.
}
}
(sin probar!)
de cualquier manera es preferible evitar este tipo de hacks
"hardcodeados" y orientarse por hacerlo mediante plugins.
por ejemplo, podrias ver si se puede hacer algo con spip-listes
saludos.
martin
de paso, cuando tengo que hacer "ingenieria inversa" de código ajeno
(teniendo el código, más vale), una herramienta que me es de mucha
ayuda es regexxer, que permite buscar y reemplazar cadenas en
multiples ficheros.
por ejemplo acá busqué "UPDATE y con un poco de pispeo (sabia que
tenia que se la tabla articulos), llegué al punto en cuestion en 1
min.
http://regexxer.sourceforge.net/
y tambien viene de perrillas cuando hay que renombrar estilos o
códigos repetidos, por ejemplo cuando se actualiza un juego de
esqueletos de una versión vieja de spip a una actual.
salú