function exec_spiplistes_courrier_edit(){ include_spip('inc/barre'); include_spip('inc/documents'); 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_api_courrier'); include_spip('public/assembler'); include_spip('inc/spiplistes_naviguer_paniers'); global $connect_statut , $connect_toutes_rubriques , $connect_id_auteur , $spip_ecran , $compteur_block ; $eol = "\n"; $id_temp = false; $type = _request('type'); $id_courrier = intval(_request('id_courrier')); foreach(array('btn_courrier_apercu') as $key) { $$key = _request($key); } if($id_courrier > 0) { /////////////////////////// // Edition /modification d'un courrier $sql_select_array = array('titre','texte','message_texte','type','statut','id_auteur'); if($row = spiplistes_courriers_premier($id_courrier, $sql_select_array)) { foreach($sql_select_array as $key) { $$key = $row[$key]; } $titre = entites_html($titre); $texte = entites_html($texte); } else { $id_courrier = false; } } // n'existe pas encore ? // placer un marqueur pour les documents joints else { $id_temp = 0-intval(substr(creer_uniqid(),0,5)); } // l'edition du courrier est reservee aux super-admins // ou aux admin createur du courrier $flag_editable = (($connect_statut == "0minirezo") && ($connect_toutes_rubriques || ($connect_id_auteur == $id_auteur) || !$id_courrier)); if($flag_editable) { if(!$id_courrier) { // si pas de ID courrier, c'est une creation $statut = _SPIPLISTES_COURRIER_STATUT_REDAC; $type = _SPIPLISTES_COURRIER_TYPE_NEWSLETTER; $new = 'oui'; $titre = _T('spiplistes:Nouveau_courrier'); $clearonfocus = " onfocus=\"if(!antifocus){this.value='';antifocus=true;}\""; } else { $clearonfocus = ""; } $gros_bouton_retour = ($id_courrier) ? icone( _T('spiplistes:retour_link') , generer_url_ecrire(_SPIPLISTES_EXEC_COURRIER_GERER, "id_courrier=$id_courrier") , spiplistes_items_get_item('icon', $statut) , "rien.gif" , "" , false ) : "" ; $boite_documents = afficher_documents_colonne( ($id_courrier ? $id_courrier : $id_temp ) , 'courrier'); } //////////////////////////////////// // 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_edit"; $commencer_page = charger_fonction('commencer_page', 'inc'); echo($commencer_page(_T('spiplistes:spiplistes') . " - " . $titre_page, $rubrique, $sous_rubrique)); if(!$flag_editable) { 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() // ne pas gener l'edition . pipeline('affiche_droite', array('args'=>array('exec'=>$sous_rubrique),'data'=>'')) . debut_droite($rubrique, true) ; $page_result .= "" // le bloc pour apercu (retour ajax) . "<div id='apercu-courrier' style='clear:both;tex-align:center'></div>\n" // . debut_cadre_formulaire('', true) . "<a name='haut-block' id='haut-block'></a>\n" // // // bloc titre . "\n<table cellpadding='0' cellspacing='0' border='0' width='100%'>\n" . "<tr width='100%'>" . "<td>" . $gros_bouton_retour . "</td>" . "<td><img src='"._DIR_IMG_PACK."/rien.gif' width='10'></td>\n" . "<td width='100%'>" . ($id_courrier ? _T('spiplistes:Modifier_un_courrier__') : _T('spiplistes:Creer_un_courrier_') )."<br />\n" . spiplistes_gros_titre($titre, '', true) . "</td>\n" . "</tr></table>\n" . "<hr />\n" ; // // debut formulaire $page_result .= "" . "<form action='".generer_url_ecrire(_SPIPLISTES_EXEC_COURRIER_GERER , ($id_courrier ? "id_courrier=$id_courrier" : "") ) ."' method='post' name='formulaire_courrier_edit' id='formulaire_courrier_edit'>\n" . "<input type='hidden' name='modifier_message' value=\"oui\" />\n" . "<input type='hidden' name='id_courrier' value='$id_courrier' />\n" // // bloc sujet du courrier . "<label for='sujet_courrier'>"._T('spiplistes:sujet_courrier').":</label>\n" . "<input id='sujet_courrier' type='text' class='formo' name='titre' value=\"$titre\" size='40' $clearonfocus />\n" . "<p style='margin-bottom:1.75em;'>"._T('spiplistes:Courrier_edit_desc')."</p>\n" ; $titre_block_depliable = _T('spiplistes:Generer_le_contenu'); $page_result .= '' // // generer le contenu // Reprise du Formulaire adapte de abomailman () // MaZiaR - NetAktiv // tech@netaktiv.com . debut_cadre_relief(_DIR_PLUGIN_SPIPLISTES_IMG_PACK.'stock_insert-slide.gif', true) //. bouton_block_invisible(md5(_T('spiplistes:charger_patron'))) . spiplistes_bouton_block_depliable($titre_block_depliable, false, md5(_T('spiplistes:charger_patron'))) . "<span class='verdana2 triangle_label' onclick=\"javascript:$('#triangle".$compteur_block."').click();\">" . (spiplistes_spip_est_inferieur_193() ? $titre_block_depliable : "") . "</span>\n" . spiplistes_debut_block_invisible(md5(_T('spiplistes:charger_patron'))) // . '<div id="ajax-loader" align="right">' . '<script type="text/javascript">'.$eol . 'document.write(\'<img src="' . _DIR_PLUGIN_SPIPLISTES_IMG_PACK . 'ajax_indicator.gif" alt="" />\');' . '</script>'.$eol . '<noscript>'.$eol . spiplistes_boite_alerte (_T('spiplistes:javascript_inactif'), true) . $eol . '</noscript>'.$eol //. '<img src="' . _DIR_PLUGIN_SPIPLISTES_IMG_PACK . 'ajax_indicator.gif" alt="" />' . '</div>'.$eol ; if(strpos($GLOBALS['meta']['langues_multilingue'], ",") !== false) { $page_result .= "" // selecteur de langues . "<div class='boite-generer-option'>\n" . "<label class='verdana2'>"._T('spiplistes:Langue_du_courrier_') . "<select name='lang' class='fondo'>\n" . liste_options_langues('changer_lang') . "</select></label>\n" . "</div>\n" ; } $page_result .= "" // Prendre en compte a partir de quelle date ? . spiplistes_dater_envoi( 'courrier', $id_courrier, $statut , $flag_editable , _T('spiplistes:Contenu_a_partir_de_date_') , normaliser_date(time()), 'btn_changer_date' , false ) ; $page_result .= "" // texte introduction a placer avant le patron et sommaire . '<div class="boite-generer-option">'.$eol . '<label class="verdana2">' . '<input type="checkbox" id="avec_intro" name="avec_intro" value="non" />' . _T('spiplistes:avec_introduction') . '</label>'.$eol . '<div id="choisir_intro" class="option">'.$eol . '<label class="verdana2" style="display:block;" for="message_intro">' . _T('spiplistes:introduction_du_courrier_').':</label>'.$eol . afficher_barre('document.formulaire_courrier_edit.message_intro') . '<textarea id="message_intro" name="message_intro" '.$GLOBALS['browser_caret'].' rows="5" cols="40" wrap="soft" style="width:100%">'.$eol . '</textarea>' . '</div>'.$eol . '</div>'.$eol ; // selection du patron $page_result .= '' . "<div class='boite-generer-option'>\n" . "<label class='verdana2'>" . "<input type='checkbox' id='avec_patron' name='avec_patron' value='non' />" . _T('spiplistes:a_partir_de_patron') . "</label>\n" . "<div id='choisir_patron' class='option'>" . "<label class='verdana2'>" . _T('spiplistes:choisir_un_patron_').":</label>\n" . spiplistes_boite_selection_patrons ("", true, _SPIPLISTES_PATRONS_DIR, "patron", 1) . "<div id='patron_pos' style='display:none'>\n" . "<span class='verdana2'>" . _T('spiplistes:generer_patron_'). "</span>\n" . spiplistes_form_input_radio ('patron_pos', 'avant', _T('spiplistes:generer_patron_avant'), true, true, false) . spiplistes_form_input_radio ('patron_pos', 'apres', _T('spiplistes:generer_patron_apres'), false, true, false) . "</div>\n" . "</div>\n" . "</div>\n" ; // Generer un sommaire $page_result .= "" . "<div class='boite-generer-option'>\n" . "<label class='verdana2'>" . "<input type='checkbox' id='avec_sommaire' name='avec_sommaire' value='non' />" . _T('spiplistes:generer_un_sommaire') . "</label>\n" . "<div id='choisir_sommaire' class='option'>"; $page_result .= "" // // selecteur de rubriques . "<label class='verdana2' for='ajouter_rubrique'>"._T('spiplistes:Lister_articles_de_rubrique').":</label>\n" . "<select name='id_rubrique' id='ajouter_rubrique' class='formo'>\n" . "<option value=''></option>\n" . spiplistes_arbo_rubriques() . "</select>\n" . "<br />\n" // // selecteur des mots-cles . "<label class='verdana2' for='ajouter_motcle'>"._T('spiplistes:Lister_articles_mot_cle').":</label>\n" . "<select name='id_mot' id='ajouter_motcle' class='formo'>\n" . "<option value=''></option>\n" ; if (version_compare($GLOBALS['spip_version_code'], '1.9300', '<')){ $rqt_gmc = sql_select (array('id_groupe','titre'), 'spip_groupes_mots', "articles=".sql_quote('oui')); }else{ $rqt_gmc = sql_select (array('id_groupe','titre'), 'spip_groupes_mots', "tables_liees LIKE '%articles%'"); } while ($row = sql_fetch($rqt_gmc)) { $id_groupe = intval($row['id_groupe']); $titre = $row['titre']; $page_result .= "<option value='' disabled='disabled'>". supprimer_numero (typo($titre)) . "</option>\n"; $rqt_mc = sql_select (array('id_mot','titre'), 'spip_mots', "id_groupe=".sql_quote($id_groupe)); while ($row = sql_fetch($rqt_mc)) { $id_mot = intval($row['id_mot']); $titre = supprimer_numero (typo($row['titre'])); $page_result .= "<option value='$id_mot'>-- $titre</option>\n"; } } $page_result .= "" . "</select><br />\n" // // a partir de la date selectionnee plus haut . spiplistes_form_input_item ('checkbox', 'date_sommaire', 'oui' , _T('spiplistes:sommaire_date_debut'), $sommaire_date == 'oui', true, false) . "</div>\n" . "</div>\n" ; // fin generer le sommaire // choisir son patron de pied $page_result .= "" . "<div class='boite-generer-option'>\n" . "<label class='verdana2'>" . _T('spiplistes:avec_patron_pied__') . spiplistes_boite_selection_patrons (_SPIPLISTES_PATRONS_PIED_DEFAUT, true, _SPIPLISTES_PATRONS_PIED_DIR, "pied_patron", 1) . "</label>\n" . "</div>\n" ; $page_result .= "" . "<p class='verdana2'>\n" . _T('spiplistes:Cliquez_Generer_desc' , array('titre_bouton'=>_T('spiplistes:generer_Apercu'), 'titre_champ_texte'=>_T('spiplistes:texte_courrier')) ) . "</p>\n" . "<p class='verdana2'>\n" ._T('spiplistes:calcul_patron_attention') . "</p>\n" . spiplistes_form_bouton_valider ('Valider', _T('spiplistes:generer_Apercu')) . fin_block() // fin_block_invisible . fin_cadre_relief(true) . "<br />\n" ; // // bloc du courrier (titre, texte), toujours visible $page_result .= '' . '<label for="texte_courrier">'._T('spiplistes:texte_courrier').'</label>' . afficher_barre('document.formulaire_courrier_edit.message') . '<textarea id="texte_courrier" name="message" '.$GLOBALS['browser_caret'].' class="porte_plume_partout barre_inserer formo" rows="20" cols="40" wrap=soft>'.$eol . $texte . '</textarea>'.$eol . (!$id_courrier ? '<input type="hidden" name="new" value="oui" />'.$eol : '') // . '<p style="text-align:right;">'.$eol . '<input type="submit" onclick="this.value=\'oui\';" id="btn_courrier_edit" ' . ' name="btn_courrier_valider" value="'._T('bouton_valider').'" class="fondo" /></p>'.$eol // le marqueur pour les documents joints . (($id_temp!==false) ? '<input type="hidden" name="id_temp" value="' . $id_temp . '" />'.$eol : '') // // fin formulaire . '</form>'.$eol . fin_cadre_formulaire(true) ; echo($page_result); // COURRIER EDIT FIN --------------------------------------------------------------- echo pipeline('affiche_milieu',array('args'=>array('exec'=>$sous_rubrique),'data'=>'')) , spiplistes_html_signature(_SPIPLISTES_PREFIX) , fin_gauche(), fin_page(); }
function exec_spiplistes_liste_edit(){ include_spip('inc/barre'); include_spip('inc/spiplistes_api'); include_spip('inc/spiplistes_api_presentation'); include_spip('inc/spiplistes_naviguer_paniers'); global $connect_statut , $connect_toutes_rubriques , $connect_id_auteur , $spip_ecran ; // initialise les variables postees par le formulaire foreach(array( 'new' // nouvelle liste si 'oui' , 'id_liste'// si modif dans l'editeur , 'titre', 'texte' ) as $key) { $$key = _request($key); } foreach(array('id_liste') as $key) { $$key = intval($$key); } $flag_editable = false; $clearonfocus = ''; // MODE LISTE EDIT: modification ou creation if($id_liste > 0) { /////////////////////////////// // Modification de la liste transmise // // les admins toutes rubriques et le moderateur seuls peuvent modifier la liste $flag_editable = autoriser('moderer', 'liste', $id_liste); $sql_select_array = array('titre', 'lang', 'pied_page', 'texte', 'date', 'statut'); if($row = spiplistes_listes_liste_fetsel($id_liste, $sql_select_array)) { foreach($sql_select_array as $key) { $$key = $row[$key]; } // supers-admins et moderateur seuls ont droit de modifier la liste // $ids_mods_array = spiplistes_mod_listes_get_id_auteur($id_liste); // $ids_mods_array = ($ids_mods_array && isset($ids_mods_array[$id_liste]) ? $ids_mods_array[$id_liste] : array(); // $flag_editable = ($connect_toutes_rubriques || in_array($connect_id_auteur, $ids_mods_array)); } else { // liste perdue ? $id_liste = 0; } } if(!$id_liste) { /////////////////////////////// // Creation de la liste // $titre = filtrer_entites(_T('spiplistes:Nouvelle_liste_de_diffusion')); $texte = ""; $clearonfocus = " onfocus=\"if(!antifocus){this.value='';antifocus=true;}\""; // les admins ont droit de creer une liste $flag_editable = ($connect_statut == "0minirezo"); } $gros_bouton_retour = icone( _T('spiplistes:retour_link') , generer_url_ecrire(_SPIPLISTES_EXEC_LISTE_GERER,"id_liste=" . ($lier_trad ? $lier_trad : $id_liste) ) , "article-24.gif" , "rien.gif" , "" , false ) ; //////////////////////////////////// // PAGE CONTENU //////////////////////////////////// $titre_page = _T('spiplistes:edition_dune_liste'); // Permet entre autres d'ajouter les classes a la page : <body class='$rubrique $sous_rubrique'> $rubrique = _SPIPLISTES_PREFIX; $sous_rubrique = "liste_edit"; $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(!$flag_editable) { 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:liste_numero'), $id_liste, true) . spiplistes_naviguer_paniers_listes(_T('spiplistes:aller_aux_listes_'), true) . 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() // ne pas gener l'edition . pipeline('affiche_droite', array('args'=>array('exec'=>$sous_rubrique),'data'=>'')) . debut_droite($rubrique, true) ; $titre = entites_html($titre); $texte = entites_html($texte); $formulaire_action = ($id_liste > 0) ? generer_url_ecrire(_SPIPLISTES_EXEC_LISTE_GERER, "id_liste=$id_liste") : generer_url_ecrire(_SPIPLISTES_EXEC_LISTE_GERER) ; $page_result .= "" . debut_cadre_formulaire("", true) . "\n<table cellpadding='0' cellspacing='0' border='0' width='100%'>" . "<tr>" . "<td>" . $gros_bouton_retour . "</td>" . "<td><img src='"._DIR_IMG_PACK."rien.gif' alt='' width='10' /></td>\n" . "<td width='100%'>" . ( (!$id_liste) ? _T('spiplistes:Creer_une_liste_') : _T('spiplistes:modifier_liste') ) . ":" . spiplistes_gros_titre($titre, '', true) . "</td>" . "</tr></table>" . "<hr />" . "<form action='$formulaire_action' method='post' name='formulaire'>\n" . ( ($id_liste) ? "<input type='hidden' name='id_liste' value='$id_liste' />" : "<input type='hidden' name='new' value='oui' />" // une nouvelle liste est toujours privee . "<input type='hidden' name='statut_nouv' value='"._SPIPLISTES_LIST_PRIVATE."' />" ) . ( // ne sert pas pour le moment (CP-20070922) ($lier_trad) ? "<input type='hidden' name='lier_trad' value='$lier_trad' />" : "" ) . _T('texte_titre_obligatoire').":" . "<br />" // champ titre . "<input type='text' name='titre' class='formo' value=\"$titre\" size='40' $clearonfocus />" . "<br />" . "<strong>"._T('spiplistes:texte_dinsctription_')."</strong>" . "<br />"._T('spiplistes:txt_abonnement') // boite edition texte . afficher_barre('document.formulaire.texte') . "<textarea id='text_area' name='texte' ".$GLOBALS['browser_caret'] ." class='formo' rows='".(($spip_ecran == "large") ? 28 : 20)."' cols='40'>\n" . $texte . "</textarea>\n" // pied de page // inutile de l'afficher, on a pas encore le contexte (lang) //. _T('spiplistes:texte_pied') //. _T('spiplistes:texte_contenu_pied') //. "<div style='background-color:#fff'>" //. $pied_page //. "</div>" . "<p align='right' class='verdana2'>" . "<input class='fondo' type='submit' name='btn_liste_edit' value='"._T('bouton_valider')."' />" . "</p>" . "</form>" . fin_cadre_formulaire(true) ; echo($page_result); // MODE LISTE EDIT: FIN -------------------------------------------------------- echo pipeline('affiche_milieu',array('args'=>array('exec'=>$sous_rubrique),'data'=>'')) , spiplistes_html_signature(_SPIPLISTES_PREFIX) , fin_gauche(), fin_page(); }
function barre_article($texte, $rows, $cols, $lang = '') { static $num_formulaire = 0; include_ecrire('inc/layer'); $texte = entites_html($texte); if (!$GLOBALS['browser_barre']) { return "<textarea name='texte' rows='{$rows}' class='forml' cols='{$cols}'>{$texte}</textarea>"; } $num_formulaire++; return afficher_barre("document.getElementById('formulaire_{$num_formulaire}')", false) . "<textarea name='texte' rows='{$rows}' class='forml' cols='{$cols}'\n\t\tid='formulaire_{$num_formulaire}'\n\t\tonselect='storeCaret(this);'\n\t\tonclick='storeCaret(this);'\n\t\tonkeyup='storeCaret(this);'\n\t\tondbclick='storeCaret(this);'>{$texte}</textarea>" . $GLOBALS['options']; }
function input($spec = 'ligne', $attrs = array()) { if ($this->controleur) { return $this->fond($spec); } include_spip('inc/filtres'); $return = ''; foreach ($this->texts as $champ => $val) { $type = is_array($spec) ? $spec[$champ]['type'] : $spec; switch ($type) { case 'texte': $id = uniqid('wid'); $input = '<textarea style="width:100%;" class="crayon-active"' . ' name="content_'.$this->key.'_'.$champ.'" id="'.$id.'">' . "\n" . entites_html($val) . "</textarea>\n"; break; case 'ligne': default: $input = '<input class="crayon-active text" type="text"' . ' name="content_'.$this->key.'_'.$champ.'"' . ' value="' . entites_html($val) . '" />'."\n"; } if (is_array($spec) && isset($spec[$champ]['attrs'])) { foreach ($spec[$champ]['attrs'] as $attr=>$val) { $input = inserer_attribut($input, $attr, $val); } } foreach ($attrs as $attr=>$val) { $input = inserer_attribut($input, $attr, $val); } // petit truc crado pour mettre la barre typo si demandee // pour faire propre il faudra reprogrammer la bt en jquery $meta_crayon = unserialize($GLOBALS['meta']['crayons']); if ($meta_crayon['barretypo'] AND $type == 'texte') { // Pas la peine de mettre cette barre si PortePlume est la if (function_exists('chercher_filtre') AND $f = chercher_filtre('info_plugin') AND !$f('PORTE_PLUME','est_actif')) { include_spip('inc/barre'); $input = "<div style='width:".$this->largeur."px;height:23px;'>" . (function_exists('afficher_barre') ? afficher_barre("document.getElementById('$id')") : '') . '</div>' . $input; } } $return .= $input; } return $return; }