Au père Noël ami des écureuils

Petit papa Noël

toi qui a toujours aimé les écureuils ()

j’aimerais si possible deuxcadeaux (ma liste a la fin du message et je promet de dire merci encore plus )

J’en profite pour remercier chaleureusement, sincèrement et du fond du cœur tous ceux qui font SPIP, Escal, Linux, mes potes du Web Je les cites pas, j’aurais trop peur d’en oublier un :wink:

  • Les créateurs et développeurs de la bête
  • Les contributeurs de spip-contrib
  • Les concepteurs de plugins
  • Les utilisateurs de la liste Spip ou Escal qui m’ont maintes fois aidé
  • L’IRC et ses différent salon de discussion

et tous ceux qui d’une façon ou d’une autre me font évoluer.

-J’ai pu construire mon site, en local et le transféré chez mon hébergeur, avec l’aide de tous, en me contentant de réutiliser ce qui a été fait par d’autres et en l’adaptant (légèrement) à mes besoins.

c’est la première façon de dire merci.

-J’essaye de citer le plus scrupuleusement possible mes sources et je donne l’accès a mon site :

c’est une deuxième façon de dire merci.

-J’essaye d’aider les débutants quand mes modestes connaissances le permettent :

c’est une troisième façon de dire merci.

-Et tout en n’étant en rien informaticien, codeur ou développeur, je me permets même de former les utilisateurs à monter leur propre site ou Pc :

c’est encore une façon de dire merci.

Papa Noël mes questions

Premièrement …

je référence des sites dans une rubrique (on est plusieurs a référence des sites)

mon soucis c’est qu’on peu référencé plusieurs fois le même site

donc je cherche une solution pour éviter ça

/ecrire/?exec=site_edit&id_rubrique=y et du coup on peu référencé x fois le même site.

Deuxièmement …

j’ai la fonction suivante

