Voici le code de la fonction cron. Les update de la base sont effectuées, pas le reste.
function cron_spock($time) {
// on recupere les alertes a envoyer
$s = spip_query("
SELECT sp.lang, alrt.id_article as art, alrt.id_auteur as aut
FROM spip_stock st
LEFT JOIN spip_articles sp ON st.id_trad=sp.id_trad
RIGHT JOIN spock_alertes alrt ON sp.id_article = alrt.id_article
WHERE st.stock > st.old_stock");
while ($t = spip_fetch_array($s)) {
// on met la table du stock a jour
spip_query(« UPDATE spip_stock SET old_stock=stock »);
// on supprime les alertes envoyees
spip_query(« DELETE FROM spock_alertes WHERE id_auteur= ».$t[‹ aut ›]." AND id_article=".$t[‹ art ›]);
include_spip(‹ inc/mail ›);
envoyer_mail(‹ mthanry@ifrance.com ›, ‹ alerte ›, ‹ texte alerte ›, ‹ mthanry@michaelthanry.com ›);
spip_log (‹ @@@@ MAIL @@@@ ›);
}
if ($t) return 1;
}
De : booz@rezo.net
Date : 05/09/07 14:23:23
A : mthanry@ifrance.com
Cc : spip
Sujet : Re: [Spip] envoyer_mail, spip_log et spip.log
Hum, ca sent l’erreur de compilation php.
On peut voir le code ? et le site ?
Mets des spip_log(); un peu partout pour voir ou ca pète.
BoOz
mthanry@ifrance.com a écrit :
Hello,
SPIP 1.9.2b
Le plugin est un mélange du plugin favoris et d’un système basique de
gestion de stock.Sur le principe, quand un article a un stock à 0, le visiteur
enregistré peut créé une alerte pour être notifié dès que l’article
devient dispo.La fonction cron du plugin envoie un mail aux visiteurs ayant créé une
alerte sur les articles entrés en stock puis supprime l’alerte en
question.J’ai donc une boucle while qui, pour chaque alerte sur un article
entré en stock, envoie le mail puis supprime l’alerte.Le mail n’est jamais reçu (ou envoyé?) même sans utiliser de variable
dans la fonction envoyer_mail :envoyer_mail(‹ email@destinataire.com ›, ‹ sujet ›, ‹ texte ›,
‹ moi@mondomaine.com ›);Je reçois bien les autres mails émis par spip (nouveautés, activité
éditoriale, …)De : booz@rezo.net
Date : 05/09/07 13:42:14
A : spip@rezo.net