function configuration_langue_dist() { $l_site = $GLOBALS['meta']['langue_site']; $langue_site = traduire_nom_langue($l_site); $res = "<option value='$l_site' selected='selected'>$langue_site</option>\n"; foreach (explode(",",$GLOBALS['meta']['langues_proposees']) as $l) { if ($l <> $l_site) $res .= "<option value='$l'>".traduire_nom_langue($l)."</option>\n"; } $res = ajax_action_post('configurer', 'langue', 'config_lang', '', "<label for='changer_langue_site'>" . _T('info_langue_principale') . "</label>" . " : <select name='changer_langue_site' id='changer_langue_site'>\n$res</select>\n", ''); $res = debut_cadre_couleur("langues-24.gif", true, "", _T('info_langue_principale') . " : " . $langue_site) . _T('texte_selection_langue_principale') . $res . fin_cadre_couleur(true); return ajax_action_greffe("configurer-langue", '', $res); }
function afficher_ses_messages($titre, $from, $where, &$messages_vus, $afficher_auteurs = true, $important = false) { $requete = array('SELECT' => 'messages.id_message, messages.date_heure, messages.date_fin, messages.titre, messages.type, messages.rv', 'FROM' => "spip_messages AS messages$from", 'WHERE' => $where .(!$messages_vus ? '' : ' AND messages.id_message NOT IN ('.join(',', $messages_vus).')'), 'ORDER BY'=> 'date_heure DESC'); if ($afficher_auteurs) { $styles = array(array('arial2'), array('arial1', 130), array('arial1', 20), array('arial1', 120)); } else { $styles = array(array('arial2'), array('arial1', 20), array('arial1', 120)); } $presenter_liste = charger_fonction('presenter_liste', 'inc'); $tmp_var = 't_' . substr(md5(join('', $requete)), 0, 4); // cette variable est passe par reference et recevra les valeurs du champ indique $les_messages = 'id_message'; $res = $presenter_liste($requete, 'presenter_message_boucles', $les_messages, $afficher_auteur, $important, $styles, $tmp_var, $titre, "messagerie-24.gif"); $messages_vus = array_merge($messages_vus, $les_messages); if (!$res) return ''; else return (debut_cadre_couleur('',true) . $res . fin_cadre_couleur(true)); }
function configuration_accueil_dist() { $res = configuration_bloc_votre_site(); $res = debut_cadre_couleur("racine-site-24.gif", true). ajax_action_post('configurer', 'accueil', 'configuration','',$res) . fin_cadre_couleur(true) ; return ajax_action_greffe('configurer-accueil','', $res); }
function configuration_referenceur_dist() { global $spip_lang_right; $res = "<p>"._T('texte_multilinguisme')."</p>" . "<div>" . _T('info_multi_articles') . "<div style='text-align: $spip_lang_right;'>" . afficher_choix('multi_articles', $GLOBALS['meta']['multi_articles'], array('oui' => _T('item_oui'), 'non' => _T('item_non')), " ") . "</div>" . "</div>" . "<div>" . _T('info_multi_rubriques') . "<div style='text-align: $spip_lang_right;'>" . afficher_choix('multi_rubriques', $GLOBALS['meta']['multi_rubriques'], array('oui' => _T('item_oui'), 'non' => _T('item_non')), " ") . "</div>" . "</div>"; if ($GLOBALS['meta']['multi_rubriques'] == 'oui') { $res .= "\n<div>" . _T('info_multi_secteurs') . "<div style='text-align: $spip_lang_right;'>" . afficher_choix('multi_secteurs', $GLOBALS['meta']['multi_secteurs'], array('oui' => _T('item_oui'), 'non' => _T('item_non')), " ") . "</div>" . "</div>"; } else $res .= "<input type='hidden' name='multi_secteurs' id='multi_secteurs' value='".$GLOBALS['meta']['multi_secteurs']."' />"; if (($GLOBALS['meta']['multi_rubriques'] == 'oui') OR ($GLOBALS['meta']['multi_articles'] == 'oui')) { $res .= "<hr />" . "<p>"._T('texte_multilinguisme_trad')."</p>"; $res .= _T('info_gerer_trad') . "<div style='text-align: $spip_lang_right;'>" . afficher_choix('gerer_trad', $GLOBALS['meta']['gerer_trad'], array('oui' => _T('item_oui'), 'non' => _T('item_non')), " ") . "</div>"; } else $res .= "<input type='hidden' name='gerer_trad' id='gerer_trad' value='".$GLOBALS['meta']['gerer_trad']."' />"; $res = debut_cadre_couleur("traductions-24.gif", true, "", _T('info_multilinguisme')) . ajax_action_post('configurer', 'referenceur', 'config_multilang', '', $res) . fin_cadre_couleur(true); return ajax_action_greffe("configurer-referenceur", '', $res); }
/** * Afficher le sélecteur de rubrique * * Il permet de placer un objet dans la hiérarchie des rubriques de SPIP * * @param string $titre * @param int $id_objet * @param int $id_parent * @param string $objet * @param int $id_secteur * @param bool $restreint * @param bool $actionable * true : fournit le selecteur dans un form directement postable * @param bool $retour_sans_cadre * @return string */ function chercher_rubrique($titre, $id_objet, $id_parent, $objet, $id_secteur, $restreint, $actionable = false, $retour_sans_cadre = false) { global $spip_lang_right; include_spip('inc/autoriser'); if (intval($id_objet) && !autoriser('modifier', $objet, $id_objet)) { return ""; } if (!sql_countsel('spip_rubriques')) { return ""; } $chercher_rubrique = charger_fonction('chercher_rubrique', 'inc'); $form = $chercher_rubrique($id_parent, $objet, $restreint, $objet == 'rubrique' ? $id_objet : 0); if ($id_parent == 0) { $logo = "racine-24.png"; } elseif ($id_secteur == $id_parent) { $logo = "secteur-24.png"; } else { $logo = "rubrique-24.png"; } $confirm = ""; if ($objet == 'rubrique') { // si c'est une rubrique-secteur contenant des breves, demander la // confirmation du deplacement $contient_breves = sql_countsel('spip_breves', "id_rubrique=" . intval($id_objet)); if ($contient_breves > 0) { $scb = $contient_breves > 1 ? 's' : ''; $scb = _T('avis_deplacement_rubrique', array('contient_breves' => $contient_breves, 'scb' => $scb)); $confirm .= "\n<div class='confirmer_deplacement verdana2'>" . "<div class='choix'><input type='checkbox' name='confirme_deplace' value='oui' id='confirme-deplace' /><label for='confirme-deplace'>" . $scb . "</label></div></div>\n"; } else { $confirm .= "<input type='hidden' name='confirme_deplace' value='oui' />\n"; } } $form .= $confirm; if ($actionable) { if (strpos($form, '<select') !== false) { $form .= "<div style='text-align: {$spip_lang_right};'>" . '<input class="fondo" type="submit" value="' . _T('bouton_choisir') . '"/>' . "</div>"; } $form = "<input type='hidden' name='editer_{$objet}' value='oui' />\n" . $form; $form = generer_action_auteur("editer_{$objet}", $id_objet, self(), $form, " method='post' class='submit_plongeur'"); } if ($retour_sans_cadre) { return $form; } include_spip('inc/presentation'); return debut_cadre_couleur($logo, true, "", $titre) . $form . fin_cadre_couleur(true); }
function exec_admin_galettonuts() { // Seuls les super-admins sont authorisés réaliser des synchros, // et par conséquent de configurer le plugin if (!('0minirezo' === $GLOBALS['auteur_session']['statut'] && $GLOBALS['connect_toutes_rubriques'])) { echo minipres(_T('avis_non_acces_page')); exit; } $erreurs = array(); $icone_base = _DIR_PLUGIN_GALETTONUTS . 'img_pack/galettonuts-sql_status-'; $icone_src = 'config-168.png'; $icone_title = _T('galettonuts:icone_db_config'); include_spip('inc/galettonuts_fonctions'); // Lecture de la configuration if (!class_exists('L2_Spip_Plugin_Metas')) { include_spip('lib/L2/Spip/Plugin/Metas.class'); } $config = new L2_Spip_Plugin_Metas('galettonuts_config'); $contexte = $config->lire(); $activer_cron = array_key_exists('activer_cron', $contexte) ? $contexte['activer_cron'] : true; // {{{ Traitement des données reçues if (_request('_galettonuts_ok')) { $champs = array('adresse_db' => _request('adresse_db'), 'login_db' => _request('login_db'), 'pass_db' => _request('pass_db'), 'prefix_db' => _request('prefix_db'), 'choix_db' => _request('choix_db')); // Des champs sont-ils vides ? $champs = array_map('trim', $champs); if (false === (!in_array(null, $champs) || !in_array('', $champs))) { $erreurs[] = _T('galettonuts:texte_erreur_1'); } // Activer la synchronisation automatique ? if ('oui' == _request('activer_cron')) { $activer_cron = true; } else { $activer_cron = false; } if ($activer_cron) { $champs['heures'] = intval(_request('heures')); $champs['minutes'] = intval(_request('minutes')); $synchro = new L2_Spip_Plugin_Metas('galettonuts_synchro'); $frequence = 3600 * $champs['heures'] + 60 * $champs['minutes']; if ($frequence !== $synchro->lire('frequence')) { $synchro->ajouter(array('frequence' => $frequence), true); $fichier = '<?php define(\'_GALETTONUTS_DELAIS_CRON\', ' . $frequence . '); ?>'; ecrire_fichier(_DIR_TMP . 'galettonuts_cron.php', $fichier, true); unset($fichier); } } else { // On s'assure de bien supprimer le fichier de vérouillage // pour forcer la resynchronisation tenant compte de la nouvelle // configuration. if (file_exists(_DIR_TMP . 'galettonuts_cron.lock')) { unlink(_DIR_TMP . 'galettonuts_cron.lock'); } if (file_exists(_DIR_TMP . 'galettonuts_cron.php')) { unlink(_DIR_TMP . 'galettonuts_cron.php'); } } $contexte['activer_cron'] = $activer_cron; // Prise en compte dans le contexte $contexte = array_merge($contexte, $champs); unset($champs); // Test de connexion à la BDD Galette if (!count($erreurs)) { $link = galettonuts_galette_db($contexte['adresse_db'], $contexte['login_db'], $contexte['pass_db']); if (-1 === $link) { $erreurs[] = _T('galettonuts:avis_connexion_echec_1'); $icone_src = 'error-168.png'; $icone_title = _T('galettonuts:icone_db_erreur'); } else { if (-2 === galettonuts_galette_db($contexte['choix_db'], $link)) { $erreurs[] = _T('galettonuts:avis_connexion_echec_2'); $icone_src = 'error-168.png'; $icone_title = _T('galettonuts:icone_db_erreur'); } else { $icone_src = 'ok-168.png'; $icone_title = _T('galettonuts:icone_db_ok'); $contexte['db_ok'] = true; } } if (0 < $link) { mysql_close($link); } unset($link); } // Interraction avec Accès Restreint if (defined('_DIR_PLUGIN_ACCESRESTREINT')) { if ($config->existe('zones')) { galettonuts_dissocier_zones($config->lire('zones')); } $zones = _request('zones'); if (is_array($zones) && 0 < count($zones)) { $contexte['zones'] = $zones; } else { $config->supprimer(array('zones' => null)); unset($contexte['zones']); } unset($zones); } // Mémorisation de la configuration à la base de données Galette if (!count($erreurs)) { $config->ajouter($contexte, true); } // Lancer une synchronisation if (0 == count($erreurs)) { galettonuts_synchroniser(true); } } else { if (!empty($contexte['adresse_db']) && !empty($contexte['login_db']) && !empty($contexte['pass_db'])) { $link = galettonuts_galette_db($contexte['adresse_db'], $contexte['login_db'], $contexte['pass_db']); if (0 > $link) { $icone_src = 'error-168.png'; $icone_title = _T('galettonuts:icone_db_erreur'); $config->ajouter(array('db_ok' => false)); } else { $icone_src = 'ok-168.png'; $icone_title = _T('galettonuts:icone_db_ok'); $config->ajouter(array('db_ok' => true)); mysql_close($link); unset($link); } } } // }}} // {{{ Affichage // Haut de page $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page(_T('galettonuts:titre_page_admin'), '', 'galettonuts'), '<br/><br/><br/>'; gros_titre(_T('galettonuts:titre_admin')); // Boîte d'informations debut_gauche(); debut_boite_info(); echo _T('galettonuts:texte_info_admin'); fin_boite_info(); // Message(s) d'erreur(s) debut_droite(); if ($c = count($erreurs)) { if (1 == $c) { $erreur_titre = _T('galettonuts:texte_erreur'); $erreur_texte = (string) $erreurs[0]; } else { $erreur_titre = _T('galettonuts:texte_erreurs'); $erreur_texte = '<ul>'; for ($i = 0; $c < $i; ++$i) { $erreur_texte .= '<li>' . $erreurs[$i] . '</li>'; } $erreur_texte .= '</ul>'; } echo '<div style="background-color:#fee;color:red;border:1px solid red;padding:.5em;margin-bottom:25px" class="verdana2"><strong>', $erreur_titre, '</strong> :<br />', $erreur_texte, '</div>'; } echo generer_url_post_ecrire('admin_galettonuts'); // Accès à la BDD debut_cadre_trait_couleur('base-24.gif', false, '', _T('galettonuts:info_bdd')); echo '<div style="float:right;width:175px" class="verdana2">', _T('galettonuts:texte_info_bdd'), '<div>', '<div style="position:absolute;bottom:35px;width:168px;height:168px">', '<img src="', $icone_base, $icone_src, '" width="168" height="168" alt="" title="', $icone_title, '" />', '</div>', '</div>', '</div>'; echo '<div style="width:298px">'; debut_cadre_couleur(); echo '<p><label for="adresse_db" style="font-weight:bold;cursor:pointer">', _T('galettonuts:entree_db_adresse'), '</label><br/>', '<input type="text" name="adresse_db" value="', $contexte['adresse_db'], '" id="adresse_db" class="fondl" style="width:278px" tabindex="504"/>', '</p>'; echo '<p><label for="login_db" style="font-weight:bold;cursor:pointer">', _T('galettonuts:entree_db_login'), '</label><br/>', '<input type="text" name="login_db" value="', $contexte['login_db'], '" id="login_db" class="fondl" style="width:278px" tabindex="508"/>', '</p>'; echo '<p><label for="pass_db" style="font-weight:bold;cursor:pointer">', _T('galettonuts:entree_db_mdp'), '</label><br/>', '<input type="password" name="pass_db" value="', $contexte['pass_db'], '" id="pass_db" class="fondl" style="width:278px" tabindex="512"/>', '</p>'; echo '<p><label for="prefix_db" style="font-weight:bold;cursor:pointer">', _T('galettonuts:entree_db_prefix'), '</label><br/>', '<input type="text" name="prefix_db" value="', $contexte['prefix_db'], '" id="prefix_db" class="fondl" style="width:278px" tabindex="516"/>', '</p>'; echo '<p><label for="choix_db" style="font-weight:bold;cursor:pointer">', _T('galettonuts:entree_db_choix'), '</label><br/>', '<input type="text" name="choix_db" value="', $contexte['choix_db'], '" id="choix_db" class="fondl" style="width:278px" tabindex="520"/>', '</p>'; fin_cadre_couleur(); echo '</div>'; echo '<div style="text-align:right;padding:0 2px;margin-top:.5em" id="buttons">', '<input type="submit" name="_galettonuts_ok" value="', _T('bouton_valider'), '" class="fondo" style="cursor:pointer" tabindex="560"/></div>'; fin_cadre_trait_couleur(); // Synchronisation automatique echo '<br />'; debut_cadre_relief('synchro-24.gif', false, '', _T('galettonuts:info_cron')); echo '<p class="verdana2">', _T('galettonuts:texte_info_cron'), '</p>'; echo '<p class="verdana2">', '<label', $activer_cron ? ' style="font-weight:bold"' : '', '>', '<input type="radio" name="activer_cron" value="oui" id="activer_cron_oui" tabindex="602" ', $activer_cron ? ' checked="checked" ' : '', 'onclick="changeVisible(this.checked, \'config-cron\', \'block\', \'none\');"', '/>', _T('galettonuts:entree_cron_utiliser'), '</label><br />', '<label', !$activer_cron ? ' style="font-weight:bold"' : '', '>', '<input type="radio" name="activer_cron" value="non" id="activer_cron_non" tabindex="604" ', !$activer_cron ? ' checked="checked" ' : '', 'onclick="changeVisible(this.checked, \'config-cron\', \'none\', \'block\');"', '/>', _T('galettonuts:entree_cron_utiliser_non'), '</label>', '</p>'; echo '<div id="config-cron"', !$activer_cron ? ' style="display:none"' : '', '><hr />'; echo '<p class="verdana2">', _T('galettonuts:frequence'), '</p>'; echo '<p class="verdana2" style="text-align:center">', '<input type="text" name="heures" value="', $contexte['heures'], '" id="cron_heures" size="2" maxlength="2" tabindex="606" class="fondl" style="text-align:right"/>', '<label for="cron_heures" style="font-weight:bold;cursor:pointer">', _T('galettonuts:heures'), '</label>', '<input type="text" name="minutes" value="', $contexte['minutes'], '" id="cron_minutes" size="2" maxlength="2" tabindex="606" class="fondl" style="text-align:right"/>', '<label for="cron_minutes" style="font-weight:bold;cursor:pointer">', _T('galettonuts:minutes'), '</label>', '</p>'; echo '</div>'; echo '<div style="text-align:right;padding:0 2px;margin-top:.5em" id="buttons">', '<input type="submit" name="_galettonuts_ok" value="', _T('bouton_valider'), '" class="fondo" style="cursor:pointer" tabindex="660"/></div>'; fin_cadre_relief(); // Liaison avec le plugin Accès restreint if (defined('_DIR_PLUGIN_ACCESRESTREINT')) { $zones = spip_query("SELECT `id_zone`, `titre`, `descriptif` FROM `spip_zones` WHERE 1;"); if (spip_num_rows($zones)) { global $couleur_foncee; $i = 0; $zone['num'] = _T('accesrestreint:colonne_id'); $zone['titre'] = _T('accesrestreint:titre'); $zone['descriptif'] = _T('accesrestreint:descriptif'); $tabindex = 700; $tab_zones = <<<HTML <table class="arial2" border="0" cellpadding="2" cellspacing="0" style="width:100%;border:1px solid #AAA;"> <thead> <tr style="background-color:{$couleur_foncee};color:#fff;font-weight=bold"> <th scope="col" style="text-align:left;padding-left:5px;padding-right:5px" width="40">{$zone['num']}</th> <th scope="col" style="text-align:left;border-left:1px inset #fff;padding-left:5px;padding-right:5px">{$zone['titre']}</th> <th scope="col" style="text-align:left;border-left:1px inset #fff;padding-left:5px;padding-right:5px">{$zone['descriptif']}</th> <th scope="col" style="text-align:center;border-left:1px inset #fff;padding-left:5px;padding-right:5px" width="16"> </th> </tr> </thead> <tbody> HTML; while ($zone = spip_fetch_array($zones)) { ++$tabindex; $bgcolor = alterner(++$i, '#FEFEFE', '#EEE'); if (array_key_exists('zones', $contexte)) { $checked = in_array($zone['id_zone'], $contexte['zones']) ? ' checked="checked"' : ''; } else { $checked = ''; } $tab_zones .= <<<HTML <tr style="background-color:{$bgcolor}"> <td style="text-align:left;padding-left:5px;padding-right:5px">{$zone['id_zone']}</td> <td style="text-align:left;padding-left:5px;padding-right:5px">{$zone['titre']}</td> <td style="text-align:left;padding-left:5px;padding-right:5px">{$zone['descriptif']}</td> <td style="text-align:center"> <input type="checkbox" name="zones[]" value="{$zone['id_zone']}" class="fondl" tabindex="{$tabindex}"{$checked} /> </td> </tr> HTML; } $tab_zones .= '</tbody></table>'; echo '<br />'; debut_cadre_relief(_DIR_PLUGIN_ACCESRESTREINT . 'img_pack/zones-acces-24.gif', false, '', _T('galettonuts:info_liaison_access_restreint')); echo '<p class="verdana2">', _T('galettonuts:texte_liaison_access_restreint_1'), '</p>'; echo '<p class="verdana2">', _T('galettonuts:texte_liaison_access_restreint_2'), '</p>'; echo $tab_zones; echo '<div style="text-align:right;padding:0 2px;margin-top:.5em" id="buttons">', '<input type="submit" name="_galettonuts_ok" value="', _T('bouton_valider'), '" class="fondo" style="cursor:pointer" tabindex="760"/></div>'; fin_cadre_relief(); } } echo '</form>'; // Fin de page echo fin_gauche() . fin_page(); // }}} }
function exec_spiplistes_courrier_previsu () { global $meta; include_spip('base/abstract_sql'); include_spip('inc/presentation'); include_spip('inc/distant'); include_spip('inc/date'); include_spip('inc/urls'); include_spip('inc/meta'); include_spip('inc/filtres'); include_spip('inc/lang'); include_spip('inc/spiplistes_api'); include_spip('inc/spiplistes_api_courrier'); include_spip('inc/spiplistes_api_abstract_sql'); include_spip('public/assembler'); spiplistes_debug_log ('ACTION: exec_spiplistes_courrier_previsu()'); $eol = PHP_EOL; $int_values = array( 'id_rubrique', 'id_mot', 'id_courrier', 'id_liste' , 'annee', 'mois', 'jour', 'heure', 'minute' ); $str_values = array( 'lang' , 'avec_intro', 'message_intro' , 'avec_patron', 'patron', 'patron_pos' , 'avec_sommaire' , 'titre', 'message', 'pied_patron' , 'Confirmer', 'date' , 'lire_base', 'format', 'plein_ecran' , 'date_sommaire' , 'oeil_html', 'oeil_texte' ); foreach(array_merge($str_values, $int_values) as $key) { $$key = _request($key); // méfiance sur jQuery 1.4.4 qui semble // ne plus transmettre les vars qu'en 1.4.2 // @todo: a creuser, verifier les autres vars ajax transmises //spiplistes_debug_log('PREVISU: '.$key.': '.$$key); } foreach($int_values as $key) { $$key = intval($$key); } $date = format_mysql_date($annee,$mois,$jour,$heure,$minute); $charset = $meta['charset']; $contexte = array( 'id_courrier' => $id_courrier , 'lang' => $lang ); list($lien_html, $lien_texte) = spiplistes_courriers_assembler_patron ( _SPIPLISTES_PATRONS_TETE_DIR . spiplistes_pref_lire('lien_patron') , $contexte , !((spiplistes_pref_lire('opt_lien_en_tete_courrier') == 'oui') && $id_courrier) ); // si envoi a une liste, reprendre le patron de pied de la liste list($pied_html, $pied_texte) = spiplistes_pied_page_assembler_patron($id_liste, $lang); $texte_intro = $texte_patron = $tampon_html = $tampon_texte = $sommaire_html = ''; if(spiplistes_pref_lire('opt_ajout_tampon_editeur') == 'oui') { list($tampon_html, $tampon_texte) = spiplistes_tampon_assembler_patron(); } if($lire_base) { // prendre le courrier enregistre dans la base $sql_select = 'texte,titre' . (($format=='texte') ? ',message_texte' : ''); if( $id_courrier && ($row = sql_fetsel($sql_select, "spip_courriers", "id_courrier=".sql_quote($id_courrier), "", "", 1)) ) { foreach(explode(",", $sql_select) as $key) { $$key = propre($row[$key]); } //if($plein_ecran) { $texte_html = '' . $lien_html . $texte . $pied_html . $tampon_html ; if($format=="texte") { header("Content-Type: text/plain; charset=$charset"); // forcer IE a afficher en ligne. header("Content-Disposition: inline; filename=spiplistes-previsu.txt"); $message_texte = empty($message_texte) ? spiplistes_courrier_version_texte($texte_html) : spiplistes_courrier_version_texte($lien_texte) . spiplistes_courrier_version_texte($message_texte) . $pied_texte . spiplistes_courrier_version_texte($tampon_texte) ; echo($message_texte); exit(0); } // else $texte_html = '' . '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN">'.$eol . (($lang) ? '<html lang="'.$lang.'" dir="ltr">'.$eol : '') . '<head>'.$eol . '<meta http-equiv="Content-Type" content="text/html; charset='.$charset.'">'.$eol . '<meta http-equiv="Pragma" content="no-cache">'.$eol . '<title>'.textebrut($titre).'</title>'.$eol . '</head>'.$eol . '<body style="text-align:center">'.$eol . '<div style="margin:0 auto">'.$eol . $texte_html . '</div>'.$eol . '</body>'.$eol . '</html>'.$eol ; ajax_retour($texte_html); exit(0); //} // end if plein_ecran } else { echo(_T('spiplistes:Erreur_courrier_introuvable')); } } ////////////////////////////////////////////////// // si nouveau courrier (pas dans la base), generer un apercu else { //spiplistes_debug_log('ACTION: generate preview'); $intro_html = $intro_texte = $sommaire_html = $sommaire_texte = ''; if($avec_intro == 'oui') { $ii = propre($message_intro); $intro_html = '<div>'.$ii.'</div>'.$eol; $intro_texte = spiplistes_courrier_version_texte($ii).$eol.$eol; } if($avec_patron == 'oui') { // generer le contenu (editeur) include_spip('public/assembler'); $contexte_template = array( 'date' => trim ($date) , 'id_rubrique' => $id_rubrique , 'id_mot' => $id_mot , 'patron' => $patron , 'lang' => $lang , 'sujet' => $titre , 'message' => $message ); $titre_html = _T('spiplistes:lettre_info').' '.$nomsite; $titre_texte = spiplistes_courrier_version_texte($titre_html) . $eol; list($message_html, $message_texte) = spiplistes_courriers_assembler_patron ( _SPIPLISTES_PATRONS_DIR . $patron , $contexte_template); } // end if($avec_patron == 'oui') else { $titre_html = propre($titre); $message_html = propre($message); $titre_texte = spiplistes_courrier_version_texte($titre_html) . $eol; $message_texte = spiplistes_courrier_version_texte($message_html) . $eol; } if($avec_sommaire == 'oui') { if($id_rubrique > 0) { $sql_where = array('id_rubrique='.sql_quote($id_rubrique) , "statut=".sql_quote('publie')); if($date_sommaire == 'oui') { $sql_where[] = "date >= " . sql_quote($date); } if($sql_result = sql_select("titre,id_article" , "spip_articles" , $sql_where )) { while($row = sql_fetch($sql_result)) { $url = (spiplistes_spip_est_inferieur_193()) ? generer_url_article($row['id_article']) : generer_url_entite($row['id_article'], 'article') ; $ii = typo($row['titre']); $sommaire_html .= "<li> <a href='" . $url . "'>" . $ii . '</a></li>'.$eol; $sommaire_texte .= " - " . textebrut($ii) . "\n " . $url . $eol; } } } if($id_mot > 0) { if($sql_result = sql_select("a.titre,a.id_article" , "spip_articles AS a LEFT JOIN spip_mots_articles AS m ON a.id_article=m.id_article" , array( "a.statut=".sql_quote('publie') , "m.id_mot=".sql_quote($id_mot) , "a.date >= " . sql_quote($sql_date) ) )) { while($row = sql_fetch($sql_result)) { $ii = typo($row['titre']); $url = (spiplistes_spip_est_inferieur_193()) ? generer_url_article($row['id_article']) : generer_url_entite($row['id_article'], 'article') ; $sommaire_html .= "<li> <a href='" . $url . "'> " . $ii . "</a></li>\n"; $sommaire_texte .= " - " . textebrut($ii) . "\n " . $url . $eol; } } } if(!empty($sommaire_html)) { $sommaire_html = "<ul>" . $sommaire_html . "</ul>\n"; $message_html = ($patron_pos == "avant") ? $message_html . $sommaire_html : $sommaire_html . $message_html ; $message_texte = ($patron_pos == "avant") ? $message_texte . $eol . $sommaire_texte : $sommaire_texte . $eol . $message_texte ; } } // end if($avec_sommaire == 'oui') $form_action = ($id_courrier) ? generer_url_ecrire(_SPIPLISTES_EXEC_COURRIER_GERER, 'id_courrier='.$id_courrier) : generer_url_ecrire(_SPIPLISTES_EXEC_COURRIER_GERER) ; $message_html = spiplistes_liens_absolus ($intro_html . $message_html); $message_texte = spiplistes_liens_absolus ($intro_texte . $message_texte); spiplistes_debug_log('ACTION: generate page'); $page_result = '' // boite courrier au format html . debut_cadre_couleur('', true) . "<form id='choppe_patron-1' action='$form_action' method='post' name='choppe_patron-1'>\n" . "<div id='previsu-html' class='switch-previsu'>\n" . _T('spiplistes:version_html') . " / " . "<a href='javascript:jQuery(this).switch_previsu()'>" . _T('spiplistes:version_texte') . "</a>\n" . "<div class='previsu-content'>\n" . $message_html . $message_erreur . $pied_html . $tampon_html . "</div>\n" . "</div>\n" // fin id='previsu-html . "<div id='previsu-texte' class='switch-previsu' style='display:none;'>\n" . "<a href='javascript:jQuery(this).switch_previsu()'>" . _T('spiplistes:version_html') . "</a>\n" . " / " . _T('spiplistes:version_texte') . "<div class='previsu-content'>\n" . "<pre>" . $message_texte . $message_erreur . $pied_texte . $tampon_texte . "</pre>" . "</div>\n" . "</div>\n" // fin id='previsu-texte . "<p style='text-align:right;margin-bottom:0;'>" . "<input type='hidden' name='modifier_message' value='oui' />\n" . ( ($id_courrier) ? "<input type='hidden' name='id_courrier' value='$id_courrier' />\n" : "<input type='hidden' name='new' value='oui' />\n" ) . "<input type='hidden' name='titre' value=\"".htmlspecialchars($titre)."\">\n" . "<input type='hidden' name='message' value=\"".htmlspecialchars($message_html)."\">\n" . "<input type='hidden' name='message_texte' value=\"".htmlspecialchars($message_texte)."\">\n" . "<input type='hidden' name='date' value='$date'>\n" . "<input type='submit' name='btn_courrier_valider' value='"._T('bouton_valider')."' class='fondo' /></p>\n" . "</form>\n" . fin_cadre_couleur(true) . "<br />\n" ; echo($page_result); } exit(0); }
function exec_spiplistes_liste_gerer () { include_spip('inc/autoriser'); include_spip('inc/mots'); include_spip('inc/lang'); include_spip('inc/editer_auteurs'); include_spip('base/spiplistes_tables'); include_spip('inc/spiplistes_api'); include_spip('inc/spiplistes_api_presentation'); include_spip('inc/spiplistes_dater_envoi'); include_spip('inc/spiplistes_naviguer_paniers'); include_spip('inc/spiplistes_listes_selectionner_auteur'); global $meta , $connect_statut , $connect_toutes_rubriques , $connect_id_auteur , $spip_lang_left , $spip_lang_right , $couleur_claire ; // initialise les variables postees par le formulaire foreach(array( 'new' // nouvelle liste si 'oui' , 'id_liste'// si modif dans l'editeur , 'btn_liste_edit', 'titre', 'texte', 'pied_page' // renvoyes par l'editeur , 'btn_modifier_diffusion', 'changer_lang', 'statut' // local , 'btn_modifier_replyto', 'email_envoi' // local , 'btn_modifier_courrier_auto', 'message_auto' // local , 'auto_chrono', 'auto_weekly', 'auto_mois' , 'titre_message', 'patron', 'periode', 'envoyer_maintenant' , 'jour', 'mois', 'annee', 'heure', 'minute' , 'btn_patron_pied', 'btn_grand_patron' // boites gauches , 'btn_valider_forcer_abos', 'forcer_abo', 'forcer_format_abo', 'forcer_format_reception' , 'btn_supprimer_liste' //local ) as $key) { $$key = _request($key); } foreach(array('id_liste', 'periode') as $key) { $$key = intval($$key); } foreach(array('titre', 'texte', 'pied_page') as $key) { $$key = trim(corriger_caracteres($$key)); } $lang = $changer_lang; $cherche_auteur = _request('cherche_auteur'); $debut = _request('debut'); $envoyer_maintenant = ($envoyer_maintenant == 'oui'); $boite_pour_confirmer_envoi_maintenant = $grosse_boite_moderateurs = $message_erreur = $page_result = ""; if(!$id_liste) { ////////////////////////////////////////////////////// // Creer une liste //// // admin lambda peut creer une liste $flag_editable = ($connect_statut == "0minirezo"); if ($btn_liste_edit && ($new=='oui')) { if ($titre == '') { $titre = _T('spiplistes:liste_sans_titre'); } $pied_page = _SPIPLISTES_PATRON_PIED_DEFAUT; if($id_liste = spiplistes_listes_liste_creer(_SPIPLISTES_LIST_PRIVATE, $GLOBALS['spip_lang'] , $titre, $texte, $pied_page)) { spiplistes_log("id_liste #$id_liste added by id_auteur #$connect_id_auteur"); } } } else if($id_liste > 0) { ////////////////////////////////////////////////////// // Modifier une liste //// // les admins toutes rubriques et le moderateur seuls peuvent modifier la liste $flag_editable = autoriser('moderer', 'liste', $id_liste); if($flag_editable) { // Recupere les donnees de la liste courante pour optimiser l'update $sql_select = "statut,titre,date,lang"; $sql_result = sql_select($sql_select, "spip_listes", "id_liste=".sql_quote($id_liste), "", "", "1"); if($row = sql_fetch($sql_result)) { foreach(explode(",", $sql_select) as $key) { $current_liste[$key] = $row[$key]; } } /////////////////////////////////// // Les modifications (sql_upadteq) // A noter, ne pas preparer les valeurs par sql_quote() // sql_upadteq() s'en occupe $sql_champs = array(); // Retour de l'editeur ? if($btn_liste_edit) { $titre = corriger_caracteres($titre); $texte = corriger_caracteres($texte); if(empty($titre)) { $titre = filtrer_entites(_T('spiplistes:Nouvelle_liste_de_diffusion')); } $sql_champs['titre'] = $titre; $sql_champs['texte'] = $texte; } // Modifier le grand patron ? // a partir de 2.0049, le patron de pied est construit par la meleuse // afin de permettre _texte et multilingue if($btn_grand_patron && $patron) { $sql_champs['patron'] = $patron; } // Modifier patron de pied ? if($btn_patron_pied && $patron) { $sql_champs['pied_page'] = $patron; } // Modifier diffusion ? if($btn_modifier_diffusion) { $current_statut = ($statut) ? $statut : $current_liste['statut'] ; spiplistes_debug_log ('Modification diffusion statut: '.$current_statut); // Modifier le statut ? if(in_array($statut, explode(";", _SPIPLISTES_LISTES_STATUTS_TOUS)) && ($statut != $current_liste['statut']) ) { spiplistes_debug_log ('Modification statut: '.$statut); $sql_champs['statut'] = $statut; // si la liste passe en privee, retire les invites if($statut == _SPIPLISTES_LIST_PRIVATE) { $auteur_statut = '6forum'; spiplistes_abonnements_auteurs_supprimer($auteur_statut); spiplistes_log("AUTEURS ($auteur_statut) REMOVED FROM LISTE #$id_liste ($statut) BY ID_AUTEUR #$connect_id_auteur"); } } // Modifier la langue ? if(!empty($lang) && ($lang!=$current_liste['lang'])) { $sql_champs['lang'] = $lang; } } // Modifier l'adresse email de reponse ? if($btn_modifier_replyto && email_valide($email_envoi) && ($email_envoi!=$current_liste['email_envoi'])) { $sql_champs['email_envoi'] = $email_envoi; } //////////////////////////////////// // Modifier message_auto ? // bloc "courriers automatiques" if($btn_modifier_courrier_auto) { $current_statut = ($statut) ? $statut : $current_liste['statut'] ; spiplistes_debug_log ('Modification periodicite statut: '.$current_statut); $envoyer_quand = spiplistes_formate_date_form($annee, $mois, $jour, $heure, $minute); if(time() > strtotime($envoyer_quand)) { // envoi dans le passe est considere comme envoyer maintenant $envoyer_maintenant = true; $date_depuis = $envoyer_quand; $envoyer_quand = false; } // spiplistes_debug_log("nb vrais abos : ".spiplistes_listes_vrais_abos_compter($id_liste)); if($envoyer_maintenant && ($message_auto != 'non')) { if(!spiplistes_listes_vrais_abos_compter($id_liste)) { $boite_pour_confirmer_envoi_maintenant .= spiplistes_boite_alerte(_T('spiplistes:boite_alerte_manque_vrais_abos'), true); } else { $boite_pour_confirmer_envoi_maintenant = "" . debut_cadre_couleur('', true) // formulaire de confirmation envoi . spiplistes_form_debut(generer_url_ecrire(_SPIPLISTES_EXEC_LISTES_LISTE), true) . "<p style='text-align:center;font-weight:bold;' class='verdana2'>" . _T('spiplistes:boite_confirmez_envoi_liste') . "</p>" . "<input type='hidden' name='id_liste' value='$id_liste' />\n" . spiplistes_form_bouton_valider('btn_confirmer_envoi_maintenant') . spiplistes_form_fin(true) . fin_cadre_couleur(true) ; } $date_prevue = normaliser_date(time()); } if($message_auto == 'oui') { $sql_champs['message_auto'] = 'oui'; $sql_champs['titre_message'] = $titre_message; $sql_champs['date'] = (!$envoyer_maintenant) ? $envoyer_quand : ''; switch($auto_chrono) { case 'auto_jour': $sql_champs['statut'] = ($current_statut == _SPIPLISTES_LIST_PRIVATE) ? _SPIPLISTES_LIST_PRIV_DAILY : _SPIPLISTES_LIST_PUB_DAILY ; // force au minimum 1 jour $sql_champs['periode'] = (($periode > 0) ? $periode : 1); break; case 'auto_hebdo': if($auto_weekly == 'oui') { // debut de semaine ? $sql_champs['statut'] = ($current_statut == _SPIPLISTES_LIST_PRIVATE) ? _SPIPLISTES_LIST_PRIV_WEEKLY : _SPIPLISTES_LIST_PUB_WEEKLY ; // corrige la date pour le lundi de la semaine $time = strtotime($envoyer_quand); $time = mktime(0,0,0,date("m", $time),date("d", $time)-date("w", $time)+1,date("Y", $time)); $envoyer_quand = date("Y-m-d H:i:s", $time); $sql_champs['date'] = $envoyer_quand; } else { $sql_champs['statut'] = ($current_statut == _SPIPLISTES_LIST_PRIVATE) ? _SPIPLISTES_LIST_PRIV_HEBDO : _SPIPLISTES_LIST_PUB_HEBDO ; } $sql_champs['periode'] = 0; break; case 'auto_mensuel': if($auto_mois == 'oui') { // debut du mois ? $sql_champs['statut'] = ($current_statut == _SPIPLISTES_LIST_PRIVATE) ? _SPIPLISTES_LIST_PRIV_MONTHLY : _SPIPLISTES_LIST_PUB_MONTHLY ; // corrige la date, 1' du mois $envoyer_quand = substr($envoyer_quand, 0, 8)."01 00:00:00"; $sql_champs['date'] = $envoyer_quand; } else { $sql_champs['statut'] = ($current_statut == _SPIPLISTES_LIST_PRIVATE) ? _SPIPLISTES_LIST_PRIV_MENSUEL : _SPIPLISTES_LIST_PUB_MENSUEL ; } $sql_champs['periode'] = 0; break; case 'auto_an': $sql_champs['statut'] = ($current_statut == _SPIPLISTES_LIST_PRIVATE) ? _SPIPLISTES_LIST_PRIV_YEARLY : _SPIPLISTES_LIST_PUB_YEARLY ; $sql_champs['periode'] = 0; break; } } else if($message_auto == 'non') { $sql_champs['message_auto'] = 'non'; $sql_champs['date'] = ''; $sql_champs['periode'] = 0; } } // end if($btn_modifier_courrier_auto) // Enregistre les modifs pour cette liste if(count($sql_champs)) { sql_updateq('spip_listes', $sql_champs, 'id_liste='.sql_quote($id_liste).' LIMIT 1'); } // Forcer les abonnements if($btn_valider_forcer_abos && $forcer_abo && in_array($forcer_abo, array('tous', 'auteurs', '6forum', 'aucun'))) { $forcer_format_reception = (($forcer_format_abo == 'oui') && in_array($forcer_format_reception, spiplistes_formats_autorises())) ? $forcer_format_reception : false ; include_spip('inc/spiplistes_listes_forcer_abonnement'); if(spiplistes_listes_forcer_abonnement ($id_liste, $forcer_abo, $forcer_format_reception) === false) { $message_erreur .= spiplistes_boite_alerte(_T('spiplistes:Forcer_abonnement_erreur'), true); } } } // end if($flag_editable) } ////////////////////////////////////////////////////// // Recharge les donnees la liste $sql_select_array = array('id_liste', 'titre', 'texte' , 'titre_message', 'pied_page', 'date', 'statut', 'maj' , 'email_envoi', 'message_auto', 'periode', 'patron', 'lang'); if($row = spiplistes_listes_liste_fetsel($id_liste, $sql_select_array)) { foreach($sql_select_array as $key) { // initialise les variables du resultat SQL $$key = $row[$key]; } } // les supers-admins et le moderateur seuls peuvent modifier la liste $flag_editable = autoriser('moderer', 'liste', $id_liste); if (empty($titre_message)) { $titre_message = $titre; if (spiplistes_pref_lire_defaut('opt_completer_titre_nom_site', 'oui') == 'oui') { $titre_message .= _T('spiplistes:_de_') . spiplistes_nom_site_texte($lang); } } $nb_abonnes = spiplistes_listes_nb_abonnes_compter($id_liste); // preparation des boutons if($flag_editable) { // Propose de modifier la liste $gros_bouton_modifier = icone ( _T('spiplistes:Modifier_cette_liste') // legende bouton , generer_url_ecrire(_SPIPLISTES_EXEC_LISTE_EDIT,'id_liste='.$id_liste) // lien , _DIR_PLUGIN_SPIPLISTES_IMG_PACK."reply-to-all-24.gif" // image du fond , "edit.gif" // image de la fonction. Ici, le crayon , '' // alignement , false // pas echo, demande retour ) ; // Propose de supprimer la liste $gros_bouton_supprimer = icone ( _T('spiplistes:Supprimer_cette_liste') , generer_url_ecrire(_SPIPLISTES_EXEC_LISTE_GERER, "btn_supprimer_liste=$id_liste&id_liste=$id_liste") , _DIR_PLUGIN_SPIPLISTES_IMG_PACK.'poubelle_msg.gif' , "" , "right" , false ) ; // la grosse boite des abonnes $tri = _request('tri') ? _request('tri') : 'nom'; // // CP-20101017: Si trop d'elligibles, ca gele. // @todo: revoir la boite/liste des abonnes/elligibles // En attendant ... //if(spiplistes_auteurs_elligibles_compter() < 1000) //{ $boite_liste_abonnes = spiplistes_listes_boite_abonnements( $id_liste, $statut, $tri, $debut, _SPIPLISTES_EXEC_LISTE_GERER ); //} //else //{ // $boite_liste_abonnes = _T('spiplistes:code_en_travaux'); //} // @see http://www.spip-contrib.net/SPIP-Listes#comment444314 $titre_boite = _T('spiplistes:abos_cette_liste'); $legend = '<small id="legend-abos1">' . spiplistes_nb_abonnes_liste_str_get($id_liste) . '</small>'.PHP_EOL ; $grosse_boite_abonnements = '' . '<!-- boite abonnes/elligibles -->'.PHP_EOL . debut_cadre_enfonce('auteur-24.gif', true, '', $titre_boite) . spiplistes_bouton_block_depliable($legend , false, md5('abonnes_liste')) . (spiplistes_spip_est_inferieur_193() ? $legend : '') . spiplistes_debut_block_invisible(md5('abonnes_liste')) . debut_cadre_relief('', true) . $boite_liste_abonnes . fin_cadre_relief(true) . fin_block() . fin_cadre_enfonce(true) . '<!-- fin boite abonnes/elligibles -->'.PHP_EOL ; // la grosse boite des moderateurs $boite_liste_moderateurs = spiplistes_listes_boite_moderateurs( $id_liste, _SPIPLISTES_EXEC_LISTE_GERER, 'mods-conteneur' ); $titre_boite = _T('spiplistes:mods_cette_liste'); $nb = spiplistes_mod_listes_compter($id_liste); $legend = '<small>' . spiplistes_nb_moderateurs_liste_str_get($nb) . '</small>'.PHP_EOL ; $grosse_boite_moderateurs = '' . '<!-- boite moderateurs -->'.PHP_EOL . debut_cadre_enfonce('redacteurs-24.gif', true, '', $titre_boite) . spiplistes_bouton_block_depliable($legend , false, md5('mods_liste')) . (spiplistes_spip_est_inferieur_193() ? $legend : '') . spiplistes_debut_block_invisible(md5('mods_liste')) . debut_cadre_relief('', true) . '<div id="mods-conteneur">'.PHP_EOL . $boite_liste_moderateurs . '</div>'.PHP_EOL . fin_cadre_relief(true) . fin_block() . fin_cadre_enfonce(true) . '<!-- fin boite moderateurs -->'.PHP_EOL ; } else { $gros_bouton_modifier = $gros_bouton_supprimer = $grosse_boite_abonnements = ''; } //////////////////////////////////// // PAGE CONTENU //////////////////////////////////// $titre_page = _T('spiplistes:gestion_dune_liste'); // Permet entre autres d'ajouter les classes a la page : <body class='$rubrique $sous_rubrique'> $rubrique = _SPIPLISTES_PREFIX; $sous_rubrique = 'liste_gerer'; $commencer_page = charger_fonction('commencer_page', 'inc'); echo($commencer_page(_T('spiplistes:spiplistes') . ' - ' . $titre_page, $rubrique, $sous_rubrique)); // la gestion des listes de courriers est reservee aux admins if($connect_statut != '0minirezo') { die (spiplistes_terminer_page_non_autorisee() . fin_page()); } $page_result .= '' . '<br /><br /><br />' . PHP_EOL . spiplistes_gros_titre($titre_page, '', true) . barre_onglets($rubrique, $sous_rubrique) . debut_gauche($rubrique, true) . spiplistes_boite_info_id(_T('spiplistes:liste_numero'), $id_liste, true) . spiplistes_naviguer_paniers_listes(_T('spiplistes:aller_aux_listes_'), true) . spiplistes_boite_patron($flag_editable, $id_liste, _SPIPLISTES_EXEC_LISTE_GERER, 'btn_grand_patron' , _SPIPLISTES_PATRONS_DIR, _T('spiplistes:Patron_grand_') , ($patron ? $patron : '') , $patron) . spiplistes_boite_patron($flag_editable, $id_liste, _SPIPLISTES_EXEC_LISTE_GERER, 'btn_patron_pied' , _SPIPLISTES_PATRONS_PIED_DIR, _T('spiplistes:Patron_de_pied_') , ((($ii = strlen($pied_page)) > _SPIPLISTES_PATRON_FILENAMEMAX) ? _T('taille_octets',array('taille'=>$ii)) . _T('spiplistes:conseil_regenerer_pied') : $pied_page) , $pied_page) . pipeline('affiche_gauche', array('args'=>array('exec'=>$sous_rubrique),'data'=>'')) //. creer_colonne_droite($rubrique, true) // spiplistes_boite_raccourcis() s'en occupe . spiplistes_boite_raccourcis(true) . spiplistes_boite_autocron() . pipeline('affiche_droite', array('args'=>array('exec'=>$sous_rubrique),'data'=>'')) . debut_droite($rubrique, true) . $message_erreur ; changer_typo('','liste'.$id_liste); // message alerte et demande de confirmation si supprimer liste if(($btn_supprimer_liste > 0) && ($btn_supprimer_liste == $id_liste)) { $page_result .= '' . spiplistes_boite_alerte (_T('spiplistes:Attention_suppression_liste').'<br />'._T('spiplistes:Confirmez_requete'), true) . '<form name="form_suppr_liste" id="form_suppr_liste" method="post" action="'.generer_url_ecrire(_SPIPLISTES_EXEC_LISTES_LISTE, '').'">' . PHP_EOL . "<div class='verdana2' style='text-align:right;'>\n" . "<input type='hidden' name='id_liste' value='$id_liste' />\n" . "<label>"._T('spiplistes:Confirmer_la_suppression_de_la_liste')."# $id_liste : \n" . "<input class='fondo' type='submit' name='btn_supprimer_liste_confirme' value='"._T('bouton_valider')."' /></label>\n" . "</div>\n" . "</form>\n" . "<br />\n" ; } $page_result .= "" . debut_cadre_relief("", true) . "\n<table cellpadding='0' cellspacing='0' border='0' width='100%'>\n" . "<tr><td valign='top'>\n" . spiplistes_gros_titre(spiplistes_bullet_titre_liste('puce', $statut, '', true)." " . spiplistes_calculer_balise_titre(extraire_multi($titre)) , '', true) . "</td>" . "<td rowspan='2'>" // le gros bouton modifier si besoin . $gros_bouton_modifier . "</td></tr>\n" . "<tr><td width='100%'>\n" . "<div align='$spip_lang_left' style='padding: 5px; border: 1px dashed #aaa; ' class='verdana1 spip_small'>\n" . propre($texte."~") . "</div>\n" . "</td>\n" . "</tr></table>\n" ; ////////////////////////////////////////////////////// // Modifier le statut de la liste //$email_defaut = entites_html($meta['email_webmaster']); $email_defaut = ($m = email_valide($GLOBALS['meta']['email_defaut'])) ? $m : $GLOBALS['meta']['email_webmaster'] ; $email_envoi = ($m = email_valide($email_envoi)) ? $email_envoi : $email_defaut ; $page_result .= "" //. debut_cadre_relief("racine-site-24.gif", true) . debut_cadre_relief("racine-site-24.gif", true, '', _T('spiplistes:Diffusion').spiplistes_plugin_aide(_SPIPLISTES_EXEC_AIDE, "diffusion")) // //////////////////////////// // Formulaire diffusion . ( ($flag_editable) ? '' . spiplistes_form_debut(generer_url_ecrire(_SPIPLISTES_EXEC_LISTE_GERER,'id_liste='.$id_liste), true) . '<input type="hidden" name="exec" value="listes" />' . PHP_EOL . '<input type="hidden" name="id_liste" value="'.$id_liste.'" />' . PHP_EOL : '' ) . '<span class="verdana2">' . _T('spiplistes:cette_liste_est_' , array('s' => spiplistes_bullet_titre_liste ('puce', $statut, 'img_statut', true))) . '</span>' . PHP_EOL ; $sel_private = ' value="' . _SPIPLISTES_LIST_PRIVATE . '" ' . ( in_array ($statut, array( _SPIPLISTES_LIST_PRIVATE , _SPIPLISTES_LIST_PRIV_DAILY , _SPIPLISTES_LIST_PRIV_HEBDO , _SPIPLISTES_LIST_PRIV_WEEKLY , _SPIPLISTES_LIST_PRIV_MENSUEL , _SPIPLISTES_LIST_PRIV_MONTHLY , _SPIPLISTES_LIST_PRIV_YEARLY ) ) ? ' selected="selected"' : '' ) ; $sel_publique = ' value="' . _SPIPLISTES_LIST_PUBLIC . '" ' . ( in_array ($statut, array( _SPIPLISTES_LIST_PUBLIC , _SPIPLISTES_LIST_PUB_DAILY , _SPIPLISTES_LIST_PUB_HEBDO , _SPIPLISTES_LIST_PUB_WEEKLY , _SPIPLISTES_LIST_PUB_MENSUEL , _SPIPLISTES_LIST_PUB_MONTHLY , _SPIPLISTES_LIST_PUB_YEARLY ) ) ? ' selected="selected"' : '' ) ; $page_result .= PHP_EOL . ( ($flag_editable) ? '' . '<select class="verdana2 fondl" name="statut" size="1" id="change_statut">' . PHP_EOL . '<option' . $sel_private . ' style="background-color:#fff">' . _T('spiplistes:statut_interne') . '</option>' . PHP_EOL . '<option' . $sel_publique . ' style="background-color:#B4E8C5">' . _T('spiplistes:statut_publique') . '</option>' . PHP_EOL . '<option' . mySel(_SPIPLISTES_TRASH_LIST, $statut) . ' style="background:url(' . _DIR_IMG_PACK.'rayures-sup.gif)">' . _T('texte_statut_poubelle').'</option>' . PHP_EOL . '</select>' . PHP_EOL : '<span class="verdana2" style="font-weight:bold;">' . spiplistes_items_get_item('alt', $statut) . '</span>'. PHP_EOL ) . '<div style="margin:10px 0px;">' . PHP_EOL . ( ($flag_editable && strpos($GLOBALS['meta']['langues_multilingue'], ',')) ? '' . '<label class="verdana2" for="changer_lang">' . _T('info_multi_herit').' : </label>' . PHP_EOL . '<select name="changer_lang" class="fondl" id="changer_lang">' . PHP_EOL . liste_options_langues('changer_lang', $lang , _T('spiplistes:langue_'), '', '') . '</select>' . PHP_EOL : '' //. "<span class='verdana2'>". _T('info_multi_herit')." : " //. "<span class='verdana2' style='font-weight:bold;'>".traduire_nom_langue($lang)."</span>\n" ) . '</div>' . PHP_EOL . ( ($flag_editable) ? spiplistes_form_bouton_valider('btn_modifier_diffusion') . spiplistes_form_fin(true) : '' ) . fin_cadre_relief(true) ; //////////////////////////// // Formulaire adresse email pour le reply-to $page_result .= '' . debut_cadre_relief(_DIR_PLUGIN_SPIPLISTES_IMG_PACK."reply_to-24.png" , true , '' , _T('spiplistes:adresse_de_reponse').spiplistes_plugin_aide(_SPIPLISTES_EXEC_AIDE , "replyto") ) . spiplistes_form_debut(generer_url_ecrire(_SPIPLISTES_EXEC_LISTE_GERER,"id_liste=$id_liste"), true) . "<p class='verdana2'>\n" . _T('spiplistes:adresse_mail_retour').":<br />\n" . ( ($flag_editable) ? _T('spiplistes:adresse')."</p>\n" . "<div style='text-align:center'>\n" . "<input type='text' name='email_envoi' value=\"".$email_envoi."\" size='40' class='fondl' /></div>\n" . spiplistes_form_bouton_valider('btn_modifier_replyto') : "</p><p style='font-weight:bold;text-align:center;'>$email_envoi</p>\n" ) . spiplistes_form_fin(true) . fin_cadre_relief(true) ; //////////////////////////// // Formulaire planifier un courrier automatique $page_result .= "" . "<a name='form-programmer' id='form-programmer'></a>\n" . debut_cadre_relief(_DIR_PLUGIN_SPIPLISTES_IMG_PACK."stock_timer.png", true, '', _T('spiplistes:messages_auto') . spiplistes_plugin_aide(_SPIPLISTES_EXEC_AIDE, "temporiser")) ; $page_result .= "" . $boite_pour_confirmer_envoi_maintenant . spiplistes_form_debut(generer_url_ecrire(_SPIPLISTES_EXEC_LISTE_GERER,"id_liste=$id_liste")."#form-programmer", true) . "<table border='0' cellspacing='1' cellpadding='3' width='100%'>\n" . "<tr><td align='$spip_lang_left' class='verdana2'>\n" ; if(empty($patron)) { $page_result .= "" . ( $flag_editable ? spiplistes_boite_alerte(_T('spiplistes:patron_manquant_message'), true) : "<p class='verdana2'>" . _T('spiplistes:liste_sans_patron') . "</p>\n" ) . "</td>\n" . "</tr>\n" . "<tr><td align='$spip_lang_left' class='verdana2'>\n" ; } if ($message_auto != "oui") { $page_result .= "<div class='verdana2'>"._T('spiplistes:pas_denvoi_auto_programme')."</div>\n"; } else { $page_result .= "" // petite ligne d'info si envoi programme . "<p class='verdana2'>"._T('spiplistes:sujet_courrier_auto')."<br />\n" . "<span class='spip_large'> " . spiplistes_calculer_balise_titre(extraire_multi($titre_message)) . "</span></p>\n" . "<p class='verdana2'>" . spiplistes_items_get_item('alt', $statut)."<br />\n" . ( ($statut == _SPIPLISTES_LIST_PUB_MONTHLY) ? "<strong>" . spiplistes_items_get_item("tab_t", $statut) . "</strong><br />" : "" ) . ( ($periode > 0) ? _T('spiplistes:periodicite_tous_les_n_s' , array('n' => " <strong>".$periode."</strong> " , 's' => spiplistes_singulier_pluriel_str_get($periode, _T('spiplistes:jour'), _T('spiplistes:jours'), false) ) ) : "" ) . ( (!in_array($statut, explode(";", _SPIPLISTES_LISTES_STATUTS_PERIODIQUES))) ? " <strong>"._T('spiplistes:Pas_de_periodicite')."</strong><br />" ._T('spiplistes:Ce_courrier_ne_sera_envoye_qu_une_fois') : "" ) . "<br />" . ( (intval($maj)) ? _T('spiplistes:Dernier_envoi_le_') . " <strong>" . affdate_heure($maj) . "</strong>" . ( ($last = round((time() - strtotime($maj)) / _SPIPLISTES_TIME_1_DAY)) ? " (".spiplistes_singulier_pluriel_str_get($last, _T('spiplistes:jour'), _T('spiplistes:jours')).")" : "" ). "<br />" : "" ) . ( ($date_prevue || (intval($date) && (time() < strtotime($date)))) ? _T('spiplistes:prochain_envoi_prevu')." : <strong>" . affdate_heure($date_prevue ? $date_prevue : $date) . "</strong>" . ( (!$date_prevue && ($next = round((strtotime($date) - time()) / _SPIPLISTES_TIME_1_DAY))) ? " (".spiplistes_singulier_pluriel_str_get($next, _T('spiplistes:jour'), _T('spiplistes:jours')).")" : "" ) : "" ) . "</p>\n" ; if($btn_modifier_courrier_auto) { $page_result .= "" . "<p class='verdana2'>"._T('spiplistes:date_act')."<br />" . _T('spiplistes:env_esquel')." <em>".$patron."</em>" . "</p>\n" ; } } $date_debut_envoi = (!empty($date_prevue) ? $date_prevue : (($date && intval($date)) ? $date : normaliser_date(time()))); $page_result .= "" . "</td>\n" . "</tr>\n" ; if($flag_editable) { $page_result .= "" . "<tr><td align='$spip_lang_left' class='verdana2'>" . "<input type='radio' name='message_auto' value='oui' id='auto_oui' " . (empty($patron) ? " disabled='disabled' " : "") . ($auto_checked = ($message_auto=='oui' ? "checked='checked'" : "")) . " />" . "<label for='auto_oui' ".($auto_checked ? "style='font-weight:bold;'" : "").">" . _T('spiplistes:prog_env')."</label>\n" . "<div id='auto_oui_detail' " .((empty($patron) || !$auto_checked) ? "style='display:none;'" : "") .">" . "<ul style='list-style-type:none;'>\n" . "<li>"._T('spiplistes:message_sujet') . ': <input type="text" name="titre_message" value="'.$titre_message.'" size="50" class="fondl" /> </li>'."\n" ; // // chrono jour $ii = ($periode > 0) ? $periode : 1; $page_result .= "" . "<li style='margin-top:0.5em'>" . spiplistes_form_input_radio ('auto_chrono', 'auto_jour' , '' , ($statut == _SPIPLISTES_LIST_PUB_DAILY) , true, false ) . _T('spiplistes:Tous_les') . " <input type='text' name='periode' value='".$ii."' size='4' maxlength='4' class='fondl' /> " . _T('info_jours') . "</li>\n" // chrono hebdo . "<li>" . spiplistes_form_input_radio ('auto_chrono', 'auto_hebdo' , _T('spiplistes:Toutes_les_semaines') , (($statut == _SPIPLISTES_LIST_PUB_HEBDO) || ($statut == _SPIPLISTES_LIST_PUB_WEEKLY)) , true, false) . spiplistes_form_input_checkbox('auto_weekly', 'oui' , _T('spiplistes:en_debut_de_semaine'), ($statut == _SPIPLISTES_LIST_PUB_WEEKLY), true, false) . "</li>\n" // chrono mois . "<li>" . spiplistes_form_input_radio ('auto_chrono', 'auto_mensuel' , _T('spiplistes:Tous_les_mois') , (($statut == _SPIPLISTES_LIST_PUB_MENSUEL) || ($statut == _SPIPLISTES_LIST_PUB_MONTHLY)) , true, false) . spiplistes_form_input_checkbox('auto_mois', 'oui' , _T('spiplistes:en_debut_de_mois'), ($statut == _SPIPLISTES_LIST_PUB_MONTHLY), true, false) . "</li>\n" // chrono annee . "<li>" . spiplistes_form_input_radio ('auto_chrono', 'auto_an' , _T('spiplistes:Tous_les_ans') , ($statut == _SPIPLISTES_LIST_PUB_YEARLY) , true, false) . "</li>\n" . "<li style='margin-top:0.5em'>"._T('spiplistes:A_partir_de')." : <br />\n" // . spiplistes_dater_envoi( 'liste', $id_liste, $statut , $flag_editable , _T('spiplistes:date_expedition_') , $date_debut_envoi, 'btn_changer_date' , false ) . "</li>\n" . ( (!$envoyer_maintenant) ? " <li>" . spiplistes_form_input_checkbox('envoyer_maintenant', 'oui' , _T('spiplistes:env_maint'), false, true) . "</li>\n" : "" ) . "</ul></div>\n" ; $checked = ($message_auto=='non') ? "checked='checked'" : ""; $class = $checked ? "class='bold'" : ""; $disabled = (empty($patron) ? " disabled='disabled' " : ""); $page_result .= "" . "<br /><input type='radio' name='message_auto' value='non' id='auto_non' $disabled $checked />" . "<span $class >" . " <label for='auto_non'>"._T('spiplistes:prog_env_non')."</label> " . "</span>\n" . "</td></tr>\n" ; $page_result .= "" . "<tr><td style='text-align:$spip_lang_right;'>" . ( ($id_liste) ? "<input type='hidden' name='id_liste' value='$id_liste' />" : "" ) . ( ($new) ? "<input type='hidden' name='new' value='$new' />" : "" ) // bouton de validation . (!empty($patron) ? spiplistes_form_bouton_valider('btn_modifier_courrier_auto', _T('bouton_valider'), true) : "") . "</td></tr>" ; } $page_result .= "" . "</table>\n" . spiplistes_form_fin(true) . fin_cadre_relief(true) ; // fin formulaire planifier $page_result .= "" . fin_cadre_relief(true) . $grosse_boite_abonnements . $grosse_boite_moderateurs ; // le super-admin peut abonner en masse if($connect_toutes_rubriques) { $page_result .= "" . "\n<!-- forcer abo -->\n" . debut_cadre_enfonce(_DIR_PLUGIN_SPIPLISTES_IMG_PACK."abonner-24.png", true, '', _T('spiplistes:forcer_les_abonnement_liste').spiplistes_plugin_aide("forcerliste"))."\n" . "<p class='verdana2'>\n" . _T('spiplistes:forcer_abonnement_desc') . "</p>\n" . "<p class='verdana2' style='margin-bottom:1em'><em>" . _T('spiplistes:forcer_abonnement_aide', array('lien_retour' => generer_url_ecrire(_SPIPLISTES_EXEC_ABONNES_LISTE))) . "</em></p>\n" . "<form action='".generer_url_ecrire(_SPIPLISTES_EXEC_LISTE_GERER,"id_liste=$id_liste#auteurs")."' id='form_forcer_abo' name='form_forcer_abo' method='post'>\n" . debut_cadre_relief("", true)."\n" // ////////////////////////// // propose de forcer les membres sauf invites si la liste est privee . ( ($statut==_SPIPLISTES_LIST_PRIVATE) ? "<div class='verdana2'><input type='radio' name='forcer_abo' value='auteurs' id='forcer_abo_tous' />\n" . "<label for='forcer_abo_tous'>"._T('spiplistes:Abonner_tous_les_inscrits_prives')."</label>" . "</div>\n" . spiplistes_boutons_forcer_format('forcer_format', _T('spiplistes:forcer_abonnements_nouveaux')) : "" ) // // propose de forcer les invites si la liste est publique ou periodique . ( (($statut!=_SPIPLISTES_LIST_PRIVATE) && ($statut!=_SPIPLISTES_TRASH_LIST)) ? "<div class='verdana2'><input type='radio' name='forcer_abo' value='6forum' id='forcer_abo_6forum' />\n" . "<label for='forcer_abo_6forum'>"._T('spiplistes:Abonner_tous_les_invites_public')."</label></div>\n" . spiplistes_boutons_forcer_format('forcer_format', _T('spiplistes:forcer_abonnements_nouveaux')) : "" ) . ( ($nb_abonnes) ? "<hr />\n" . "<div class='verdana2'><input type='radio' name='forcer_abo' value='aucun' id='forcer_desabo' />\n" . "<label for='forcer_desabo'>"._T('spiplistes:Forcer_desabonner_tous_les_inscrits')."</label></div>\n" : "" ) . fin_cadre_relief(true)."\n" . "<div style='text-align:right;'><input type='submit' name='btn_valider_forcer_abos' value='"._T('bouton_valider')."' class='fondo' /></div>\n" . "</form>\n" . fin_cadre_enfonce (true)."\n" ; } // $page_result .= "" . $gros_bouton_supprimer ; echo($page_result); echo pipeline('affiche_milieu',array('args'=>array('exec'=>$sous_rubrique),'data'=>'')) , spiplistes_html_signature(_SPIPLISTES_PREFIX) , fin_gauche(), fin_page(); } // end exec_spiplistes_liste_gerer()
function spiplistes_dater_envoi ( $type_objet, $id_objet, $statut_objet , $flag_autorise , $titre_boite , $date_debut_envoi , $btn_nom_valider, $enveloppe_formulaire = true ) { global $spip_lang_left, $spip_lang_right; if($statut_objet=='vide') { return(false); } $date_valide = spiplistes_date_heure_valide($date_debut_envoi); $courrier_editable = ($type_objet == 'courrier') && ( ($statut_objet == _SPIPLISTES_COURRIER_STATUT_REDAC) || ($statut_objet == _SPIPLISTES_COURRIER_STATUT_ENCOURS) ) ; $liste_editable = ($type_objet == 'liste') && in_array($statut_objet, explode(";", _SPIPLISTES_LISTES_STATUTS_OK)) ; if($flag_autorise && ($courrier_editable || $liste_editable)) { if(!$date_valide) { // propose date maintenant par défaut $date_debut_envoi = normaliser_date(time()); $date_valide = spiplistes_date_heure_valide($date_debut_envoi); } list($annee, $mois, $jour, $heure, $minute, $seconde) = $date_valide; $js = "size='1' class='fondl'"; if($enveloppe_formulaire) $js .= "onchange=\"findObj_forcer('valider_date').style.visibility='visible';\""; $invite = "" . "<span class='verdana1 titre-boite-date'>" . "<span class='titre'>" . $titre_boite . "</span>" . ": " . ( (!$date_valide) ? "<span class='gray'>" . _T('spiplistes:date_non_precisee') . "</span>" : "<span class='date'>" . affdate_heure($date_debut_envoi) . "</span>" ) . "</span>\n" ; $masque = afficher_jour($jour, "name='jour' $js", true) . afficher_mois($mois, "name='mois' $js", true) . afficher_annee($annee, "name='annee' $js") . " - " . afficher_heure($heure, "name='heure' $js") . afficher_minute($minute, "name='minute' $js") . " \n" ; if($enveloppe_formulaire) { $masque = "" . "<!-- dater_envoi form -->\n" . "<form action='".generer_url_ecrire(_SPIPLISTES_EXEC_COURRIER_GERER,'id_$type_objet='.$id_objet)."' method='post' style='margin: 5px; margin-$spip_lang_left: 20px;'>\n" . $masque . "<input type='submit' name='$btn_nom_valider' id='valider_date' " . ( ($date_valide) ? "value=\""._T('bouton_changer')."\" class='fondo visible_au_chargement'" : "value=\""._T('bouton_valider')."\" class='fondo'" ) . "/>" . "</form>\n" ; } $result = block_parfois_visible('daterblock', $invite, $masque, 'text-align: left'); } else { $result = "" . "<div style='text-align:center;'>" . "<span class='verdana1 titre-boite-date'><span class='titre'>" . ( ($statut_objet == 'encour') ? _T('spiplistes:courrier_en_cours_') : _T('spiplistes:date_expedition_') ) . "</span>: <span class='date'>" . ( ($date_valide) ? affdate_heure($date_debut_envoi) : _T('spiplistes:attente_validation') ) . "</span></span>" . "</div>\n" ; } if(!empty($result)) { $result = "" . "<div style='margin-top:1ex;clear:right;'>" . debut_cadre_couleur('',true) . $result . fin_cadre_couleur(true) . "</div>\n" ; } return ($result); }
function afficher_site_rubrique($id_syndic, $id_rubrique, $id_secteur) { global $spip_lang_right; if (!_INTERFACE_ONGLETS) return ""; $chercher_rubrique = charger_fonction('chercher_rubrique', 'inc'); $form = $chercher_rubrique($id_rubrique, 'site', false); if (strpos($form,'<select')!==false) { $form .= "<div style='text-align: $spip_lang_right;'>" . '<input type="submit" value="'._T('bouton_choisir').'"/>' . "</div>"; } $msg = _T('titre_cadre_interieur_rubrique'); $form = "<input type='hidden' name='editer_article' value='oui' />\n" . $form; $form = redirige_action_post("editer_site", $id_syndic, 'sites', $form, " class='submit_plongeur'"); if ($id_rubrique == 0) $logo = "racine-site-24.gif"; elseif ($id_secteur == $id_rubrique) $logo = "secteur-24.gif"; else $logo = "rubrique-24.gif"; return debut_cadre_couleur($logo, true, "", $msg) . $form .fin_cadre_couleur(true); }
function galettonuts_formulaire_synchro() { global $spip_lang_left, $spip_lang_right; include_spip('inc/config'); // Détermine si on dépli le cadre if ('oui' == _request('galettonuts_synchro_ok')) { $visibilite = 'visible'; } else { $visibilite = 'invisible'; } $return = debut_cadre_couleur('synchro-24.gif', true, '', call_user_func('bouton_block_' . $visibilite, 'galettonuts_synchro') . _T('galettonuts:titre_formulaire_synchro')); $return .= call_user_func('debut_block_' . $visibilite, 'galettonuts_synchro'); // Le plugin n'a pas encore été configuré if (!class_exists('L2_Spip_Plugin_Metas')) { include_spip('lib/L2/Spip/Plugin/Metas.class'); } $config = new L2_Spip_Plugin_Metas('galettonuts_config'); if (!$config || !$config->lire('db_ok')) { $return .= debut_cadre_relief('', true); $return .= http_img_pack('warning.gif', _T('info_avertissement'), 'style="width:48px;height:48px;float:right;margin:5px;"'); $return .= '<p class="verdana2"><strong>'; $return .= _T('galettonuts:configuration_manquante'); $return .= '</strong><br />'; $return .= _T('galettonuts:configuration_lien', array('url' => generer_url_ecrire('admin_galettonuts'))); $return .= '</p>'; $return .= fin_cadre_relief(true); $return .= fin_block(); $return .= fin_cadre_couleur(true); return $return; } unset($config); // Affichage des erreurs if ($statut = (int) _request('code_retour')) { switch ($statut) { // Une erreur inconnue est survenue. case 0: $msg = '<p class="verdana2"><strong>' . _T('info_avertissement') . '</strong><br />'; $msg .= _T('galettonuts:etat_synchro_erreur') . '</p>'; $alt = _T('info_avertissement'); $img = _DIR_PLUGIN_GALETTONUTS . 'img_pack/error-48.png'; break; // Des erreurs sont survenues lors de la connexion à la BDD. // Des erreurs sont survenues lors de la connexion à la BDD. case -2: $msg = '<p class="verdana2"><strong>' . _T('info_avertissement') . '</strong><br />'; $msg .= _T('galettonuts:etat_synchro_erreur_bdd') . '</p>'; $alt = _T('info_avertissement'); $img = _DIR_PLUGIN_GALETTONUTS . 'img_pack/error-48.png'; break; // La synchronisation a échouée. // La synchronisation a échouée. case -1: $msg = '<p class="verdana2"><strong>' . _T('info_avertissement') . '</strong><br />'; $msg .= _T('galettonuts:etat_synchro_echec') . '</p>'; $alt = _T('info_avertissement'); $img = _DIR_PLUGIN_GALETTONUTS . 'img_pack/error-48.png'; break; // La synchronisation est inutile. // La synchronisation est inutile. case -10: $msg = '<p class="verdana2"><strong>' . _T('galettonuts:info_information') . '</strong><br />'; $msg .= _T('galettonuts:etat_synchro_inutile') . '</p>'; $alt = _T('galettonuts:info_information'); $img = _DIR_PLUGIN_GALETTONUTS . 'img_pack/information-48.png'; break; // La synchronisation s'est déroulée correctement // La synchronisation s'est déroulée correctement default: $msg = '<p class="verdana2"><strong>' . _T('galettonuts:info_information') . '</strong><br />'; $msg .= _T('galettonuts:etat_synchro_ok', array('nb' => $statut)) . '</p>'; $alt = _T('galettonuts:info_information'); $img = _DIR_PLUGIN_GALETTONUTS . 'img_pack/information-48.png'; break; } $return .= debut_cadre_relief('', true); $return .= http_img_pack($img, $alt, 'style="width:48px;height:48px;float:right;margin:5px;"'); $return .= $msg; $return .= fin_cadre_relief(true); } $voir_statut = _request('statut'); if ($voir_statut) { $voir_statut = '&statut=' . $voir_statut; } $action = generer_action_auteur('galettonuts_cron_manuel', 'galettonuts-0.1&' . $voir_statut, 'auteurs'); $return .= '<p class="verdana2">' . _T('galettonuts:texte_synchro_manuelle') . '</p>'; $return .= '<form action="' . $action . '" method="post>"'; $return .= form_hidden($action); // Dernière mise à jour $synchro = new L2_Spip_Plugin_Metas('galettonuts_synchro'); if ('' != ($maj = $synchro->lire('maj'))) { $return .= '<p class="verdana2">' . _T('galettonuts:derniere_maj', array('annee' => date('Y', $maj), 'mois' => date('m', $maj), 'jour' => date('d', $maj), 'heures' => date('G', $maj), 'minutes' => date('i', $maj), 'secondes' => date('s', $maj))); $return .= '</p>'; } // Bouton de validation $return .= '<div style="text-align:right;padding:0 2px;margin-top:.5em" id="buttons">'; $return .= '<input type="submit" name="_galettonuts_ok" value="' . _T('galettonuts:entree_synchroniser') . '" class="fondo" style="cursor:pointer"/></div>'; $return .= '</form>'; $return .= fin_block(); $return .= fin_cadre_couleur(true); return $return; }
function auteurs_interventions($auteur) { $id_auteur = intval($auteur['id_auteur']); $statut = $auteur['statut']; global $connect_id_auteur; include_spip('inc/message_select'); if (autoriser('voir', 'article')) $aff_art = array('prepa','prop','publie','refuse'); else if ($connect_id_auteur == $id_auteur) $aff_art = array('prepa','prop','publie'); else $aff_art = array('prop','publie'); $aff_art = sql_in('articles.statut', $aff_art); echo afficher_objets('article',_T('info_articles_auteur'), array('FROM' => "spip_articles AS articles LEFT JOIN spip_auteurs_articles AS lien ON lien.id_article=articles.id_article ", "WHERE" => "lien.id_auteur=$id_auteur AND $aff_art", 'ORDER BY' => "articles.date DESC")); // Messages de l'auteur et discussions en cours if ($GLOBALS['meta']['messagerie_agenda'] != 'non' AND $id_auteur != $connect_id_auteur AND autoriser('ecrire', '', '', $auteur) ) { echo "<div class='nettoyeur'> </div>"; echo debut_cadre_couleur('', true); $vus = array(); echo afficher_ses_messages('<b>' . _T('info_discussion_cours') . '</b>', ", spip_auteurs_messages AS lien, spip_auteurs_messages AS lien2", "lien.id_auteur=$connect_id_auteur AND lien2.id_auteur = $id_auteur AND statut='publie' AND type='normal' AND rv!='oui' AND lien.id_message=messages.id_message AND lien2.id_message=messages.id_message", $vus, false, false); echo afficher_ses_messages('<b>' . _T('info_vos_rendez_vous') . '</b>', ", spip_auteurs_messages AS lien, spip_auteurs_messages AS lien2", "lien.id_auteur=$connect_id_auteur AND lien2.id_auteur = $id_auteur AND statut='publie' AND type='normal' AND rv='oui' AND date_fin > ".sql_quote(date('Y-m-d H:i:s'))." AND lien.id_message=messages.id_message AND lien2.id_message=messages.id_message", $vus, false, false); echo icone_horizontale(_T('info_envoyer_message_prive'), generer_action_auteur("editer_message","normal/$id_auteur"), "message.gif","", false); echo fin_cadre_couleur(true); } }
function inc_referencer_traduction_dist($id_article, $flag, $id_rubrique, $id_trad, $trad_err='') { global $spip_display; if (! (($GLOBALS['meta']['multi_articles'] == 'oui') OR (($GLOBALS['meta']['multi_rubriques'] == 'oui') AND ($GLOBALS['meta']['gerer_trad'] == 'oui'))) ) return ''; $langue_article = sql_fetsel("lang", "spip_articles", "id_article=$id_article"); $langue_article = $langue_article['lang']; $reponse = ''; // Choix langue article if ($GLOBALS['meta']['multi_articles'] == 'oui' AND $flag) { $row = sql_fetsel("lang", "spip_rubriques", "id_rubrique=$id_rubrique"); $langue_parent = $row['lang']; if (!$langue_parent) $langue_parent = $GLOBALS['meta']['langue_site']; if (!$langue_article) $langue_article = $langue_parent; if ($menu = liste_options_langues('changer_lang', $langue_article, $langue_parent)) { // attention ce onchange doit etre suivi de <span><input type='submit' $lien = "\nonchange=\"this.nextSibling.firstChild.style.visibility='visible';\""; $menu = select_langues('changer_lang', $lien, $menu, _T('info_multi_cet_article')); $menu = ajax_action_post('referencer_traduction', "$id_article,$id_rubrique","articles","id_article=$id_article", $menu, _T('bouton_changer'), " class='visible_au_chargement'"); $reponse .= debut_cadre_couleur('',true) . "\n<div style='text-align: center;'>" . $menu . "</div>\n" . fin_cadre_couleur(true); } } if ($trad_err) $reponse .= "<div><span style='color: red' size='2' face='Verdana, Geneva, helvetica, sans-serif'>"._T('trad_deja_traduit'). "</span></div>"; // Afficher la liste des traductions if ($id_trad) { $requete = array('SELECT' => "id_article, id_rubrique, titre, lang, statut, id_trad", 'FROM' => "spip_articles", 'WHERE' => "id_trad = $id_trad"); $styles = array(array('',7), array('', 12), array('arial2'), array('arial2', 100)); $presenter_liste = charger_fonction('presenter_liste', 'inc'); $tableau = array(); $liste = $presenter_liste($requete, 'articles_traduction', $tableau, $id_article, false, $styles, '',_T('trad_article_traduction')); } else $liste = ''; // changer les globales de direction de langue changer_typo($langue_article); // Participation aux Traductions pas pour Mal-voyant. A completer if ($spip_display == 4) $form =''; else { $form = "<table width='100%'><tr>"; if ($flag AND !$liste) { // Formulaire pour lier a un article $form .= "<td style='width: 60%' class='arial2'>" . ajax_action_post("referencer_traduction", $id_article, 'articles', "id_article=$id_article", ("<label for='lier_trad'>" . _T('trad_lier') . "</label>" . "\n<input type='text' name='lier_trad' id='lier_trad' size='5' />\n"), _T('bouton_valider'), "") . "</td>\n" . "<td style='width: 10px'> </td>" . "<td style='width: 2px; background: url(" . chemin_image("tirets-separation.gif") . ")'>". http_img_pack('rien.gif', " ", "width='2' height='2'") . "</td>" . "<td style='width: 10px'> </td>"; } $form .= "<td>" . icone_horizontale(_T('trad_new'), generer_url_ecrire("articles_edit","new=oui&lier_trad=$id_article&id_rubrique=$id_rubrique"), "traductions-24.gif", "creer.gif", false) . "</td>"; if ($flag AND $liste) { $clic = _T('trad_delier'); $form .= "<td style='width: 10px'> </td>" . "<td style='width: 2px; background: url(" . chemin_image("tirets-separation.gif") . ")'>". http_img_pack('rien.gif', " ", "width='2' height='2'") . "</td>" . "<td style='width: 10px'> </td>" . "<td>" // la 1ere occurrence de clic ne sert pas en Ajax . icone_horizontale($clic, ajax_action_auteur("referencer_traduction","$id_article,-$id_trad",'articles', "id_article=$id_article",array($clic)), "traductions-24.gif", "supprimer.gif", false) . "</td>\n"; } $form .= "</tr></table>"; } if ($GLOBALS['meta']['gerer_trad'] == 'oui') $bouton = _T('titre_langue_trad_article'); else $bouton = _T('titre_langue_article'); if ($langue_article) $bouton .= " (".traduire_nom_langue($langue_article).")"; $res = debut_cadre_enfonce('langues-24.gif', true, "", bouton_block_depliable($bouton,$flag === 'ajax','languearticle,lier_traductions')) . debut_block_depliable($flag === 'ajax','languearticle') . $reponse . fin_block() . $liste . debut_block_depliable($flag === 'ajax','lier_traductions') . $form . fin_block() . fin_cadre_enfonce(true); return ajax_action_greffe("referencer_traduction", $id_article, $res); }
function exec_spiplistes_courrier_gerer () { include_spip('inc/barre'); include_spip('inc/documents'); include_spip('base/spiplistes_tables'); include_spip('inc/spiplistes_api'); include_spip('inc/spiplistes_api_courrier'); include_spip('inc/spiplistes_api_presentation'); include_spip('inc/spiplistes_destiner_envoi'); include_spip('inc/spiplistes_naviguer_paniers'); global $connect_statut , $connect_toutes_rubriques , $connect_id_auteur , $spip_ecran ; $eol = "\n"; // initialise les variables postees par le formulaire foreach(array( 'type' , 'id_courrier' , 'btn_courrier_valider', 'titre', 'message', 'message_texte' // (formulaire edition) _SPIPLISTES_EXEC_COURRIER_EDIT , 'new' // idem , 'btn_changer_destination', 'radio_destination', 'email_test', 'id_liste' // (formulaire local) destinataire , 'change_statut' // (formulaire spiplistes_boite_autocron) 'publie' pour annuler envoi par boite autocron , 'btn_dupliquer_courrier' // (formulaire local) dupliquer le courrier , 'supp_dest' , 'id_temp' // pour recuperer les documents joints ) as $key) { $$key = _request($key); } foreach(array('id_courrier', 'id_liste', 'btn_dupliquer_courrier') as $key) { $$key = intval($$key); } foreach(array('email_test','titre','message','message_texte') as $key) { $$key = trim($$key); } $texte = $message; $page_result = $message_erreur = $str_destinataire = $boite_confirme_envoi = ''; $flag_admin = ($connect_statut == "0minirezo") && $connect_toutes_rubriques; $flag_moderateur = count($listes_moderees = spiplistes_mod_listes_id_auteur($connect_id_auteur)); $flag_createur = ($id_courrier && ($connect_id_auteur == spiplistes_courrier_id_auteur_get($id_courrier))); // l'edition du courrier est reservee... $flag_autorise = ( // aux super-admins $flag_admin // ou a un moderateur || $flag_moderateur // ou au createur du courrier || $flag_createur ); if($flag_autorise) { // Modification de courrier if($btn_dupliquer_courrier > 0) { $id_courrier = $btn_dupliquer_courrier; } // effectue les modifications demandees si retour local ou retour editeur if($id_courrier > 0) { if($btn_dupliquer_courrier > 0) { if($row = sql_fetsel('titre,texte', 'spip_courriers', 'id_courrier='.sql_quote($id_courrier),'','',1)) { $titre = typo($row['titre']); $texte = typo($row['texte']); // // @see: http://www.spip-contrib.net/SPIP-Listes#comment441566 //$texte = typo($row['message_texte']); $str_log = "id_courrier #$id_courrier"; $statut = _SPIPLISTES_COURRIER_STATUT_REDAC; $type = _SPIPLISTES_COURRIER_TYPE_NEWSLETTER; $id_courrier = sql_insert( 'spip_courriers' , "(titre,texte,message_texte,date,statut,type,id_auteur)" , "(".sql_quote($titre).",".sql_quote($texte).",".sql_quote($message_texte) .",NOW(),".sql_quote($statut).",".sql_quote($type).",".sql_quote($connect_id_auteur).")" ); spiplistes_log("$str_log DUPLICATED TO #$id_courrier BY ID_AUTEUR #$connect_id_auteur"); } else { spiplistes_log("ERR: DUPLICATION FROM id_courrier #$id_courrier (missing ?)"); } } if($btn_changer_destination) { if($radio_destination == 'email_test') { // demande d'envoi au mail de test (retour formulaire local) if(email_valide($email_test)) { if(!($id_auteur_test = spiplistes_idauteur_depuis_email($email_test))) { // verifie si l'adresse est dans la table des auteurs // si inconnue, refuse d'envoyer $message_erreur .= spiplistes_boite_alerte (_T('spiplistes:Erreur_Adresse_email_inconnue'), true); } else { $format_abo = spiplistes_format_abo_demande($id_auteur_test); /* * meme le compte qui veut recevoir un test doit avoir * un format de reception */ if( in_array($format_abo, spiplistes_formats_autorises()) && ($format_abo != 'non') ) { // Ok. Enregistre l'adresse test spiplistes_courrier_modifier( $id_courrier , array( 'email_test' => $email_test , 'total_abonnes' => 1 , 'id_liste' => ($id_liste = 0) , 'statut' => ($change_statut = _SPIPLISTES_COURRIER_STATUT_READY) ) ); } else { $message_erreur .= spiplistes_boite_alerte (_T('spiplistes:destinataire_sans_format_alert'), true); } $str_destinataire = _T('spiplistes:email_adresse') . " : $email_test"; } } else { $message_erreur .= spiplistes_boite_alerte (_T('spiplistes:Erreur_Adresse_email_invalide'), true); } } // end if($radio_destination == 'email_test') else if($radio_destination == 'id_liste') { // demande d'envoi a une liste (retour formulaire local) if($id_liste > 0) { if( ($nb_abos = spiplistes_listes_nb_abonnes_compter($id_liste)) > 0 ) { $str_destinataire = "" . _T('spiplistes:sur_liste') . " : <a href='".generer_url_ecrire(_SPIPLISTES_EXEC_LISTE_GERER, "id_liste=$id_liste")."'>" . spiplistes_listes_liste_fetsel($id_liste, 'titre') . "</a>" . " " . spiplistes_nb_abonnes_liste_str_get($id_liste, $nb_abos) ; spiplistes_courrier_modifier( $id_courrier , array( 'email_test' => "" , 'total_abonnes' => $nb_abos , 'id_liste' => $id_liste , 'statut' => ($change_statut = _SPIPLISTES_COURRIER_STATUT_READY) ) ); } else { $message_erreur .= spiplistes_boite_alerte (_T('spiplistes:Erreur_liste_vide'), true); } } } // end if($radio_destination } // if($btn_changer_destination else if($btn_courrier_valider) { // retour editeur local if(!empty($titre)) { $sql_set = array( 'titre' => $titre , 'texte' => $texte , 'message_texte' => $message_texte ); spiplistes_courrier_modifier($id_courrier, $sql_set); spiplistes_courrier_attacher_documents($id_courrier, $id_temp); } else { $message_erreur .= spiplistes_boite_alerte (_T('spiplistes:Erreur_courrier_titre_vide'), true); } } // FIN DES MODIFICATIONS } // Ok. recharge les donnees pour completer le formulaire $sql_select_array = array('titre', 'texte', 'email_test', 'statut'); if($row = spiplistes_courriers_premier($id_courrier, $sql_select_array)) { foreach($sql_select_array as $key) { $$key = $row[$key]; } } // end if($id_courrier > 0) } // end if($flag_autorise) ////////////////////////////////////////////////////// // Nouveau courrier //// if(($connect_statut == "0minirezo") && ($new == 'oui')) { // retour editeur. Creation du courrier if(!empty($titre)) { $statut = _SPIPLISTES_COURRIER_STATUT_REDAC; $type = _SPIPLISTES_COURRIER_TYPE_NEWSLETTER; $id_courrier = sql_insert( 'spip_courriers' , "(titre,texte,message_texte,date,statut,type,id_auteur)" , "(".sql_quote($titre).",".sql_quote($texte).",".sql_quote($message_texte) .",NOW(),".sql_quote($statut).",".sql_quote($type).",".sql_quote($connect_id_auteur).")" ); spiplistes_courrier_attacher_documents($id_courrier, $id_temp); } else { $message_erreur .= spiplistes_boite_alerte (_T('spiplistes:Erreur_courrier_titre_vide'), true); } } ////////////////////////////////////////////////////// // recharge le courrier pour edition if($id_courrier > 0) { $sql_select_tmp = "email_test,date,titre,texte,message_texte,type,statut,date_debut_envoi,date_fin_envoi"; $sql_select_int = "id_liste,id_auteur,total_abonnes,nb_emails_envoyes,nb_emails_echec,nb_emails_non_envoyes,nb_emails_texte,nb_emails_html"; $sql_select_str = "titre"; $sql_select = $sql_select_int.",".$sql_select_str.",".$sql_select_tmp; if($row = sql_fetsel($sql_select, "spip_courriers", "id_courrier=".sql_quote($id_courrier), '', '', 1)) { foreach(explode(",", $sql_select) as $key) { $$key = $row[$key]; } foreach(explode(",",$sql_select_int) as $key) { $$key = intval($$key); } foreach(explode(",",$sql_select_str) as $key) { $$key = typo($$key); } if($change_statut == _SPIPLISTES_COURRIER_STATUT_READY) { //$titre = propre($titre); // pas de propre ici, ca fait un <p> </p> // Le statut n'est modifie ici, mais // par courrier_casier en retour de ce formulaire // $texte = spiplistes_courrier_propre($texte); $texte = spiplistes_texte_propre ($texte); spiplistes_courrier_modifier( $id_courrier , array( 'titre' => $titre , 'texte' => $texte ) ); spiplistes_log("ID_COURRIER #$id_courrier titre,texte MODIFIED BY ID_AUTEUR #$connect_id_auteur"); $statut = $change_statut; } else if($change_statut == _SPIPLISTES_COURRIER_STATUT_STOPE){ spiplistes_courrier_supprimer_queue_envois('id_courrier', $id_courrier); spiplistes_log("ID_COURRIER #$id_courrier CANCELLED BY ID_AUTEUR #$connect_id_auteur"); } // prepare le texte texte seul if(!in_array($statut, array( _SPIPLISTES_COURRIER_STATUT_REDAC , _SPIPLISTES_COURRIER_STATUT_READY , _SPIPLISTES_COURRIER_STATUT_PUBLIE , _SPIPLISTES_COURRIER_STATUT_STOPE )) ) { //$texte = spiplistes_courrier_propre($texte); $texte = spiplistes_texte_propre ($texte); } if(!empty($message_texte)){ $alt_message_texte = _T('spiplistes:calcul_patron'); } else{ $alt_message_texte = _T('spiplistes:calcul_html'); $message_texte = spiplistes_courrier_version_texte($texte); } // construit la boite de selection destinataire $boite_selection_destinataire = (($statut==_SPIPLISTES_COURRIER_STATUT_REDAC) || ($statut==_SPIPLISTES_COURRIER_STATUT_READY)) ? spiplistes_destiner_envoi($id_courrier, $id_liste , $flag_admin , $flag_moderateur , $listes_moderees , $statut, $type, 'btn_changer_destination', $email_test) : "" ; } } // end if() ////////////////////////////////////////////////////// // preparation des boutons si droits $gros_bouton_modifier = $gros_bouton_dupliquer = $gros_bouton_supprimer = $gros_bouton_arreter_envoi = ''; if($flag_autorise) { if(($statut == _SPIPLISTES_COURRIER_STATUT_REDAC) || ($statut == _SPIPLISTES_COURRIER_STATUT_READY)) { // Le courrier peut-etre modifie si en preparation $gros_bouton_modifier = "<!-- bouton modifier -->\n" . icone ( _T('spiplistes:Modifier_ce_courrier') // legende bouton , generer_url_ecrire(_SPIPLISTES_EXEC_COURRIER_EDIT,'id_courrier='.$id_courrier) // lien , spiplistes_items_get_item('icon', $statut) // image du fond , "edit.gif" // image de la fonction. Ici, le crayon , '' // alignement , false // pas echo, demande retour ) . $eol ; } // Le courrier peut-etre supprime si obsolete if(in_array($statut, array(_SPIPLISTES_COURRIER_STATUT_REDAC , _SPIPLISTES_COURRIER_STATUT_PUBLIE , _SPIPLISTES_COURRIER_STATUT_AUTO , _SPIPLISTES_COURRIER_STATUT_VIDE , _SPIPLISTES_COURRIER_STATUT_IGNORE , _SPIPLISTES_COURRIER_STATUT_STOPE , _SPIPLISTES_COURRIER_STATUT_ERREUR)) ) { $gros_bouton_supprimer = '<div style="margin-top:1ex">' . icone ( _T('spiplistes:Supprimer_ce_courrier') , generer_url_ecrire(_SPIPLISTES_EXEC_COURRIERS_LISTE, 'btn_supprimer_courrier='.$id_courrier) , _DIR_PLUGIN_SPIPLISTES_IMG_PACK.'poubelle_msg.gif' , '' , 'right' , false ) . '</div>'.$eol ; } // Un courrier publie ou stoppe peut-etre duplique pour edition // on revient sur cette page avec le contenu recupere if(in_array($statut, array(_SPIPLISTES_COURRIER_STATUT_PUBLIE , _SPIPLISTES_COURRIER_STATUT_AUTO , _SPIPLISTES_COURRIER_STATUT_STOPE)) ) { $gros_bouton_dupliquer = "<div style='margin-top:1ex;'>" . icone ( _T('spiplistes:dupliquer_ce_courrier') , generer_url_ecrire(_SPIPLISTES_EXEC_COURRIER_GERER, "btn_dupliquer_courrier=$id_courrier") , _DIR_PLUGIN_SPIPLISTES_IMG_PACK.'stock_mail.gif' , _DIR_IMG_PACK."creer.gif" , "right" , false ) . "</div>\n" ; } if($statut == _SPIPLISTES_COURRIER_STATUT_ENCOURS) { // L'envoi d'un courrier en cours peut etre stoppe $gros_bouton_arreter_envoi = icone ( _T('spiplistes:Arreter_envoi') // si arreter envoi, passe la main a exec/spiplistes_courriers_casier , generer_url_ecrire(_SPIPLISTES_EXEC_COURRIERS_LISTE, "btn_arreter_envoi=$id_courrier") , _DIR_PLUGIN_SPIPLISTES_IMG_PACK."courriers_redac-24.png" , _DIR_PLUGIN_SPIPLISTES_IMG_PACK."stop-top-right-24.png" , "right" , false ) . fin_cadre_relief(true) ; } if($statut == _SPIPLISTES_COURRIER_STATUT_READY) { if(!$id_liste && !$id_auteur_test) { // normalement, la validation est locale, mais si l'utilisateur // part sur un casier, le retour ici est incomplet... // cas particulier d'un appel d'un courrier ready a partir des casiers // il faut recreer $id_auteur_test si id_liste == 0 if(!($id_auteur_test = spiplistes_idauteur_depuis_email($email_test))) { spiplistes_log("ERR: id_auteur_test #$id_auteur_test (id_auteur missing ?)"); } } if(($id_liste > 0) || ($id_auteur_test > 0)) { $boite_confirme_envoi = debut_cadre_couleur('', true) // formulaire de confirmation envoi // renvoie sur la page des casiers . '<form action="' . generer_url_ecrire(_SPIPLISTES_EXEC_COURRIERS_LISTE,'id_courrier='.$id_courrier) . '" method="post">'.$eol . '<p style="text-align:center;font-weight:bold;" class="verdana2">' . _T('spiplistes:confirme_envoi') . '</p>'.$eol . '<input type="hidden" name="id_liste" value="'.$id_liste.'" />'.$eol . '<input type="hidden" name="id_courrier" value="'.$id_courrier.'" />'.$eol . '<input type="hidden" name="id_auteur_test" value="'.$id_auteur_test.'" />'.$eol . '<div style="text-align:left;">'.$eol . '<input type="submit" name="btn_annuler_envoi" value="' . _T('spiplistes:annuler_envoi').'" class="fondo" style="float:left" />'.$eol . '<div style="text-align:right;width:100%">'.$eol . '<input type="submit" name="btn_confirmer_envoi" value="' . _T('spiplistes:Envoyer_ce_courrier').'" class="fondo" />'.$eol . '</div>'.$eol . '</div>'.$eol . '</form>' . fin_cadre_couleur(true) ; } } } ///////////////////// // prepare le message statut du courrier if($id_courrier > 0) { $le_type = _T('spiplistes:message_type'); if($statut != _SPIPLISTES_COURRIER_STATUT_REDAC) { if(!empty($email_test)) { $str_destinataire = _T('spiplistes:email_adresse') . " : <span style='font-weight:bold;color:gray;'>$email_test</span>"; } else { if($row = sql_fetsel('titre', 'spip_listes', "id_liste=".sql_quote($id_liste), '', '', 1)) { $str_destinataire = "" . _T('spiplistes:Liste_de_destination') . " : <a href='".generer_url_ecrire(_SPIPLISTES_EXEC_LISTE_GERER, "id_liste=$id_liste")."'>" . typo($row['titre']) . "</a>" . " " . spiplistes_nb_abonnes_liste_str_get($id_liste) ; } else { $str_destinataire = _T('spiplistes:Courriers_sans_liste'); } } } // $str_statut_courrier = ""; switch($statut) { case _SPIPLISTES_COURRIER_STATUT_REDAC: $str_statut_courrier = _T('spiplistes:message_en_cours')."<br />" . ( ($flag_autorise) ? _T('spiplistes:modif_envoi') : "" ) ; break; case _SPIPLISTES_COURRIER_STATUT_READY: $str_statut_courrier = "" . _T('spiplistes:message_presque_envoye') . "<br />" . $str_destinataire . "<br />\n" ; break; case _SPIPLISTES_COURRIER_STATUT_ENCOURS: $str_statut_courrier = "" . _T('spiplistes:message_en_cours')."<br />$str_destinataire<br /><br />" //. "<a href='?exec=spip_listes'>["._T('spiplistes:voir_historique')."]</a>" ; break; case _SPIPLISTES_COURRIER_STATUT_PUBLIE: case _SPIPLISTES_COURRIER_STATUT_AUTO: $str_statut_courrier = "" . "<span>" . "<strong>"._T('spiplistes:message_arch')."</strong></span>" . "<ul>" . " <li>$str_destinataire</li>" . " <li>"._T('spiplistes:envoi_date').affdate_heure($date)."</li>" . " <ul>" . " <li>"._T('spiplistes:envoi_debut').affdate_heure($date_debut_envoi)."</li>" . " <li>"._T('spiplistes:envoi_fin').affdate_heure($date_fin_envoi)."</li>" . " </ul>" . " <li>"._T('spiplistes:nbre_abonnes').$total_abonnes."</li>" . " <ul>" . " <li>"._T('spiplistes:format_html__n', array('n' => $nb_emails_html))."</li>" . " <li>"._T('spiplistes:format_texte__n', array('n' => $nb_emails_texte))."</li>" . " <li>"._T('spiplistes:desabonnes')." : ".$nb_emails_non_envoyes."</li>" . " </ul>" . " <li>"._T('spiplistes:erreur_envoi').$nb_emails_echec."</li>" . "</ul>" ; } // end switch() if(!empty($str_statut_courrier)) { $str_statut_courrier = "<span class='verdana2'>".$str_statut_courrier."</span>"; } } // end if() //////////////////////////////////// // PAGE CONTENU //////////////////////////////////// $titre_page = _T('spiplistes:edition_du_courrier'); // Permet entre autres d'ajouter les classes a la page : <body class='$rubrique $sous_rubrique'> $rubrique = _SPIPLISTES_PREFIX; $sous_rubrique = "courrier_gerer"; $commencer_page = charger_fonction('commencer_page', 'inc'); echo($commencer_page(_T('spiplistes:spiplistes') . " - " . trim($titre_page), $rubrique, $sous_rubrique)); // la gestion des listes de courriers est reservee aux admins if($connect_statut != "0minirezo") { die (spiplistes_terminer_page_non_autorisee() . fin_page()); } $page_result = "" . "<br /><br /><br />\n" . spiplistes_gros_titre($titre_page, '', true) . barre_onglets($rubrique, $sous_rubrique) . debut_gauche($rubrique, true) . spiplistes_boite_info_id(_T('spiplistes:Courrier_numero_'), $id_courrier, true) . spiplistes_naviguer_paniers_courriers(_T('spiplistes:aller_au_panier_'), true) //. $boite_documents . pipeline('affiche_gauche', array('args'=>array('exec'=>$sous_rubrique),'data'=>'')) //. creer_colonne_droite($rubrique, true) // spiplistes_boite_raccourcis() s'en occupe . spiplistes_boite_raccourcis(true) . spiplistes_boite_autocron() . pipeline('affiche_droite', array('args'=>array('exec'=>$sous_rubrique),'data'=>'')) . debut_droite($rubrique, true) ; if($id_courrier > 0) { ///////////////////// // construction du ventre $page_result .= "\n<!-- construction du ventre -->\n" . $message_erreur . debut_cadre_relief(spiplistes_items_get_item('icon', $statut), true) . "<table width='100%' border='0' cellspacing='0' cellpadding='0'>" . "<tr>" . "<td>".spiplistes_gros_titre($titre, spiplistes_items_get_item('puce', $statut), true)."</td>" . "<td rowspan='2' style='vertical-align:top;width:90px;'>" // si besoin, l'un de ces trois boutons apparait . $gros_bouton_modifier . $gros_bouton_arreter_envoi . $gros_bouton_dupliquer ."</td>" . "</tr>\n" . "<tr> " . "<td>" . "<p class='verdana2' style='font-size:120%;color:red;font-weight:bold;'>$le_type</p>\n" . "<p class='verdana2'>$str_statut_courrier</p>\n" . "</td>" . "</tr>\n" . "</table>" . $boite_confirme_envoi . $boite_selection_destinataire . "<br />\n" ; function spiplistes_generer_oeil ($params) { return( " <a href='" . generer_url_ecrire(_SPIPLISTES_EXEC_COURRIER_PREVUE, $params) . "' title='"._T('spiplistes:Apercu_plein_ecran')."' target='_blank'>\n" . spiplistes_icone_oeil() . "</a>" ); } // previsu $params = "id_courrier=$id_courrier&id_liste=$id_liste"; $oeil_html = spiplistes_generer_oeil($params. "&lire_base=oui&plein_ecran=oui"); $oeil_texte = spiplistes_generer_oeil($params . "&lire_base=oui&plein_ecran=oui&format=texte"); $page_result .= "" . debut_cadre_couleur('', true) . "<form id='choppe_patron-1' action='$form_action' method='post' name='choppe_patron-1'>\n" . "<div id='previsu-html' class='switch-previsu'>\n" . _T('spiplistes:version_html') . $oeil_html . " / " . "<a href='javascript:jQuery(this).switch_previsu()'>" . _T('spiplistes:version_texte') . $oeil_texte . "<div>\n" . "<iframe class='previsu-edit'" . " src='".generer_url_ecrire(_SPIPLISTES_EXEC_COURRIER_PREVUE, $params . "&lire_base=oui") . "' width='100%' height='500'></iframe>\n" . "</div>\n" . "</div>\n" // fin id='previsu-html . "<div id='previsu-texte' class='switch-previsu' style='display:none;'>\n" . "<a href='javascript:jQuery(this).switch_previsu()'>" . _T('spiplistes:version_html') . "</a>\n" . $oeil_html . " / " . _T('spiplistes:version_texte') . "</a> $oeil_texte\n" . "<div>\n" //. "<pre>" . "<iframe class='previsu-edit'" . " src='".generer_url_ecrire(_SPIPLISTES_EXEC_COURRIER_PREVUE, $params . "&format=texte&lire_base=oui") ."' width='100%' height='500'></iframe>\n" //. "</pre>" . "</div>\n" . "</div>\n" // fin id='previsu-texte . "</form>\n" . fin_cadre_couleur(true) // // fin de la boite . fin_cadre_relief(true) // . $gros_bouton_supprimer ; } // end if else { $page_result .= (empty($message_erreur)) ? spiplistes_boite_alerte (_T('spiplistes:Erreur_courrier_introuvable'), true) : $message_erreur ; } echo($page_result); // GERER COURRIER: FIN DE PAGE echo pipeline('affiche_milieu',array('args'=>array('exec'=>$sous_rubrique),'data'=>'')) , spiplistes_html_signature(_SPIPLISTES_PREFIX) , fin_gauche(), fin_page(); } // end function exec_spiplistes_courrier_gerer ()
function afficher_breve_rubrique($id_breve, $id_rubrique, $statut) { if (!_INTERFACE_ONGLETS) return ""; global $spip_lang_right; $aider = charger_fonction('aider', 'inc'); $chercher_rubrique = charger_fonction('chercher_rubrique', 'inc'); $form = $chercher_rubrique($id_rubrique, 'breve', ($statut == 'publie')); if (strpos($form,'<select')!==false) { $form .= "<div style='text-align: $spip_lang_right;'>" . '<input type="submit" value="'._T('bouton_choisir').'"/>' . "</div>"; } $form = redirige_action_post('editer_breve', $id_breve, 'breves_voir', "id_breve=$id_breve", $form, " class='submit_plongeur'" ); if ($id_rubrique == 0) $logo = "racine-site-24.gif"; else $logo = "secteur-24.gif"; return debut_cadre_couleur($logo, true, "",_T('entree_interieur_rubrique').$aider ("brevesrub")) . $form . fin_cadre_couleur(true); }
/** * Formulaire de selection destinataire * * $flag_admin: si true, possibilite de modifier le destinataire * sinon, ne fait qu'afficher l'etat * * Renvoie : * $$nom_bouton_validation: si bouton de validation presse * $radio_destination: determine le choix * -> soit 'email_test' si adresse mail choisie * -> soit 'id_liste' si c'est une liste qui est choisie * $email_test: adresse email de test * $id_liste: id de la liste choisie */ function spiplistes_destiner_envoi ( $id_courrier, $id_liste , $flag_admin , $flag_moderateur , $listes_moderees , $statut, $type, $nom_bouton_validation, $email_test = "") { include_spip('inc/presentation'); include_spip('inc/texte'); include_spip('inc/actions'); include_spip('inc/date'); global $spip_lang_left , $spip_lang_right , $options ; $id_liste = intval($id_liste); $result = $destinataire = ""; if($id_liste) { if($row = sql_fetsel("titre", "spip_listes", "id_liste=".sql_quote($id_liste))) { $destinataire = $row['titre']; } } else if (!empty($email_test)) { $destinataire = $email_test; } if(empty($destinataire)) { $destinataire = "<span style='color:gray;font-size:90%;'>"._T('spiplistes:Choix_non_defini')."</span>"; } $invite = "<strong><span class='verdana1' style='text-transform: uppercase;'>" . _T('spiplistes:Destination') . ' : </span> ' . $destinataire . "</strong>" ; if( ($flag_admin || $flag_moderateur) && (($statut == _SPIPLISTES_COURRIER_STATUT_REDAC) || ($statut == _SPIPLISTES_COURRIER_STATUT_READY)) ) { $adresse_test = $GLOBALS['auteur_session']['email']; $listes_abos = spiplistes_listes_lister_abos(); $liste_disabled = $listes_abos ? "" : " disabled='disabled'"; // propose l'envoi en test $masque = "" . "<ul class='verdana2' style='list-style-type:none;padding-left:0;'>" . "<li> <input type='radio' name='radio_destination' value='email_test' checked='checked' id='desttest' />" . "<label for='desttest'>"._T('spiplistes:email_tester')."</label> : " . "<input type='text' name='email_test' value='$adresse_test' class='fondo' size='35' />\n" . "</li>" . "<li> <input type='radio' name='radio_destination' value='id_liste' id='destlist' $liste_disabled />" . "<label for='destlist'>"._T('spiplistes:listes_de_diffusion_')."</label> : " ; // propose les listes if($listes_abos) { $masque .= "" . "<select class='verdana2' name='id_liste' onchange='document.getElementById(\"destlist\").checked=true;' >\n" ; foreach($listes_abos as $row) { if( ($row['nb_abos'] > 0) && ( $flag_admin || ($flag_moderateur && in_array($row['id_liste'], $listes_moderees)) ) ) { $checked = ($id_liste == $row['id_liste']) ? "checked='checked'" : ""; $nb_abos = spiplistes_singulier_pluriel_str_get( $row['nb_abos'] , _T('spiplistes:nb_abonnes_sing') , _T('spiplistes:nb_abonnes_plur') ) ; $masque .= "<option value='" . $row['id_liste'] . "' $checked >" . spiplistes_calculer_balise_titre(extraire_multi($row['titre'])) . " (" . $nb_abos . ")</option>\n"; } } $masque .= "" . "</select>\n" ; } else { $masque .= _T('spiplistes:aucune_liste_dispo'); } $masque .= "" . "</li>" . "</ul>" . "<div style='text-align:right;'>" . "<input type='submit' name='$nom_bouton_validation' value=\""._T('bouton_valider')."\" class='fondo' /></div>\n" ; // enveloppe dans un formulaire $masque = "" . "<form action='".generer_url_ecrire(_SPIPLISTES_EXEC_COURRIER_GERER,'id_courrier='.$id_courrier)."' method='post'>\n" . $masque . "</form>\n" ; $result = block_parfois_visible('destinerblock', $invite, $masque, 'text-align: left'); } else { $result = $invite; } if(!empty($result)) { $result = "<div style='margin-top:1ex;'>" . debut_cadre_couleur('',true) . $result . fin_cadre_couleur(true) ."</div>\n"; } return ($result); }