Changeset 48543 in spip-zone


Ignore:
Timestamp:
Jun 7, 2011, 2:21:58 PM (9 years ago)
Author:
cedric@…
Message:

Mise a jour du plugin comments pour SPIP 3 :
modernisation du code, a debugguer

Location:
_plugins_/comments/trunk
Files:
4 added
4 deleted
8 edited
4 moved

Legend:

Unmodified
Added
Removed
  • _plugins_/comments/trunk/comments_pipelines.php

    r43013 r48543  
    1010function comments_autoriser(){}
    1111
    12 /* Inserer des styles */
     12/**
     13 *
     14 * Inserer des styles
     15 *
     16 * @param string $flux
     17 * @return string
     18 */
    1319function comments_insert_head_css($flux){
    1420        if ($f = find_in_path("css/comments.css"))
     
    2228 * en SPIP 2.1 uniquement
    2329 *
    24  * @param <type> $p
    25  * @return <type>
     30 * @param object $p
     31 * @return object
    2632 */
    2733function balise_BOUTONS_ADMIN_FORUM_dist($p) {
     
    2935                $_id = champ_sql('id_forum', $p);
    3036
    31         if (function_exists('bouton_action'))
    3237                $p->code = "
    3338'<'.'?php
     
    4348                }
    4449?'.'>'";
    45         else
    46                 $p->code = "''";
    4750
    4851        $p->interdire_scripts = false;
    49 
    5052        return $p;
    5153}
     
    5759 * = droits par defaut sinon (admin complet pour moderation complete)
    5860 *
    59  * @param <type> $faire
    60  * @param <type> $type
    61  * @param <type> $id
    62  * @param <type> $qui
    63  * @param <type> $opt
    64  * @return <type>
     61 * @param string $faire
     62 * @param string $type
     63 * @param int $id
     64 * @param array $qui
     65 * @param array $opt
     66 * @return bool
    6567 */
    6668function autoriser_forum_moderer_dist($faire, $type, $id, $qui, $opt) {
    67         $row = sql_fetsel("*", "spip_forum", "id_forum=".intval($id));
    68         if (isset($row['objet']))
    69                 return autoriser('modererforum', $row['objet'], $row['id_objet'], $qui, $opt);
    70         elseif($row['id_article'])
    71                 return autoriser('modererforum', 'article', $row['id_article'], $qui, $opt);
    72         elseif($row['id_breve'])
    73                 return autoriser('modererforum', 'breve', $row['id_breve'], $qui, $opt);
    74         elseif($row['id_rubrique'])
    75                 return autoriser('modererforum', 'rubrique', $row['id_rubrique'], $qui, $opt);
    76         elseif($row['id_message'])
    77                 return autoriser('modererforum', 'message', $row['id_message'], $qui, $opt);
    78         elseif($row['id_syndic'])
    79                 return autoriser('modererforum', 'site', $row['id_syndic'], $qui, $opt);
    80         return false;
    81 }
    82 
    83 
    84 /**
    85  * surcharger les boucles FORUMS
    86  * pour afficher uniquement les forums public meme en preview
    87  *
    88  * @param <type> $boucle
    89  * @return <type>
    90  */
    91 function comments_pre_boucle($boucle){
    92         if ($boucle->type_requete == 'forums') {
    93                 $id_table = $boucle->id_table;
    94                 $mstatut = $id_table .'.statut';
    95                 // Par defaut, selectionner uniquement les forums sans mere
    96                 // Les criteres {tout} et {plat} inversent ce choix
    97                 if (!isset($boucle->modificateur['tout']) AND !isset($boucle->modificateur['plat'])) {
    98                         array_unshift($boucle->where,array("'='", "'$id_table." ."id_parent'", 0));
    99                 }
    100                 // Restreindre aux elements publies
    101                 if (!$boucle->modificateur['criteres']['statut']) {
    102                                 array_unshift($boucle->where,array("'='", "'$mstatut'", "'\\'publie\\''"));
    103                 }
    104         }
    105         return $boucle;
     69        $row = sql_fetsel("objet,id_objet", "spip_forum", "id_forum=".intval($id));
     70        return autoriser('modererforum', $row['objet'], $row['id_objet'], $qui, $opt);
    10671}
    10772
     
    11580 * - preparer un message en cas de moderation
    11681 *
    117  * @param <type> $flux
    118  * @return <type>
     82 * @param array $flux
     83 * @return array
    11984 */
    12085function comments_formulaire_traiter($flux){
  • _plugins_/comments/trunk/formulaires/forum.html

    r44871 r48543  
    55
    66[(#ENV{login_forum_abo})
    7 <INCLURE{fond=formulaires/inc-login_forum_abo}{env} />
     7<INCLURE{fond=formulaires/inc-login_forum_abo, env} />
    88]
    99
     
    2626        <input type='hidden' name='nom_site' value="#ENV{nom_site}" />
    2727        [<input type="hidden" name="id_forum" value="(#ENV*{id_forum})" />]
    28         [(#INCLURE{fond=formulaires/inc-forum_ajouter_mot}{ajouter_mot})]
     28        [(#INCLURE{fond=formulaires/inc-forum_ajouter_mot, ajouter_mot})]
    2929        (#ENV*{erreurs}|table_valeur{previsu})
    3030        </div>
     
    3636[<input type="hidden" name="id_forum" value="(#ENV*{id_forum})" />]
    3737[<fieldset class="moderation_info">
    38         <legend><:bouton_radio_modere_priori:></legend>
     38        <legend><:forum:bouton_radio_modere_priori:></legend>
    3939        <p class="explication">(#ENV{modere})<:comments:moderation_info:></p>
    4040</fieldset>]
     
    4242[(#ENV**{afficher_texte}|choixsiegal{'non', ' ',''})
    4343[<input type="hidden" name="titre" value="(#ENV{titre})" />]
    44 <p class="spip_bouton"><input type="submit" class="submit" value="<:forum_valider:>" /></p>]
     44<p class="spip_bouton"><input type="submit" class="submit" value="<:forum:forum_valider:>" /></p>]
    4545
    4646[(#ENV**{afficher_texte}|choixsiegal{'non', '',' '})
    4747
    4848        <INCLURE{fond=formulaires/inc-login_forum}{env} />
    49    
     49
    5050        <fieldset>
    5151                <legend><:comments:saisie_texte_legend:></legend>
     
    5353        <ul>
    5454        [(#CONFIG{forums_texte}|!={non}|?{
    55             <li class='saisie_texte[ (#ENV**{erreurs}|table_valeur{texte}|oui)erreur]'>
    56                 <label for='texte'><:forum_texte|typo:></label>
     55            <li class='editer saisie_texte[ (#ENV**{erreurs}|table_valeur{texte}|oui)erreur]'>
     56                <label for='texte'><:forum:forum_texte|typo:></label>
    5757                [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{texte})</span>]
    58                 [(#ENV**{config}|table_valeur{afficher_barre}|?{#VAL{texte}|barre_typo{#LANG,1}})]
    59                 <textarea name="texte" id="texte" rows="12" cols="60">[(#ENV{texte})]</textarea>
    60                 [(#ENV**{config}|table_valeur{afficher_barre}|?{'',<p class="explication saisie_texte_info"><:comments:saisie_texte_info:></p>})]
     58                <textarea name="texte" id="texte" rows="12" cols="60"[(#CONFIG{forums_afficher_barre}|=={non}|oui) class="no_barre"]>[(#ENV{texte})]</textarea>
     59                <p class="explication saisie_texte_info"><:comments:saisie_texte_info:></p>
    6160            </li>
    6261        })]
     
    6564    </fieldset>
    6665
     66        [
     67                <fieldset>
     68                        <legend><:bouton_ajouter_document:></legend>
     69                        <ul>
     70                                <li class='editer saisie_document_forum[ (#ENV**{erreurs}|table_valeur{document_forum}|oui)erreur]'>
     71                                [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{document_forum})</span>]
     72                                <input type="hidden" name="cle_ajouter_document" value="(#ENV{cle_ajouter_document})" />
     73                                [<div id="ajouter_document_up">(#ENV{ajouter_document})
     74                                <label for="supprimer_document_ajoute"><input type='checkbox' name='supprimer_document_ajoute' id='supprimer_document_ajoute' />
     75                                <:lien_supprimer:></label>
     76                                </div>]
     77                                <div>
     78                                [<label for="ajouter_document">(#ENV{formats_documents_forum}|join{', '})</label>]
     79                                <input class='file' type="file" name="ajouter_document" id="ajouter_document"[
     80                                accept="(#ENV{formats_documents_forum}|join{','})"] />
     81                                </div>
    6782
    68 
    69 [
    70         <fieldset>
    71         <legend><:bouton_ajouter_document:></legend>
    72         <ul>
    73         <li class='saisie_document_forum[ (#ENV**{erreurs}|table_valeur{document_forum}|oui)erreur]'>
    74         [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{document_forum})</span>]
    75         <input type="hidden" name="cle_ajouter_document" value="(#ENV{cle_ajouter_document})" />
    76         [<div id="ajouter_document_up">(#ENV{ajouter_document})
    77         <label for="supprimer_document_ajoute"><input type='checkbox' name='supprimer_document_ajoute' id='supprimer_document_ajoute' />
    78         <:lien_supprimer:></label>
    79         </div>]
    80         <div>
    81         [<label for="ajouter_document">(#ENV{formats_documents_forum}|join{', '})</label>]
    82         <input class='file' type="file" name="ajouter_document" id="ajouter_document"[
    83         accept="(#ENV{formats_documents_forum}|join{','})"] />
    84         </div>
    85    
    86         <script type='text/javascript'>
    87         jQuery('#ajouter_document_up')
    88         .next()
    89             .hide()
    90         .prev()
    91         .find(':checkbox')
    92         .bind('change', function(){
    93             jQuery('#ajouter_document_up').hide().next().show();
    94         })
    95         ;
    96         </script>
    97         </li>
    98         </ul></fieldset>
    99 ]
     83                                <script type='text/javascript'>
     84                                jQuery('#ajouter_document_up')
     85                                .next()
     86                                        .hide()
     87                                .prev()
     88                                .find(':checkbox')
     89                                .bind('change', function(){
     90                                        jQuery('#ajouter_document_up').hide().next().show();
     91                                })
     92                                ;
     93                                </script>
     94                                </li>
     95                        </ul>
     96                </fieldset>
     97        ]
    10098
    10199        [(#REM) Piege a robots spammeurs ]
     
    114112]
    115113<script type="text/javascript">/*<!#EVAL{chr(91)}CDATA#EVAL{chr(91)}*/
    116 var saveauto = true;
    117 function cookie_formulaire_forum(){
    118         var a = $.cookie('spip_contenu_formulaire_#ENV{_sign}');
    119         if (a) {
    120                 $('#formulaire_forum textarea#EVAL{chr(91)}name=texte#EVAL{chr(93)}')
    121                 .val(a);
    122                 $.cookie('spip_contenu_formulaire_#ENV{_sign}', null);
    123         }
    124         $('#formulaire_forum form').not('.nocookiesave')
    125         .bind('submit', function() {
    126                 saveauto = false;
    127         }).addClass('nocookiesave');
    128 }
    129 function bind_formulaire_forum(){
    130         setTimeout(cookie_formulaire_forum,100);
    131         $(window)
    132         .bind('unload', function(){
    133                 if (saveauto){
    134                         var s = $('#formulaire_forum textarea#EVAL{chr(91)}name=texte#EVAL{chr(93)}').val();
    135                         if (s)
    136                                 $.cookie('spip_contenu_formulaire_#ENV{_sign}', s);
    137                         else
    138                                 $.cookie('spip_contenu_formulaire_#ENV{_sign}', null);
    139                 }
     114if (window.jQuery)(function($){
     115        $(function(){
     116                $('#formulaire_forum form')
     117                .autosave();
    140118        });
    141 }
    142 if (window.jQuery) jQuery(function(){
    143         if (!jQuery.cookie){
    144                 jQuery.getScript('[(#CHEMIN{javascript/jquery.cookie.js}|url_absolue)]',function(){
    145                         bind_formulaire_forum();
    146                 });
    147         }else{
    148                 bind_formulaire_forum();
    149         }
    150         onAjaxLoad(cookie_formulaire_forum);
    151 });
     119}(jQuery));
    152120/*#EVAL{chr(93)}[(#EVAL{chr(93)})]>*/</script>
    153121]
  • _plugins_/comments/trunk/formulaires/forum_fonctions.php

    r39942 r48543  
    11<?php
    22
    3 include_spip('inc/filtres');
    4 if (!function_exists('barre_typo')){
    5         function barre_typo(){return '';}
    6 }
    7 
    8 ecrire_meta('forums_titre','non'); // forcer l'absence de titre sur les forums
     3        ecrire_meta('forums_titre','non'); // forcer l'absence de titre sur les forums
    94
    105?>
  • _plugins_/comments/trunk/formulaires/inc-forum_previsu.html

    r37051 r48543  
    1 <fieldset class="previsu">
     1<fieldset class="previsu clearfix">
    22        <legend><:previsualisation:></legend>
    33        <div class="comment">
  • _plugins_/comments/trunk/formulaires/inc-login_forum.html

    r39294 r48543  
    1010        <legend><:comments:forum_qui_etes_vous:></legend>
    1111[(#SESSION{auth}|oui)
    12         [<p><:comments:label_nom:> <strong>(#SESSION{nom}|typo)</strong> <span class="details">&#91;<a href="#URL_LOGOUT" rel="nofollow"><:icone_deconnecter:></a>&#93;</span></p>]     
     12        [<p><:comments:label_nom:> <strong>(#SESSION{nom}|typo)</strong> <span class="details">&#91;<a href="#URL_LOGOUT" rel="nofollow"><:icone_deconnecter:></a>&#93;</span></p>]
    1313]
    1414[(#SESSION{auth}|non)
    1515        <ul>
    16                 <li class='saisie_session_nom'>
     16                <li class='editer saisie_session_nom'>
    1717                        <label for="session_nom"><:comments:label_nom:></label>
    1818                        <input type="text" class="text" name="session_nom" id="session_nom" value="[(#SESSION**{nom}|sinon{#SESSION**{session_nom}}|entites_html)]" size="40" />
     
    2121                        ]
    2222                </li>
    23                 <li class='saisie_session_email'>
     23                <li class='editer saisie_session_email'>
    2424                        <label for="session_email"><:comments:label_email:></label>
    2525                        <input type="text" class="text" name="session_email" id="session_email" value="[(#SESSION**{email}|sinon{#SESSION**{session_email}}|entites_html)]" size="40" />
    2626                </li>
    2727[(#CONFIG{forums_urlref}|!={non}|?{
    28         <li class='saisie_url_site[ (#ENV**{erreurs}|table_valeur{url_site}|oui)erreur]'>
     28        <li class='editer saisie_url_site[ (#ENV**{erreurs}|table_valeur{url_site}|oui)erreur]'>
    2929            <label for="url_site"><:comments:label_url:></label>
    3030            [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{url_site})</span>]
  • _plugins_/comments/trunk/inclure/comment-meta.html

    r48290 r48543  
    11<BOUCLE_comment(FORUMS){id_forum}>
    22<p class="comment-meta">
    3         [(#CONFIG{comments/permalink}|=={aucun}|non)<a rel="self bookmark" href="#forum#ID_FORUM" title="<:comments:permalink_to:> #ID_FORUM" class="permalink">[(#CONFIG{comments/permalink}|=={picto}|?{[<img src="(#CHEMIN{../img/permalink.gif})" alt="#" />],[(#CONFIG{comments/permalink}|=={compteur}|?{[(#ENV{compteur})<span class="sep">.</span>],#})]})]</a>
     3        [(#CONFIG{comments/permalink}|=={aucun}|non)<a rel="self bookmark" href="#forum#ID_FORUM" title="<:comments:permalink_to:> #ID_FORUM" class="permalink">[(#CONFIG{comments/permalink}|=={picto}|?{[<img src="(#CHEMIN{img/permalink.gif})" alt="#" />],[(#CONFIG{comments/permalink}|=={compteur}|?{[(#ENV{compteur})<span class="sep">.</span>],#})]})]</a>
    44        [(#ENV{thread}|oui)[<a rel="in-reply-to" class="permalink in-reply-to" href="#forum(#ID_PARENT|?{#ID_PARENT})">^</a>]]
    55        ]<BOUCLE_auteur(AUTEURS){tout}{id_auteur}>
  • _plugins_/comments/trunk/plugin.xml

    r48494 r48543  
    11<plugin>
    22<nom>Comments</nom>
    3 <icon>icon.png</icon>
    4 <auteur>[romy.tetue.net->http://romy.tetue.net] - 2009 - Licence GPL</auteur>
    5 <version>2.1.9</version>
    6 <etat>stable</etat>
     3<icon>prive/themes/spip/comment-32.png</icon>
     4<auteur>[romy.tetue.net->http://romy.tetue.net] - 2009</auteur>
     5<licence>Licence GPL</licence>
     6<version>3.0.0-dev</version>
     7<etat>dev</etat>
    78<description>Affichage des messages en liste, fa&ccedil;on commentaires de blog, avec formulaire simplifi&eacute;. Commentaires microformat&eacute;s, nomenclature homog&eacute;ne.</description>
    89<lien>[Comments&nbsp;2.0 pour SPIP&nbsp;2.0->http://www.spip-contrib.net/?article3448]</lien>
     
    2728        <inclure>comments_pipelines.php</inclure>
    2829</pipeline>
    29 <necessite id="SPIP" version="[2.0.9;]" />
    30 <utilise id='Z' version="[;]" />
     30<necessite id="SPIP" version="[3.0.0-dev;]" />
     31<utilise id='Zdist' version="[;]" />
    3132<categorie>communication</categorie>
    32 <bouton id='comments_old' parent='configuration'>
    33         <icone>prive/themes/spip/images/comments-20.png</icone>
    34         <titre>comments:titre_comments</titre>
    35         <url>configurer_comments</url>
    36 </bouton>
    3733<bouton id='comments' parent='bando_squelette'>
    38         <icone>images/comments-16.png</icone>
     34        <icone>images/comment-16.png</icone>
    3935        <titre>comments:titre_comments</titre>
    4036        <url>configurer_comments</url>
  • _plugins_/comments/trunk/prive/squelettes/contenu/configurer_comments.html

    r48540 r48543  
    1 [(#AUTORISER{configurer,comments}|oui)
     1[(#AUTORISER{configurer,comments}|sinon_interdire_acces)]
    22<h1><:comments:titre_comments:></h1>
    33<div class="ajax">
     
    55</div>
    66<p>Pour toute autre personnalisation, modifiez <a href="http://www.spip-contrib.net/?article3447" class="spip_out">les&nbsp;squelettes</a>.</p>
    7 ]
  • _plugins_/comments/trunk/urls/generer_url_forum.php

    r36928 r48543  
    44 *  SPIP, Systeme de publication pour l'internet                           *
    55 *                                                                         *
    6  *  Copyright (c) 2001-2009                                                *
     6 *  Copyright (c) 2001-2011                                                *
    77 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
    88 *                                                                         *
     
    1111\***************************************************************************/
    1212
     13include_once _DIR_PLUGIN_FORUM.'urls/generer_url_forum.php';
     14
    1315/**
    14  * Duplicata de la fonction disponible dans _core_/forum/urls
    15  * pour permettre l'utilisation du plugin urls_etendues avec spip 2.0
    16  * A retirer a la release 2.1
     16 * Modifier l'ancre des urls de forum
    1717 *
    18  * @param <type> $id_forum
    19  * @param <type> $args
    20  * @param <type> $ancre
    21  * @return <type>
     18 * @param int $id_forum
     19 * @param string $args
     20 * @param string $ancre
     21 * @return string
    2222 */
    23 function urls_generer_url_forum_dist($id_forum, $args='', $ancre='') {
    24         if ($id_forum = intval($id_forum)) {
    25                 include_spip('inc/forum');
    26                 list($type, $id,) = racine_forum($id_forum);
    27                 if ($type) {
    28                         if (!$ancre) $ancre = "comment$id_forum";
    29                         return generer_url_entite($id, $type, $args, $ancre, true);
    30                 }
    31         }
    32         return '';
     23function urls_generer_url_forum($id_forum, $args='', $ancre='') {
     24        $url = urls_generer_url_forum_dist($id_forum, $args, $ancre);
     25        if ($url AND !$ancre)
     26                $url = ancre_url($url,"comment$id_forum");
     27        return $url;
    3328}
    3429
Note: See TracChangeset for help on using the changeset viewer.