Carnet Wiki

Complément mailsubscriber

Notes à compléter.

fonctions mailsubscribers_synchro_list_xxx

La synchro des listes dynamiques se fait par cron vers 1h du mat. Chaque nouvelle entrée est inscrite et le cache est invalidé.

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

    <BOUCLE_aut(spip_zones_liens){id_zone}{objet=auteur}>
        #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

JLuc - Mise à jour :7 octobre 2018 à 08h51min