function exec_cs_boite_rss_dist() { cs_minipres(); // Constantes distantes include_spip('cout_define'); if(defined('_CS_PAS_DE_DISTANT')) { ajax_retour(_T('couteauprive:version_distante_off')); return; } $p = ''; // on cherche le flux rss toutes les _CS_RSS_UPDATE minutes $force = _request('force')=='oui'; if(!$force) { $lastmodified = @file_exists(_CS_TMP_RSS)?@filemtime(_CS_TMP_RSS):0; if(time()-$lastmodified < _CS_RSS_UPDATE) lire_fichier(_CS_TMP_RSS, $p); } if(strlen($p)) { ajax_retour($p); return; } include_spip('inc/filtres'); include_spip('action/editer_site'); include_spip('inc/xml'); $r = spip_xml_load(_CS_RSS_SOURCE); if(function_exists('spip_xml_match_nodes')) $c = spip_xml_match_nodes(',^item$,', $r, $r2); else { $r2 = !is_array($r)?array():array_shift(array_shift(array_shift(array_shift($r)))); $c = count($r2); } if($c) { $r3 = &$r2['item']; $c = count($r3); $p=''; for($i=0; $i<min($c, _CS_RSS_COUNT); $i++) { $l = $r3[$i]['link'][0]; $d = affdate_court(date('Y-m-d', strtotime($r3[$i]['pubDate'][0]))); $t = str_replace('&', '&', htmlentities($r3[$i]['title'][0], ENT_NOQUOTES, "UTF-8")); $t = preg_replace(',\s*€(¦)?,', ' (…)', $t); $t = preg_replace(',^(.*?):,', "• <a href='$l' class='spip_out' target='_cout'>$1</a> <i>($d)</i><br/>", $t); $p .= "<li style='padding-top:0.6em;'>$t</li>"; } } else { // pour cs_lien() include_spip('cout_fonctions'); $p = '<span style="color: red;">'._T('couteauprive:erreur:probleme', array('pb'=>cs_lien(_CS_RSS_SOURCE,_T('couteauprive:erreur:distant')))).'</span>'; } $du = affdate_heure(date('Y-m-d H:i:s',time())); $p = '<ul style="list-style-type:none; padding:0; margin:0; ">'.$p .'</ul><p class="spip_xx-small" style="border-top:solid gray thin;"><b>' ._T('couteauprive:rss_edition')."</b><br/>$du</p>" .'<p style="text-align:right"><a href="' .generer_url_ecrire('admin_couteau_suisse','var_mode=calcul', true).'" onclick="' ."javascipt:jQuery('div.cs_boite_rss').children().css('opacity', 0.5).parent().load('".generer_url_ecrire('cs_boite_rss', 'force=oui', true).'\');return false;">' ._T('couteauprive:rss_actualiser').'</a> | <a href="' ._CS_RSS_SOURCE.'">' ._T('couteauprive:rss_source').'</a></p>'; if($c) ecrire_fichier(_CS_TMP_RSS, $p); ajax_retour($p); }
function date_interface($date, $decalage_maxi = 43200) { return sinon(date_relative($date, $decalage_maxi), affdate_heure($date)); }
function statistiques_href($jour, $moyenne, $script, $value='') { $ce_jour=date("Y-m-d H:i:s", $jour); $title = nom_jour($ce_jour) . ' ' . ($script ? affdate_heure($ce_jour) : (affdate_jourcourt($ce_jour) .' '. (" | " ._T('info_visites')." $value | " ._T('info_moyenne')." " . round($moyenne,2)))); return attribut_html(supprimer_tags($title)); }
function exec_articles_versions_args($id_article, $id_version, $id_diff) { global $spip_lang_left, $spip_lang_right; if (!autoriser('voirrevisions', 'article', $id_article) OR !$row = sql_fetsel("*", "spip_articles", "id_article=".sql_quote($id_article))){ include_spip('inc/minipres'); echo minipres(); return; } include_spip('inc/suivi_versions'); include_spip('inc/presentation'); include_spip('inc/revisions'); // recuperer les donnees actuelles de l'article $id_article = $row["id_article"]; $id_rubrique = $row["id_rubrique"]; $titre = $row["titre"]; $statut_article = $row["statut"]; $lang = $row["lang"]; // Afficher le debut de la page (y compris rubrique) $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page(_T('info_historique')." « $titre »", "naviguer", "articles", $id_rubrique); echo debut_grand_cadre(true); echo afficher_hierarchie($id_rubrique); echo fin_grand_cadre(true); ////////////////////////////////////////////////////// // Affichage de la colonne de gauche // echo debut_gauche('', true); echo bloc_des_raccourcis(icone_horizontale(_T('icone_retour_article'), generer_url_ecrire("articles","id_article=$id_article"), "article-24.gif","rien.gif", false) . icone_horizontale(_T('icone_suivi_revisions'), generer_url_ecrire("suivi_revisions",""), "historique-24.gif","rien.gif", false)); ////////////////////////////////////////////////////// // Affichage de la colonne de droite // echo debut_droite('', true); $lang_dir = lang_dir(changer_typo($lang)); // // recuperer les donnees versionnees // $last_version = false; if (!$id_version) { $id_version = $row['id_version']; $last_version = true; } $textes = revision_comparee($id_article, $id_version, 'complet', $id_diff); unset($id_rubrique); # on n'en n'aura besoin que si on affiche un diff // // Titre, surtitre, sous-titre // $debut = $corps = ''; if (is_array($textes)) foreach ($textes as $var => $t) { switch ($var) { case 'id_rubrique': $debut .= "<div dir='$lang_dir' class='arial1 spip_x-small'>" . $t . "</div>\n"; break; case 'surtitre': case 'soustitre': $debut .= "<div dir='$lang_dir' class='arial1 spip_medium'><b>" . propre_diff($t) . "</b></div>\n"; break; case 'titre': $debut .= gros_titre(propre_diff($t), puce_statut($statut_article, " style='vertical-align: center'"), false); break; // trois champs a affichage combine case 'descriptif': case 'url_site': case 'nom_site': if (!$vudesc++) { $debut .= "<div style='text-align: $spip_lang_left; padding: 5px; border: 1px dashed #aaaaaa; background-color: #e4e4e4;' dir='$lang_dir'>"; $texte_case = ($textes['descriptif']) ? "{{"._T('info_descriptif')."}} ".$textes['descriptif']."\n\n" : ''; $texte_case .= ($textes['nom_site'].$textes['url_site']) ? "{{"._T('info_urlref')."}} [".$textes['nom_site']."->".$textes['url_site']."]" : ''; $debut .= "<span class='verdana1 spip_small'>" . propre($texte_case). "</span>"; $debut .= "</div>"; } break; default: $corps .= "<div dir='$lang_dir' class='champ contenu_$var'>" . "<div class='label'>$var</div>" . "<div class='$var'>" . propre_diff($t) . "</div></div>\n"; break; } } echo '<div id="contenu">'; echo debut_cadre_relief('', true); echo "\n<table id='diff' cellpadding='0' cellspacing='0' border='0' width='100%'>"; echo "<tr><td style='width: 100%' valign='top'>"; echo $debut; echo "</td><td>"; // Icone de modification if (autoriser('modifier', 'article', $id_article)) echo icone_inline( _T('icone_modifier_article').'<br />('._T('version')." $id_version)", generer_url_ecrire("articles_edit", "id_article=$id_article".((!$last_version)?"&id_version=$id_version":"")), "article-24.gif", "edit.gif", $spip_lang_right ); echo "</td>"; echo "</tr></table>"; echo fin_cadre_relief(true); ////////////////////////////////////////////////////// // Affichage des versions // $result = sql_select("id_version, titre_version, date, id_auteur", "spip_versions", "id_article=".sql_quote($id_article)." AND id_version>0", "", "id_version DESC"); echo debut_cadre_relief('', true); $zapn = 0; $lignes = array(); $points = '...'; $tranches = 10; while ($row = sql_fetch($result)) { $res = ''; // s'il y en a trop on zappe a partir de la 10e // et on s'arrete juste apres celle cherchee if ($zapn++ > $tranches AND abs($id_version - $row['id_version']) > $tranches<<1) { if ($points) { $lignes[]= $points; $points = ''; } if ($id_version > $row['id_version']) break; continue; } $date = affdate_heure($row['date']); $version_aff = $row['id_version']; $titre_version = typo($row['titre_version']); $titre_aff = $titre_version ? $titre_version : $date; if ($version_aff != $id_version) { $lien = parametre_url(self(), 'id_version', $version_aff); $lien = parametre_url($lien, 'id_diff', ''); $res .= "<a href='".($lien.'#diff')."' title=\""._T('info_historique_affiche')."\">$titre_aff</a>"; } else { $res .= "<b>$titre_aff</b>"; } if (is_numeric($row['id_auteur']) AND $t = sql_getfetsel('nom', 'spip_auteurs', "id_auteur=" . intval($row['id_auteur']))) { $res .= " (".typo($t).")"; } else { $res .= " (".$row['id_auteur'].")"; #IP edition anonyme } if ($version_aff != $id_version) { $res .= " <span class='verdana2'>"; if ($version_aff == $id_diff) { $res .= "<b>("._T('info_historique_comparaison').")</b>"; } else { $lien = parametre_url(self(), 'id_version', $id_version); $lien = parametre_url($lien, 'id_diff', $version_aff); $res .= "(<a href='".($lien.'#diff'). "'>"._T('info_historique_comparaison')."</a>)"; } $res .= "</span>"; } $lignes[]= $res; } if ($lignes) { echo "<ul class='verdana3'><li>\n"; echo join("\n</li><li>\n", $lignes); echo "</li></ul>\n"; } ////////////////////////////////////////////////////// // Corps de la version affichee // echo "\n\n<div id='wysiwyg' style='text-align: justify;'>$corps"; // notes de bas de page if (strlen($GLOBALS['les_notes'])) echo "<div class='champ contenu_notes'> <div class='label'>"._T('info_notes')."</div> <div class='notes' dir='$lang_dir'>" .$GLOBALS['les_notes'] ."</div></div>\n"; echo "</div>\n"; echo fin_cadre_relief(true); echo '</div>'; // /#contenu echo fin_gauche(), fin_page(); }
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); }
/** * Retourne un bilan, texte HTML, des actions qui ont été faites * * Si c'est un affichage du bilan de fin, et qu'il reste des actions * à faire, un lien est proposé pour faire supprimer ces actions restantes * et le verrou qui va avec. * * @param bool $fin * Est-ce un affichage intermédiaire (false) ou le tout dernier (true). * @return string * Bilan des actions au format HTML **/ public function presenter_actions($fin = false) { $affiche = ""; include_spip('inc/filtres_boites'); if (count($this->err)) { $erreurs = "<ul>"; foreach ($this->err as $i) { $erreurs .= "\t<li class='erreur'>" . $i . "</li>\n"; } $erreurs .= "</ul>"; $affiche .= boite_ouvrir(_T('svp:actions_en_erreur'), 'error') . $erreurs . boite_fermer(); } if (count($this->done)) { $oks = true; $done = "<ul>"; foreach ($this->done as $i) { $ok = $i['done'] ? true : false; $oks =& $ok; $ok_texte = $ok ? 'ok' : 'fail'; $cle_t = 'svp:message_action_finale_' . $i['todo'] . '_' . $ok_texte; $trads = array('plugin' => $i['n'], 'version' => denormaliser_version($i['v'])); if (isset($i['maj'])) { $trads['version_maj'] = denormaliser_version($i['maj']); } $texte = _T($cle_t, $trads); if (is_string($i['done'])) { $texte .= " <span class='{$ok_texte}'>{$i['done']}</span>"; } // si le plugin a ete active dans le meme lot, on remplace le message 'active' par le message 'installe' if ($i['todo'] == 'install' and $ok_texte == 'ok') { $cle_t = 'svp:message_action_finale_' . 'on' . '_' . $ok_texte; $texte_on = _T($cle_t, array('plugin' => $i['n'], 'version' => denormaliser_version($i['v']), 'version_maj' => denormaliser_version($i['maj']))); if (strpos($done, $texte_on) !== false) { $done = str_replace($texte_on, $texte, $done); $texte = ""; } } if ($texte) { $done .= "\t<li class='{$ok_texte}'>{$texte}</li>\n"; } } $done .= "</ul>"; $affiche .= boite_ouvrir(_T('svp:actions_realises'), $oks ? 'success' : 'notice') . $done . boite_fermer(); } if (count($this->end)) { $todo = "<ul>"; foreach ($this->end as $i) { $todo .= "\t<li>" . _T('svp:message_action_' . $i['todo'], array('plugin' => $i['n'], 'version' => denormaliser_version($i['v']), 'version_maj' => denormaliser_version($i['maj']))) . "</li>\n"; } $todo .= "</ul>\n"; $titre = $fin ? _T('svp:actions_non_traitees') : _T('svp:actions_a_faire'); // s'il reste des actions à faire alors que c'est la fin qui est affichée, // on met un lien pour vider. C'est un cas anormal qui peut surgir : // - en cas d'erreur sur une des actions bloquant l'espace privé // - en cas d'appel d'admin_plugins concurrent par le même admin ou 2 admins... if ($fin) { include_spip('inc/filtres'); if ($this->lock['time']) { $time = $this->lock['time']; } else { $time = time(); } $date = date('Y-m-d H:i:s', $time); $todo .= "<br />\n"; $todo .= "<p class='error'>" . _T('svp:erreur_actions_non_traitees', array('auteur' => sql_getfetsel('nom', 'spip_auteurs', 'id_auteur=' . sql_quote($this->lock['id_auteur'])), 'date' => affdate_heure($date))) . "</p>\n"; $todo .= "<a href='" . parametre_url(self(), 'nettoyer_actions', '1') . "'>" . _T('svp:nettoyer_actions') . "</a>\n"; } $affiche .= boite_ouvrir($titre, 'notice') . $todo . boite_fermer(); } if ($affiche) { include_spip('inc/filtres'); $affiche = wrap($affiche, "<div class='svp_retour'>"); } return $affiche; }
function http_affiche_message($id_message, $expediteur, $statut, $type, $texte, $titre, $rv, $date_heure, $date_fin, $cherche_auteur, $forcer_dest) { global $connect_id_auteur,$connect_statut, $les_notes; if ($type == 'normal') { $le_type = _T('info_message_2').aide ("messut"); $la_couleur = "#02531b"; $fond = "#cffede"; } else if ($type == 'pb') { $le_type = _T('info_pense_bete').aide ("messpense"); $la_couleur = "#3874b0"; $fond = "#edf3fe"; } else if ($type == 'affich') { $le_type = _T('info_annonce'); $la_couleur = "#ccaa00"; $fond = "#ffffee"; } // affichage des caracteristiques du message echo "<div style='border: 1px solid $la_couleur; background-color: $fond; padding: 5px;'>"; // debut cadre de couleur //echo debut_cadre_relief("messagerie-24.gif", true); echo "\n<table width='100%' cellpadding='0' cellspacing='0' border='0'>"; echo "<tr><td>"; # uniques echo "<span style='color: $la_couleur' class='verdana1 spip_small'><b>$le_type</b></span><br />"; echo "<span class='verdana1 spip_large'><b>$titre</b></span>"; if ($statut == 'redac') { echo "<br /><span style='color: red;' class='verdana1 spip_small'><b>"._T('info_redaction_en_cours')."</b></span>"; } else if ($rv == 'non') { echo "<br /><span style='color: #666666;' class='verdana1 spip_small'><b>".nom_jour($date_heure).' '.affdate_heure($date_heure)."</b></span>"; } ////////////////////////////////////////////////////// // Message avec participants // if ($type == 'normal') $total_dest = http_message_avec_participants($id_message, $statut, $forcer_dest, $cherche_auteur, $expediteur); if ($rv != "non") http_afficher_rendez_vous($date_heure, $date_fin); ////////////////////////////////////////////////////// // Le message lui-meme // echo "\n<br />" . "<div class='serif'>$texte</div>"; if ($les_notes) { echo debut_cadre_relief('', true); echo "<div dir=" . lang_dir() ."' class='arial11'>"; echo justifier("<b>"._T('info_notes')." :</b> ".$les_notes); echo "</div>"; echo fin_cadre_relief(true); } if ($expediteur == $connect_id_auteur AND $statut == 'redac') { if ($type == 'normal' AND $total_dest < 2) { echo "<p style='color: #666666; text-align: right;' class='verdana1 spip_small'><b>"._T('avis_destinataire_obligatoire')."</b></p>"; } else { echo "\n<div class='centered'>"; echo icone_inline(_T('icone_envoyer_message'), redirige_action_auteur('editer_message', "$id_message/publie", "message","id_message=$id_message"), "messagerie-24.gif", "creer.gif"); echo "</div>"; } } echo "</td></tr></table>\n"; // echo "</td></tr></table>\n"; //echo fin_cadre_relief(true); echo "</div>"; // fin du cadre de couleur // Les boutons $aut = ($expediteur == $connect_id_auteur); $aff = ($type == 'affich' AND $connect_statut == '0minirezo'); echo "\n<table width='100%'><tr><td>"; // bouton de suppression if ($aut AND ($statut == 'redac' OR $type == 'pb') OR $aff) { echo icone_inline(_T('icone_supprimer_message'), redirige_action_auteur("editer_message","-$id_message", 'messagerie'), "messagerie-24.gif", "supprimer.gif", 'left'); } // bouton retrait de la discussion if ($statut == 'publie' AND $type == 'normal') { echo icone_inline(_T('icone_arret_discussion'), redirige_action_auteur("editer_message","$id_message/-$connect_id_auteur", 'messagerie', "id_message=$id_message"), "messagerie-24.gif", "supprimer.gif", 'left'); } // bouton modifier ce message if ($aut OR $aff) { echo icone_inline(_T('icone_modifier_message'), (generer_url_ecrire("message_edit","id_message=$id_message")), "messagerie-24.gif", "edit.gif", 'right'); } echo "</td></tr></table>"; }
function afficher_site($id_syndic, $id_rubrique, $nom_site, $row){ global $spip_lang_right; $cherche_mot = _request('cherche_mot'); $select_groupe = _request('select_groupe'); $id_secteur = $row["id_secteur"]; $url_site = $row["url_site"]; $url_syndic = $row["url_syndic"]; $syndication = $row["syndication"]; $statut = $row["statut"]; $date_heure = $row["date"]; $date_syndic = $row['date_syndic']; $flag_administrable = autoriser('modifier','site',$id_syndic); $flag_editable = ($flag_administrable OR ($GLOBALS['meta']["proposer_sites"] > 0 AND ($statut == 'prop'))); $meme_rubrique = charger_fonction('meme_rubrique', 'inc'); $iconifier = charger_fonction('iconifier', 'inc'); if ($flag_editable AND ($statut == 'publie')) $dater = charger_fonction('dater', 'inc'); $editer_mots = charger_fonction('editer_mots', 'inc'); if ($flag_administrable) $instituer_site = charger_fonction('instituer_site','inc'); echo debut_grand_cadre(true); echo afficher_hierarchie($id_rubrique); echo fin_grand_cadre(true); echo debut_gauche('', true); echo debut_boite_info(true); echo pipeline ('boite_infos', array('data' => '', 'args' => array( 'type'=>'site', 'id' => $id_syndic, 'row' => $row ) )); echo fin_boite_info(true); echo $iconifier('id_syndic', $id_syndic, 'sites', false, $flag_administrable); echo pipeline('affiche_gauche',array('args'=>array('exec'=>'sites','id_syndic'=>$id_syndic),'data'=>'')); echo creer_colonne_droite('', true); echo $meme_rubrique($id_rubrique, $id_syndic, 'syndic'); echo pipeline('affiche_droite',array('args'=>array('exec'=>'sites','id_syndic'=>$id_syndic),'data'=>'')); echo bloc_des_raccourcis( icone_horizontale(_T('icone_voir_sites_references'), generer_url_ecrire("sites_tous",""), "site-24.gif","rien.gif", false) ); echo debut_droite('', true); if ($syndication == 'off' OR $syndication == 'sus') $droit = $id_rubrique; else $droit = 0; $url_affichee = $url_site; if (strlen($url_affichee) > 40) $url_affichee = substr($url_affichee, 0, 30)."..."; $actions = ($flag_editable ? icone_inline(_T('icone_modifier_site'), generer_url_ecrire('sites_edit',"id_syndic=$id_syndic"), "site-24.gif", "edit.gif",$spip_lang_right) : ""); $haut = "<div class='bandeau_actions'>$actions</div>". gros_titre($nom_site?$nom_site:"("._T('info_sans_titre_2').")", '' , false) . "<a href='$url_site' class='url_site'>$url_affichee</a>"; $type = 'site'; $contexte = array('id'=>$id_syndic,'id_rubrique'=>$id_rubrique); $fond = recuperer_fond("prive/contenu/$type",$contexte); // permettre aux plugin de faire des modifs ou des ajouts $fond = pipeline('afficher_contenu_objet', array( 'args'=>array( 'type'=>$type, 'id_objet'=>$id_syndic, 'contexte'=>$contexte), 'data'=> $fond)); $fond = "<div id='wysiwyg'>$fond</div>"; $onglet_contenu = (_INTERFACE_ONGLETS? ($statut == 'prop' ? "<p class='site_prop'>"._T('info_site_propose')." <b>".affdate($date_heure)." </b></p>" : "") . $fond:"") . (($syndication == "oui" OR $syndication == "off" OR $syndication == "sus") ? "<p class='site_syndique'><a href='".htmlspecialchars($url_syndic)."'>" . http_img_pack('feed.png', 'RSS'). '</a>'._T('info_site_syndique').'</p>' . (($syndication == "off" OR $syndication=="sus") ? "<div class='site_syndique_probleme'>" . _T('avis_site_syndique_probleme', array('url_syndic' => quote_amp($url_syndic))) . redirige_action_auteur('editer_site', $id_syndic, 'sites', '', "<input type='hidden' name='reload' value='oui' /> <input type='submit' value=\"" . attribut_html(_T('lien_nouvelle_recuperation')) . "\" class='spip_xx-small' />") . "</div>" : "") . afficher_objets('syndic_article',_T('titre_articles_syndiques'), array('FROM' => 'spip_syndic_articles', 'WHERE' => "id_syndic=$id_syndic", 'ORDER BY' => "date DESC"), $id_syndic) . ($date_syndic ? "<div class='date_syndic'>" . _T('info_derniere_syndication').' '.affdate_heure($date_syndic) .".</div>" : "") . "<div class='mise_a_jour_syndic'>" . redirige_action_post('editer_site', $id_syndic, 'sites', "id_syndic=$id_syndic", "<input type='hidden' name='reload' value='oui' /> <input type='submit' value=\"" . attribut_html(_T('lien_mise_a_jour_syndication')) . "\" class='spip_xx-small' />") . "</div>" : choix_feed($id_syndic, $id_rubrique, $nom_site, $row)) . (_INTERFACE_ONGLETS?"":($flag_administrable ? options_moderation($row) : "")) ; $onglet_proprietes = (_INTERFACE_ONGLETS?"": $fond . ($statut == 'prop' ? "<p class='site_prop'>"._T('info_site_propose')." <b>".affdate($date_heure)." </b></p>" : "") ) . afficher_site_rubrique($id_syndic, $id_rubrique, $id_secteur) . ($dater ? $dater($id_syndic, $flag_editable, $statut, 'syndic', 'sites', $date_heure) : "") . $editer_mots('syndic', $id_syndic, $cherche_mot, $select_groupe, $flag_editable, true, 'sites') . (_INTERFACE_ONGLETS?($flag_administrable ? options_moderation($row) : ""):"") . pipeline('affiche_milieu',array('args'=>array('exec'=>'sites','id_syndic'=>$id_syndic),'data'=>'')) ; $discuter = charger_fonction('discuter', 'inc'); $onglet_discuter = $discuter($id_syndic, 'sites', 'id_syndic'); $onglet_documents = "" ; $onglet_interactivite = ""; echo "<div class='fiche_objet'>" . $haut . afficher_onglets_pages(array( 'voir' => _T('onglet_contenu'), 'props' => _T('onglet_proprietes'), 'docs' => _T('onglet_documents'), 'interactivite' => _T('onglet_interactivite'), 'discuter' => _T('onglet_discuter')), _INTERFACE_ONGLETS? array( 'voir'=>$onglet_contenu, 'props'=>$onglet_proprietes, 'docs'=>$onglet_documents, 'interactivite'=>$onglet_interactivite, 'discuter'=>$onglet_discuter) :array( 'props'=>$onglet_proprietes, 'voir'=>$onglet_contenu ) ) . "</div>" . (_INTERFACE_ONGLETS?"":$onglet_discuter); }
function spiplistes_lister_courriers_listes ( $titre_tableau , $image , $element='listes' , $statut='' , $apres_maintenant=false , $nom_position='position' , $exec , $id_auteur=0 , $pas=10 , $return=true) { include_spip('inc/spiplistes_api'); include_spip('inc/spiplistes_api_courrier'); $position = intval($_GET[$nom_position]); $pas = intval($pas); $id_auteur = intval($id_auteur); //$retour = _DIR_RESTREINT_ABS.self(); $clause_where = ''; ////////////////////////////////// // requete // construction de la requete SQL // sera (en partie) utilisee plus bas pour compter et pagination switch($element) { case 'abonnements': $sql_select = "listes.id_liste,listes.titre,listes.statut,listes.date,abos.id_auteur"; $sql_from = "spip_auteurs_listes AS abos LEFT JOIN spip_listes AS listes ON abos.id_liste=listes.id_liste"; $sql_where = "abos.id_auteur=".sql_quote($id_auteur); $sql_order = "listes.titre"; break; case 'courriers': $sql_select = "id_courrier, titre, date, date_debut_envoi,date_fin_envoi, nb_emails_envoyes,total_abonnes,email_test"; $sql_from = "spip_courriers"; $sql_where = "statut=".sql_quote($statut); $sql_order = "date"; break; case 'listes': if ( // pour lister les listes programmees dans un futur in_array($statut, explode(";", _SPIPLISTES_LISTES_STATUTS_OK)) && ($apres_maintenant == true) ) { $clause_where.= " AND (maj NOT BETWEEN 0 AND NOW())"; } $sql_select = "id_liste,titre,date,patron,maj,periode,statut"; $sql_from = "spip_listes"; $sql_where = "statut=".sql_quote($statut)." $clause_where"; $sql_order = "date"; break; } // $resultat_aff = sql_select($sql_select, $sql_from, $sql_where, '', array($sql_order." DESC "), $position.",".$pas); ////////////////////// if (($nb_ = @sql_count($resultat_aff)) > 0) { // titre du tableau $en_liste = "" . "<div class='liste'>\n" . "<div style='position: relative;'>\n" . "<div style='position: absolute; top: -12px; left: 3px;'>\n" . "<img src='$image' alt='' width='24' height='24' />\n" . "</div>\n" . "<div style='background-color:white; color:black; padding:3px; padding-left:30px; border-bottom:1px solid #444;' class='verdana2'>\n" . "<strong>\n" . $titre_tableau . "</strong>\n" . "</div>\n" . "</div>\n" . "<table width='100%' cellpadding='2' cellspacing='0' border='0'>\n" ; while ($row = sql_fetch($resultat_aff)) { $titre = $row['titre']; $date = $row['date']; switch ($element){ case 'abonnements': $id_row = $row['id_liste']; $url_row = generer_url_ecrire($exec, 'id_liste='.$id_row); $retour = self(); $url_desabo = generer_action_auteur(_SPIPLISTES_ACTION_CHANGER_STATUT_ABONNE , $row['id_auteur'].'-listedesabo-'.$id_row , $retour); spiplistes_debug_log('desabo: '.$url_desabo); spiplistes_debug_log('retour: '.$retour); $statut = $row['statut']; break; case 'courriers': $id_row = $row['id_courrier']; $nb_emails_envoyes = $row['nb_emails_envoyes']; $date_debut_envoi = $row['date_debut_envoi']; $date_fin_envoi = $row['date_fin_envoi']; $total_abonnes = $row['total_abonnes']; $email_test = $row['email_test']; $url_row = generer_url_ecrire($exec, 'id_courrier='.$id_row); break; case 'listes': $id_row = $row['id_liste']; $url_row = generer_url_ecrire($exec, 'id_liste='.$id_row); $patron = $row['patron']; $maj = $row['maj']; $periode = $row['periode']; break; } $en_liste.= "" . "<tr class='tr_liste'>\n" . "<td width='11' style='vertical-align:top;'>" . "<img src='".spiplistes_items_get_item("puce", $statut)."' alt=\"" . spiplistes_items_get_item("alt", $statut)."\" border='0' style='margin: 3px 1px 1px;' />" . "</td>" . "<td class='arial2'>\n" . "<div>\n" . "<a href=\"".$url_row."\" dir='ltr' style='display:block;'>\n" . spiplistes_calculer_balise_titre(extraire_multi($titre)) ; switch($element) { // si courriers, donne le nombre de destinataires case 'courriers': $nb_abo = ""; if(empty($email_test)) { $nb_abo = spiplistes_nb_destinataire_str_get($total_abonnes); } else { $nb_abo = _T('spiplistes:email_adresse'); } if($nb_abo) { $en_liste .= " <span class='spiplistes-legend-stitre' dir='ltr'>($nb_abo)</span>\n" ; } break; // si liste, donne le nombre d'abonnes case 'listes': //$nb_abo = spiplistes_nb_abonnes_liste($id_row); // affiche infos complementaires pour les listes $en_liste .= "" . " <span style='font-size:100%;color:#666666' dir='ltr'>\n" . "<span class='spiplistes-legend-stitre'>".spiplistes_nb_abonnes_liste_str_get($id_row)."</span>" . "<br />" . ( empty($patron) ? "<span class='texte-alerte'>" . _T('spiplistes:liste_sans_patron') . "</span>" : _T('spiplistes:patron_') . " <strong>".$patron."</strong>" ) ; if (!empty($date) && intval($date)) { if($periode) { $en_liste .= "<br />" . _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) ) ) ; } else { // inutile de preciser le statut, c'est dans le titre du bloc } $en_liste .= "" . "" . "<br />" . _T('spiplistes:Prochain_envoi_') . " : <strong>".affdate_heure($date)."</strong>" ; } $en_liste .= "" . "</span>\n" ; break; } ////////////////////// $en_liste .= "" . "</a>\n" . "</div>\n" . "</td>\n" . "<td width='120' class='arial1'>" ; switch($element) { case 'abonnements': $en_liste .= "" . "<a href=\"$url_desabo\" dir='ltr' style='display:block;'>"._T('spiplistes:desabonnement')."</a>\n" ; break; case 'courriers': // - date debut envoi si encour, sinon date de publication if(!in_array($statut, array(_SPIPLISTES_COURRIER_STATUT_REDAC, _SPIPLISTES_COURRIER_STATUT_READY))) { $en_liste .= "" . ( ($statut==_SPIPLISTES_COURRIER_STATUT_ENCOURS) ? _T('spiplistes:envoi_en_cours') : affdate_heure($date_fin_envoi) ) ; } break; } $en_liste .= "" . "</td>\n" . "<td width='50' class='arial1'><strong>"._T('info_numero_abbreviation').$id_row."</strong></td>\n" . "</tr>\n" ; } $en_liste.= "</table>\n"; ////////////////////// // Pagination si besoin switch ($element){ case 'abonnements': $sql_select = "COUNT(listes.id_liste) AS n"; $param = "&id_auteur=$id_auteur"; break; case 'courriers': $sql_select = "COUNT(id_courrier) AS n"; $param = "&statut=$statut"; break; case 'listes': $sql_select = "COUNT(id_liste) AS n"; $param = ""; break; } $sql_result = sql_select($sql_select, $sql_from, $sql_where); if( $sql_result && ($row = sql_fetch($sql_result)) && ($total = $row['n']) ) { $retour = _request('exec'); $en_liste .= spiplistes_afficher_pagination($retour, $param, $total, $position, $nom_position, $pas); } $en_liste .= "" . "</div>\n" . "<br />\n" ; } if($return) return($en_liste); else echo($en_liste); }
function spiplistes_auteur_abonnement_details ($id_auteur, $auteur_statut, $email) { include_spip("inc/spiplistes_api"); include_spip("inc/spiplistes_api_presentation"); global $connect_statut , $connect_toutes_rubriques , $connect_id_auteur ; $result = ""; $flag_editable = ( (($connect_statut == '0minirezo') && $connect_toutes_rubriques) || ($connect_id_auteur == $id_auteur) ); if($flag_editable) { // recupere la liste des abonnements disponibles $sql_where = spiplistes_listes_sql_where_or(_SPIPLISTES_LISTES_STATUTS_PERIODIQUES) . " OR statut=".sql_quote(_SPIPLISTES_LIST_PUBLIC); // les auteurs ont droit aux listes privees (internes) if(($auteur_statut == '1comite') || ($auteur_statut == '0minirezo')) { $sql_where .= " OR statut=".sql_quote(_SPIPLISTES_LIST_PRIVATE); } $sql_result = sql_select( array('id_liste','titre','texte','date','statut') , "spip_listes" , $sql_where , '' , array("titre ASC") ); $nb_listes_dispo = sql_count($sql_result); //spiplistes_log(gettype($nb_listes_dispo).":".$nb_listes_dispo); // si liste disponible, affiche formulaire if($sql_result && $nb_listes_dispo) { // recupere la liste des listes $listes = array(); while($row = sql_fetch($sql_result)) { $texte = propre($row['texte']); if(strlen($legend = textebrut($texte)) > 40) { $texte = couper($texte, 40); } $texte = strip_tags($texte, '<strong>'); $listes[] = array( 'id_liste' => intval($row['id_liste']) , 'titre' => $row['titre'] , 'texte' => $texte , 'date' => $row['date'] , 'statut' => $row['statut'] , 'legend' => $legend ); } // end while // si retour de formulaire, ajoute/retire les abonnements if(_request('btn_abonnements_valider')) { $abos_set = _request('abos_set'); $abo_ajoute = array(); // liste des abonnements de id_auteur $auteur_abos_current_list = spiplistes_abonnements_listes_auteur($id_auteur); // ajoute/retire les abonnements desires if(count($abos_set)) { // Abonnements ? foreach($abos_set as $value) { if(!in_array($value, $auteur_abos_current_list)) { $abo_ajoute[] = $value; } } if(count($abo_ajoute)) { spiplistes_abonnements_ajouter($id_auteur, $abo_ajoute); } // Desabonnements ? foreach($auteur_abos_current_list as $value) { if(!in_array($value, $abos_set)) { spiplistes_abonnements_auteur_desabonner($id_auteur, $value); } } } // desabonne de tout else { if(spiplistes_abonnements_auteur_desabonner($id_auteur, "toutes") === false) { $result .= spiplistes_boite_alerte(_T('spiplistes:Erreur_sur_la_base'), true); } } } // end if // si retour de formulaire, modifie le format de reception if($abo_format = _request('abo_format')) { spiplistes_format_abo_modifier($id_auteur, $abo_format); } // recupere le format d'abonnement de id_auteur $abo_format = spiplistes_format_abo_demande($id_auteur); // recupere la liste ou auteur est abonne $auteur_abos_current_list = spiplistes_abonnements_listes_auteur($id_auteur); $bloc_visible = _request('btn_abonnements_valider'); $debut_block = ($bloc_visible ? "spiplistes_debut_block_visible" : "spiplistes_debut_block_invisible"); $result .= "" . "<!-- formulaire abonnement spiplistes -->\n" . "<a name='abonnement'></a>\n" . debut_cadre_enfonce(_DIR_PLUGIN_SPIPLISTES_IMG_PACK."courriers_listes-24.png" , true, '', _T('spiplistes:listes_de_diffusion_')) . spiplistes_bouton_block_depliable( _T('spiplistes:abonnements_aux_courriers') , $bloc_visible , "abos_block") . "<div class='verdana2'>" ; if($n = count($auteur_abos_current_list)) { $result .= $n."/" . spiplistes_nb_listes_str_get ($nb_listes_dispo) . ". " . _T('spiplistes:format_de_reception')." : " . ( (in_array($abo_format, array('html', 'texte'))) ? _T('spiplistes:'.$abo_format) : "<"._T('spiplistes:aucun').">" ) ; } else { $result .= _T('spiplistes:Sans_abonnement'); } $result .= "" . "</div>\n" . $debut_block("abos_block") . "<form action='".generer_url_ecrire("auteur_infos", "id_auteur=$id_auteur")."' method='post' style='margin-bottom:0;' name='abos_formulaire'>\n" . debut_cadre_formulaire("", true) . "\n<p class='verdana2' style='margin-top:0;margin-bottom:0;'>" . ( ($abo_format!='html' && $abo_format!='texte') ? _T('spiplistes:Alert_abonnement_sans_format') : _T('spiplistes:vous_etes_abonne_aux_listes_selectionnees_').":" ) . "</p>\n" // . "<!-- liste des abonnements -->\n" . "<ul class='liste-listes'>\n" ; foreach($listes as $key=>$value) { $id_liste = $value['id_liste']; $auteur_est_abonne = in_array($id_liste, $auteur_abos_current_list); $checked = $auteur_est_abonne ? "checked='checked'" : ""; $label = $auteur_est_abonne ? "Arreter_abonnement_a" : "Abonner_a"; $label = _T("spiplistes:".$label)." ".$value['titre']; $prochain_envoi = ($value['date'] > 0) ? _T('spiplistes:Prochain_envoi_').": <span style='font-weight:bold;'>".affdate_heure($value['date'])."</span>" : _T('spiplistes:envoi_non_programme') ; $result .= "" . "<li>\n" . "<label>\n" . "<input name='abos_set[]' type='checkbox' value='$id_liste' title=\"$label\" $checked />\n" . spiplistes_bullet_titre_liste('puce', $value['statut'], '', true) . "<span title=\"".$value['legend']."\">\n" . "<span class='titre'>".typo($value['titre'])."</span> \n" . "<span class='description'>".typo($value['texte'])." </span>\n" . "<span class='periodicite'>($prochain_envoi)</span>\n" . "</span>\n" . "</label></li>\n" ; } $result .= "" . "</ul>\n" . "<!-- fin liste des abonnements -->\n" . fin_cadre_formulaire(true) // // selection du format de reception . debut_cadre_formulaire("margin-top:1ex", true) . ((empty($abo_format) || ($abo_format=="non")) ? "<p>"._T('spiplistes:Format_obligatoire_pour_diffusion')."</p>" : "" ) . _T('spiplistes:format_de_reception') . "<ul class='liste-format'>\n" ; $checked = ($abo_format=="html" ? "checked='checked'" : ""); $result .= "" . "<li style='width:50%;float:left;'>\n" . " <input type='radio' name='abo_format' value='html' id='format_rcpt_html' title='"._T('spiplistes:html')."' $checked />" . " <label for='format_rcpt_html'>"._T('spiplistes:version_html')."</label></li>\n" ; $checked = ($abo_format=="texte" ? "checked='checked'" : ""); $result .= "" . "<li>\n" . " <input type='radio' name='abo_format' value='texte' id='format_rcpt_texte' title='"._T('spiplistes:texte')."' $checked />" . " <label for='format_rcpt_texte'>"._T('spiplistes:version_texte')."</label></li>\n" . "</ul>\n" . fin_cadre_formulaire(true) ; if(spiplistes_format_valide($abo_format) && ($abo_format!="non")) { $result .= "" . debut_cadre_formulaire("margin-top:1ex", true) . "<ul class='liste-format-desabo'>\n" . "<li>\n" . spiplistes_form_input_radio('abo_format', 'non', _T('spiplistes:Suspendre_abonnements') , false, true, false) . "</li>\n" . "</ul>\n" . fin_cadre_formulaire(true) ; } $result .= "" // . "<div style='text-align:right;margin-top:1ex;'><input type='submit' name='btn_abonnements_valider' " . " value='"._T('spiplistes:Valider_abonnement')."' class='fondo' /></div>\n" . "</form>\n" . fin_block() . fin_cadre_enfonce(true) ; } } return($result); }
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 liste_sauvegardes($key, $fichier, $class, $selected, $date, $taille) { return "\n<tr class='$class'><td><input type='radio' name='archive' value='" . $fichier . "' id='dump_$key' " . ($selected?"checked='checked' ":"") . "/></td><td>\n<label for='dump_$key'>" . str_replace('/', ' / ', $fichier) . "</label></td><td style='text-align: right'>" . taille_en_octets($taille) . '</td><td>' . affdate_heure(date('Y-m-d H:i:s',$date)) . '</td></tr>'; }