Carnet Wiki

Version 9 — May 2018 JLuc

Notes à compléter.

fonctions mailsubscribers_synchro_list_xxx

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é...

function mailsubscribers_synchro_list_newsletter_fermeture(){
include_spip('base/abstract_sql') ;
$dans30jours= new DateTime("- 1 month") ;
 
 
$les_inscrits=sql_allfetsel(
        "id_auteur, email, date_1",
        "spip_auteurs","id_auteur>0  AND (date_1='".$dans30jours->format('Y-m-d')."' )"
    );
 
 
return $les_inscrits ;
}

Lister les auteurs d’une zone
Il peut arriver qu’on veuille cibler les auteurs d’une zone d’accés restreint.

<BOUCLE_zones(ZONES)>
<h3>N° zone : #ID_ZONE, #TITRE</h3>
 
 
&lt;BOUCLE_aut(spip_zones_liens){id_zone}{objet=auteur &lt;BOUCLE_aut(spip_zones_liens){id_zone }>
        #SET{auteur,#ID_AUTEUR}
 
 
<BOUCLE_auteurs(AUTEURS){id_auteur=#GET{auteur}}{tout}>
            #ID_AUTEUR, #NOM <br>
        </BOUCLE_auteurs>
 
 
</BOUCLE_aut>
</BOUCLE_zones> 

Dans une fonction de synchro mailsubscriber, on extrairait ainsi les auteurs inscrits à une zone restreinte nommée “candy” :

  $liste = sql_allfetsel(
    "z.id_zone, z.titre, l.objet, l.id_objet, a.id_auteur, a.nom, a.email",
    "spip_auteurs AS a JOIN spip_zones_liens as l JOIN spip_zones AS z ON (l.id_zone = z.id_zone) AND (l.objet='auteur') AND (a.id_auteur = l.id_objet)",
    "z.titre = 'candy'"
  ); 

Crédits des citations

amilcar, triton, jcvilleneuve , stephanesanton