<?php */* rappel par newletters de l'appel a cotisation*/ function mailsubscribers_synchro_list_newsletter_**relance**() include_spip(’base/abstract_sql’) ; $dans10jours= new DateTime("+ 10 days") ; $dans20jours= new DateTime("+ 20 days") ; $dans30jours= new DateTime("+ 30 days") ; $les_inscrits=sql_allfetsel(’id_auteur, email,prenom,**date_1**", "spip_auteurs", date_1=’".$dans10jours->format(’Y-m-d’)."’ OR date_1=’".$dans20jours->format(’Y-m-d’)."’ OR date_1=’".$dans30jours->format(’Y-m-d’)."’ ) ; return $les_inscrits ; ?>

j’ai donc une info-lettre programmé tous les jours appelé relance

pourquoi je reçois celle ci tous les jours , elle devrais prendre en compte le champ **date_1** pour envoyé non ?

Merci petit papa noël

j’ai la fonction suivante

<?php */* rappel par newletters de l'appel a cotisation*/ function mailsubscribers_synchro_list_newsletter_**relance**() include_spip(’base/abstract_sql’) ; $dans10jours= new DateTime("+ 10 days") ; $dans20jours= new DateTime("+ 20 days") ; $dans30jours= new DateTime("+ 30 days") ; $les_inscrits=sql_allfetsel(’id_auteur, email,prenom,**date_1**", "spip_auteurs", date_1=’".$dans10jours->format(’Y-m-d’)."’ OR date_1=’".$dans20jours->format(’Y-m-d’)."’ OR date_1=’".$dans30jours->format(’Y-m-d’)."’ ) ; return $les_inscrits ; ?>

Bonjour,
essaye
echo sql_get_select(’id_auteur, email,prenom,date_1",
« spip_auteurs »,
date_1=’« .$dans10jours->format(’Y-m-d’). »’
OR date_1=’« .$dans20jours->format(’Y-m-d’). »’
OR date_1=’« .$dans30jours->format(’Y-m-d’). »’
) ;

voir a quoi ressemble la requete, tu peux aussi la tester sur phpmyadmin pour voir ce qu elle remonte (ou pas)
amicalement
triton

qu’entend tu par voir si elle remonte ? et comment la tester dans phpmyadmin je fous ça dans requete sql ? je reçois le mail tous les jours …

si tu vas sur une page de ton site, tu vas avoir affiché la requete sql : « select id_auteur… where … » tu copies ca, sur phpmyadmin tu vas sur ta bdd et dans l onglet sql tu colles et executes…

arffffffffff pareils j’ai reçu a 01h00 du matin l’appel a cotisation

donc la lettre fonctionne

mais la fonction n’est pas prie en compte

ou alors ya un truc que j’ai oublié …

Bonjour,
Tu mets ça :
echo sql_get_select(’id_auteur, email,prenom,*date_1*",
"spip_auteurs",
date_1=’".$dans10jours->format(’Y-m-d’)."’
OR date_1=’".$dans20jours->format(’Y-m-d’)."’
OR date_1=’".$dans30jours->format(’Y-m-d’)."’
) ;

dans ta fonction fonction mailsubscribers_synchro_list_newsletter_relance qui se trouve dans le fichier mes_fonctions.php du dossier "squelettes"

dans le fihicer mes_fonction.php sous le
<?php
tu appelles ta fonction comme ca :
mailsubscribers_synchro_list_newsletter_relance();
sur toutes les pages de backoffice tu vas avoir la fonction qui va etre appelée, donc l'affichage de la requete. Tu copies/colles la requete dans phpmyadmin pour voir s'il y a des erreurs.
Attention si tu es en prod : la fonction peut également être appelée depuis les pages publiques du site, donc afficher ta requete

triton

Le 03/12/2017 à 11:05, amilcar a écrit :

Le 03/12/2017 à 10:38, triton a écrit :

j'ai la fonction suivante

<?php
*/* rappel par newletters de l'appel a cotisation*/
function mailsubscribers_synchro_list_newsletter_*relance*()
include_spip(’base/abstract_sql’) ;
$dans10jours= new DateTime("+ 10 days") ;
$dans20jours= new DateTime("+ 20 days") ;
$dans30jours= new DateTime("+ 30 days") ;

$les_inscrits=sql_allfetsel(’id_auteur, email,prenom,*date_1*",
"spip_auteurs",
date_1=’".$dans10jours->format(’Y-m-d’)."’
OR date_1=’".$dans20jours->format(’Y-m-d’)."’
OR date_1=’".$dans30jours->format(’Y-m-d’)."’
) ;

return $les_inscrits ;

?>

Bonjour,
essaye
echo sql_get_select(’id_auteur, email,prenom,*date_1*",
"spip_auteurs",
date_1=’".$dans10jours->format(’Y-m-d’)."’
OR date_1=’".$dans20jours->format(’Y-m-d’)."’
OR date_1=’".$dans30jours->format(’Y-m-d’)."’
) ;

voir a quoi ressemble la requete, tu peux aussi la tester sur phpmyadmin pour voir ce qu elle remonte (ou pas)
amicalement
triton

qu'entend tu par voir si elle remonte ? et comment la tester dans phpmyadmin je fous ça dans requete sql ?
je reçois le mail tous les jours ....

--
@micalement
Escal c’est un jeu de squelettes pour Spip, hautement paramétrable, gérant le multilinguisme, évolutif en fonction des demandes
----
Site de documentation :http://escal.ac-lyon.fr
Liste de diffusion Spip-avec-escal :http://listes.rezo.net/mailman/listinfo/spip-avec-escal
Salon de discussion IRC :Kiwi IRC
Mutualisation du squelettes Escal :https://spipfactory.com/
----
SPIP 3.2.0 [23758] + écran de sécurité 1.3.2 + Escal 3..87.52 - stable

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Archives : https://www.mail-archive.com/spip@rezo.net/maillist.html

Infos : http://listes.rezo.net/mailman/listinfo/spip

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

Bonsoir
(écris à la liste, pas en perso, sauf quand y a des identifiants bien sur...)
mes_fonctions ca va dans squelettes pas dans config
le copier coller depuis le mail a remplacé les ' apostrophes droites en apostrophes tordues, manque une fin { et d autres petits trucs
j ai corrigé sur ton site, regarde dans le dossier squelettes
tu peux voir la requete générée en haut de toutes les pages code source de ton site apres avoir recalculé la page...
mais faut qu il y ait des personnes avec une date _1 qui correspond...

triton

yo

d’où mon mail perso :wink: rhoooooooooo le con en plus c’est clair mais la page blanche me faisait douté en plus comme c’est la preiére fois que j’utilise mes_fonctions eh faut bien que je me trouve des excuse non ! ok j’ai vu les corrections , merci bien effectivement date_1 est un champ obligatoire dans la page auteur, donc c’est sur que ça va coller … que dire que dire merci triton petit lutin du père noël

Hello

tant qu’a faire autant essayer de comprendre :wink:

le script

« id_auteur, email, date_1 »,
« spip_auteurs »,« id_auteur>0
AND (date_1=' ».$dans10jours->format(‹ Y-m-d ›).« ’ OR date_1=' ».$dans20jours->format(‹ Y-m-d ›).« ’ OR date_1=' ».$dans30jours->format(‹ Y-m-d ›).« ') »

le code source de la page sommaire

<!-- REQUETE RELANCE
SELECT id_auteur, email, date_1
FROM spip_auteurs
WHERE id_auteur>0
			AND (date_1='2017-12-14' OR date_1='2017-12-24' OR date_1='2018-01-03') -->

sachant que date_1 est 01/01/2018

si je fais

  • 30 J = 02 decembre
  • 20 J = 12 decembre
  • 10 J = 22 decembre

pourquoi j’ai 14 , 24 decembre et 03 janvier

AND (date_1='2017-12-14' OR date_1='2017-12-24' OR date_1='2018-01-03') -->

pour mon info ;)

sachant que date_1 est 01/01/2018

si je fais

  • 30 J = 02 decembre
  • 20 J = 12 decembre
  • 10 J = 22 decembre

pourquoi j’ai 14 , 24 decembre et 03 janvier

AND (date_1='2017-12-14' OR date_1='2017-12-24' OR date_1='2018-01-03') -->

Parce que tu lis le truc a l envers
$dans10jours= new DateTime(« + 10 days ») ;
$dans20jours= new DateTime(« + 20 days ») ;
$dans30jours= new DateTime(« + 30 days ») ;

la requete :
AND (date_1=‹ 2017-12-14 › OR date_1=‹ 2017-12-24 › OR date_1=‹ 2018-01-03 ›)
cherche ceux dans la date_1 est égale à date d aujourd hui + 10 ou +20 ou + 30 c’est à dire ceux qui dans 10 20 ou 30 jours arriveront à échéance… En gros, les gars vont être relancés 3 fois 10, 20 et 30 jours avant la date d’échéance… Bien sur, tu peux modifier comme tu veux…

ah vi c’est un si si date_1 est egale a ??? alors j’envoie l’infolettre compris que je peu changer mais 30 20 10 c’est bien maintenant que j’ai compris le mécanisme, je vais pouvoir faire la même chose pour la fermeture du compte impec merci bien

Bonjour,

SPIP 3.2.0 [23758] + écran de sécurité 1.3.2+ squelette ESCAL

Pourquoi lors de la création de la fonctions suivante dans squelettes/mes_options.php

<?php /* rappel par newletters de l'appel a cotisation*/ mailsubscribers_synchro_list_newsletter_relance(); function mailsubscribers_synchro_list_newsletter_relance(){ include_spip('base/abstract_sql') ; $dans10jours= new DateTime("+ 10 days") ; $dans20jours= new DateTime("+ 20 days") ; $dans30jours= new DateTime("+ 30 days") ; $les_inscrits=sql_allfetsel( "id_auteur, email, date_1", "spip_auteurs","id_auteur>0 AND (date_1='".$dans10jours->format('Y-m-d')."' OR date_1='".$dans20jours->format('Y-m-d')."' OR date_1='".$dans30jours->format('Y-m-d')."')" ); echo ""; return $les_inscrits ; } ?>

casse la page sommaire du site
il semble que certaine div extre glisse en dessous de la colonne central

ce qu’on devrais avoir : ce qu’on a avec la fonctions : et la mes compétence php sont aux limites, tant soit peu qu’il y en ai eu … alors une idée ? le code de la page sommaire ci dessous

ah be oui, faut que tu vires ce bout de code de mes_fonctions.php

echo "<!-- REQUETE RELANCE".
sql_get_select(
"id_auteur, email, date_1",
"spip_auteurs","id_auteur>0
AND (date_1='".$dans10jours->format('Y-m-d')."' OR date_1='".$dans20jours->format('Y-m-d')."' OR date_1='".$dans30jours->format('Y-m-d')."')"
)
." -->";

Yo j’y suis presque mais j’ai comme un truc bizarre

soit

<?php /* rappel par newletters de l'appel a cotisation*/ mailsubscribers_synchro_list_newsletter_relance(); function mailsubscribers_synchro_list_newsletter_relance(){ include_spip('base/abstract_sql') ; $dans10jours= new DateTime("+ 10 days") ; $dans20jours= new DateTime("+ 20 days") ; $dans30jours= new DateTime("+ 30 days") ; $les_inscrits=sql_allfetsel( "id_auteur, email, date_1", "spip_auteurs","id_auteur>0 AND (date_1='".$dans10jours->format('Y-m-d')."' OR date_1='".$dans20jours->format('Y-m-d')."' OR date_1='".$dans30jours->format('Y-m-d')."')" ); return $les_inscrits ; } ?>

Pourquoi les messages ont été reçus le 05/12/2017 à 1h10 et 1h31.

sachant que date_1 est 01/01/2018 pour tous les auteurs

plusieurs mail de retour confirmant l’horaire

donc si je regarde date_1 dans la bdd : Table:spip_auteurs => 2018-01-01 00:00:00

une idée …

Pourquoi les messages ont été reçus le 05/12/2017 à 1h10 et 1h31.

sachant que date_1 est 01/01/2018 pour tous les auteurs

plusieurs mail de retour confirmant l'horaire

Bonsoir,
parce que tu as inscrit les gars manuellement depuis le backoffice a la newsletter, il ne faut pas, tu peux les désinscrire...
Le principe :
tu as réglé une newsletter automatique pour s’exécuter tous les jours
le cron de spip se charge d'envoyer la newsletters, pour cela il appelle la fonction "relance" du fichier mes_fonctions, c'est la requete sql de la fonction qui va chercher automatiquement les personnes qui correspondent à la requete...
En gros, tu n'as pas besoin d'inscrire les personnes à la newsletter (sinon ca ne sert à rien) il suffit que tu renseignes leur champs date de fin de validité...
par contre :
- si tu supprimes tous les inscrits a la newsletter relance, elle n’apparaîtra plus dans la liste des newsletters disponibles (je pense que ca doit continuer à marcher quand même), perso je laisse un inscrit manuellement (moi ou une adresse fictive)
- si la date de fin de validité est la même pour tous le monde (fin année) comme il me semble comprendre, il est totalement inutile de passer par une fonction dynamique comme ici, il te suffit de programmer une infolettre, non ?

triton

Le 05/12/2017 à 20:57, triton a écrit :

- si la date de fin de validité est la même pour tous le monde (fin année) comme il me semble comprendre, il est totalement inutile de passer par une fonction dynamique comme ici, il te suffit de programmer une infolettre, non ?

non car la date de fin d'année est pour les test a terme on va passer sur 12 mois glissant
a date d'inscription

merci pour ta patience est tes explications

--
@micalement
Escal c’est un jeu de squelettes pour Spip, hautement paramétrable, gérant le multilinguisme, évolutif en fonction des demandes
----
Site de documentation : http://escal.ac-lyon.fr
Liste de diffusion Spip-avec-escal : http://listes.rezo.net/mailman/listinfo/spip-avec-escal
Salon de discussion IRC : Kiwi IRC
Mutualisation du squelettes Escal : https://spipfactory.com/
----
SPIP 3.2.0 [23758] + écran de sécurité 1.3.2 + Escal 3..87.52 - stable

merci ça fonctionne super bien

une question pour la route, peu t'on écrire ceci :

mailsubscribers_synchro_list_newsletter_fermeture();

function mailsubscribers_synchro_list_newsletter_fermeture(){
include_spip('base/abstract_sql') ;
$dans30jours= new DateTime("- 30 days") ;

$les\_inscrits=sql\_allfetsel\(
    &quot;id\_auteur, email, date\_1&quot;,
    &quot;spip\_auteurs&quot;,&quot;id\_auteur&gt;0
        AND \(date\_1=&#39;&quot;\.$dans30jours\-&gt;format\(&#39;Y\-m\-d&#39;\)\.&quot;&#39; \)&quot;

);

l'idée est d'envoyé une lettre 30 jour après la date_1

merci

Le 05/12/2017 à 21:04, amilcar a écrit :

Le 05/12/2017 à 20:57, triton a écrit :

- si la date de fin de validité est la même pour tous le monde (fin année) comme il me semble comprendre, il est totalement inutile de passer par une fonction dynamique comme ici, il te suffit de programmer une infolettre, non ?

non car la date de fin d'année est pour les test a terme on va passer sur 12 mois glissant
a date d'inscription

merci pour ta patience est tes explications

--
@micalement
Escal c’est un jeu de squelettes pour Spip, hautement paramétrable, gérant le multilinguisme, évolutif en fonction des demandes
----
Site de documentation : http://escal.ac-lyon.fr
Liste de diffusion Spip-avec-escal : http://listes.rezo.net/mailman/listinfo/spip-avec-escal
Salon de discussion IRC : Kiwi IRC
Mutualisation du squelettes Escal : https://spipfactory.com/
----
SPIP 3.2.0 [23758] + écran de sécurité 1.3.2 + Escal 3..87.52 - stable

Le 08/12/2017 à 15:17, amilcar a écrit :

merci ça fonctionne super bien

une question pour la route, peu t'on écrire ceci :

mailsubscribers_synchro_list_newsletter_fermeture();

function mailsubscribers_synchro_list_newsletter_fermeture(){
include_spip('base/abstract_sql') ;
$dans30jours= new DateTime("- 30 days") ;

$les\_inscrits=sql\_allfetsel\(
    &quot;id\_auteur, email, date\_1&quot;,
    &quot;spip\_auteurs&quot;,&quot;id\_auteur&gt;0
        AND \(date\_1=&#39;&quot;\.$dans30jours\-&gt;format\(&#39;Y\-m\-d&#39;\)\.&quot;&#39; \)&quot;

);

l'idée est d'envoyé une lettre 30 jour après la date_1

Bonjour,
les mois ne faisant pas tous 30 jours, tu peux même faire :
$dans30jours= new DateTime("- 1 month") ;
(la classe NewDateTime est vraiment très pratique pour gérer ce genre de truc)
L'interet des fonctions mailsubscribers_synchro_list_XXX est de pouvoir taper dans n'importe quelle table spip ou externe, on peut par exemple envoyer une newsletter aux personnes qui sont inscrites dans une zone restreinte, aux personnes qui ont effectuées un paiement, cochées un mot clé...
amicalement
triton