Bonjour,
J’utilise le plugin Newsletter, j’ai créé un gabarit placé dans le répertoire /squelettes/newsletters et le plugin ne trouve pas mon gabarit (je précise que ça viens pas d’une faute de frappe… j’ai essayé toutes les orthographes possibles avec les erreurs…!)
Il faut précisé aussi que je suis avec un spip mutualisé donc mon dossier squelettes est dans le répertoire /spip/sites/mondomaine.tld/squelettes et donc ma newsletter dans le repertoire /spip/sites/mondomaine.tld/squelettes/newsletters
et celle-ci s’appelle newsletterC.html.
Mais du coup, en désespoir de cause j’ai regardé le code du plugin et j’ai modifié un peu et ça marche !!
J’ai modifié le fichier newsletters_fonctions.php ajout du texte « squelettes/ » au ligne 98 et 102 :
function liste_choix_patrons($selected=null, $tout_voir = false){
$patrons = array();
$files = find_all_in_path("**squelettes/**newsletters/","\.html$");
if (!$files) return $patrons;
include_spip("inc/config");
$masquer = lire_config("**squelettes/**newsletters/masquer_fond");
if (!$masquer)
$masquer = array();
foreach ($files as $k=>$file){
$fond = basename($k,'.html');
// ignorer les variantes .texte.html et .page.html utilisee pour generer les version textes et page en ligne
if (count($e = explode(".",$fond))<2
OR !in_array(end($e),array('page','texte'))){
if ($tout_voir OR !in_array($fond,$masquer) OR $fond==$selected)
$patrons[$fond] = afficher_titre_patron($fond);
}
}
return $patrons;
}
et même chose dans le fichier generer_newsletter.php au ligne 57 et 77 :
function newsletters_recuperer_fond($id_newsletter, $patron, $date = null, $date_precedente = null){
// si pas de fond on renvoi vide
if (!trouver_fond($patron,"**squelettes/**newsletters"))
return "";
if (is_null($date))
$date = date('Y-m-d 00:00:00');
// on passe la globale lien_implicite_cible_public en true
// pour avoir les liens internes en public (en non prive d'apres le contexte)
// credit de l'astuce: denisb & rastapopoulos
$GLOBALS['lien_implicite_cible_public'] = true;
$contexte = array(
'date' => $date,
'id_newsletter' => $id_newsletter,
);
if ($date_precedente)
$contexte['date_precedente'] = $date_precedente;
$texte = recuperer_fond(
"**squelettes/**newsletters/$patron",
$contexte
);
// on revient a la config initiale
unset($GLOBALS['lien_implicite_cible_public']);
return $texte;
}
Avec ça, ça marche. Malheureusement il doit y avoir 1 ou 2 autres endroits à modifier car il ne me trouve plus les infos sur le gabarit (nom du gabarit). Mais tout le reste fonctionne.
Par contre, avec ces modifs,le plugin ne trouve plus les gabarits fournis avec et pour ça, il faut créer un répertoire squelettes dans le plugin et y déplacer le répertoire newsletters dedans.
Voilà, je ne sais pas comment ça marche en temps normal… mais peut être faudrait-il rajouter un option de recherche à 2 endroits (newsletter/ et squelettes/newsletter) ???
Vous en pensez quoi?
Bonne journée
Thom