Changeset 27272 in spip-zone


Ignore:
Timestamp:
Mar 13, 2009, 9:59:40 AM (11 years ago)
Author:
pierre.basson@…
Message:

spip-lettres : association d'articles aux lettres d'info

Location:
_plugins_/_stable_/spip-lettres
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_stable_/spip-lettres/exec/abonnes.php

    r27253 r27272  
    6565                switch ($abonne->calculer_statut()) {
    6666                        case 'a_valider':
    67                                 echo '<li class="prepa selected">'.http_img_pack('puce-blanche.gif', 'puce-blanche', '')._T('lettresprive:abonnements_en_attente').'</li>';
     67                                echo '<li class="prepa selected">'.http_img_pack('puce-blanche.gif', 'puce-blanche', '')._T('lettresprive:a_valider').'</li>';
    6868                                echo '<li class="publie"><a href="'.generer_url_action('statut_abonne', 'id_abonne='.$abonne->id_abonne.'&statut=valider', false, true).'">'.http_img_pack('puce-verte.gif', 'puce-verte', '')._T('lettresprive:valider_abonnements').'</a></li>';
    6969                                break;
  • _plugins_/_stable_/spip-lettres/exec/config_lettres_squelettes.php

    r27253 r27272  
    6161                        ecrire_meta('spip_lettres_utiliser_ps', $spip_lettres_utiliser_ps);
    6262
    63 #                       $spip_lettres_utiliser_articles = $_POST['spip_lettres_utiliser_articles'];
    64 #                       ecrire_meta('spip_lettres_utiliser_articles', $spip_lettres_utiliser_articles);
     63                        $spip_lettres_utiliser_articles = $_POST['spip_lettres_utiliser_articles'];
     64                        ecrire_meta('spip_lettres_utiliser_articles', $spip_lettres_utiliser_articles);
    6565
    6666                        $spip_lettres_notifier_suppression_abonne = $_POST['spip_lettres_notifier_suppression_abonne'];
     
    164164                echo '</td>';
    165165                echo '</tr>';
    166 /*
     166
    167167            echo '<tr>';
    168168                echo '<td><label>'._T('lettresprive:spip_lettres_utiliser_articles').'</label></td>';
     
    173173                echo '</td>';
    174174                echo '</tr>';
    175 */
     175
    176176            echo '<tr>';
    177177                echo '<td><label>'._T('lettresprive:spip_lettres_notifier_suppression_abonne').'</label></td>';
  • _plugins_/_stable_/spip-lettres/exec/lettres.php

    r27255 r27272  
    3333                $url = generer_url_ecrire('lettres', 'id_lettre='.$lettre->id_lettre, true);
    3434
    35 /*
    36 TODO
    3735                if (!empty($_GET['supprimer_article'])) {
    3836                        $lettre->supprimer_article($_GET['supprimer_article']);
     
    4644                        exit();
    4745                }
    48 */
     46
    4947                if (!empty($_POST['renvoyer_lettre'])) {
    5048                        if ($_POST['tous'] == 1) {
     
    210208                echo debut_droite('', true);
    211209
     210                $articles = '';
     211                if ($GLOBALS['meta']['spip_lettres_utiliser_articles'] == 'oui') {
     212                        if ($lettre->statut == 'brouillon') {
     213                                $articles.= '<form method="post" action="'.generer_url_ecrire('lettres', 'id_lettre='.$lettre->id_lettre).'">';
     214                                $articles.= debut_cadre_enfonce(_DIR_PLUGIN_LETTRE_INFORMATION.'/prive/images/articles.gif', true, "", _T('lettresprive:articles'));
     215                                $affiche = true;
     216                        } else {
     217                                if (sql_countsel('spip_articles_lettres', 'id_lettre='.intval($lettre->id_lettre)))
     218                                        $affiche = true;
     219                                else
     220                                        $affiche = false;
     221                                if ($affiche) {
     222                                        $articles.= '<form method="post" action="'.generer_url_ecrire('lettres', 'id_lettre='.$lettre->id_lettre).'">';
     223                                        $articles.= debut_cadre_enfonce(_DIR_PLUGIN_LETTRE_INFORMATION.'/prive/images/articles.gif', true, "", _T('lettresprive:articles'));
     224                                }
     225                        }
     226                        if ($affiche) {
     227                                $tableau_articles_interdits = array();
     228                                $resultat_articles_associes = sql_select('A.id_article, A.titre, A.statut, A.id_rubrique', 'spip_articles AS A INNER JOIN spip_articles_lettres AS AL ON AL.id_article=A.id_article', 'AL.id_lettre='.intval($lettre->id_lettre), '', 'A.titre');
     229                                if (@sql_count($resultat_articles_associes) > 0) {
     230                                        $articles.= "<div class='liste'>\n";
     231                                        $articles.= "<table width='100%' cellpadding='3' cellspacing='0' border='0' background=''>\n";
     232                                        while ($arr = sql_fetch($resultat_articles_associes)) {
     233                                                $articles.= "<tr class='tr_liste'>\n";
     234                                                $articles.= "<td class='arial1' width='30'>\n";
     235                                                $articles.= _T('info_numero_abbreviation').$arr['id_article'];
     236                                                $articles.= "</td>\n";
     237                                                $articles.= "<td class='arial2'>\n";
     238                                                $articles.= "<a href='".generer_url_ecrire("articles","id_article=".$arr['id_article'])."'>\n";
     239                                                $articles.= typo($arr['titre']);
     240                                                $articles.= "</a>\n";
     241                                                $articles.= "</td>\n";
     242                                                if ($lettre->statut == 'brouillon') {
     243                                                        $articles.= "<td class='arial1' width='100'>\n";
     244                                                        $articles.= "<a href='".generer_url_ecrire("lettres","id_lettre=".$lettre->id_lettre."&supprimer_article=".$arr['id_article'], true)."'>\n";
     245                                                        $articles.= _T('lettresprive:retirer_article').' '.http_img_pack('croix-rouge.gif', "X", " class='puce' style='vertical-align: bottom;'")."\n";
     246                                                        $articles.= "</a>\n";
     247                                                        $articles.= "</td>\n";
     248                                                }
     249                                                $articles.= "</tr>\n";
     250                                        }
     251                                        $articles.= "</table>\n";
     252                                        $articles.= "</div>\n";
     253                                }
     254                                if ($lettre->statut == 'brouillon') {
     255                                        $articles.= _T('lettresprive:ajouter_article');
     256                                        $articles.= '&nbsp;<input type="text" name="id_article" size="5" />&nbsp;';
     257                                        $articles.= '<input type="submit" name="enregistrer_article" value="'._T('lettresprive:ajouter').'" class="fondo">';
     258                                }
     259                        }
     260                        if ($affiche) {
     261                                $articles.= fin_cadre_enfonce(true);
     262                                $articles.= '</form>';
     263                        }
     264                }
     265
    212266                $editer_mots = charger_fonction('editer_mots', 'inc');
    213267                $editer_auteurs = charger_fonction('editer_auteurs', 'inc');
     
    229283                $onglet_proprietes.= $editer_mots('lettre', $lettre->id_lettre, $cherche_mot, $select_groupe, ($lettre->statut == 'brouillon'), '', 'lettres');
    230284                $onglet_proprietes.= $editer_auteurs('lettre', $lettre->id_lettre, ($lettre->statut == 'brouillon'), '', 'lettres');
     285                $onglet_proprietes.= $articles;
    231286
    232287                $contexte = array('id' => $lettre->id_lettre);
     
    305360                        $abonnes_virgules = implode(',', $abonnes);
    306361                        if (count($abonnes))
    307                                 echo afficher_objets('abonne', _T('lettresprive:tous_abonnes_rubrique'), array('FROM' => 'spip_abonnes', 'WHERE' => 'id_abonne IN ('.$abonnes_virgules.')', 'ORDER BY' => 'maj DESC'));
     362                                echo afficher_objets('abonne', _T('lettresprive:tous_abonnes_rubrique'), array('FROM' => 'spip_abonnes', 'WHERE' => 'id_abonne IN ('.$abonnes_virgules.')', 'ORDER BY' => 'maj DESC'), array('id_rubrique' => $lettre->id_rubrique));
    308363                } else {
    309364                        $abonnes = array();
     
    313368                        $abonnes_virgules = implode(',', $abonnes);
    314369                        if (count($abonnes))
    315                                 echo afficher_objets('abonne', _T('lettresprive:les_abonnes_suivants_ont_recu_cette_lettre'), array('FROM' => 'spip_abonnes', 'WHERE' => 'id_abonne IN ('.$abonnes_virgules.')', 'ORDER BY' => 'maj DESC'));
    316                 }
    317 
    318 /*
    319                 if ($GLOBALS['meta']['spip_lettres_utiliser_articles'] == 'oui') {
    320                         $titre_barre = _T('lettresprive:articles');
    321                         if ($lettre->statut == 'brouillon') {
    322                                 debut_cadre_enfonce('../'._DIR_PLUGIN_LETTRE_INFORMATION.'/img_pack/articles.gif', false, "", bouton_block_invisible('arts').$titre_barre);
    323                                 $affiche = true;
    324                         } else {
    325                                 if (spip_num_rows(spip_query('SELECT * FROM spip_articles_lettres WHERE id_lettre='.$lettre->id_lettre)) > 0)
    326                                         $affiche = true;
    327                                 else
    328                                         $affiche = false;
    329                                 if ($affiche)
    330                                         debut_cadre_enfonce('../'._DIR_PLUGIN_LETTRE_INFORMATION.'/img_pack/articles.gif', false, "", $titre_barre);
    331                         }
    332                         if ($affiche) {
    333                                 $tableau_articles_interdits = array();
    334                                 $articles_associes = 'SELECT A.id_article,
    335                                                                                 A.titre,
    336                                                                                 A.statut,
    337                                                                                 A.id_rubrique
    338                                                                         FROM spip_articles AS A
    339                                                                         INNER JOIN spip_articles_lettres AS AL ON AL.id_article=A.id_article
    340                                                                         WHERE AL.id_lettre="'.$lettre->id_lettre.'"
    341                                                                         ORDER BY A.titre';
    342                                 $resultat_articles_associes = spip_query($articles_associes);
    343                                 if (@spip_num_rows($resultat_articles_associes) > 0) {
    344                                         echo "<div class='liste'>\n";
    345                                         echo "<table width='100%' cellpadding='3' cellspacing='0' border='0' background=''>\n";
    346                                         while ($arr = spip_fetch_array($resultat_articles_associes)) {
    347                                                 $tableau_articles_interdits[] = $arr['id_article'];
    348                                                 echo "<tr class='tr_liste'>\n";
    349                                                 echo "<td width='25' class='arial11'>\n";
    350                                                 echo puce_statut_article($arr['id_article'], $arr['statut'], $arr['id_rubrique'], 'article');
    351                                                 echo "</td>\n";
    352                                                 echo "<td class='arial2'>\n";
    353                                                 echo "<A HREF='".generer_url_ecrire("articles","id_article=".$arr['id_article'])."'>\n";
    354                                                 echo typo($arr['titre']);
    355                                                 echo "</A>\n";
    356                                                 echo "</td>\n";
    357                                                 echo "<td class='arial1' width='50'>\n";
    358                                                 echo _T('info_numero_abbreviation').$arr['id_article'];
    359                                                 echo "</td>\n";
    360                                                 if ($lettre->statut == 'brouillon') {
    361                                                         echo "<td class='arial1' width='100'>\n";
    362                                                         echo "<A HREF='".generer_url_ecrire("lettres","id_lettre=".$lettre->id_lettre."&supprimer_article=".$arr['id_article'], true)."'>\n";
    363                                                         echo _T('lettresprive:retirer_article').' '.http_img_pack('croix-rouge.gif', "X", " class='puce' style='vertical-align: bottom;'")."\n";
    364                                                         echo "</A>\n";
    365                                                         echo "</td>\n";
    366                                                 }
    367                                                 echo "</tr>\n";
    368                                         }
    369                                         echo "</table>\n";
    370                                         echo "</div>\n";
    371                                 }
    372                                 if ($lettre->statut == 'brouillon') {
    373                                         $articles_interdits = implode(",", $tableau_articles_interdits);
    374                                         if (!empty($articles_interdits))
    375                                                 $where_articles_interdits = ' WHERE A.id_article NOT IN ('.$articles_interdits.')';
    376                                         else
    377                                                 $where_articles_interdits = '';
    378                                         $requete = 'SELECT A.id_article,
    379                                                                         A.titre AS titre,
    380                                                                         A.id_rubrique,
    381                                                                         R.titre AS titre_rub
    382                                                                 FROM spip_articles AS A
    383                                                                 INNER JOIN spip_rubriques AS R ON R.id_rubrique=A.id_rubrique
    384                                                                 '.$where_articles_interdits.'
    385                                                                 ORDER BY R.titre, A.titre';
    386                                         $resultat_requete = spip_query($requete);
    387                                         if (@spip_num_rows($resultat_requete) > 0) {
    388                                                 echo debut_block_invisible('arts');
    389                                                 echo "<table border='0' width='100%'>";
    390                                                 echo "<tr>";
    391                                                 echo "  <td width='120'><span class='verdana1'><B>"._T('lettresprive:ajouter_article')."</B></span> &nbsp;</td>";
    392                                                 echo '  <td width="100"><input type="text" name="id_article" class="fondo" size="5" /></td>';
    393                                                 echo "  <td> &nbsp; <INPUT TYPE='submit' NAME='enregistrer_article' VALUE='"._T('lettresprive:choisir')."' CLASS='fondo' STYLE='font-size:10px'></td>";
    394                                                 echo "</tr>";
    395                                                 echo "</table>";
    396                                                 echo fin_block();
    397                                         }
    398                                 }
    399                         }
    400                         if ($affiche)
    401                                 fin_cadre_enfonce();
    402                 }
    403 */
     370                                echo afficher_objets('abonne', _T('lettresprive:les_abonnes_suivants_ont_recu_cette_lettre'), array('FROM' => 'spip_abonnes', 'WHERE' => 'id_abonne IN ('.$abonnes_virgules.')', 'ORDER BY' => 'maj DESC'), array('id_lettre' => $lettre->id_lettre));
     371                }
    404372
    405373                echo fin_gauche();
  • _plugins_/_stable_/spip-lettres/inc/afficher_abonnes.php

    r27253 r27272  
    2323                $styles = array(array('', 11), array('arial2'), array('arial2', 120), array('arial1', 40), array('arial1', 40), array('arial1', 60));
    2424                $tableau = array();
    25                 $args = array();
     25                if (is_array($formater))
     26                        $args = $formater;
     27                else
     28                        $args = array();
    2629                $presenter_liste = charger_fonction('presenter_liste', 'inc');
    2730                return $presenter_liste($requete, 'afficher_abonne_boucle', $tableau, $args, $force, $styles, $tmp_var, $titre, _DIR_PLUGIN_LETTRE_INFORMATION.'/prive/images/abonne.png');
     
    3336
    3437                $id_abonne = $row['id_abonne'];
    35                 $id_lettre = $row['id_lettre'];
     38                $id_lettre = $own['id_lettre'];
     39                $id_rubrique = $own['id_rubrique'];
    3640                $abonne = new abonne($id_abonne);
    3741                $email  = $abonne->email;
     
    6670
    6771                if ($id_lettre) {
    68                         $clics = sql_countsel('AC.id_clic', 'spip_abonnes_clics AS AC INNER JOIN spip_clics AS C ON C.id_clic=AC.id_clic', 'C.id_lettre='.intval($id_lettre).' AND AC.id_abonne='.intval($abonne->id_abonne));
     72                        $clics = sql_count(sql_select('AC.id_clic', 'spip_abonnes_clics AS AC INNER JOIN spip_clics AS C ON C.id_clic=AC.id_clic', 'C.id_lettre='.intval($id_lettre).' AND AC.id_abonne='.intval($abonne->id_abonne)));
    6973                        if ($clics == 1)
    7074                                $vals[] = $clics.'&nbsp;'._T('lettresprive:clic_minuscules');
     
    7478                                $vals[] = '&nbsp;';
    7579                } else {
    76                         $vals[] = '&nbsp;';
     80                        if ($id_rubrique) {
     81                                $abonnement_direct = sql_countsel('spip_abonnes_rubriques', 'id_rubrique='.intval($id_rubrique).' AND id_abonne='.intval($abonne->id_abonne));
     82                                if ($abonnement_direct)
     83                                        $vals[] = _T('lettresprive:direct');
     84                                else
     85                                        $vals[] = _T('lettresprive:indirect');
     86                        } else {
     87                                $vals[] = '&nbsp;';
     88                        }
    7789                }
    7890
  • _plugins_/_stable_/spip-lettres/inc/lettres_classes.php

    r27253 r27272  
    176176                        global $connect_statut;
    177177                        if ($connect_statut == '0minirezo' or lettres_rubrique_autorisee($id_rubrique)) {
    178                                 sql_replace('spip_abonnes_rubriques',
    179                                                         array(
    180                                                                 'id_abonne' => $this->id_abonne,
    181                                                                 'id_rubrique' => intval($id_rubrique),
    182                                                                 'date_abonnement' => 'NOW()',
    183                                                                 'statut' => 'a_valider'
    184                                                                 )
    185                                                         );
     178                                if (sql_countsel('spip_abonnes_rubriques', 'id_abonne='.intval($this->id_abonne).' AND id_rubrique='.intval($id_rubrique)))
     179                                        sql_updateq('spip_abonnes_rubriques', array('statut' => 'a_valider', 'date_abonnement' => 'NOW()'), 'id_abonne='.intval($this->id_abonne).' AND id_rubrique='.intval($id_rubrique));
     180                                else
     181                                        sql_insertq('spip_abonnes_rubriques', array('id_abonne' => intval($this->id_abonne), 'id_rubrique' => intval($id_rubrique), 'statut' => 'a_valider', 'date_abonnement' => 'NOW()'));
    186182                                $this->enregistrer_maj();
    187183                        }
     
    201197                        else
    202198                                $statut = 'echec';
    203                         sql_replace('spip_abonnes_lettres',
    204                                                 array(
    205                                                         'id_abonne' => $this->id_abonne,
    206                                                         'id_lettre' => intval($id_lettre),
    207                                                         'statut' => $statut,
    208                                                         'format' => $this->format,
    209                                                         'maj' => 'NOW()'
    210                                                         )
    211                                                 );
    212                         $req = sql_select('*', 'spip_lettres_statistiques', 'periode="'.date('Y-m').'"');
    213                         if (sql_count($req) == 0)
     199                        if (sql_countsel('spip_abonnes_lettres', 'id_abonne='.intval($this->id_abonne).' AND id_lettre='.intval($id_lettre)))
     200                                sql_updateq('spip_abonnes_lettres', array('statut' => $statut, 'format' => $this->format, 'maj' => 'NOW()'), 'id_abonne='.intval($this->id_abonne).' AND id_lettre='.intval($id_lettre));
     201                        else
     202                                sql_insertq('spip_abonnes_lettres', array('id_abonne' => intval($this->id_abonne), 'id_lettre' => intval($id_lettre), 'statut' => $statut, 'format' => $this->format, 'maj' => 'NOW()'));
     203                        if (sql_countsel('spip_lettres_statistiques', 'periode="'.date('Y-m').'"') == 0)
    214204                                sql_insertq('spip_lettres_statistiques', array('periode' => date('Y-m')));
    215205                        sql_update('spip_lettres_statistiques', array('nb_envois' => 'nb_envois+1'), 'periode="'.date('Y-m').'"');
  • _plugins_/_stable_/spip-lettres/inc/lettres_pipelines.php

    r27253 r27272  
    4141        function lettres_tester_rubrique_vide($flux) {
    4242                $flux['data']+= sql_countsel('spip_lettres', 'id_rubrique='.$flux['args']['id_rubrique']);
     43                $flux['data']+= sql_countsel('spip_abonnes_rubriques', 'id_rubrique='.$flux['args']['id_rubrique']);
    4344                return $flux;
    4445        }
     
    9697                                $abonnes[] = $arr['id_abonne'];
    9798                        $abonnes_virgules = implode(',', $abonnes);
    98                         $flux['data'].= afficher_objets('abonne', _T('lettresprive:tous_abonnes_rubrique'), array('FROM' => 'spip_abonnes', 'WHERE' => 'id_abonne IN ('.$abonnes_virgules.')', 'ORDER BY' => 'maj DESC'));
     99                        $flux['data'].= afficher_objets('abonne', _T('lettresprive:tous_abonnes_rubrique'), array('FROM' => 'spip_abonnes', 'WHERE' => 'id_abonne IN ('.$abonnes_virgules.')', 'ORDER BY' => 'maj DESC'), array('id_rubrique' => $id_rubrique));
    99100                        $flux['data'].= icone_inline(_T('lettresprive:ajouter_abonne'), generer_url_ecrire("abonnes_edit", "id_rubrique=$id_rubrique"), _DIR_PLUGIN_LETTRE_INFORMATION.'/prive/images/abonne.png',"creer.gif", $spip_lang_right);
    100101                        $flux['data'].= icone_inline(_T('lettresprive:import_abonnes'), generer_url_ecrire("naviguer_import","id_rubrique=$id_rubrique"), _DIR_PLUGIN_LETTRE_INFORMATION.'/prive/images/import.png', "rien.gif", $spip_lang_right);
  • _plugins_/_stable_/spip-lettres/lang/lettresprive_fr.php

    r27253 r27272  
    4242                'action' => "Action",
    4343                'aucune_action' => "Aucune action",
    44                 'valider_abonnements_en_attente' => "Valider les abonnements en attente",
     44                'valider_abonnements' => "valider",
    4545                'supprimer' => "Supprimer",
    4646                'changer' => "Changer",
Note: See TracChangeset for help on using the changeset viewer.