Changeset 93612 in spip-zone


Ignore:
Timestamp:
Dec 13, 2015, 11:39:09 AM (4 years ago)
Author:
cedric@…
Message:

Indentation et regles de codage selon http://www.spip.net/fr_article3497.html#regles_codage

Location:
_core_/plugins/forum
Files:
28 edited

Legend:

Unmodified
Added
Removed
  • _core_/plugins/forum/action/editer_forum.php

    r93092 r93612  
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined("_ECRIRE_INC_VERSION")) {
     14        return;
     15}
    1416include_spip('inc/modifier');
    1517
     
    1719// au prealable conserver_original($id_forum)
    1820// http://code.spip.net/@revision_forum
    19 if(!function_exists('revision_forum')){
     21if (!function_exists('revision_forum')) {
    2022        function revision_forum($id_forum, $c = false) {
    2123
    22                 $t = sql_fetsel("*", "spip_forum", "id_forum=".intval($id_forum));
     24                $t = sql_fetsel("*", "spip_forum", "id_forum=" . intval($id_forum));
    2325                if (!$t) {
    2426                        spip_log("erreur forum $id_forum inexistant");
     27
    2528                        return;
    2629                }
     
    2932                if ($t['statut'] == 'publie') {
    3033                        include_spip('inc/invalideur');
    31                         $invalideur = array("id='forum/$id_forum'","id='".$t['objet']."/".$t['id_objet']."'");
    32                 } else
     34                        $invalideur = array("id='forum/$id_forum'", "id='" . $t['objet'] . "/" . $t['id_objet'] . "'");
     35                } else {
    3336                        $invalideur = '';
     37                }
    3438
    3539                // Supprimer 'http://' tout seul
     
    4953                $cles = array();
    5054                foreach (array('id_objet', 'objet') as $k) {
    51                         if (isset($c[$k]) AND $c[$k]) $cles[$k] = $c[$k];
     55                        if (isset($c[$k]) AND $c[$k]) {
     56                                $cles[$k] = $c[$k];
     57                        }
    5258                }
    5359
     
    5662                // on deplace tout le thread {sauf les originaux}.
    5763                if (count($cles) AND $id_thread) {
    58                         spip_log("update thread id_thread=$id_thread avec ".var_export($cles,1),'forum.'. _LOG_INFO_IMPORTANTE);
    59                         sql_updateq("spip_forum", $cles, "id_thread=".$id_thread." AND statut!='original'");
     64                        spip_log("update thread id_thread=$id_thread avec " . var_export($cles, 1), 'forum.' . _LOG_INFO_IMPORTANTE);
     65                        sql_updateq("spip_forum", $cles, "id_thread=" . $id_thread . " AND statut!='original'");
    6066                        // on n'affecte pas $r, car un deplacement ne change pas l'auteur
    6167                }
     
    6369                // s'il y a vraiment eu une modif et que le message est public
    6470                // on enregistre le nouveau date_thread
    65                 if ($err==='' AND $t['statut'] == 'publie') {
     71                if ($err === '' AND $t['statut'] == 'publie') {
    6672                        // on ne stocke ni le numero IP courant ni le nouvel id_auteur
    6773                        // dans le message modifie (trop penible a l'usage) ; mais du
     
    7278
    7379                        // & meme ca ca pourrait etre optionnel
    74                         sql_updateq("spip_forum", array("date_thread" => date('Y-m-d H:i:s')), "id_thread=".$id_thread);
     80                        sql_updateq("spip_forum", array("date_thread" => date('Y-m-d H:i:s')), "id_thread=" . $id_thread);
    7581                }
    7682        }
  • _core_/plugins/forum/action/instituer_forum.php

    r93092 r93612  
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined("_ECRIRE_INC_VERSION")) {
     14        return;
     15}
    1416
    1517// http://code.spip.net/@action_instituer_forum_dist
    1618function action_instituer_forum_dist($arg = null) {
    1719
    18         if (is_null($arg)){
     20        if (is_null($arg)) {
    1921                $securiser_action = charger_fonction('securiser_action', 'inc');
    2022                $arg = $securiser_action();
     
    2426        $id_forum = intval($id_forum);
    2527        $row = sql_fetsel("*", "spip_forum", "id_forum=$id_forum");
    26         if (!$row) return;
     28        if (!$row) {
     29                return;
     30        }
    2731
    28         instituer_un_forum($statut,$row);
     32        instituer_un_forum($statut, $row);
    2933}
    3034
    31 function instituer_un_forum($statut, $row){
     35function instituer_un_forum($statut, $row) {
    3236
    3337        $id_forum = $row['id_forum'];
    3438        $old = $row['statut'];
    35  // rien a faire si pas de changement de statut
    36         if ($old==$statut)
     39        // rien a faire si pas de changement de statut
     40        if ($old == $statut) {
    3741                return;
     42        }
    3843
    3944        // changer le statut de toute l'arborescence dependant de ce message
    4045        $id_messages = array($id_forum);
    4146        while ($id_messages) {
    42                 sql_updateq("spip_forum", array("statut" => $statut), sql_in("id_forum", $id_messages) ." AND statut = '$old'");
     47                sql_updateq("spip_forum", array("statut" => $statut), sql_in("id_forum", $id_messages) . " AND statut = '$old'");
    4348
    44                 $id_messages = array_map('reset',sql_allfetsel("id_forum", "spip_forum", sql_in("id_parent", $id_messages)));
     49                $id_messages = array_map('reset', sql_allfetsel("id_forum", "spip_forum", sql_in("id_parent", $id_messages)));
    4550        }
    4651
    4752        // Notifier de la publication du message, s'il etait 'prop'
    48         if ($old=='prop' AND $statut=='publie') {
     53        if ($old == 'prop' AND $statut == 'publie') {
    4954                if ($notifications = charger_fonction('notifications', 'inc')) {
    5055                        $notifications('forumvalide', $id_forum);
     
    5964        // car la date_thread aurait cette derniere date alors que pas le message
    6065        // mais c'est au mieux de ce que l'on peut faire quand on depublie un SPAM ou supprime un message
    61         if ($statut=='publie' OR $old=='publie') {
    62                 if ($statut=='publie'
    63                         OR !($date_thread = sql_getfetsel("date_heure", "spip_forum", "statut='publie' AND id_thread=".$row['id_thread'], "", "date_heure DESC","0,1"))){
     66        if ($statut == 'publie' OR $old == 'publie') {
     67                if ($statut == 'publie'
     68                        OR !($date_thread = sql_getfetsel("date_heure", "spip_forum",
     69                                "statut='publie' AND id_thread=" . $row['id_thread'], "", "date_heure DESC", "0,1"))
     70                ) {
    6471                        $date_thread = date('Y-m-d H:i:s');
    6572                }
    66                 sql_updateq("spip_forum", array("date_thread" => $date_thread), "id_thread=".$row['id_thread']);
     73                sql_updateq("spip_forum", array("date_thread" => $date_thread), "id_thread=" . $row['id_thread']);
    6774        }
    6875
     
    7077        include_spip('inc/invalideur');
    7178        suivre_invalideur("id='forum/$id_forum'");
    72         suivre_invalideur("id='".$row['objet']."/".$row['id_objet']."'");
     79        suivre_invalideur("id='" . $row['objet'] . "/" . $row['id_objet'] . "'");
    7380
    7481        // Reindexation du thread (par exemple)
     
    8289                                'id_objet' => $id_forum,
    8390                                'action' => 'instituer',
    84                                 'statut_ancien'=> $old,
     91                                'statut_ancien' => $old,
    8592                        ),
    86                         'data' => array('statut'=>$statut)
     93                        'data' => array('statut' => $statut)
    8794                )
    8895        );
  • _core_/plugins/forum/action/instituer_lot_forum.php

    r93092 r93612  
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined("_ECRIRE_INC_VERSION")) {
     14        return;
     15}
    1416
    1517// http://code.spip.net/@action_instituer_forum_dist
    1618function action_instituer_lot_forum_dist($arg = null) {
    1719
    18         if (is_null($arg)){
     20        if (is_null($arg)) {
    1921                $securiser_action = charger_fonction('securiser_action', 'inc');
    2022                $arg = $securiser_action();
     
    2224
    2325        // verifier les droits
    24         if (autoriser('instituer','forum',0)){
     26        if (autoriser('instituer', 'forum', 0)) {
    2527
    2628                /**
     
    2931                 *
    3032                 */
    31                 if (preg_match(",^(\w+)-,",$arg,$match)
    32                  AND in_array($statut=$match[1],array('publie','off','spam'))){
    33                         $arg = substr($arg,strlen($statut)+1);
     33                if (preg_match(",^(\w+)-,", $arg, $match)
     34                        AND in_array($statut = $match[1], array('publie', 'off', 'spam'))
     35                ) {
     36                        $arg = substr($arg, strlen($statut)+1);
    3437
    35                         $arg = explode('/',$arg);
     38                        $arg = explode('/', $arg);
    3639                        $ip = array_shift($arg);
    3740                        $email_auteur = array_shift($arg);
    3841                        $id_auteur = intval(array_shift($arg));
    39                         $auteur = implode('/',$arg);
     42                        $auteur = implode('/', $arg);
    4043                        $where = array();
    4144                        // pas de moderation par lot sur les forum prives
    42                         $where[] = sql_in('statut',array('privadm','prive','privrac'),'NOT');
    43                         if ($ip) $where[] = "ip=".sql_quote($ip);
    44                         if ($email_auteur) $where[] = "email_auteur=".sql_quote($email_auteur);
    45                         if ($id_auteur) $where[] = "id_auteur=".intval($id_auteur);
    46                         if ($auteur) $where[] = "auteur=".sql_quote($auteur);
     45                        $where[] = sql_in('statut', array('privadm', 'prive', 'privrac'), 'NOT');
     46                        if ($ip) {
     47                                $where[] = "ip=" . sql_quote($ip);
     48                        }
     49                        if ($email_auteur) {
     50                                $where[] = "email_auteur=" . sql_quote($email_auteur);
     51                        }
     52                        if ($id_auteur) {
     53                                $where[] = "id_auteur=" . intval($id_auteur);
     54                        }
     55                        if ($auteur) {
     56                                $where[] = "auteur=" . sql_quote($auteur);
     57                        }
    4758                        $rows = sql_allfetsel("*", "spip_forum", $where);
    48                         if (!count($rows)) return;
     59                        if (!count($rows)) {
     60                                return;
     61                        }
    4962
    5063                        include_spip('action/instituer_forum');
    5164                        foreach ($rows as $row) {
    52                                 instituer_un_forum($statut,$row);
     65                                instituer_un_forum($statut, $row);
    5366                        }
    54                 }
    55                 /**
     67                } /**
    5668                 * Cas 2 : seul le statut est explicite et signe
    5769                 * les id concernes sont passes en arg supplementaires
    5870                 * dans un taleau ids[]
    5971                 */
    60                 elseif (preg_match(",^(\w+)$,",$arg,$match)
    61                  AND in_array($statut=$match[1],array('publie','off','spam'))
    62                  AND $id=_request('ids')
    63                  AND is_array($id)){
     72                elseif (preg_match(",^(\w+)$,", $arg, $match)
     73                        AND in_array($statut = $match[1], array('publie', 'off', 'spam'))
     74                        AND $id = _request('ids')
     75                        AND is_array($id)
     76                ) {
    6477
    65                         $ids = array_map('intval',$id);
     78                        $ids = array_map('intval', $id);
    6679                        $where = array();
    6780                        // pas de moderation par lot sur les forum prives
    68                         $where[] = sql_in('statut',array('privadm','prive','privrac'),'NOT');
    69                         $where[] = sql_in('id_forum',$ids);
     81                        $where[] = sql_in('statut', array('privadm', 'prive', 'privrac'), 'NOT');
     82                        $where[] = sql_in('id_forum', $ids);
    7083                        $rows = sql_allfetsel("*", "spip_forum", $where);
    71                         if (!count($rows)) return;
     84                        if (!count($rows)) {
     85                                return;
     86                        }
    7287
    7388                        include_spip('action/instituer_forum');
    7489                        foreach ($rows as $row) {
    75                                 instituer_un_forum($statut,$row);
     90                                instituer_un_forum($statut, $row);
    7691                        }
    7792                }
    78         }
    79         else {
    80                 spip_log("instituer_lot_forum interdit pour auteur ".$GLOBALS['visiteur_session']['id_auteur'],_LOG_ERREUR);
     93        } else {
     94                spip_log("instituer_lot_forum interdit pour auteur " . $GLOBALS['visiteur_session']['id_auteur'], _LOG_ERREUR);
    8195        }
    8296
  • _core_/plugins/forum/balise/formulaire_forum.php

    r93092 r93612  
    1515 *
    1616 * @package SPIP\Forum\Balises
    17 **/
    18 if (!defined("_ECRIRE_INC_VERSION")) return;    #securite
     17 **/
     18if (!defined("_ECRIRE_INC_VERSION")) {
     19        return;
     20}  #securite
    1921
    2022include_spip('inc/acces');
     
    3234 * `$afficher_groupe[]` est définie dans le fichier d'appel, et si la table
    3335 * de référence est OK, la liste des mots-clés est alors proposée.
    34  * 
     36 *
    3537 * @balise
    3638 * @link http://www.spip.net/3969 Balise `#FORMULAIRE_FORUM`
     
    4850 *     Pile complétée par le code à générer
    4951 */
    50 function balise_FORMULAIRE_FORUM ($p) {
     52function balise_FORMULAIRE_FORUM($p) {
    5153        /**
    5254         * On recupere $objet et $id_objet depuis une boucle englobante si possible
     
    5658         */
    5759
    58         $i_boucle  = $p->nom_boucle ? $p->nom_boucle : $p->id_boucle;
     60        $i_boucle = $p->nom_boucle ? $p->nom_boucle : $p->id_boucle;
    5961        if ($i_boucle) { // La balise peut aussi être utilisée hors boucle.
    6062                $_id_objet = $p->boucles[$i_boucle]->primary;
    61                 $_type     = $p->boucles[$i_boucle]->id_table;
     63                $_type = $p->boucles[$i_boucle]->id_table;
    6264        } else {
    6365                $_id_objet = $_type = null;
     
    7880                'forcer_previsu'
    7981        );
    80        
     82
    8183        if ($ids) {
    8284                $obtenir = array_merge($obtenir, $ids);
    8385        }
    8486
    85         $p = calculer_balise_dynamique($p,'FORMULAIRE_FORUM', $obtenir,
     87        $p = calculer_balise_dynamique($p, 'FORMULAIRE_FORUM', $obtenir,
    8688                array("'$_type'", count($ids))
    8789        );
     
    104106 */
    105107function balise_FORMULAIRE_FORUM_stat($args, $context_compil) {
    106        
     108
    107109
    108110        // un arg peut contenir l'url sur lequel faire le retour
     
    119121        $forcer_previsu = array_shift($args);
    120122
    121         $r = balise_forum_retrouve_objet($ido,$id_forum,$args,$context_compil);
    122         if (!$r)
     123        $r = balise_forum_retrouve_objet($ido, $id_forum, $args, $context_compil);
     124        if (!$r) {
    123125                return false;
     126        }
    124127
    125128        list($objet, $id_objet, $retour) = $r;
     
    130133        // (ie compatibilite)
    131134        $accepter_forum = controler_forum($objet, $id_objet);
    132         if ($accepter_forum == 'non')
     135        if ($accepter_forum == 'non') {
    133136                return false;
     137        }
    134138
    135139        return
    136                 array($objet,
    137                 $id_objet, $id_forum, $ajouter_mot, $ajouter_groupe, $forcer_previsu, $retour);
     140                array(
     141                        $objet,
     142                        $id_objet,
     143                        $id_forum,
     144                        $ajouter_mot,
     145                        $ajouter_groupe,
     146                        $forcer_previsu,
     147                        $retour
     148                );
    138149}
    139150
     
    144155 * dans l'environnement, sinon on tente de le retrouver depuis un autre
    145156 * message de forum
    146  * 
     157 *
    147158 * @param int $ido
    148159 * @param int $id_forum
     
    152163 * @return array|bool
    153164 */
    154 function balise_forum_retrouve_objet($ido, $id_forum, $args, $context_compil, $objet_obligatoire = true){
    155         $_objet     = $context_compil[5]; // type le la boucle deja calcule
     165function balise_forum_retrouve_objet($ido, $id_forum, $args, $context_compil, $objet_obligatoire = true) {
     166        $_objet = $context_compil[5]; // type le la boucle deja calcule
    156167        $nb_ids_env = $context_compil[6]; // nombre d'elements id_xx recuperes
    157         $nb         = $nb_ids_env;
    158         $url        = isset($args[$nb]) ? $args[$nb] : '';
    159         $objet      = isset($args[++$nb]) ? $args[$nb] : '';
    160         $id_objet   = isset($args[++$nb]) ? $args[$nb] : 0;
     168        $nb = $nb_ids_env;
     169        $url = isset($args[$nb]) ? $args[$nb] : '';
     170        $objet = isset($args[++$nb]) ? $args[$nb] : '';
     171        $id_objet = isset($args[++$nb]) ? $args[$nb] : 0;
    161172
    162173        // pas d'objet force ? on prend le type de boucle calcule
     
    174185        if (!$objet) {
    175186                $objets = forum_get_objets_depuis_env();
    176                 $ids = array(); $i = 0;
     187                $ids = array();
     188                $i = 0;
    177189                foreach ($objets as $o => $ido) {
    178190                        if ($id = $args[$i]) {
     
    181193                        $i++;
    182194                }
    183                 if (count($ids)>1) {
     195                if (count($ids) > 1) {
    184196                        if (isset($ids['rubrique'])) {
    185197                                unset($ids['rubrique']);
     
    194206
    195207        // et si on n'a toujours pas ce qu'on souhaite, on tente de le trouver dans un forum existant...
    196         if (($objet=='forum' OR !$id_objet) and $id_forum){
     208        if (($objet == 'forum' OR !$id_objet) and $id_forum) {
    197209                if ($objet = sql_fetsel(array('id_objet', 'objet'), 'spip_forum', 'id_forum=' . intval($id_forum))) {
    198210                        $id_objet = $objet['id_objet'];
    199211                        $objet = $objet['objet'];
    200212                } else {
    201                         if ($objet_obligatoire)
     213                        if ($objet_obligatoire) {
    202214                                return false;
     215                        }
    203216                }
    204217        }
     
    208221        }
    209222
    210         return array($objet,$id_objet,$url);
     223        return array($objet, $id_objet, $url);
    211224}
     225
    212226?>
  • _core_/plugins/forum/balise/formulaire_forum_prive.php

    r81006 r93612  
    1515 *
    1616 * @package SPIP\Forum\Balises
    17 **/
    18 if (!defined("_ECRIRE_INC_VERSION")) return;    #securite
     17 **/
     18if (!defined("_ECRIRE_INC_VERSION")) {
     19        return;
     20}  #securite
    1921
    2022include_spip('inc/acces');
     
    3335 * `$afficher_groupe[]` est définie dans le fichier d'appel, et si la table
    3436 * de référence est OK, la liste des mots-clés est alors proposée.
    35  * 
     37 *
    3638 * @balise
    3739 * @see balise_FORMULAIRE_FORUM()
     
    4850 *     Pile complétée par le code à générer
    4951 */
    50 function balise_FORMULAIRE_FORUM_PRIVE ($p) {
     52function balise_FORMULAIRE_FORUM_PRIVE($p) {
    5153
    5254        /**
     
    5658         * Enfin, on pourra aussi forcer objet et id_objet depuis l'appel du formulaire
    5759         */
    58         $i_boucle  = $p->nom_boucle ? $p->nom_boucle : $p->id_boucle;
     60        $i_boucle = $p->nom_boucle ? $p->nom_boucle : $p->id_boucle;
    5961        if (isset($p->boucles[$i_boucle])) {
    6062                $_id_objet = $p->boucles[$i_boucle]->primary;
    61                 $_type     = $p->boucles[$i_boucle]->id_table;
     63                $_type = $p->boucles[$i_boucle]->id_table;
    6264        } else {
    6365                $_id_objet = $_type = '';
     
    8385        }
    8486
    85         $p = calculer_balise_dynamique($p,'FORMULAIRE_FORUM_PRIVE', $obtenir,
     87        $p = calculer_balise_dynamique($p, 'FORMULAIRE_FORUM_PRIVE', $obtenir,
    8688                array("'$_type'", count($ids))
    8789        );
     
    113115        include_spip('balise/formulaire_forum');
    114116        // si statut privrac ou privadm, pas besoin d'objet !
    115         $r = balise_forum_retrouve_objet($ido,$id_forum,$args,$context_compil,!in_array($statut,array('privrac','privadm')));
    116         if (!$r)
     117        $r = balise_forum_retrouve_objet($ido, $id_forum, $args, $context_compil,
     118                !in_array($statut, array('privrac', 'privadm')));
     119        if (!$r) {
    117120                return false;
     121        }
    118122
    119123        list($objet, $id_objet, $retour) = $r;
  • _core_/plugins/forum/base/forum.php

    r87494 r93612  
    1515 *
    1616 * @package SPIP\Core\Pipelines
    17 **/
     17 **/
    1818
    19 if (!defined('_ECRIRE_INC_VERSION')) return;
     19if (!defined('_ECRIRE_INC_VERSION')) {
     20        return;
     21}
    2022
    2123/**
     
    2628 * @return array $interfaces
    2729 */
    28 function forum_declarer_tables_interfaces($interfaces){
     30function forum_declarer_tables_interfaces($interfaces) {
    2931
    30         $interfaces['table_des_tables']['forums']='forum';
     32        $interfaces['table_des_tables']['forums'] = 'forum';
    3133
    32         $interfaces['exceptions_des_tables']['forums']['date']='date_heure';
    33         $interfaces['exceptions_des_tables']['forums']['nom']='auteur';
    34         $interfaces['exceptions_des_tables']['forums']['email']='email_auteur';
     34        $interfaces['exceptions_des_tables']['forums']['date'] = 'date_heure';
     35        $interfaces['exceptions_des_tables']['forums']['nom'] = 'auteur';
     36        $interfaces['exceptions_des_tables']['forums']['email'] = 'email_auteur';
    3537
    3638        // il ne faut pas essayer de chercher le forum du mot cle, mais bien le mot cle associe au forum
    37         $interfaces['exceptions_des_jointures']['spip_forum']['id_secteur'] = array('spip_articles','id_secteur');
    38         $interfaces['exceptions_des_jointures']['spip_forum']['id_mot'] = array('spip_mots','id_mot');
    39         $interfaces['exceptions_des_jointures']['spip_forum']['titre_mot'] = array('spip_mots','titre');
    40         $interfaces['exceptions_des_jointures']['spip_forum']['type_mot'] = array('spip_mots','type');
    41         $interfaces['exceptions_des_jointures']['spip_forum']['id_groupe'] = array('spip_mots','id_groupe');
     39        $interfaces['exceptions_des_jointures']['spip_forum']['id_secteur'] = array('spip_articles', 'id_secteur');
     40        $interfaces['exceptions_des_jointures']['spip_forum']['id_mot'] = array('spip_mots', 'id_mot');
     41        $interfaces['exceptions_des_jointures']['spip_forum']['titre_mot'] = array('spip_mots', 'titre');
     42        $interfaces['exceptions_des_jointures']['spip_forum']['type_mot'] = array('spip_mots', 'type');
     43        $interfaces['exceptions_des_jointures']['spip_forum']['id_groupe'] = array('spip_mots', 'id_groupe');
    4244
    43        
     45
    4446        #$interfaces['table_titre']['forums']= "titre, '' AS lang";
    4547        #$interfaces['table_date']['forums']='date_heure';
    4648
    47         $interfaces['table_statut']['spip_forum'][] = array('champ'=>'statut','publie'=>'publie','previsu'=>'publie,prop','exception'=>'statut');
     49        $interfaces['table_statut']['spip_forum'][] = array(
     50                'champ' => 'statut',
     51                'publie' => 'publie',
     52                'previsu' => 'publie,prop',
     53                'exception' => 'statut'
     54        );
    4855
    49         $interfaces['table_des_traitements']['PARAMETRES_FORUM'][]= 'spip_htmlspecialchars(%s)';
    50         $interfaces['table_des_traitements']['TEXTE']['forums']= "liens_nofollow(safehtml(".str_replace("%s","interdit_html(%s)",_TRAITEMENT_RACCOURCIS)."))";
    51         $interfaces['table_des_traitements']['TITRE']['forums']= "liens_nofollow(safehtml(".str_replace("%s","interdit_html(%s)",_TRAITEMENT_TYPO)."))";
    52         $interfaces['table_des_traitements']['NOTES']['forums']= "liens_nofollow(safehtml(".str_replace("%s","interdit_html(%s)",_TRAITEMENT_RACCOURCIS)."))";
    53         $interfaces['table_des_traitements']['NOM_SITE']['forums']=  "liens_nofollow(safehtml(".str_replace("%s","interdit_html(%s)",_TRAITEMENT_TYPO)."))";
    54         $interfaces['table_des_traitements']['URL_SITE']['forums']= 'safehtml(vider_url(%s))';
    55         $interfaces['table_des_traitements']['AUTEUR']['forums']= 'liens_nofollow(safehtml(vider_url(%s)))';
    56         $interfaces['table_des_traitements']['EMAIL_AUTEUR']['forums']= 'safehtml(vider_url(%s))';
     56        $interfaces['table_des_traitements']['PARAMETRES_FORUM'][] = 'spip_htmlspecialchars(%s)';
     57        $interfaces['table_des_traitements']['TEXTE']['forums'] = "liens_nofollow(safehtml(" . str_replace("%s",
     58                        "interdit_html(%s)", _TRAITEMENT_RACCOURCIS) . "))";
     59        $interfaces['table_des_traitements']['TITRE']['forums'] = "liens_nofollow(safehtml(" . str_replace("%s",
     60                        "interdit_html(%s)", _TRAITEMENT_TYPO) . "))";
     61        $interfaces['table_des_traitements']['NOTES']['forums'] = "liens_nofollow(safehtml(" . str_replace("%s",
     62                        "interdit_html(%s)", _TRAITEMENT_RACCOURCIS) . "))";
     63        $interfaces['table_des_traitements']['NOM_SITE']['forums'] = "liens_nofollow(safehtml(" . str_replace("%s",
     64                        "interdit_html(%s)", _TRAITEMENT_TYPO) . "))";
     65        $interfaces['table_des_traitements']['URL_SITE']['forums'] = 'safehtml(vider_url(%s))';
     66        $interfaces['table_des_traitements']['AUTEUR']['forums'] = 'liens_nofollow(safehtml(vider_url(%s)))';
     67        $interfaces['table_des_traitements']['EMAIL_AUTEUR']['forums'] = 'safehtml(vider_url(%s))';
    5768
    5869        return $interfaces;
     
    6677 * @return array $tables Tableau des objets complété
    6778 */
    68 function forum_declarer_tables_objets_sql($tables){
     79function forum_declarer_tables_objets_sql($tables) {
    6980        $tables['spip_forum'] = array(
    70                 'table_objet'=>'forums', # ??? hum hum redevient spip_forum par table_objet_sql mais casse par un bete "spip_".table_objet()
    71                 'type'=>'forum',
    72                 'url_voir'=>'controler_forum',
    73                 'url_edit'=>'controler_forum',
    74                 'editable'=>'non',
     81                'table_objet' => 'forums',
     82                # ??? hum hum redevient spip_forum par table_objet_sql mais casse par un bete "spip_".table_objet()
     83                'type' => 'forum',
     84                'url_voir' => 'controler_forum',
     85                'url_edit' => 'controler_forum',
     86                'editable' => 'non',
    7587                'principale' => 'oui',
    76                 'page'=>'', // pas de page editoriale pour un forum
     88                'page' => '',
     89                // pas de page editoriale pour un forum
    7790
    7891                'texte_retour' => 'icone_retour',
    7992                'texte_objets' => 'forum:forum',
    8093                'texte_objet' => 'forum:forum',
    81                 'info_aucun_objet'=> 'forum:aucun_message_forum',
     94                'info_aucun_objet' => 'forum:aucun_message_forum',
    8295                'info_1_objet' => 'forum:info_1_message_forum',
    8396                'info_nb_objets' => 'forum:info_nb_messages_forum',
     
    87100                'champs_editables' => array('titre', 'texte', 'nom_site', 'url_site'),
    88101
    89                 'field'=> array(
    90                         "id_forum"      => "bigint(21) NOT NULL",
    91                         "id_objet"      => "bigint(21) DEFAULT '0' NOT NULL",
    92                         "objet"         => "VARCHAR (25) DEFAULT '' NOT NULL",
    93                         "id_parent"     => "bigint(21) DEFAULT '0' NOT NULL",
    94                         "id_thread"     => "bigint(21) DEFAULT '0' NOT NULL",
    95                         "date_heure"    => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
    96                         "date_thread"   => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
    97                         "titre" => "text DEFAULT '' NOT NULL",
    98                         "texte" => "mediumtext DEFAULT '' NOT NULL",
    99                         "auteur"        => "text DEFAULT '' NOT NULL",
    100                         "email_auteur"  => "text DEFAULT '' NOT NULL",
    101                         "nom_site"      => "text DEFAULT '' NOT NULL",
    102                         "url_site"      => "text DEFAULT '' NOT NULL",
    103                         "statut"        => "varchar(8) DEFAULT '0' NOT NULL",
    104                         "ip"    => "varchar(40) DEFAULT '' NOT NULL",
    105                         "maj"   => "TIMESTAMP",
    106                         "id_auteur"     => "bigint DEFAULT '0' NOT NULL"
     102                'field' => array(
     103                        "id_forum" => "bigint(21) NOT NULL",
     104                        "id_objet" => "bigint(21) DEFAULT '0' NOT NULL",
     105                        "objet" => "VARCHAR (25) DEFAULT '' NOT NULL",
     106                        "id_parent" => "bigint(21) DEFAULT '0' NOT NULL",
     107                        "id_thread" => "bigint(21) DEFAULT '0' NOT NULL",
     108                        "date_heure" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
     109                        "date_thread" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
     110                        "titre" => "text DEFAULT '' NOT NULL",
     111                        "texte" => "mediumtext DEFAULT '' NOT NULL",
     112                        "auteur" => "text DEFAULT '' NOT NULL",
     113                        "email_auteur" => "text DEFAULT '' NOT NULL",
     114                        "nom_site" => "text DEFAULT '' NOT NULL",
     115                        "url_site" => "text DEFAULT '' NOT NULL",
     116                        "statut" => "varchar(8) DEFAULT '0' NOT NULL",
     117                        "ip" => "varchar(40) DEFAULT '' NOT NULL",
     118                        "maj" => "TIMESTAMP",
     119                        "id_auteur" => "bigint DEFAULT '0' NOT NULL"
    107120                ),
    108121                'key' => array(
    109                         "PRIMARY KEY"   => "id_forum",
    110                         "KEY id_auteur" => "id_auteur",
    111                         "KEY id_parent" => "id_parent",
    112                         "KEY id_thread" => "id_thread",
     122                        "PRIMARY KEY" => "id_forum",
     123                        "KEY id_auteur" => "id_auteur",
     124                        "KEY id_parent" => "id_parent",
     125                        "KEY id_thread" => "id_thread",
    113126                        "KEY optimal" => "statut,id_parent,id_objet,objet,date_heure"
    114127                ),
    115128                'join' => array(
    116                         "id_forum"=>"id_forum",
    117                         "id_parent"=>"id_parent",
    118                         "id_objet"=>"id_objet",
    119                         "objet"=>"objet",
    120                         "id_auteur"=>"id_auteur",
     129                        "id_forum" => "id_forum",
     130                        "id_parent" => "id_parent",
     131                        "id_objet" => "id_objet",
     132                        "objet" => "objet",
     133                        "id_auteur" => "id_auteur",
    121134                ),
    122135                'rechercher_champs' => array(
    123                 'titre' => 3, 'texte' => 1, 'auteur' => 2, 'email_auteur' => 2, 'nom_site' => 1, 'url_site' => 1
     136                        'titre' => 3,
     137                        'texte' => 1,
     138                        'auteur' => 2,
     139                        'email_auteur' => 2,
     140                        'nom_site' => 1,
     141                        'url_site' => 1
    124142                ),
    125143        );
    126144
    127145        // jointures sur les forum pour tous les objets
    128         $tables[]['tables_jointures'][]= 'forums';
     146        $tables[]['tables_jointures'][] = 'forums';
    129147
    130148        return $tables;
  • _core_/plugins/forum/formulaires/activer_forums_objet.php

    r93092 r93612  
    1616 *
    1717 * @package SPIP\Forum\Formulaires
    18 **/
    19 if (!defined("_ECRIRE_INC_VERSION")) return;
     18 **/
     19if (!defined("_ECRIRE_INC_VERSION")) {
     20        return;
     21}
    2022
    2123/**
     
    2628 * @return bool
    2729 *     true si les forums publics sont autorisés, false sinon
    28 **/
     30 **/
    2931function get_forums_publics($id_objet = 0, $objet = 'article') {
    3032
    31         if ($objet=='article' AND $id_objet) {
    32                 $obj = sql_fetsel("accepter_forum", "spip_articles", "id_article=".intval($id_objet));
     33        if ($objet == 'article' AND $id_objet) {
     34                $obj = sql_fetsel("accepter_forum", "spip_articles", "id_article=" . intval($id_objet));
    3335
    34                 if ($obj) return $obj['accepter_forum'];
     36                if ($obj) {
     37                        return $obj['accepter_forum'];
     38                }
    3539        } else { // dans ce contexte, inutile
    36                 return substr($GLOBALS['meta']["forums_publics"],0,3);
     40                return substr($GLOBALS['meta']["forums_publics"], 0, 3);
    3741        }
     42
    3843        return $GLOBALS['meta']["forums_publics"];
    3944}
     
    4752 *     Contexte du squelette du formulaire
    4853 */
    49 function formulaires_activer_forums_objet_charger_dist($id_objet, $objet = 'article'){
    50         if (!autoriser('modererforum', $objet, $id_objet))
     54function formulaires_activer_forums_objet_charger_dist($id_objet, $objet = 'article') {
     55        if (!autoriser('modererforum', $objet, $id_objet)) {
    5156                return false;
     57        }
    5258
    5359        include_spip('inc/presentation');
    5460        include_spip('base/abstract_sql');
    55         $nb_forums = sql_countsel("spip_forum", "objet=".sql_quote($objet)." AND id_objet=".intval($id_objet)." AND statut IN ('publie', 'off', 'prop', 'spam')");
    56         $editable = ($objet=='article')?true:false;
    57         if (!$editable AND !$nb_forums)
     61        $nb_forums = sql_countsel("spip_forum",
     62                "objet=" . sql_quote($objet) . " AND id_objet=" . intval($id_objet) . " AND statut IN ('publie', 'off', 'prop', 'spam')");
     63        $editable = ($objet == 'article') ? true : false;
     64        if (!$editable AND !$nb_forums) {
    5865                return false;
     66        }
    5967
    6068        return array(
     
    6371                'id_objet' => $id_objet,
    6472                'accepter_forum' => get_forums_publics($id_objet, $objet),
    65                 '_suivi_forums' => $nb_forums?_T('forum:icone_suivi_forum', array('nb_forums' => $nb_forums)):"",
     73                '_suivi_forums' => $nb_forums ? _T('forum:icone_suivi_forum', array('nb_forums' => $nb_forums)) : "",
    6674        );
    67        
     75
    6876}
    6977
     
    7684 *     Retours des traitements
    7785 */
    78 function formulaires_activer_forums_objet_traiter_dist($id_objet, $objet = 'article'){
     86function formulaires_activer_forums_objet_traiter_dist($id_objet, $objet = 'article') {
    7987        include_spip('inc/autoriser');
    80         if ($objet=='article' AND autoriser('modererforum', $objet, $id_objet)){
     88        if ($objet == 'article' AND autoriser('modererforum', $objet, $id_objet)) {
    8189                $statut = _request('accepter_forum');
    8290                include_spip('base/abstract_sql');
    83                 sql_updateq("spip_articles", array("accepter_forum" => $statut), "id_article=". intval($id_objet));
    84                
     91                sql_updateq("spip_articles", array("accepter_forum" => $statut), "id_article=" . intval($id_objet));
     92
    8593                if ($statut == 'abo') {
    8694                        ecrire_meta('accepter_visiteurs', 'oui');
     
    8997                suivre_invalideur("id='$objet/$id_objet'");
    9098        }
    91                
    92         return array('message_ok'=>_T('config_info_enregistree'),'editable'=>true);
     99
     100        return array('message_ok' => _T('config_info_enregistree'), 'editable' => true);
    93101}
    94102
  • _core_/plugins/forum/formulaires/configurer_forums_contenu.php

    r80919 r93612  
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined("_ECRIRE_INC_VERSION")) {
     14        return;
     15}
    1416
    15 function formulaires_configurer_forums_contenu_charger_dist(){
     17function formulaires_configurer_forums_contenu_charger_dist() {
    1618
    1719        return array(
     
    2325                'formats_documents_forum' => $GLOBALS['meta']['formats_documents_forum'],
    2426        );
    25        
     27
    2628}
    2729
    28 function formulaires_configurer_forums_contenu_verifier_dist(){
     30function formulaires_configurer_forums_contenu_verifier_dist() {
    2931        $erreurs = array();
    3032
    31         if (!_request('forums_titre') AND !_request('forums_texte') AND !_request('forums_urlref'))
     33        if (!_request('forums_titre') AND !_request('forums_texte') AND !_request('forums_urlref')) {
    3234                $erreurs['forums_titre'] = _T('info_obligatoire');
     35        }
    3336
    34         foreach(array('forums_titre','forums_texte','forums_urlref','forums_afficher_barre','forums_forcer_previsu') as $champ)
    35                 if (_request($champ)!=='oui')
    36                         set_request($champ,'non');
    37        
     37        foreach (array(
     38                         'forums_titre',
     39                         'forums_texte',
     40                         'forums_urlref',
     41                         'forums_afficher_barre',
     42                         'forums_forcer_previsu'
     43                 ) as $champ) {
     44                if (_request($champ) !== 'oui') {
     45                        set_request($champ, 'non');
     46                }
     47        }
     48
    3849        return $erreurs;
    3950}
    4051
    41 function formulaires_configurer_forums_contenu_traiter_dist(){
     52function formulaires_configurer_forums_contenu_traiter_dist() {
    4253        include_spip('inc/config');
    4354        appliquer_modifs_config();
    4455
    45         return array('message_ok'=>_T('config_info_enregistree'));
     56        return array('message_ok' => _T('config_info_enregistree'));
    4657}
    4758
  • _core_/plugins/forum/formulaires/configurer_forums_notifications.php

    r79783 r93612  
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined("_ECRIRE_INC_VERSION")) {
     14        return;
     15}
    1416$GLOBALS['liste_des_forums']['forum:bouton_radio_modere_posteriori'] = 'pos';
    1517$GLOBALS['liste_des_forums']['forum:bouton_radio_modere_priori'] = 'pri';
     
    1719$GLOBALS['liste_des_forums']['forum:info_pas_de_forum'] = 'non';
    1820
    19 function formulaires_configurer_forums_notifications_charger_dist(){
     21function formulaires_configurer_forums_notifications_charger_dist() {
    2022        $valeurs = array();
    2123        $m = $GLOBALS['meta']['prevenir_auteurs'];
    2224        $l = $GLOBALS['liste_des_forums'];
    2325        unset($l['forum:info_pas_de_forum']);
    24         foreach ($l as $desc => $val)
    25                 $valeurs['prevenir_auteurs_' . $val] = (($m == 'oui') OR strpos($m,",$val,")!==false);
     26        foreach ($l as $desc => $val) {
     27                $valeurs['prevenir_auteurs_' . $val] = (($m == 'oui') OR strpos($m, ",$val,") !== false);
     28        }
    2629
    2730        return $valeurs;
    2831}
    2932
    30 function formulaires_configurer_forums_notifications_traiter_dist(){
     33function formulaires_configurer_forums_notifications_traiter_dist() {
    3134        include_spip('inc/meta');
    3235
    3336        $res = array();
    3437        foreach ($GLOBALS['liste_des_forums'] as $desc => $val) {
    35                 if (_request('prevenir_auteurs_' . $val)) $res[]=$val;
     38                if (_request('prevenir_auteurs_' . $val)) {
     39                        $res[] = $val;
     40                }
    3641        }
    37         ecrire_meta('prevenir_auteurs', $res ? (','.join(',',$res).',') : 'non');
     42        ecrire_meta('prevenir_auteurs', $res ? (',' . join(',', $res) . ',') : 'non');
    3843
    39         return array('message_ok'=>_T('config_info_enregistree'));
     44        return array('message_ok' => _T('config_info_enregistree'));
    4045}
    4146
  • _core_/plugins/forum/formulaires/configurer_forums_participants.php

    r79783 r93612  
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined("_ECRIRE_INC_VERSION")) {
     14        return;
     15}
    1416
    15 function formulaires_configurer_forums_participants_charger_dist(){
     17function formulaires_configurer_forums_participants_charger_dist() {
    1618
    1719        return array(
    1820                'forums_publics' => $GLOBALS['meta']["forums_publics"],
    1921        );
    20        
     22
    2123}
    2224
    23 function formulaires_configurer_forums_participants_traiter_dist(){
     25function formulaires_configurer_forums_participants_traiter_dist() {
    2426        include_spip('inc/config');
    2527        include_spip('inc/meta');
     
    2729        $purger_skel = false;
    2830        if ($accepter_forum = _request('forums_publics')
    29         AND ($accepter_forum != $GLOBALS['meta']["forums_publics"])) {
     31                AND ($accepter_forum != $GLOBALS['meta']["forums_publics"])
     32        ) {
    3033                $purger_skel = true;
    31                 $accepter_forum = substr($accepter_forum,0,3);
     34                $accepter_forum = substr($accepter_forum, 0, 3);
    3235        }
    3336
     
    4144                        : '';
    4245
    43                 sql_updateq('spip_articles', array('accepter_forum'=>$accepter_forum), $sauf);
     46                sql_updateq('spip_articles', array('accepter_forum' => $accepter_forum), $sauf);
    4447        }
    4548
    46         if ($accepter_forum == 'abo')
     49        if ($accepter_forum == 'abo') {
    4750                ecrire_meta('accepter_visiteurs', 'oui');
     51        }
    4852
    4953        appliquer_modifs_config();
     
    5357        }
    5458
    55         return array('message_ok'=>_T('config_info_enregistree'));
     59        return array('message_ok' => _T('config_info_enregistree'));
    5660}
    5761
  • _core_/plugins/forum/formulaires/configurer_forums_prives.php

    r85372 r93612  
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined("_ECRIRE_INC_VERSION")) {
     14        return;
     15}
    1416
    15 function formulaires_configurer_forums_prives_charger_dist(){
     17function formulaires_configurer_forums_prives_charger_dist() {
    1618
    1719        return array(
    18                 'forum_prive_objets' => explode(',',$GLOBALS['meta']["forum_prive_objets"]),
     20                'forum_prive_objets' => explode(',', $GLOBALS['meta']["forum_prive_objets"]),
    1921                'forum_prive' => $GLOBALS['meta']["forum_prive"],
    2022                'forum_prive_admin' => $GLOBALS['meta']["forum_prive_admin"],
    2123        );
    22        
     24
    2325}
    2426
    25 function formulaires_configurer_forums_prives_traiter_dist(){
    26         $res = array('editable'=>true);
     27function formulaires_configurer_forums_prives_traiter_dist() {
     28        $res = array('editable' => true);
    2729
    28         if (!is_null($v=_request($m='forum_prive_objets')))
    29                 ecrire_meta($m, is_array($v)?implode(',',$v):'');
    30         if (!is_null($v=_request($m='forum_prive')))
    31                 ecrire_meta($m, $v=='oui'?'oui':'non');
    32         if (!is_null($v=_request($m='forum_prive_admin')))
    33                 ecrire_meta($m, $v=='oui'?'oui':'non');
     30        if (!is_null($v = _request($m = 'forum_prive_objets'))) {
     31                ecrire_meta($m, is_array($v) ? implode(',', $v) : '');
     32        }
     33        if (!is_null($v = _request($m = 'forum_prive'))) {
     34                ecrire_meta($m, $v == 'oui' ? 'oui' : 'non');
     35        }
     36        if (!is_null($v = _request($m = 'forum_prive_admin'))) {
     37                ecrire_meta($m, $v == 'oui' ? 'oui' : 'non');
     38        }
    3439
    3540        $res['message_ok'] = _T('config_info_enregistree');
  • _core_/plugins/forum/formulaires/forum.php

    r93092 r93612  
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined("_ECRIRE_INC_VERSION")) {
     14        return;
     15}
    1416
    1517include_spip('inc/forum');
     
    1719/**
    1820 * Identification du formulaire poste : ne pas tenir compte de la previsu et du retour
     21 *
    1922 * @param $objet
    2023 * @param $id_objet
     
    2629 * @return array
    2730 */
    28 function formulaires_forum_identifier_dist($objet, $id_objet, $id_forum, $ajouter_mot, $ajouter_groupe, $afficher_previsu, $retour){
    29         return array($objet, $id_objet, $id_forum,$ajouter_mot, $ajouter_groupe);
     31function formulaires_forum_identifier_dist(
     32        $objet,
     33        $id_objet,
     34        $id_forum,
     35        $ajouter_mot,
     36        $ajouter_groupe,
     37        $afficher_previsu,
     38        $retour
     39) {
     40        return array($objet, $id_objet, $id_forum, $ajouter_mot, $ajouter_groupe);
    3041}
    3142
     
    3344/**
    3445 * Charger l'env du squelette de #FORMULAIRE_FORUM
     46 *
    3547 * @param string $objet
    3648 * @param int $id_objet
     
    4658 * @return array|bool
    4759 */
    48 function formulaires_forum_charger_dist($objet, $id_objet, $id_forum,
    49                                         $ajouter_mot, $ajouter_groupe, $forcer_previsu, $retour){
    50 
    51         if (!function_exists($f = 'forum_recuperer_titre'))
     60function formulaires_forum_charger_dist(
     61        $objet,
     62        $id_objet,
     63        $id_forum,
     64        $ajouter_mot,
     65        $ajouter_groupe,
     66        $forcer_previsu,
     67        $retour
     68) {
     69
     70        if (!function_exists($f = 'forum_recuperer_titre')) {
    5271                $f = 'forum_recuperer_titre_dist';
    53         if (!$titre = $f($objet, $id_objet, $id_forum))
     72        }
     73        if (!$titre = $f($objet, $id_objet, $id_forum)) {
    5474                return false;
     75        }
    5576
    5677        // ca s'apparenterait presque a une autorisation...
    5778        // si on n'avait pas a envoyer la valeur $accepter_forum au formulaire
    5879        $accepter_forum = controler_forum($objet, $id_objet);
    59         if ($accepter_forum=='non'){
     80        if ($accepter_forum == 'non') {
    6081                return false;
    6182        }
     
    6485
    6586        // table a laquelle sont associes les mots :
    66         if ($GLOBALS['meta']["mots_cles_forums"]!="oui")
     87        if ($GLOBALS['meta']["mots_cles_forums"] != "oui") {
    6788                $table = '';
    68         else
     89        } else {
    6990                $table = table_objet($objet);
     91        }
    7092
    7193        // exiger l'authentification des posteurs pour les forums sur abo
    72         if ($accepter_forum=="abo"){
    73                 if (!isset($GLOBALS["visiteur_session"]['statut']) OR !$GLOBALS["visiteur_session"]['statut']){
     94        if ($accepter_forum == "abo") {
     95                if (!isset($GLOBALS["visiteur_session"]['statut']) OR !$GLOBALS["visiteur_session"]['statut']) {
    7496                        return array(
    7597                                'action' => '', #ne sert pas dans ce cas, on la vide pour mutualiser le cache
     
    96118
    97119        // par défaut, on force la prévisualisation du message avant de le poster
    98         if (($forcer_previsu=='non') OR (empty($forcer_previsu) AND $GLOBALS['meta']["forums_forcer_previsu"]=="non"))
     120        if (($forcer_previsu == 'non') OR (empty($forcer_previsu) AND $GLOBALS['meta']["forums_forcer_previsu"] == "non")) {
    99121                $forcer_previsu = 'non';
    100         else
     122        } else {
    101123                $forcer_previsu = 'oui';
    102 
    103         if (_request('formulaire_action')){
     124        }
     125
     126        if (_request('formulaire_action')) {
    104127                $arg = forum_fichier_tmp(join('', $ids));
    105128
     
    107130                // on sait que cette fonction est dans le fichier associe
    108131                $hash = calculer_action_auteur("ajout_forum-$arg");
    109         }
    110         else {
     132        } else {
    111133                $arg = $hash = '';
    112134        }
     
    114136        // pour les hidden
    115137        $script_hidden = "";
    116         foreach ($ids as $id => $v)
     138        foreach ($ids as $id => $v) {
    117139                $script_hidden .= "<input type='hidden' name='$id' value='$v' />";
     140        }
    118141
    119142        $script_hidden .= "<input type='hidden' name='arg' value='$arg' />";
     
    121144        $script_hidden .= "<input type='hidden' name='verif_$hash' value='ok' />";
    122145
    123         if ($formats = forum_documents_acceptes()){
     146        if ($formats = forum_documents_acceptes()) {
    124147                include_spip('inc/securiser_action');
    125148                $cle = calculer_cle_action('ajouter-document-' . $objet . '-' . $id_objet);
    126         }
    127         else {
     149        } else {
    128150                $cle = null;
    129151        }
     
    139161
    140162        return array_merge($vals, array(
    141                 'modere' => (($accepter_forum!='pri') ? '' : ' '),
     163                'modere' => (($accepter_forum != 'pri') ? '' : ' '),
    142164                'table' => $table,
    143                 'config' => array('afficher_barre' => ($GLOBALS['meta']['forums_afficher_barre']!='non' ? ' ' : '')),
     165                'config' => array('afficher_barre' => ($GLOBALS['meta']['forums_afficher_barre'] != 'non' ? ' ' : '')),
    144166                '_hidden' => $script_hidden, # pour les variables hidden qui seront inserees dans le form et dans le form de previsu
    145167                'cle_ajouter_document' => $cle,
     
    172194 * @return int
    173195 */
    174 function forum_fichier_tmp($arg){
     196function forum_fichier_tmp($arg) {
    175197# astuce : mt_rand pour autoriser les hits simultanes
    176198        while (($alea = time()+@mt_rand())+intval($arg)
    177                 AND @file_exists($f = _DIR_TMP . "forum_$alea.lck")){
    178         }
    179         ;
     199                AND @file_exists($f = _DIR_TMP . "forum_$alea.lck")) {
     200        };
    180201        spip_touch($f);
    181202
    182203# et maintenant on purge les locks de forums ouverts depuis > 4 h
    183204
    184         if ($dh = @opendir(_DIR_TMP)){
    185                 while (($file = @readdir($dh))!==false){
     205        if ($dh = @opendir(_DIR_TMP)) {
     206                while (($file = @readdir($dh)) !== false) {
    186207                        if (preg_match('/^forum_([0-9]+)\.lck$/', $file)
    187                                 AND (time()-@filemtime(_DIR_TMP . $file)>4*3600)
    188                         )
     208                                AND (time()-@filemtime(_DIR_TMP . $file) > 4*3600)
     209                        ) {
    189210                                spip_unlink(_DIR_TMP . $file);
    190                 }
    191         }
     211                        }
     212                }
     213        }
     214
    192215        return $alea;
    193216}
     
    195218/**
    196219 * Verifier la saisie de #FORMULAIRE_FORUM
     220 *
    197221 * @param string $objet
    198222 * @param int $id_objet
     
    208232 * @return array|bool
    209233 */
    210 function formulaires_forum_verifier_dist($objet, $id_objet, $id_forum,
    211                                          $ajouter_mot, $ajouter_groupe, $forcer_previsu, $retour){
     234function formulaires_forum_verifier_dist(
     235        $objet,
     236        $id_objet,
     237        $id_forum,
     238        $ajouter_mot,
     239        $ajouter_groupe,
     240        $forcer_previsu,
     241        $retour
     242) {
    212243        include_spip('inc/acces');
    213244        include_spip('inc/texte');
     
    216247
    217248        // par défaut, on force la prévisualisation du message avant de le poster
    218         if (($forcer_previsu=='non') OR (empty($forcer_previsu) AND $GLOBALS['meta']["forums_forcer_previsu"]=="non"))
     249        if (($forcer_previsu == 'non') OR (empty($forcer_previsu) AND $GLOBALS['meta']["forums_forcer_previsu"] == "non")) {
    219250                $forcer_previsu = 'non';
    220         else
     251        } else {
    221252                $forcer_previsu = 'oui';
     253        }
    222254
    223255        $erreurs = array();
     
    232264
    233265        if (isset($_FILES['ajouter_document'])
    234                 AND $_FILES['ajouter_document']['tmp_name']){
     266                AND $_FILES['ajouter_document']['tmp_name']
     267        ) {
    235268
    236269                $acceptes = forum_documents_acceptes();
     
    241274                        // verifier si on possede la cle (ie on est autorise a poster)
    242275                        // (sinon tant pis) ; cf. charger.php pour la definition de la cle
    243                   OR _request('cle_ajouter_document')!=calculer_cle_action($a = "ajouter-document-$objet-$id_objet")
    244                 ){
     276                        OR _request('cle_ajouter_document') != calculer_cle_action($a = "ajouter-document-$objet-$id_objet")
     277                ) {
    245278                        $erreurs['document_forum'] = _T('forum:documents_interdits_forum');
    246279                        unset($_FILES['ajouter_document']);
    247                 }
    248                 else {
    249                         if (!isset($GLOBALS['visiteur_session']['tmp_forum_document']))
     280                } else {
     281                        if (!isset($GLOBALS['visiteur_session']['tmp_forum_document'])) {
    250282                                session_set('tmp_forum_document', sous_repertoire(_DIR_TMP, 'documents_forum') . md5(uniqid(rand())));
     283                        }
    251284
    252285                        $tmp = $GLOBALS['visiteur_session']['tmp_forum_document'];
     
    257290                        list($extension, $doc['name']) = fixer_extension_document($doc);
    258291
    259                         if (!in_array($extension, $acceptes)){
     292                        if (!in_array($extension, $acceptes)) {
    260293                                $erreurs['document_forum'] = _T('public:formats_acceptes', array('formats' => join(', ', $acceptes)));
    261                         }
    262                         else {
     294                        } else {
    263295                                include_spip('inc/getdocument');
    264                                 if (!deplacer_fichier_upload($doc['tmp_name'], $tmp . '.bin'))
     296                                if (!deplacer_fichier_upload($doc['tmp_name'], $tmp . '.bin')) {
    265297                                        $erreurs['document_forum'] = _T('copie_document_impossible');
     298                                }
    266299
    267300                                #               else if (...)
     
    271304
    272305                        // si ok on stocke les meta donnees, sinon on efface
    273                         if (isset($erreurs['document_forum'])){
     306                        if (isset($erreurs['document_forum'])) {
    274307                                spip_unlink($tmp . '.bin');
    275308                                unset ($_FILES['ajouter_document']);
     
    279312                        }
    280313                }
    281         }
    282         // restaurer/supprimer le document eventuellement uploade au tour precedent
     314        } // restaurer/supprimer le document eventuellement uploade au tour precedent
    283315        elseif (isset($GLOBALS['visiteur_session']['tmp_forum_document'])
    284           AND $tmp = $GLOBALS['visiteur_session']['tmp_forum_document']
    285           AND file_exists($tmp . '.bin')){
    286                 if (_request('supprimer_document_ajoute')){
     316                AND $tmp = $GLOBALS['visiteur_session']['tmp_forum_document']
     317                AND file_exists($tmp . '.bin')
     318        ) {
     319                if (_request('supprimer_document_ajoute')) {
    287320                        spip_unlink($tmp . '.bin');
    288321                        spip_unlink($tmp . '.txt');
    289                 }
    290                 elseif (lire_fichier($tmp . '.txt', $meta)){
     322                } elseif (lire_fichier($tmp . '.txt', $meta)) {
    291323                        $doc = &$_FILES['ajouter_document'];
    292324                        $doc = @unserialize($meta);
     
    295327
    296328        $min_length = (defined('_FORUM_LONGUEUR_MINI') ? _FORUM_LONGUEUR_MINI : 10);
    297         if (strlen($texte = _request('texte'))<$min_length
    298                 AND !$ajouter_mot AND $GLOBALS['meta']['forums_texte']=='oui'
    299         ){
    300                 $erreurs['texte'] = _T($min_length==10 ? 'forum:forum_attention_dix_caracteres' : 'forum:forum_attention_nb_caracteres_mini', array('min' => $min_length));
    301         }
    302         elseif (defined('_FORUM_LONGUEUR_MAXI')
    303           AND _FORUM_LONGUEUR_MAXI>0
    304           AND strlen($texte)>_FORUM_LONGUEUR_MAXI){
     329        if (strlen($texte = _request('texte')) < $min_length
     330                AND !$ajouter_mot AND $GLOBALS['meta']['forums_texte'] == 'oui'
     331        ) {
     332                $erreurs['texte'] = _T($min_length == 10 ? 'forum:forum_attention_dix_caracteres' : 'forum:forum_attention_nb_caracteres_mini',
     333                        array('min' => $min_length));
     334        } elseif (defined('_FORUM_LONGUEUR_MAXI')
     335                AND _FORUM_LONGUEUR_MAXI > 0
     336                AND strlen($texte) > _FORUM_LONGUEUR_MAXI
     337        ) {
    305338                $erreurs['texte'] = _T('forum:forum_attention_trop_caracteres',
    306339                        array(
     
    310343        }
    311344
    312         if (array_reduce($_POST, 'reduce_strlen', (20*1024))<0){
     345        if (array_reduce($_POST, 'reduce_strlen', (20*1024)) < 0) {
    313346                $erreurs['erreur_message'] = _T('forum:forum_message_trop_long');
    314         }
    315         else {
     347        } else {
    316348                // Ne pas autoriser d'envoi hacke si forum sur abonnement
    317                 if (controler_forum($objet, $id_objet)=='abo'
    318                         AND !test_espace_prive()){
     349                if (controler_forum($objet, $id_objet) == 'abo'
     350                        AND !test_espace_prive()
     351                ) {
    319352                        if (!isset($GLOBALS['visiteur_session'])
    320                                 OR !isset($GLOBALS['visiteur_session']['statut'])){
     353                                OR !isset($GLOBALS['visiteur_session']['statut'])
     354                        ) {
    321355                                $erreurs['erreur_message'] = _T('forum_non_inscrit');
    322                         }
    323                         elseif ($GLOBALS['visiteur_session']['statut']=='5poubelle') {
     356                        } elseif ($GLOBALS['visiteur_session']['statut'] == '5poubelle') {
    324357                                $erreurs['erreur_message'] = _T('forum:forum_acces_refuse');
    325358                        }
     
    327360        }
    328361
    329         if (strlen($titre = _request('titre'))<3
    330           AND $GLOBALS['meta']['forums_titre']=='oui'){
     362        if (strlen($titre = _request('titre')) < 3
     363                AND $GLOBALS['meta']['forums_titre'] == 'oui'
     364        ) {
    331365                $erreurs['titre'] = _T('forum:forum_attention_trois_caracteres');
    332366        }
    333367
    334         if (!count($erreurs) AND !_request('confirmer_previsu_forum')){
    335                 if (!_request('envoyer_message') OR $forcer_previsu<>'non') {
    336                         $previsu = inclure_previsu($texte, $titre, _request('url_site'), _request('nom_site'), _request('ajouter_mot'), $doc,
     368        if (!count($erreurs) AND !_request('confirmer_previsu_forum')) {
     369                if (!_request('envoyer_message') OR $forcer_previsu <> 'non') {
     370                        $previsu = inclure_previsu($texte, $titre, _request('url_site'), _request('nom_site'), _request('ajouter_mot'),
     371                                $doc,
    337372                                $objet, $id_objet, $id_forum);
    338373                        $erreurs['previsu'] = $previsu;
     
    342377
    343378        //  Si forum avec previsu sans bon hash de securite, echec
    344         if (!count($erreurs)){
     379        if (!count($erreurs)) {
    345380                if (!test_espace_prive()
    346                   AND $forcer_previsu<>'non'
    347                   AND forum_insert_noprevisu()){
     381                        AND $forcer_previsu <> 'non'
     382                        AND forum_insert_noprevisu()
     383                ) {
    348384                        $erreurs['erreur_message'] = _T('forum:forum_acces_refuse');
    349385                }
     
    356392/**
    357393 * Lister les formats de documents joints acceptes dans les forum
     394 *
    358395 * @return array
    359396 */
    360 function forum_documents_acceptes(){
     397function forum_documents_acceptes() {
    361398        $formats = trim($GLOBALS['meta']['formats_documents_forum']);
    362         if (!$formats) return array();
    363         if ($formats!=='*'){
     399        if (!$formats) {
     400                return array();
     401        }
     402        if ($formats !== '*') {
    364403                $formats = array_filter(preg_split(',[^a-zA-Z0-9/+_],', $formats));
    365         }
    366         else {
     404        } else {
    367405                include_spip('base/typedoc');
    368406                $formats = array_keys($GLOBALS['tables_mime']);
    369407        }
    370408        sort($formats);
     409
    371410        return $formats;
    372411}
     
    389428 * @return string
    390429 */
    391 function inclure_previsu($texte, $titre, $url_site, $nom_site, $ajouter_mot, $doc,
    392                          $objet, $id_objet, $id_forum){
     430function inclure_previsu(
     431        $texte,
     432        $titre,
     433        $url_site,
     434        $nom_site,
     435        $ajouter_mot,
     436        $doc,
     437        $objet,
     438        $id_objet,
     439        $id_forum
     440) {
    393441        global $table_des_traitements;
    394442
     
    418466        return preg_replace("@<(/?)form\b@ism",
    419467                '<\1div',
    420                 inclure_balise_dynamique(array('formulaires/inc-forum_previsu',
     468                inclure_balise_dynamique(array(
     469                        'formulaires/inc-forum_previsu',
    421470                        0,
    422471                        array(
     
    455504 * @return array|bool
    456505 */
    457 function formulaires_forum_traiter_dist($objet, $id_objet, $id_forum,
    458                                         $ajouter_mot, $ajouter_groupe, $forcer_previsu, $retour){
     506function formulaires_forum_traiter_dist(
     507        $objet,
     508        $id_objet,
     509        $id_forum,
     510        $ajouter_mot,
     511        $ajouter_groupe,
     512        $forcer_previsu,
     513        $retour
     514) {
    459515
    460516        $forum_insert = charger_fonction('forum_insert', 'inc');
     
    462518        // Antispam basique :
    463519        // si l'input invisible a ete renseigne, ca ne peut etre qu'un bot
    464         if (strlen(_request(_request('cle_ajouter_document')))){
     520        if (strlen(_request(_request('cle_ajouter_document')))) {
    465521                tracer_erreur_forum('champ interdit (nobot) rempli');
     522
    466523                return array('message_erreur' => _T('forum:erreur_enregistrement_message'));
    467524        }
    468525
    469526        if (defined('_FORUM_AUTORISER_POST_ID_FORUM')
    470           AND _FORUM_AUTORISER_POST_ID_FORUM
    471           AND _request('id_forum')){
     527                AND _FORUM_AUTORISER_POST_ID_FORUM
     528                AND _request('id_forum')
     529        ) {
    472530                $id_forum = _request('id_forum');
    473531        }
     
    476534
    477535
    478         if ($id_reponse){
     536        if ($id_reponse) {
    479537                // En cas de retour sur (par exemple) {#SELF}, on ajoute quand
    480538                // meme #forum12 a la fin de l'url, sauf si un #ancre est explicite
    481                 if ($retour){
    482                         if (!strpos($retour, '#')){
     539                if ($retour) {
     540                        if (!strpos($retour, '#')) {
    483541                                $retour .= '#forum' . $id_reponse;
    484542                        }
    485                 }
    486                 else {
     543                } else {
    487544                        // le retour par defaut envoie sur le thread, ce qui permet
    488545                        // de traiter elegamment le cas des forums moderes a priori.
     
    490547                        // dans le cas des forums moderes a posteriori, ce qui n'est
    491548                        // pas plus mal.
    492                         if (function_exists('generer_url_forum')){
     549                        if (function_exists('generer_url_forum')) {
    493550                                $retour = generer_url_forum($id_reponse);
    494                         }
    495                         else {
     551                        } else {
    496552                                $thread = sql_fetsel('id_thread', 'spip_forum', 'id_forum=' . $id_reponse);
    497553                                spip_log('id_thread=' . $thread['id_thread'], 'forum');
     
    501557
    502558                $res = array('redirect' => $retour, 'id_forum' => $id_reponse);
    503         }
    504         else {
     559        } else {
    505560                $res = array('message_erreur' => _T('forum:erreur_enregistrement_message'));
    506561        }
  • _core_/plugins/forum/formulaires/forum_prive.php

    r93092 r93612  
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined("_ECRIRE_INC_VERSION")) {
     14        return;
     15}
    1416
    1517include_spip('inc/forum');
     
    1719/**
    1820 * Identification du formulaire poste : ne pas tenir compte du retour
     21 *
    1922 * @param $objet
    2023 * @param $id_objet
     
    2427 * @return array
    2528 */
    26 function formulaires_forum_prive_identifier_dist($objet, $id_objet, $id_forum, $forcer_previsu, $statut){
     29function formulaires_forum_prive_identifier_dist($objet, $id_objet, $id_forum, $forcer_previsu, $statut) {
    2730        return array($objet, $id_objet, $id_forum, $forcer_previsu, $statut);
    2831}
     
    3033function formulaires_forum_prive_charger_dist($objet, $id_objet, $id_forum, $forcer_previsu, $statut, $retour = '') {
    3134
    32         if (!function_exists($f='forum_recuperer_titre'))
     35        if (!function_exists($f = 'forum_recuperer_titre')) {
    3336                $f = 'forum_recuperer_titre_dist';
     37        }
    3438        // si objet, il faut un titre, sinon on est dans un statut privrac/privadm qui permet un forum sans objet
    35         if ($objet AND $id_objet AND !$titre = $f($objet,$id_objet,$id_forum,false))
     39        if ($objet AND $id_objet AND !$titre = $f($objet, $id_objet, $id_forum, false)) {
    3640                return false;
     41        }
    3742
    3843        $primary = id_table_objet($objet);
     
    5257
    5358        // par défaut, on force la prévisualisation du message avant de le poster
    54         if (($forcer_previsu=='non') OR (empty($forcer_previsu) AND $GLOBALS['meta']["forums_forcer_previsu"]=="non"))
     59        if (($forcer_previsu == 'non') OR (empty($forcer_previsu) AND $GLOBALS['meta']["forums_forcer_previsu"] == "non")) {
    5560                $forcer_previsu = 'non';
    56         else
     61        } else {
    5762                $forcer_previsu = 'oui';
     63        }
    5864
    5965        // pour les hidden
    6066        $script_hidden = "";
    61         foreach ($ids as $id => $v)
     67        foreach ($ids as $id => $v) {
    6268                $script_hidden .= "<input type='hidden' name='$id' value='$v' />";
    63                
     69        }
     70
    6471        $config = array();
    65         foreach(array('afficher_barre','forum_titre','forums_texte','forums_urlref') as $k)
     72        foreach (array('afficher_barre', 'forum_titre', 'forums_texte', 'forums_urlref') as $k) {
    6673                $config[$k] = ' ';
     74        }
    6775
    6876        return array(
     
    7684                'forcer_previsu' => $forcer_previsu,
    7785                'id_forum' => $id_forum, // passer id_forum au formulaire pour lui permettre d'afficher a quoi l'internaute repond
    78                 '_sign'=>implode('_',$ids),
     86                '_sign' => implode('_', $ids),
    7987                '_autosave_id' => $ids,
    8088        );
     
    92100
    93101        $min_length = (defined('_FORUM_LONGUEUR_MINI') ? _FORUM_LONGUEUR_MINI : 10);
    94         if (strlen($texte = _request('texte'))<$min_length
    95                 AND !_request('ajouter_mot') AND $GLOBALS['meta']['forums_texte']=='oui'
    96         ){
    97                 $erreurs['texte'] = _T($min_length==10 ? 'forum:forum_attention_dix_caracteres' : 'forum:forum_attention_nb_caracteres_mini', array('min' => $min_length));
    98         }
    99         else if (defined('_FORUM_LONGUEUR_MAXI')
    100         AND _FORUM_LONGUEUR_MAXI > 0
    101         AND strlen($texte) > _FORUM_LONGUEUR_MAXI)
    102                 $erreurs['texte'] = _T('forum:forum_attention_trop_caracteres',
    103                         array(
    104                                 'compte' => strlen($texte),
    105                                 'max' => _FORUM_LONGUEUR_MAXI
    106                         ));
    107 
    108         if (strlen($titre=_request('titre')) < 3
    109         AND $GLOBALS['meta']['forums_titre'] == 'oui')
     102        if (strlen($texte = _request('texte')) < $min_length
     103                AND !_request('ajouter_mot') AND $GLOBALS['meta']['forums_texte'] == 'oui'
     104        ) {
     105                $erreurs['texte'] = _T($min_length == 10 ? 'forum:forum_attention_dix_caracteres' : 'forum:forum_attention_nb_caracteres_mini',
     106                        array('min' => $min_length));
     107        } else {
     108                if (defined('_FORUM_LONGUEUR_MAXI')
     109                        AND _FORUM_LONGUEUR_MAXI > 0
     110                        AND strlen($texte) > _FORUM_LONGUEUR_MAXI
     111                ) {
     112                        $erreurs['texte'] = _T('forum:forum_attention_trop_caracteres',
     113                                array(
     114                                        'compte' => strlen($texte),
     115                                        'max' => _FORUM_LONGUEUR_MAXI
     116                                ));
     117                }
     118        }
     119
     120        if (strlen($titre = _request('titre')) < 3
     121                AND $GLOBALS['meta']['forums_titre'] == 'oui'
     122        ) {
    110123                $erreurs['titre'] = _T('forum:forum_attention_trois_caracteres');
    111 
    112         if (array_reduce($_POST, 'reduce_strlen', (20 * 1024)) < 0) {
     124        }
     125
     126        if (array_reduce($_POST, 'reduce_strlen', (20*1024)) < 0) {
    113127                $erreurs['erreur_message'] = _T('forum:forum_message_trop_long');
    114128        }
    115129
    116         if (!count($erreurs) AND !_request('envoyer_message') AND !_request('confirmer_previsu_forum')){
    117                 $previsu = inclure_forum_prive_previsu($texte, $titre, _request('url_site'), _request('nom_site'), _request('ajouter_mot'));
     130        if (!count($erreurs) AND !_request('envoyer_message') AND !_request('confirmer_previsu_forum')) {
     131                $previsu = inclure_forum_prive_previsu($texte, $titre, _request('url_site'), _request('nom_site'),
     132                        _request('ajouter_mot'));
    118133                $erreurs['previsu'] = $previsu;
    119134                $erreurs['message_erreur'] = ''; // on ne veut pas du message_erreur automatique
     
    124139
    125140
    126 function inclure_forum_prive_previsu($texte, $titre, $url_site, $nom_site, $ajouter_mot, $doc = ""){
     141function inclure_forum_prive_previsu($texte, $titre, $url_site, $nom_site, $ajouter_mot, $doc = "") {
    127142        $bouton = _T('forum:forum_message_definitif');
    128143        include_spip('public/assembler');
     
    132147        return preg_replace("@<(/?)form\b@ism",
    133148                '<\1div',
    134                 inclure_balise_dynamique(array('formulaires/inc-forum_prive_previsu',
     149                inclure_balise_dynamique(array(
     150                        'formulaires/inc-forum_prive_previsu',
    135151                        0,
    136152                        array(
     
    146162                        )
    147163                ),
    148                 false)
     164                        false)
    149165        );
    150166}
     
    154170
    155171        $forum_insert = charger_fonction('forum_insert', 'inc');
    156         $id_reponse = $forum_insert($objet, $id_objet, $id_forum,$statut);
    157         if ($id_reponse){
     172        $id_reponse = $forum_insert($objet, $id_objet, $id_forum, $statut);
     173        if ($id_reponse) {
    158174                // En cas de retour sur (par exemple) {#SELF}, on ajoute quand
    159175                // meme #forum12 a la fin de l'url, sauf si un #ancre est explicite
    160                 if ($retour){
    161                         if (!strpos($retour, '#'))
    162                                 $retour .= '#forum'.$id_reponse;
    163                 }
    164                 else {
     176                if ($retour) {
     177                        if (!strpos($retour, '#')) {
     178                                $retour .= '#forum' . $id_reponse;
     179                        }
     180                } else {
    165181                        // le retour par defaut envoie sur le thread, ce qui permet
    166182                        // de traiter elegamment le cas des forums moderes a priori.
     
    170186                        if (function_exists('generer_url_forum')) {
    171187                                $retour = generer_url_forum($id_reponse);
    172                         }
    173                         else {
    174                                 $thread = sql_fetsel('id_thread', 'spip_forum', 'id_forum='.$id_reponse);
    175                                 spip_log('id_thread='.$thread['id_thread'], 'forum');
     188                        } else {
     189                                $thread = sql_fetsel('id_thread', 'spip_forum', 'id_forum=' . $id_reponse);
     190                                spip_log('id_thread=' . $thread['id_thread'], 'forum');
    176191                                $retour = generer_url_entite($thread['id_thread'], 'forum');
    177192                        }
    178193                }
    179194
    180                 $res = array('redirect'=>$retour,'id_forum'=>$id_forum);
    181         }
    182         else
    183                 $res = array('message_erreur'=>_T('forum:erreur_enregistrement_message'));
     195                $res = array('redirect' => $retour, 'id_forum' => $id_forum);
     196        } else {
     197                $res = array('message_erreur' => _T('forum:erreur_enregistrement_message'));
     198        }
    184199
    185200        return $res;
  • _core_/plugins/forum/forum_administrations.php

    r93092 r93612  
    1515 *
    1616 * @package SPIP\Forum\Installation
    17 **/
     17 **/
    1818
    19 if (!defined("_ECRIRE_INC_VERSION")) return;
     19if (!defined("_ECRIRE_INC_VERSION")) {
     20        return;
     21}
    2022
    2123/**
     
    2527 * @param string $version_cible
    2628 */
    27 function forum_upgrade($nom_meta_base_version, $version_cible){
     29function forum_upgrade($nom_meta_base_version, $version_cible) {
    2830
    2931        // cas particulier :
     
    3133        // considerer que c'est un upgrade depuis v 1.0.0
    3234        // pour gerer l'historique des installations SPIP <=2.1
    33         if (!isset($GLOBALS['meta'][$nom_meta_base_version])){
    34                 $trouver_table = charger_fonction('trouver_table','base');
     35        if (!isset($GLOBALS['meta'][$nom_meta_base_version])) {
     36                $trouver_table = charger_fonction('trouver_table', 'base');
    3537                $trouver_table(''); // vider le cache des descriptions !
    3638                if ($desc = $trouver_table('spip_forum')
    37                   AND isset($desc['field']['id_article'])){
    38                         ecrire_meta($nom_meta_base_version,'1.0.0');
     39                        AND isset($desc['field']['id_article'])
     40                ) {
     41                        ecrire_meta($nom_meta_base_version, '1.0.0');
    3942                }
    4043                // si pas de table en base, on fera une simple creation de base
     
    4346        $maj = array();
    4447        $maj['create'] = array(
    45                 array('maj_tables',array('spip_forum')),
     48                array('maj_tables', array('spip_forum')),
    4649        );
    4750        $maj['1.1.0'] = array(
    48                 array('sql_alter',"TABLE spip_forum ADD id_objet bigint(21) DEFAULT 0 NOT NULL AFTER id_forum"),
    49                 array('sql_alter',"TABLE spip_forum ADD objet VARCHAR (25) DEFAULT '' NOT NULL AFTER id_objet"),
     51                array('sql_alter', "TABLE spip_forum ADD id_objet bigint(21) DEFAULT 0 NOT NULL AFTER id_forum"),
     52                array('sql_alter', "TABLE spip_forum ADD objet VARCHAR (25) DEFAULT '' NOT NULL AFTER id_objet"),
    5053                #array('sql_alter',"TABLE spip_forum DROP INDEX optimal"),
    5154                #array('sql_alter',"TABLE spip_forum ADD INDEX optimal (statut,id_parent,id_objet,objet,date_heure)"),
    5255        );
    5356        $maj['1.1.1'] = array(
    54                 array('sql_update',"spip_forum", array('objet' => "'breve'",'id_objet' => 'id_breve'), 'id_breve> 0'),
     57                array('sql_update', "spip_forum", array('objet' => "'breve'", 'id_objet' => 'id_breve'), 'id_breve> 0'),
    5558                #array('sql_alter',"TABLE spip_forum DROP id_breve"),
    56                 array('sql_update',"spip_forum", array('objet' => "'article'",'id_objet' => 'id_article'), 'id_article>0'),
     59                array('sql_update', "spip_forum", array('objet' => "'article'", 'id_objet' => 'id_article'), 'id_article>0'),
    5760                #array('sql_alter',"TABLE spip_forum DROP id_article"),
    58                 array('sql_update',"spip_forum", array('objet' => "'site'",'id_objet' => 'id_syndic'), 'id_syndic>0'),
     61                array('sql_update', "spip_forum", array('objet' => "'site'", 'id_objet' => 'id_syndic'), 'id_syndic>0'),
    5962                #array('sql_alter',"TABLE spip_forum DROP id_syndic"),
    60                 array('sql_update',"spip_forum", array('objet' => "'message'",'id_objet' => 'id_message'), 'id_message>0'),
     63                array('sql_update', "spip_forum", array('objet' => "'message'", 'id_objet' => 'id_message'), 'id_message>0'),
    6164                #array('sql_alter',"TABLE spip_forum DROP id_message"),
    62                 array('sql_update',"spip_forum", array('objet' => "'rubrique'",'id_objet' => 'id_rubrique'), 'id_rubrique>0'),
     65                array('sql_update', "spip_forum", array('objet' => "'rubrique'", 'id_objet' => 'id_rubrique'), 'id_rubrique>0'),
    6366                #array('sql_alter',"TABLE spip_forum DROP id_rubrique"),
    6467        );
     
    6669        # champ ip sur 40 car (compat IPv6)
    6770        $maj['1.2.0'] = array(
    68                 array('sql_alter',"TABLE spip_forum CHANGE ip ip VARCHAR(40) DEFAULT '' NOT NULL"),
     71                array('sql_alter', "TABLE spip_forum CHANGE ip ip VARCHAR(40) DEFAULT '' NOT NULL"),
    6972        );
    7073        # rejouer la suppression/creation de l'index optimal
     
    7275        # en raison d'un DROP KEY au lieu de DROP INDEX
    7376        $maj['1.2.1'] = array(
    74                 array('sql_alter',"TABLE spip_forum DROP INDEX optimal"),
    75                 array('sql_alter',"TABLE spip_forum ADD INDEX optimal (statut,id_parent,id_objet,objet,date_heure)"),
    76                 array('sql_alter',"TABLE spip_forum DROP id_breve"),
    77                 array('sql_alter',"TABLE spip_forum DROP id_article"),
    78                 array('sql_alter',"TABLE spip_forum DROP id_syndic"),
    79                 array('sql_alter',"TABLE spip_forum DROP id_message"),
    80                 array('sql_alter',"TABLE spip_forum DROP id_rubrique"),
     77                array('sql_alter', "TABLE spip_forum DROP INDEX optimal"),
     78                array('sql_alter', "TABLE spip_forum ADD INDEX optimal (statut,id_parent,id_objet,objet,date_heure)"),
     79                array('sql_alter', "TABLE spip_forum DROP id_breve"),
     80                array('sql_alter', "TABLE spip_forum DROP id_article"),
     81                array('sql_alter', "TABLE spip_forum DROP id_syndic"),
     82                array('sql_alter', "TABLE spip_forum DROP id_message"),
     83                array('sql_alter', "TABLE spip_forum DROP id_rubrique"),
    8184        );
    8285        $maj['1.2.2'] = array(
    83                 array('ecrire_meta','forum_prive_objets',($GLOBALS['meta']['forum_prive_objets']=='non')?'':'spip_articles,spip_breves,spip_syndic'),
     86                array(
     87                        'ecrire_meta',
     88                        'forum_prive_objets',
     89                        ($GLOBALS['meta']['forum_prive_objets'] == 'non') ? '' : 'spip_articles,spip_breves,spip_syndic'
     90                ),
    8491        );
    85 
    8692
    8793
  • _core_/plugins/forum/forum_autoriser.php

    r93092 r93612  
    1212
    1313/**
    14  * Définit les autorisations du plugin forum 
     14 * Définit les autorisations du plugin forum
    1515 *
    1616 * @package SPIP\Forum\Autorisations
    17 **/
    18 if (!defined("_ECRIRE_INC_VERSION")) return;
     17 **/
     18if (!defined("_ECRIRE_INC_VERSION")) {
     19        return;
     20}
    1921
    2022/**
    2123 * Fonction d'appel pour le pipeline
     24 *
    2225 * @pipeline autoriser
    2326 */
    24 function forum_autoriser(){}
    25 
    26 /**
    27  * Autorisation de voir l'élément «forums internes» dans le menu 
    28  *
    29  * @param  string $faire Action demandée
    30  * @param  string $type  Type d'objet sur lequel appliquer l'action
    31  * @param  int    $id    Identifiant de l'objet
    32  * @param  array  $qui  Description de l'auteur demandant l'autorisation
    33  * @param  array  $opt  Options de cette autorisation
    34  * @return bool          true s'il a le droit, false sinon
    35 **/
    36 function autoriser_foruminternesuivi_menu_dist($faire, $type = '', $id = 0, $qui = NULL, $opt = NULL){
     27function forum_autoriser() { }
     28
     29/**
     30 * Autorisation de voir l'élément «forums internes» dans le menu
     31 *
     32 * @param  string $faire Action demandée
     33 * @param  string $type Type d'objet sur lequel appliquer l'action
     34 * @param  int $id Identifiant de l'objet
     35 * @param  array $qui Description de l'auteur demandant l'autorisation
     36 * @param  array $opt Options de cette autorisation
     37 * @return bool          true s'il a le droit, false sinon
     38 **/
     39function autoriser_foruminternesuivi_menu_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
    3740        if ((($GLOBALS['meta']['forum_prive'] == 'non') && ($GLOBALS['meta']['forum_prive_admin'] == 'non'))
    38                 OR (($GLOBALS['meta']['forum_prive'] == 'non') && ($qui['statut'] == '1comite')))
     41                OR (($GLOBALS['meta']['forum_prive'] == 'non') && ($qui['statut'] == '1comite'))
     42        ) {
    3943                return false;
    40         return true;
    41 }
    42 
    43 /**
    44  * Autorisation de voir l'élément «suivi des forums» dans le menu
    45  *
    46  * @param  string $faire Action demandée
    47  * @param  string $type  Type d'objet sur lequel appliquer l'action
    48  * @param  int    $id    Identifiant de l'objet
    49  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    50  * @param  array  $opt   Options de cette autorisation
    51  * @return bool          true s'il a le droit, false sinon
    52 **/
    53 function autoriser_forumreactions_menu_dist($faire, $type = '', $id = 0, $qui = NULL, $opt = NULL){
    54         return (sql_countsel('spip_forum') && autoriser('publierdans','rubrique',_request('id_rubrique')));
    55 }
    56 
    57 
    58 /**
    59  * Autorisation de modérer un message de forum
     44        }
     45
     46        return true;
     47}
     48
     49/**
     50 * Autorisation de voir l'élément «suivi des forums» dans le menu
     51 *
     52 * @param  string $faire Action demandée
     53 * @param  string $type Type d'objet sur lequel appliquer l'action
     54 * @param  int $id Identifiant de l'objet
     55 * @param  array $qui Description de l'auteur demandant l'autorisation
     56 * @param  array $opt Options de cette autorisation
     57 * @return bool          true s'il a le droit, false sinon
     58 **/
     59function autoriser_forumreactions_menu_dist($faire, $type = '', $id = 0, $qui = null, $opt = null) {
     60        return (sql_countsel('spip_forum') && autoriser('publierdans', 'rubrique', _request('id_rubrique')));
     61}
     62
     63
     64/**
     65 * Autorisation de modérer un message de forum
    6066 *
    6167 * Il faut l'autorisation de modifier l'objet correspondant
     
    6470 *
    6571 * @see autoriser_forum_moderer_dist()
    66  * 
    67  * @param  string $faire Action demandée
    68  * @param  string $type  Type d'objet sur lequel appliquer l'action
    69  * @param  int    $id    Identifiant de l'objet
    70  * @param  array  $qui  Description de l'auteur demandant l'autorisation
    71  * @param  array  $opt  Options de cette autorisation
    72  * @return bool          true s'il a le droit, false sinon
    73 **/
     72 *
     73 * @param  string $faire Action demandée
     74 * @param  string $type Type d'objet sur lequel appliquer l'action
     75 * @param  int $id Identifiant de l'objet
     76 * @param  array $qui Description de l'auteur demandant l'autorisation
     77 * @param  array $opt Options de cette autorisation
     78 * @return bool          true s'il a le droit, false sinon
     79 **/
    7480function autoriser_modererforum_dist($faire, $type, $id, $qui, $opt) {
    75         return $type ? autoriser('modifier', $type, $id, $qui, $opt):autoriser('moderer', 'forum', 0, $qui, $opt);
     81        return $type ? autoriser('modifier', $type, $id, $qui, $opt) : autoriser('moderer', 'forum', 0, $qui, $opt);
    7682}
    7783
    7884/**
    7985 * Autorisation de changer le statut d'un message de forum
    80  * 
     86 *
    8187 * Seulement sur les objets qu'on a le droit de modérer.
    8288 *
    8389 * @param  string $faire Action demandée
    84  * @param  string $type  Type d'objet sur lequel appliquer l'action
    85  * @param  int    $id    Identifiant de l'objet
    86  * @param  array  $qui   Description de l'auteur demandant l'autorisation
    87  * @param  array  $opt   Options de cette autorisation
    88  * @return bool          true s'il a le droit, false sinon
    89  */
    90 function autoriser_forum_instituer_dist($faire, $type, $id, $qui, $opt){
    91         if (!intval($id)) return autoriser('moderer','forum');
    92         $row = sql_fetsel('objet,id_objet','spip_forum','id_forum='.intval($id));
    93         return $row?autoriser('modererforum',$row['objet'],$row['id_objet'],$qui,$opt):false;
     90 * @param  string $type Type d'objet sur lequel appliquer l'action
     91 * @param  int $id Identifiant de l'objet
     92 * @param  array $qui Description de l'auteur demandant l'autorisation
     93 * @param  array $opt Options de cette autorisation
     94 * @return bool          true s'il a le droit, false sinon
     95 */
     96function autoriser_forum_instituer_dist($faire, $type, $id, $qui, $opt) {
     97        if (!intval($id)) {
     98                return autoriser('moderer', 'forum');
     99        }
     100        $row = sql_fetsel('objet,id_objet', 'spip_forum', 'id_forum=' . intval($id));
     101
     102        return $row ? autoriser('modererforum', $row['objet'], $row['id_objet'], $qui, $opt) : false;
    94103}
    95104
    96105/**
    97106 * Autorisation par défaut de modérer un message de forum
    98  * 
     107 *
    99108 * Si l'on connait l'objet, on délègue à modererforum, sinon il faut
    100109 * être administrateur
     
    103112 *
    104113 * @param  string $faire Action demandée
    105  * @param  string $type  Type d'objet sur lequel appliquer l'action
    106  * @param  int    $id    Identifiant de l'objet
    107  * @param  array  $qui  Description de l'auteur demandant l'autorisation
    108  * @param  array  $opt  Options de cette autorisation
    109  * @return bool          true s'il a le droit, false sinon
    110  */
    111 function autoriser_forum_moderer_dist($faire, $type, $id, $qui, $opt){
     114 * @param  string $type Type d'objet sur lequel appliquer l'action
     115 * @param  int $id Identifiant de l'objet
     116 * @param  array $qui Description de l'auteur demandant l'autorisation
     117 * @param  array $opt Options de cette autorisation
     118 * @return bool          true s'il a le droit, false sinon
     119 */
     120function autoriser_forum_moderer_dist($faire, $type, $id, $qui, $opt) {
    112121        // si on fournit un id : deleguer a modererforum sur l'objet concerne
    113         if ($id){
     122        if ($id) {
    114123                include_spip('inc/forum');
    115124                if ($racine = racine_forum($id)
    116                   AND list($objet,$id_objet,) = $racine
    117                   AND $objet){
    118                         return autoriser('modererforum',$objet,$id_objet);
     125                        AND list($objet, $id_objet,) = $racine
     126                        AND $objet
     127                ) {
     128                        return autoriser('modererforum', $objet, $id_objet);
    119129                }
    120130        }
    121        
     131
    122132        // sinon : admins uniquement
    123         return $qui['statut']=='0minirezo'; // les admins restreints peuvent moderer leurs messages
     133        return $qui['statut'] == '0minirezo'; // les admins restreints peuvent moderer leurs messages
    124134}
    125135
     
    127137/**
    128138 * Autorisation de modifier un message de forum
    129  * 
     139 *
    130140 * Jamais
    131141 *
    132142 * @param  string $faire Action demandée
    133  * @param  string $type  Type d'objet sur lequel appliquer l'action
    134  * @param  int    $id    Identifiant de l'objet
    135  * @param  array  $qui  Description de l'auteur demandant l'autorisation
    136  * @param  array  $opt  Options de cette autorisation
     143 * @param  string $type Type d'objet sur lequel appliquer l'action
     144 * @param  int $id Identifiant de l'objet
     145 * @param  array $qui Description de l'auteur demandant l'autorisation
     146 * @param  array $opt Options de cette autorisation
    137147 * @return bool          true s'il a le droit, false sinon
    138148 */
     
    143153/**
    144154 * Autorisation de consulter le forum des administrateurs
    145  * 
     155 *
    146156 * Il faut être administrateur (y compris restreint)
    147157 *
    148158 * @param  string $faire Action demandée
    149  * @param  string $type  Type d'objet sur lequel appliquer l'action
    150  * @param  int    $id    Identifiant de l'objet
    151  * @param  array  $qui  Description de l'auteur demandant l'autorisation
    152  * @param  array  $opt  Options de cette autorisation
     159 * @param  string $type Type d'objet sur lequel appliquer l'action
     160 * @param  int $id Identifiant de l'objet
     161 * @param  array $qui Description de l'auteur demandant l'autorisation
     162 * @param  array $opt Options de cette autorisation
    153163 * @return bool          true s'il a le droit, false sinon
    154164 */
     
    161171 *
    162172 * Jamais
    163  * 
    164  * @param  string $faire Action demandée
    165  * @param  string $type  Type d'objet sur lequel appliquer l'action
    166  * @param  int    $id    Identifiant de l'objet
    167  * @param  array  $qui  Description de l'auteur demandant l'autorisation
    168  * @param  array  $opt  Options de cette autorisation
     173 *
     174 * @param  string $faire Action demandée
     175 * @param  string $type Type d'objet sur lequel appliquer l'action
     176 * @param  int $id Identifiant de l'objet
     177 * @param  array $qui Description de l'auteur demandant l'autorisation
     178 * @param  array $opt Options de cette autorisation
    169179 * @return bool          true s'il a le droit, false sinon
    170180 */
     
    177187 *
    178188 * Toujours
    179  * 
    180  * @param  string $faire Action demandée
    181  * @param  string $type  Type d'objet sur lequel appliquer l'action
    182  * @param  int    $id    Identifiant de l'objet
    183  * @param  array  $qui  Description de l'auteur demandant l'autorisation
    184  * @param  array  $opt  Options de cette autorisation
     189 *
     190 * @param  string $faire Action demandée
     191 * @param  string $type Type d'objet sur lequel appliquer l'action
     192 * @param  int $id Identifiant de l'objet
     193 * @param  array $qui Description de l'auteur demandant l'autorisation
     194 * @param  array $opt Options de cette autorisation
    185195 * @return bool          true s'il a le droit, false sinon
    186196 */
     
    193203 *
    194204 * Toujours
    195  * 
    196  * @param  string $faire Action demandée
    197  * @param  string $type  Type d'objet sur lequel appliquer l'action
    198  * @param  int    $id    Identifiant de l'objet
    199  * @param  array  $qui  Description de l'auteur demandant l'autorisation
    200  * @param  array  $opt  Options de cette autorisation
     205 *
     206 * @param  string $faire Action demandée
     207 * @param  string $type Type d'objet sur lequel appliquer l'action
     208 * @param  int $id Identifiant de l'objet
     209 * @param  array $qui Description de l'auteur demandant l'autorisation
     210 * @param  array $opt Options de cette autorisation
    201211 * @return bool          true s'il a le droit, false sinon
    202212 */
     
    209219 *
    210220 * Il faut être administrateur (y compris restreint)
    211  * 
    212  * @param  string $faire Action demandée
    213  * @param  string $type  Type d'objet sur lequel appliquer l'action
    214  * @param  int    $id    Identifiant de l'objet
    215  * @param  array  $qui  Description de l'auteur demandant l'autorisation
    216  * @param  array  $opt  Options de cette autorisation
     221 *
     222 * @param  string $faire Action demandée
     223 * @param  string $type Type d'objet sur lequel appliquer l'action
     224 * @param  int $id Identifiant de l'objet
     225 * @param  array $qui Description de l'auteur demandant l'autorisation
     226 * @param  array $opt Options de cette autorisation
    217227 * @return bool          true s'il a le droit, false sinon
    218228 */
    219229function autoriser_forumadmin_participer_dist($faire, $type, $id, $qui, $opt) {
    220         return ($GLOBALS['meta']['forum_prive_admin'] == 'oui') && $qui['statut']=='0minirezo';
     230        return ($GLOBALS['meta']['forum_prive_admin'] == 'oui') && $qui['statut'] == '0minirezo';
    221231}
    222232
     
    228238 *
    229239 * @param  string $faire Action demandée
    230  * @param  string $type  Type d'objet sur lequel appliquer l'action
    231  * @param  int    $id    Identifiant de l'objet
    232  * @param  array  $qui  Description de l'auteur demandant l'autorisation
    233  * @param  array  $opt  Options de cette autorisation
     240 * @param  string $type Type d'objet sur lequel appliquer l'action
     241 * @param  int $id Identifiant de l'objet
     242 * @param  array $qui Description de l'auteur demandant l'autorisation
     243 * @param  array $opt Options de cette autorisation
    234244 * @return bool          true s'il a le droit, false sinon
    235245 */
  • _core_/plugins/forum/forum_fonctions.php

    r79783 r93612  
    1212
    1313/**
    14  * Définit les fonctions utiles du plugin forum 
     14 * Définit les fonctions utiles du plugin forum
    1515 *
    1616 * @package SPIP\Forum\Fonctions
    17 **/
     17 **/
    1818
    19 if (!defined("_ECRIRE_INC_VERSION")) return;
     19if (!defined("_ECRIRE_INC_VERSION")) {
     20        return;
     21}
    2022
    2123
     
    3739 * @filtre
    3840 * @see balise_PARAMETRES_FORUM_dist()
    39  * 
     41 *
    4042 * @param string $parametres
    4143 * @return string URL de la page de réponse
    4244 */
    4345function filtre_url_reponse_forum($parametres) {
    44         if (!$parametres) return '';
     46        if (!$parametres) {
     47                return '';
     48        }
     49
    4550        return generer_url_public('forum', $parametres);
    4651}
     
    4954 * Un filtre qui, étant donné un `#PARAMETRES_FORUM`, retourne une URL de suivi rss
    5055 * dudit forum
    51  * 
     56 *
    5257 * Attention : appliqué à un `#PARAMETRES_FORUM` complexe (`id_article=x&id_forum=y`)
    5358 * ça retourne une URL de suivi du thread `y` (que le thread existe ou non)
     
    5560 * @filtre
    5661 * @see balise_PARAMETRES_FORUM_dist()
    57  * 
     62 *
    5863 * @param string $param
    5964 * @return string URL pour le suivi RSS
    6065 */
    6166function filtre_url_rss_forum($param) {
    62         if (!preg_match(',.*(id_(\w*?))=([0-9]+),S', $param, $regs)) return '';
    63         list(,$k,$t,$v) = $regs;
    64         if ($t == 'forum') $k = 'id_' . ($t = 'thread');
     67        if (!preg_match(',.*(id_(\w*?))=([0-9]+),S', $param, $regs)) {
     68                return '';
     69        }
     70        list(, $k, $t, $v) = $regs;
     71        if ($t == 'forum') {
     72                $k = 'id_' . ($t = 'thread');
     73        }
     74
    6575        return generer_url_public("rss_forum_$t", array($k => $v));
    6676}
     
    7585 *
    7686 * @see forum_declarer_tables_interfaces()
    77  * 
     87 *
    7888 * @param string $texte
    7989 * @return string
    80 **/
    81 function interdit_html($texte){
    82         if (defined('_INTERDIRE_TEXTE_HTML'))
    83                 $texte = str_replace("<","&lt;",$texte);
     90 **/
     91function interdit_html($texte) {
     92        if (defined('_INTERDIRE_TEXTE_HTML')) {
     93                $texte = str_replace("<", "&lt;", $texte);
     94        }
     95
    8496        return $texte;
    8597}
     98
    8699?>
  • _core_/plugins/forum/forum_ieconfig.php

    r69933 r93612  
    33/**
    44 * Déclarations des configurations qui peuvent être sauvegardées
    5  * 
     5 *
    66 * @package SPIP\Forum\Pipelines
    7 **/
     7 **/
    88
    9 if (!defined("_ECRIRE_INC_VERSION")) return;
     9if (!defined("_ECRIRE_INC_VERSION")) {
     10        return;
     11}
    1012
    1113/**
     
    1618 * @param array $table
    1719 *     Déclaration des sauvegardes
    18  * @return array 
     20 * @return array
    1921 *     Déclaration des sauvegardes complétées
    20 **/
    21 function forum_ieconfig_metas($table){
     22 **/
     23function forum_ieconfig_metas($table) {
    2224        $table['forums_contenu']['titre'] = _T('forum:titre_forum');
    2325        $table['forums_contenu']['icone'] = 'forum-public-16.png';
     
    3234        $table['forums_prives']['icone'] = 'forum-interne-16.png';
    3335        $table['forums_prives']['metas_brutes'] = 'forum_prive_objets,forum_prive,forum_prive_admin';
    34        
     36
    3537        return $table;
    3638}
  • _core_/plugins/forum/forum_pipelines.php

    r93500 r93612  
    1515 *
    1616 * @package SPIP\Forum\Pipelines
    17 **/
    18 
    19 if (!defined("_ECRIRE_INC_VERSION")) return;
     17 **/
     18
     19if (!defined("_ECRIRE_INC_VERSION")) {
     20        return;
     21}
    2022
    2123/**
     
    2527 * @return string
    2628 */
    27 function forum_accueil_encours($texte){
     29function forum_accueil_encours($texte) {
    2830        // si aucun autre objet n'est a valider, on ne dit rien sur les forum
    2931        if ($GLOBALS['visiteur_session']['statut'] == '0minirezo') {
     
    3133                $cpt = sql_countsel("spip_forum", "statut='prop'");
    3234                if ($cpt) {
    33                         if ($cpt>1)
    34                                 $lien = _T('forum:info_liens_syndiques_3')." "._T('forum:info_liens_syndiques_4');
    35                         else
    36                                 $lien = _T('forum:info_liens_syndiques_5')." "._T('forum:info_liens_syndiques_6');
    37                         $lien = "<small>$cpt $lien " ._T('forum:info_liens_syndiques_7'). "</small>";
    38                         if ($GLOBALS['connect_toutes_rubriques'])
    39                                 $lien = "<a href='" . generer_url_ecrire("controler_forum","statut=prop") . "' style='color: black;'>". $lien . ".</a>";
     35                        if ($cpt > 1) {
     36                                $lien = _T('forum:info_liens_syndiques_3') . " " . _T('forum:info_liens_syndiques_4');
     37                        } else {
     38                                $lien = _T('forum:info_liens_syndiques_5') . " " . _T('forum:info_liens_syndiques_6');
     39                        }
     40                        $lien = "<small>$cpt $lien " . _T('forum:info_liens_syndiques_7') . "</small>";
     41                        if ($GLOBALS['connect_toutes_rubriques']) {
     42                                $lien = "<a href='" . generer_url_ecrire("controler_forum",
     43                                                "statut=prop") . "' style='color: black;'>" . $lien . ".</a>";
     44                        }
    4045                        $texte .= "\n<br />" . $lien;
    4146                }
    4247                if (strlen($texte) AND $GLOBALS['meta']['forum_prive_objets'] != 'non') {
    4348                        $cpt2 = sql_countsel("spip_articles", "statut='prop'");
    44                         if ($cpt2)
     49                        if ($cpt2) {
    4550                                $texte = _T('forum:texte_en_cours_validation_forum') . $texte;
     51                        }
    4652                }
    4753        }
     
    5763 * @return string
    5864 */
    59 function forum_accueil_informations($texte){
     65function forum_accueil_informations($texte) {
    6066        include_spip('base/abstract_sql');
    61         $q = sql_select('COUNT(*) AS cnt, statut', 'spip_forum', sql_in('statut', array('publie', 'prop')), 'statut', '','', "COUNT(*)<>0");
    62 
    63         $where = count($GLOBALS['connect_id_rubrique']) ? sql_in('id_rubrique', $GLOBALS['connect_id_rubrique'])        : '';
     67        $q = sql_select('COUNT(*) AS cnt, statut', 'spip_forum', sql_in('statut', array('publie', 'prop')), 'statut', '', '',
     68                "COUNT(*)<>0");
     69
     70        $where = count($GLOBALS['connect_id_rubrique']) ? sql_in('id_rubrique', $GLOBALS['connect_id_rubrique']) : '';
    6471        $cpt = array();
    6572        $cpt2 = array();
    6673        $defaut = $where ? '0/' : '';
    67         while($row = sql_fetch($q)) {
    68           $cpt[$row['statut']] = $row['cnt'];
    69           $cpt2[$row['statut']] = $defaut;
     74        while ($row = sql_fetch($q)) {
     75                $cpt[$row['statut']] = $row['cnt'];
     76                $cpt2[$row['statut']] = $defaut;
    7077        }
    7178
    7279        if ($cpt) {
    7380                if ($where) {
    74                   include_spip('inc/forum');
    75                   list($f, $w) = critere_statut_controle_forum('public');
    76                   $q = sql_select("COUNT(*) AS cnt, F.statut", "$f", "$w ", "F.statut");
    77                   while($row = sql_fetch($q)) {
     81                        include_spip('inc/forum');
     82                        list($f, $w) = critere_statut_controle_forum('public');
     83                        $q = sql_select("COUNT(*) AS cnt, F.statut", "$f", "$w ", "F.statut");
     84                        while ($row = sql_fetch($q)) {
    7885                                $r = $row['statut'];
    7986                                $cpt2[$r] = intval($row['cnt']) . '/';
     
    9097                }
    9198                $texte .= "<ul class='liste-items'>";
    92                 if (isset($cpt['prop'])) $texte .= "<li class='item'>"._T("texte_statut_attente_validation").": ".$cpt2['prop'] .$cpt['prop'] . '</li>';
    93                 if (isset($cpt['publie'])) $texte .= "<li class='item'>"._T("texte_statut_publies").": ".$cpt2['publie'] .$cpt['publie'] .'</li>';
     99                if (isset($cpt['prop'])) {
     100                        $texte .= "<li class='item'>" . _T("texte_statut_attente_validation") . ": " . $cpt2['prop'] . $cpt['prop'] . '</li>';
     101                }
     102                if (isset($cpt['publie'])) {
     103                        $texte .= "<li class='item'>" . _T("texte_statut_publies") . ": " . $cpt2['publie'] . $cpt['publie'] . '</li>';
     104                }
    94105                $texte .= "</ul>";
    95106                $texte .= "</div>";
    96107        }
     108
    97109        return $texte;
    98110}
     
    104116 * @return array
    105117 */
    106 function forum_afficher_fiche_objet($flux){
     118function forum_afficher_fiche_objet($flux) {
    107119        if ($type = $flux['args']['type']
    108           AND $table_sql = table_objet_sql($type)
    109                 AND in_array($table_sql,explode(',',$GLOBALS['meta']['forum_prive_objets']))){
     120                AND $table_sql = table_objet_sql($type)
     121                AND in_array($table_sql, explode(',', $GLOBALS['meta']['forum_prive_objets']))
     122        ) {
    110123                $id = $flux['args']['id'];
    111124                $contexte = array_merge($flux['args']['contexte'],
    112125                        array(
    113                                 'objet'=>$type,
    114                                 'id_objet'=>$id,
    115                                 'quoi'=>'interne',
    116                                 'statut'=>'prive'
     126                                'objet' => $type,
     127                                'id_objet' => $id,
     128                                'quoi' => 'interne',
     129                                'statut' => 'prive'
    117130                        )
    118131                );
    119                 $flux['data'] .= recuperer_fond('prive/squelettes/inclure/discuter_forum',$contexte,array('ajax'=>true));
    120         }
    121         if (($type = $flux['args']['type'])=='rubrique'){
     132                $flux['data'] .= recuperer_fond('prive/squelettes/inclure/discuter_forum', $contexte, array('ajax' => true));
     133        }
     134        if (($type = $flux['args']['type']) == 'rubrique') {
    122135                $id_rubrique = $flux['args']['id'];
    123                 if (autoriser('publierdans','rubrique',$id_rubrique)
    124                   AND !sql_getfetsel('id_parent','spip_rubriques','id_rubrique='.intval($id_rubrique))) {
     136                if (autoriser('publierdans', 'rubrique', $id_rubrique)
     137                        AND !sql_getfetsel('id_parent', 'spip_rubriques', 'id_rubrique=' . intval($id_rubrique))
     138                ) {
    125139                        include_spip('inc/forum');
    126140                        list($from, $where) = critere_statut_controle_forum('prop', $id_rubrique);
    127141                        $n_forums = sql_countsel($from, $where);
    128                 }
    129                 else
     142                } else {
    130143                        $n_forums = 0;
    131                 if ($n_forums)
    132                 $flux['data'] .= icone_verticale(_T('forum:icone_suivi_forum', array('nb_forums' => $n_forums)), generer_url_ecrire("controler_forum","objet=article&id_secteur=$id_rubrique&statut=prop"), "forum-24.png", "", 'center');
    133         }
     144                }
     145                if ($n_forums) {
     146                        $flux['data'] .= icone_verticale(_T('forum:icone_suivi_forum', array('nb_forums' => $n_forums)),
     147                                generer_url_ecrire("controler_forum", "objet=article&id_secteur=$id_rubrique&statut=prop"), "forum-24.png", "",
     148                                'center');
     149                }
     150        }
     151
    134152        return $flux;
    135153}
     
    141159 * @return array
    142160 */
    143 function forum_afficher_config_objet($flux){
     161function forum_afficher_config_objet($flux) {
    144162        if (($type = $flux['args']['type'])
    145                 AND $id = $flux['args']['id']){
     163                AND $id = $flux['args']['id']
     164        ) {
    146165                if (autoriser('modererforum', $type, $id)) {
    147166                        $id_table_objet = id_table_objet($type);
    148                         $flux['data'] .= recuperer_fond("prive/objets/configurer/moderation",array('id_objet'=>$id,'objet'=>  objet_type(table_objet($type))));
    149                 }
    150         }
     167                        $flux['data'] .= recuperer_fond("prive/objets/configurer/moderation",
     168                                array('id_objet' => $id, 'objet' => objet_type(table_objet($type))));
     169                }
     170        }
     171
    151172        return $flux;
    152173}
     
    158179 * @return array
    159180 */
    160 function forum_afficher_message_statut_objet($flux){
    161         if ($type = $flux['args']['type']=='article'){
     181function forum_afficher_message_statut_objet($flux) {
     182        if ($type = $flux['args']['type'] == 'article') {
    162183                $statut = $flux['args']['statut'];
    163184                if ($GLOBALS['meta']['forum_prive_objets'] != 'non'
    164                   AND $statut == 'prop')
    165                         $flux['data'] .= "<p class='article_prop'>"._T('forum:text_article_propose_publication_forum').'</p>';
    166         }
     185                        AND $statut == 'prop'
     186                ) {
     187                        $flux['data'] .= "<p class='article_prop'>" . _T('forum:text_article_propose_publication_forum') . '</p>';
     188                }
     189        }
     190
    167191        return $flux;
    168192}
     
    174198 * @return array
    175199 */
    176 function forum_boite_infos($flux){
    177         if ($flux['args']['type']=='rubrique'
    178           AND $id_rubrique = $flux['args']['id']){
    179                 if (autoriser('publierdans','rubrique',$id_rubrique)
    180                 // [doc] d'ou il vient ce row ?
    181                 AND (!isset($flux['args']['row']['id_parent']) OR !$flux['args']['row']['id_parent'])) {
     200function forum_boite_infos($flux) {
     201        if ($flux['args']['type'] == 'rubrique'
     202                AND $id_rubrique = $flux['args']['id']
     203        ) {
     204                if (autoriser('publierdans', 'rubrique', $id_rubrique)
     205                        // [doc] d'ou il vient ce row ?
     206                        AND (!isset($flux['args']['row']['id_parent']) OR !$flux['args']['row']['id_parent'])
     207                ) {
    182208                        include_spip('inc/forum');
    183209                        list($from, $where) = critere_statut_controle_forum('prop', $id_rubrique);
    184210                        $n_forums = sql_countsel($from, $where);
    185                 }
    186                 else
     211                } else {
    187212                        $n_forums = 0;
    188                 if ($n_forums){
    189                         $aff = "<p class='forums'>".singulier_ou_pluriel($n_forums, "forum:info_1_message_forum", "forum:info_nb_messages_forum").'</p>';
    190                         if (($pos = strpos($flux['data'],'<!--nb_elements-->'))!==FALSE)
    191                                 $flux['data'] = substr($flux['data'],0,$pos) . $aff . substr($flux['data'],$pos);
    192                         else
     213                }
     214                if ($n_forums) {
     215                        $aff = "<p class='forums'>" . singulier_ou_pluriel($n_forums, "forum:info_1_message_forum",
     216                                        "forum:info_nb_messages_forum") . '</p>';
     217                        if (($pos = strpos($flux['data'], '<!--nb_elements-->')) !== false) {
     218                                $flux['data'] = substr($flux['data'], 0, $pos) . $aff . substr($flux['data'], $pos);
     219                        } else {
    193220                                $flux['data'] .= $aff;
    194                 }
    195         }
    196         elseif ($flux['args']['type']=='auteur'
    197                 AND $id_auteur = $flux['args']['id']){
    198                 if ($nb = sql_countsel('spip_forum',"statut!='poubelle' AND id_auteur=".intval($id_auteur))){
    199                         $nb = "<div>". singulier_ou_pluriel($nb, "forum:info_1_message_forum", "forum:info_nb_messages_forum") . "</div>";
    200                         if ($p = strpos($flux['data'],"<!--nb_elements-->"))
    201                                 $flux['data'] = substr_replace($flux['data'],$nb,$p,0);
    202                 }
    203         }
     221                        }
     222                }
     223        } elseif ($flux['args']['type'] == 'auteur'
     224                AND $id_auteur = $flux['args']['id']
     225        ) {
     226                if ($nb = sql_countsel('spip_forum', "statut!='poubelle' AND id_auteur=" . intval($id_auteur))) {
     227                        $nb = "<div>" . singulier_ou_pluriel($nb, "forum:info_1_message_forum",
     228                                        "forum:info_nb_messages_forum") . "</div>";
     229                        if ($p = strpos($flux['data'], "<!--nb_elements-->")) {
     230                                $flux['data'] = substr_replace($flux['data'], $nb, $p, 0);
     231                        }
     232                }
     233        }
     234
    204235        return $flux;
    205236}
     
    212243 * @return array
    213244 */
    214 function forum_compter_contributions_auteur($flux){
     245function forum_compter_contributions_auteur($flux) {
    215246        $id_auteur = intval($flux['args']['id_auteur']);
    216         if ($cpt = sql_countsel("spip_forum AS F", "F.id_auteur=".intval($flux['args']['id_auteur']))){
     247        if ($cpt = sql_countsel("spip_forum AS F", "F.id_auteur=" . intval($flux['args']['id_auteur']))) {
    217248                // manque "1 message de forum"
    218                 $contributions = singulier_ou_pluriel($cpt,'forum:info_1_message_forum','forum:info_nb_messages_forum');
     249                $contributions = singulier_ou_pluriel($cpt, 'forum:info_1_message_forum', 'forum:info_nb_messages_forum');
    219250                $flux['data'][] = $contributions;
    220251        }
     252
    221253        return $flux;
    222254}
     
    228260 * @return array
    229261 */
    230 function forum_configurer_liste_metas($metas){
    231         $metas['mots_cles_forums'] =  'non';
     262function forum_configurer_liste_metas($metas) {
     263        $metas['mots_cles_forums'] = 'non';
    232264        $metas['forums_titre'] = 'oui';
    233265        $metas['forums_texte'] = 'oui';
     
    245277
    246278
    247 
    248279/**
    249280 * Optimiser la base de donnée en supprimant les forums orphelins
     
    252283 * @return array
    253284 */
    254 function forum_optimiser_base_disparus($flux){
     285function forum_optimiser_base_disparus($flux) {
    255286        $n = &$flux['data'];
    256287        $mydate = $flux['args']['date'];
    257288        # les forums lies a une id_objet inexistant
    258         $r = sql_select("DISTINCT objet",'spip_forum');
    259         while ($t = sql_fetch($r)){
     289        $r = sql_select("DISTINCT objet", 'spip_forum');
     290        while ($t = sql_fetch($r)) {
    260291                if ($type = $t['objet']) {
    261292                        $spip_table_objet = table_objet_sql($type);
     
    263294                        # les forums lies a un objet inexistant
    264295                        $res = sql_select("forum.id_forum AS id",
    265                                                         "spip_forum AS forum
     296                                "spip_forum AS forum
    266297                                                                LEFT JOIN $spip_table_objet AS O
    267298                                                                        ON O.$id_table_objet=forum.id_objet",
    268                                         "forum.objet=".sql_quote($type)." AND O.$id_table_objet IS NULL AND forum.id_objet>0");
    269 
    270                         $n+= optimiser_sansref('spip_forum', 'id_forum', $res);
     299                                "forum.objet=" . sql_quote($type) . " AND O.$id_table_objet IS NULL AND forum.id_objet>0");
     300
     301                        $n += optimiser_sansref('spip_forum', 'id_forum', $res);
    271302                }
    272303        }
     
    275306        // Forums
    276307        //
    277         sql_delete("spip_forum", "statut=".sql_quote('redac')." AND maj < ".sql_quote($mydate));
     308        sql_delete("spip_forum", "statut=" . sql_quote('redac') . " AND maj < " . sql_quote($mydate));
    278309
    279310        // nettoyer les documents des forums en spam&poubelle pour eviter de sortir des quota disques
    280311        // bizarrement on ne nettoie jamais les messages eux meme ?
    281312        include_spip('action/editer_liens');
    282         if (objet_associable('document')){
    283                 $res = sql_select('L.id_document,F.id_forum',"spip_documents_liens AS L JOIN spip_forum AS F ON (F.id_forum=L.id_objet AND L.objet='forum')","F.statut IN ('off','spam')");
    284                 while ($row = sql_fetch($res)){
     313        if (objet_associable('document')) {
     314                $res = sql_select('L.id_document,F.id_forum',
     315                        "spip_documents_liens AS L JOIN spip_forum AS F ON (F.id_forum=L.id_objet AND L.objet='forum')",
     316                        "F.statut IN ('off','spam')");
     317                while ($row = sql_fetch($res)) {
    285318                        include_spip('inc/autoriser');
    286319                        // si un seul lien (ce forum donc), on supprime le document
    287320                        // si un document est attache a plus d'un forum, c'est un cas bizarre ou gere a la main
    288321                        // on ne touche a rien !
    289                         if (count(objet_trouver_liens(array('document'=>$row['id_document']),'*'))==1){
    290                                 autoriser_exception('supprimer','document',$row['id_document']);
    291                                 if ($supprimer_document = charger_fonction('supprimer_document','action',true))
     322                        if (count(objet_trouver_liens(array('document' => $row['id_document']), '*')) == 1) {
     323                                autoriser_exception('supprimer', 'document', $row['id_document']);
     324                                if ($supprimer_document = charger_fonction('supprimer_document', 'action', true)) {
    292325                                        $supprimer_document($row['id_document']);
     326                                }
    293327                        }
    294328                }
     
    305339        if (!defined('_CNIL_PERIODE')) {
    306340                define('_CNIL_PERIODE', 3600*24*31*4);
    307         } 
     341        }
    308342        if (_CNIL_PERIODE) {
    309                 $critere_cnil = 'date_heure<"'.date('Y-m-d', time()-_CNIL_PERIODE).'"'
     343                $critere_cnil = 'date_heure<"' . date('Y-m-d', time()-_CNIL_PERIODE) . '"'
    310344                        . ' AND statut != "spam"'
    311345                        . ' AND (ip LIKE "%.%" OR ip LIKE "%:%")'; # ipv4 ou ipv6
     
    313347                $c = sql_countsel('spip_forum', $critere_cnil);
    314348
    315                 if ($c>0) {
     349                if ($c > 0) {
    316350                        spip_log("CNIL: masquer IP de $c forums anciens");
    317351                        sql_update('spip_forum', array('ip' => 'MD5(ip)'), $critere_cnil);
     
    330364 * @return array
    331365 */
    332 function forum_pre_insertion($flux){
    333         if ($flux['args']['table']=='spip_articles'){
    334                 $flux['data']['accepter_forum'] =       substr($GLOBALS['meta']['forums_publics'],0,3);
    335         }
     366function forum_pre_insertion($flux) {
     367        if ($flux['args']['table'] == 'spip_articles') {
     368                $flux['data']['accepter_forum'] = substr($GLOBALS['meta']['forums_publics'], 0, 3);
     369        }
     370
    336371        return $flux;
    337372}
     
    344379 * @return array
    345380 */
    346 function forum_prepare_recherche($flux){
     381function forum_prepare_recherche($flux) {
    347382        # Pour les forums, unifier par id_thread et forcer statut='publie'
    348         if ($flux['args']['type']=='forum'
    349           AND $points = $flux['data']){
    350           $serveur =  $flux['args']['serveur'];
    351           $modificateurs = (isset($flux['args']['modificateurs'])?$flux['args']['modificateurs']:array());
    352 
    353           // pas de groupe par thread si {plat}
    354           if (!isset($modificateurs['plat'])){
     383        if ($flux['args']['type'] == 'forum'
     384                AND $points = $flux['data']
     385        ) {
     386                $serveur = $flux['args']['serveur'];
     387                $modificateurs = (isset($flux['args']['modificateurs']) ? $flux['args']['modificateurs'] : array());
     388
     389                // pas de groupe par thread si {plat}
     390                if (!isset($modificateurs['plat'])) {
    355391                        $p2 = array();
    356392                        // si critere statut dans la boucle, ne pas filtrer par statut publie ici
    357                         $cond = (isset($modificateurs['criteres']['statut'])?"":"statut='publie' AND ");
    358                         $s = sql_select("id_thread, id_forum", "spip_forum", $cond.sql_in('id_forum', array_keys($points)), '','','','',$serveur);
    359                         while ($t = sql_fetch($s, $serveur))
     393                        $cond = (isset($modificateurs['criteres']['statut']) ? "" : "statut='publie' AND ");
     394                        $s = sql_select("id_thread, id_forum", "spip_forum", $cond . sql_in('id_forum', array_keys($points)), '', '', '',
     395                                '', $serveur);
     396                        while ($t = sql_fetch($s, $serveur)) {
    360397                                $p2[intval($t['id_thread'])]['score']
    361398                                        += $points[intval($t['id_forum'])]['score'];
     399                        }
    362400                        $flux['data'] = $p2;
    363           }
    364         }
     401                }
     402        }
     403
    365404        return $flux;
    366405}
     
    373412 * @return array
    374413 */
    375 function forum_rubrique_encours($flux){
     414function forum_rubrique_encours($flux) {
    376415        if (strlen($flux['data'])
    377           AND $GLOBALS['meta']['forum_prive_objets'] != 'non')
     416                AND $GLOBALS['meta']['forum_prive_objets'] != 'non'
     417        ) {
    378418                $flux['data'] = _T('forum:texte_en_cours_validation_forum') . $flux['data'];
     419        }
     420
    379421        return $flux;
    380422}
     
    386428 * @return array
    387429 */
    388 function forum_trig_supprimer_objets_lies($objets){
    389         foreach($objets as $objet){
    390                 if ($objet['type']=='message')
    391                         sql_delete("spip_forum", "id_message=".intval($objet['id']));
    392                 if (!sql_countsel(table_objet_sql($objet['type']), id_table_objet($objet['type'])."=".intval($objet['id'])))
    393                         sql_delete("spip_forum", array("id_objet=".intval($objet['id']),"objet=".sql_quote($objet['type'])));
    394         }
     430function forum_trig_supprimer_objets_lies($objets) {
     431        foreach ($objets as $objet) {
     432                if ($objet['type'] == 'message') {
     433                        sql_delete("spip_forum", "id_message=" . intval($objet['id']));
     434                }
     435                if (!sql_countsel(table_objet_sql($objet['type']), id_table_objet($objet['type']) . "=" . intval($objet['id']))) {
     436                        sql_delete("spip_forum", array("id_objet=" . intval($objet['id']), "objet=" . sql_quote($objet['type'])));
     437                }
     438        }
     439
    395440        return $objets;
    396441}
  • _core_/plugins/forum/inc/article_accepter_forums_publics.php

    r46241 r93612  
    11<?php
    22
    3 if (!defined("_ECRIRE_INC_VERSION")) return;
     3if (!defined("_ECRIRE_INC_VERSION")) {
     4        return;
     5}
    46
    57/**
    68 * Moderation des forums specifique a un article
     9 *
    710 * @param int $id_objet identifiant de l'article
    811 * @return string  : "non", "pos"(teriori), "pri"(ori), "abo"(nnement)
     
    1114        $accepter_forum = $GLOBALS['meta']["forums_publics"];
    1215        $art_accepter_forum = sql_getfetsel('accepter_forum', 'spip_articles', array(
    13                 "id_article = ". intval($id_objet)
     16                "id_article = " . intval($id_objet)
    1417        ));
    1518        if ($art_accepter_forum) {
    1619                $accepter_forum = $art_accepter_forum;
    1720        }
     21
    1822        return substr($accepter_forum, 0, 3);
    1923}
  • _core_/plugins/forum/inc/email_notification_forum.php

    r93092 r93612  
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined("_ECRIRE_INC_VERSION")) {
     14        return;
     15}
    1416
    1517/**
     
    2123 * @return string
    2224 */
    23 function inc_email_notification_forum_dist ($t, $email, $contexte = array()) {
     25function inc_email_notification_forum_dist($t, $email, $contexte = array()) {
    2426        static $contextes_store = array();
    2527
    26         if(!isset($contextes_store[$t['id_forum']])){
     28        if (!isset($contextes_store[$t['id_forum']])) {
    2729                $url = '';
    2830                $id_forum = $t['id_forum'];
     
    3032                if ($t['statut'] == 'prive') # forum prive
    3133                {
    32                         if ($t['id_objet'])
    33                                 $url = generer_url_entite($t['id_objet'], $t['objet'], '', 'forum'.$id_forum, false);
    34                 }
    35                 else if ($t['statut'] == 'privrac') # forum general
    36                 {
    37                         $url = generer_url_ecrire('forum').'#forum'.$id_forum;
    38                 }
    39                 else if ($t['statut'] == 'privadm') # forum des admins
    40                 {
    41                         $url = generer_url_ecrire('forum','quoi=admin').'#forum'.$id_forum;
    42                 }
    43                 else if ($t['statut'] == 'publie') # forum publie
    44                 {
    45                         $url = generer_url_entite($id_forum, 'forum');
    46                 }
    47                 else #  forum modere, spam, poubelle direct ....
    48                 {
    49                         $url = generer_url_ecrire('controler_forum', "debut_id_forum=".$id_forum);
     34                        if ($t['id_objet']) {
     35                                $url = generer_url_entite($t['id_objet'], $t['objet'], '', 'forum' . $id_forum, false);
     36                        }
     37                } else {
     38                        if ($t['statut'] == 'privrac') # forum general
     39                        {
     40                                $url = generer_url_ecrire('forum') . '#forum' . $id_forum;
     41                        } else {
     42                                if ($t['statut'] == 'privadm') # forum des admins
     43                                {
     44                                        $url = generer_url_ecrire('forum', 'quoi=admin') . '#forum' . $id_forum;
     45                                } else {
     46                                        if ($t['statut'] == 'publie') # forum publie
     47                                        {
     48                                                $url = generer_url_entite($id_forum, 'forum');
     49                                        } else #  forum modere, spam, poubelle direct ....
     50                                        {
     51                                                $url = generer_url_ecrire('controler_forum', "debut_id_forum=" . $id_forum);
     52                                        }
     53                                }
     54                        }
    5055                }
    5156
    5257                if (!$url) {
    53                         spip_log("forum $id_forum sans referent",'notifications');
     58                        spip_log("forum $id_forum sans referent", 'notifications');
    5459                        $url = './';
    5560                }
     
    6873
    6974                $links = array();
    70                 foreach ($t as $champ=>$v){
     75                foreach ($t as $champ => $v) {
    7176                        $champ = strtoupper($champ);
    72                         $traitement = (isset($GLOBALS['table_des_traitements'][$champ])?$GLOBALS['table_des_traitements'][$champ]:null);
     77                        $traitement = (isset($GLOBALS['table_des_traitements'][$champ]) ? $GLOBALS['table_des_traitements'][$champ] : null);
    7378                        if (is_array($traitement)
    74                           AND (isset($traitement[$table_objet]) OR isset($traitement[0]))){
     79                                AND (isset($traitement[$table_objet]) OR isset($traitement[0]))
     80                        ) {
    7581                                $traitement = $traitement[isset($traitement[$table_objet]) ? $table_objet : 0];
    76                                 $traitement = str_replace('%s', "'".texte_script($v)."'", $traitement);
     82                                $traitement = str_replace('%s', "'" . texte_script($v) . "'", $traitement);
    7783                                eval("\$v = $traitement;");
    7884                        }
    7985
    80                         $links = $links + extraire_balises($v,'a');
     86                        $links = $links+extraire_balises($v, 'a');
    8187                }
    82                 $links = extraire_attribut($links,'href');
    83                 $links = implode("\n",$links);
     88                $links = extraire_attribut($links, 'href');
     89                $links = implode("\n", $links);
    8490                $t['liens'] = $links;
    8591
     
    8894
    8995        $fond = "notifications/forum_poste";
    90         if (isset($contexte['fond'])){
     96        if (isset($contexte['fond'])) {
    9197                $fond = $contexte['fond'];
    9298                unset($contexte['fond']);
    9399        }
    94         $t = array_merge($contextes_store[$t['id_forum']],$contexte);
    95                 // Rechercher eventuellement la langue du destinataire
    96         if (NULL !== ($l = sql_getfetsel('lang', 'spip_auteurs', "email=" . sql_quote($email))))
     100        $t = array_merge($contextes_store[$t['id_forum']], $contexte);
     101        // Rechercher eventuellement la langue du destinataire
     102        if (null !== ($l = sql_getfetsel('lang', 'spip_auteurs', "email=" . sql_quote($email)))) {
    97103                $l = lang_select($l);
     104        }
    98105
    99106        $parauteur = (strlen($t['auteur']) <= 2) ? '' :
    100                 (" " ._T('forum_par_auteur', array(
    101                         'auteur' => $t['auteur'])
    102                 ) .
    103                  ($t['email_auteur'] ? ' <' . $t['email_auteur'] . '>' : ''));
     107                (" " . _T('forum_par_auteur', array(
     108                                        'auteur' => $t['auteur']
     109                                )
     110                        ) .
     111                        ($t['email_auteur'] ? ' <' . $t['email_auteur'] . '>' : ''));
    104112
    105113        $titre = textebrut(typo($t['titre_source']));
    106         if ($titre){
     114        if ($titre) {
    107115                $forum_poste_par = _T(
    108                         $t['objet']=='article'?'forum:forum_poste_par':'forum:forum_poste_par_generique',
    109                         array('parauteur' => $parauteur, 'titre' => $titre, 'objet'=>$t['objet'])
     116                        $t['objet'] == 'article' ? 'forum:forum_poste_par' : 'forum:forum_poste_par_generique',
     117                        array('parauteur' => $parauteur, 'titre' => $titre, 'objet' => $t['objet'])
    110118                );
     119        } else {
     120                $forum_poste_par = _T('forum:forum_poste_par_court', array('parauteur' => $parauteur));
    111121        }
    112         else
    113                 $forum_poste_par = _T('forum:forum_poste_par_court',array('parauteur' => $parauteur));
    114122
    115123        $t['par_auteur'] = $forum_poste_par;
    116124
    117         $envoyer_mail = charger_fonction('envoyer_mail','inc'); // pour nettoyer_titre_email
    118         $corps = recuperer_fond($fond,$t);
     125        $envoyer_mail = charger_fonction('envoyer_mail', 'inc'); // pour nettoyer_titre_email
     126        $corps = recuperer_fond($fond, $t);
    119127
    120         if ($l)
     128        if ($l) {
    121129                lang_select();
     130        }
    122131
    123132        return $corps;
  • _core_/plugins/forum/inc/forum.php

    r93092 r93612  
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined("_ECRIRE_INC_VERSION")) {
     14        return;
     15}
    1416include_spip('inc/actions');
    1517
     
    3032                $and = "";
    3133        } else {
    32                 if (!is_array($id_secteur)){
    33                         $id_secteur = explode(',',$id_secteur);
     34                if (!is_array($id_secteur)) {
     35                        $id_secteur = explode(',', $id_secteur);
    3436                }
    3537                $from = 'spip_forum AS F, spip_articles AS A';
    36                 $where = sql_in("A.id_secteur",$id_secteur)." AND F.objet='article' AND F.id_objet=A.id_article";
     38                $where = sql_in("A.id_secteur", $id_secteur) . " AND F.objet='article' AND F.id_objet=A.id_article";
    3739                $and = ' AND ';
    3840        }
    39    
     41
    4042        switch ($type) {
    4143                case 'public':
     
    5658                default:
    5759                        $where = '0=1';
    58                         $and ='';
     60                        $and = '';
    5961                        break;
    6062        }
     
    6365                # recherche par IP
    6466                if (preg_match(',^\d+\.\d+\.(\*|\d+\.(\*|\d+))$,', $recherche)) {
    65                         $and .= " AND ip LIKE ".sql_quote(str_replace('*', '%', $recherche));
     67                        $and .= " AND ip LIKE " . sql_quote(str_replace('*', '%', $recherche));
    6668                } else {
    6769                        include_spip('inc/rechercher');
    68                         if ($a = recherche_en_base($recherche, 'forum'))
    69                                 $and .= " AND ".sql_in('id_forum',
    70                                         array_keys(array_pop($a)));
    71                         else
     70                        if ($a = recherche_en_base($recherche, 'forum')) {
     71                                $and .= " AND " . sql_in('id_forum',
     72                                                array_keys(array_pop($a)));
     73                        } else {
    7274                                $and .= " AND 0=1";
     75                        }
    7376                }
    7477        }
     
    8386// http://code.spip.net/@calcul_index_forum
    8487function calcul_index_forum($objet, $id_objet) {
    85         return substr($objet,0,1).$id_objet;
     88        return substr($objet, 0, 1) . $id_objet;
    8689}
    8790
     
    9295function calculer_threads() {
    9396        // fixer les id_thread des debuts de discussion
    94         sql_update('spip_forum', array('id_thread'=>'id_forum'), "id_parent=0");
     97        sql_update('spip_forum', array('id_thread' => 'id_forum'), "id_parent=0");
    9598        // reparer les messages qui n'ont pas l'id_secteur de leur parent
    9699        do {
    97100                $discussion = "0";
    98101                $precedent = 0;
    99                 $r = sql_select("fille.id_forum AS id,  maman.id_thread AS thread", 'spip_forum AS fille, spip_forum AS maman', "fille.id_parent = maman.id_forum AND fille.id_thread <> maman.id_thread",'', "thread");
     102                $r = sql_select("fille.id_forum AS id,  maman.id_thread AS thread", 'spip_forum AS fille, spip_forum AS maman',
     103                        "fille.id_parent = maman.id_forum AND fille.id_thread <> maman.id_thread", '', "thread");
    100104                while ($row = sql_fetch($r)) {
    101                         if ($row['thread'] == $precedent)
     105                        if ($row['thread'] == $precedent) {
    102106                                $discussion .= "," . $row['id'];
    103                         else {
    104                                 if ($precedent)
     107                        } else {
     108                                if ($precedent) {
    105109                                        sql_updateq("spip_forum", array("id_thread" => $precedent), "id_forum IN ($discussion)");
     110                                }
    106111                                $precedent = $row['thread'];
    107112                                $discussion = $row['id'];
     
    114119// Calculs des URLs des forums (pour l'espace public)
    115120// http://code.spip.net/@racine_forum
    116 function racine_forum($id_forum){
    117         if (!$id_forum = intval($id_forum)) return false;
    118 
    119         $row = sql_fetsel("id_parent, objet, id_objet, id_thread", "spip_forum", "id_forum=".$id_forum);
    120 
    121         if (!$row) return false;
     121function racine_forum($id_forum) {
     122        if (!$id_forum = intval($id_forum)) {
     123                return false;
     124        }
     125
     126        $row = sql_fetsel("id_parent, objet, id_objet, id_thread", "spip_forum", "id_forum=" . $id_forum);
     127
     128        if (!$row) {
     129                return false;
     130        }
    122131
    123132        if ($row['id_parent']
    124         AND $row['id_thread'] != $id_forum) // eviter boucle infinie
     133                AND $row['id_thread'] != $id_forum
     134        ) // eviter boucle infinie
     135        {
    125136                return racine_forum($row['id_thread']);
     137        }
    126138
    127139        return array($row['objet'], $row['id_objet'], $id_forum);
    128 } 
     140}
    129141
    130142
    131143// http://code.spip.net/@parent_forum
    132144function parent_forum($id_forum) {
    133         if (!$id_forum = intval($id_forum)) return;
    134         $row = sql_fetsel("id_parent, objet, id_objet", "spip_forum", "id_forum=".$id_forum);
    135         if(!$row) return array();
    136         if ($row['id_parent'])
     145        if (!$id_forum = intval($id_forum)) {
     146                return;
     147        }
     148        $row = sql_fetsel("id_parent, objet, id_objet", "spip_forum", "id_forum=" . $id_forum);
     149        if (!$row) {
     150                return array();
     151        }
     152        if ($row['id_parent']) {
    137153                return array('forum', $row['id_parent']);
    138         else
     154        } else {
    139155                return array($row['objet'], $row['id_objet']);
    140 }
     156        }
     157}
    141158
    142159
     
    150167 */
    151168function generer_url_forum_dist($id_forum, $args = '', $ancre = '') {
    152         $generer_url_forum = charger_fonction('generer_url_forum','urls');
     169        $generer_url_forum = charger_fonction('generer_url_forum', 'urls');
     170
    153171        return $generer_url_forum($id_forum, $args, $ancre);
    154172}
     
    159177        if ($id_forum = intval($id_forum)) {
    160178                list($type, $id) = parent_forum($id_forum);
    161                 if ($type)
     179                if ($type) {
    162180                        return generer_url_entite($id, $type);
    163         }
     181                }
     182        }
     183
    164184        return '';
    165 } 
     185}
    166186
    167187
     
    170190// http://code.spip.net/@conserver_original
    171191function conserver_original($id_forum) {
    172         $s = sql_fetsel("id_forum", "spip_forum", "id_parent=".intval($id_forum)." AND statut='original'");
    173 
    174         if ($s) return ''; // pas d'erreur
     192        $s = sql_fetsel("id_forum", "spip_forum", "id_parent=" . intval($id_forum) . " AND statut='original'");
     193
     194        if ($s) {
     195                return '';
     196        } // pas d'erreur
    175197
    176198        // recopier le forum
    177         $t = sql_fetsel("*", "spip_forum", "id_forum=".intval($id_forum));
     199        $t = sql_fetsel("*", "spip_forum", "id_forum=" . intval($id_forum));
    178200
    179201        if ($t) {
     
    181203                $id_copie = sql_insertq('spip_forum', $t);
    182204                if ($id_copie) {
    183                         sql_updateq('spip_forum', array('id_parent'=> $id_forum, 'statut'=>'original'), "id_forum=$id_copie");
     205                        sql_updateq('spip_forum', array('id_parent' => $id_forum, 'statut' => 'original'), "id_forum=$id_copie");
     206
    184207                        return ''; // pas d'erreur
    185208                }
     
    194217        if ($err = conserver_original($id_forum)) {
    195218                spip_log("erreur de sauvegarde de l'original, $err");
     219
    196220                return;
    197221        }
    198222
    199223        include_spip('action/editer_forum');
     224
    200225        return revision_forum($id_forum, $c);
    201226}
     
    204229/**
    205230 * Trouver le titre d'un objet publie
     231 *
    206232 * @param string $objet
    207233 * @param int $id_objet
     
    214240        $titre = "";
    215241
    216         if ($f = charger_fonction($objet.'_forum_extraire_titre', 'inc', true)){
     242        if ($f = charger_fonction($objet . '_forum_extraire_titre', 'inc', true)) {
    217243                $titre = $f($id_objet);
    218         }
    219         else {
     244        } else {
    220245                include_spip('base/objets');
    221                 if ($publie AND !objet_test_si_publie($objet, $id_objet))
     246                if ($publie AND !objet_test_si_publie($objet, $id_objet)) {
    222247                        return false;
    223 
    224                 $titre = generer_info_entite($id_objet, $objet,'titre','*');
    225         }
    226 
    227         if ($titre AND $id_forum){
     248                }
     249
     250                $titre = generer_info_entite($id_objet, $objet, 'titre', '*');
     251        }
     252
     253        if ($titre AND $id_forum) {
    228254                $titre_m = sql_getfetsel('titre', 'spip_forum', "id_forum = " . intval($id_forum));
    229255                if (!$titre_m) {
     
    249275 *
    250276 * http://code.spip.net/@controler_forum
    251  * 
     277 *
    252278 * @param string $objet
    253279 *   objet a tester
     
    262288
    263289        // il y a un cas particulier pour l'acceptation de forum d'article...
    264         if ($f = charger_fonction($objet . '_accepter_forums_publics', 'inc', true)){
     290        if ($f = charger_fonction($objet . '_accepter_forums_publics', 'inc', true)) {
    265291                $accepter_forum = $f($id_objet);
    266292        }
     
    273299 * Verifier la presence du jeton de secu post previsu
    274300 * http://code.spip.net/@forum_insert_noprevisu
     301 *
    275302 * @return bool
    276303 */
    277 function forum_insert_noprevisu(){
     304function forum_insert_noprevisu() {
    278305        // simuler une action venant de l'espace public
    279306        // pour se conformer au cas general.
     
    283310        $arg = $securiser_action();
    284311
    285         $file = _DIR_TMP ."forum_" . preg_replace('/[^0-9]/', '', $arg) .".lck";
     312        $file = _DIR_TMP . "forum_" . preg_replace('/[^0-9]/', '', $arg) . ".lck";
    286313        if (!file_exists($file)) {
    287314                # ne pas tracer cette erreur, peut etre due a un double POST
     
    293320        // antispam : si le champ au nom aleatoire verif_$hash n'est pas 'ok'
    294321        // on meurt
    295         if (_request('verif_'._request('hash')) != 'ok') {
    296                         tracer_erreur_forum('champ verif manquant');
    297                         return true;
    298         }
     322        if (_request('verif_' . _request('hash')) != 'ok') {
     323                tracer_erreur_forum('champ verif manquant');
     324
     325                return true;
     326        }
     327
    299328        return false;
    300329}
     
    327356
    328357// http://code.spip.net/@reduce_strlen
    329 function reduce_strlen($n, $c)
    330 {
    331   return $n - (is_string($c) ? strlen($c) : 0);
    332 }
     358function reduce_strlen($n, $c) {
     359        return $n-(is_string($c) ? strlen($c) : 0);
     360}
     361
    333362?>
  • _core_/plugins/forum/inc/forum_insert.php

    r93092 r93612  
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined("_ECRIRE_INC_VERSION")) {
     14        return;
     15}
    1416include_spip('inc/forum');
    1517include_spip('inc/filtres');
     
    1921
    2022// http://code.spip.net/@mots_du_forum
    21 function mots_du_forum($ajouter_mot, $id_message)
    22 {
     23function mots_du_forum($ajouter_mot, $id_message) {
    2324        include_spip('action/editer_mot');
    24         mot_associer($ajouter_mot, array('forum'=>$id_message));
     25        mot_associer($ajouter_mot, array('forum' => $id_message));
    2526}
    26 
    2727
    2828
    2929// http://code.spip.net/@tracer_erreur_forum
    3030function tracer_erreur_forum($type = '') {
    31         spip_log("erreur forum ($type): ".print_r($_POST, true));
     31        spip_log("erreur forum ($type): " . print_r($_POST, true));
    3232
    3333        define('_TRACER_ERREUR_FORUM', false);
    3434        if (_TRACER_ERREUR_FORUM) {
    35                 $envoyer_mail = charger_fonction('envoyer_mail','inc');
     35                $envoyer_mail = charger_fonction('envoyer_mail', 'inc');
    3636                $envoyer_mail($GLOBALS['meta']['email_webmaster'], "erreur forum ($type)",
    37                         "erreur sur le forum ($type) :\n\n".
    38                         '$_POST = '.print_r($_POST, true)."\n\n".
    39                         '$_SERVER = '.print_r($_SERVER, true));
     37                        "erreur sur le forum ($type) :\n\n" .
     38                        '$_POST = ' . print_r($_POST, true) . "\n\n" .
     39                        '$_SERVER = ' . print_r($_SERVER, true));
    4040        }
    4141}
     
    5353 * @return bool
    5454 */
    55 function inc_forum_insert_dist($objet, $id_objet, $id_forum, $force_statut = NULL) {
     55function inc_forum_insert_dist($objet, $id_objet, $id_forum, $force_statut = null) {
    5656
    57         if (!in_array($force_statut,array('privrac','privadm'))){
     57        if (!in_array($force_statut, array('privrac', 'privadm'))) {
    5858                if (!strlen($objet)
    59                   OR !intval($id_objet)){
    60                         spip_log("Erreur insertion forum sur objet='$objet', id_objet=$id_objet",'forum.'. _LOG_ERREUR);
     59                        OR !intval($id_objet)
     60                ) {
     61                        spip_log("Erreur insertion forum sur objet='$objet', id_objet=$id_objet", 'forum.' . _LOG_ERREUR);
     62
    6163                        return 0;
    6264                }
     
    6870        include_spip('inc/modifier');
    6971        include_spip('inc/session');
    70         $champs = objet_info('forum','champs_editables');
     72        $champs = objet_info('forum', 'champs_editables');
    7173        $c = collecter_requests($champs, array());
    72        
     74
    7375        $c['statut'] = 'off';
    7476        $c['objet'] = $objet;
     
    7779        $c['email_auteur'] = sinon(session_get('email'), session_get('session_email'));
    7880
    79         $c = pipeline('pre_edition',array(
    80                 'args'=>array(
    81                                 'table' => 'spip_forum',
    82                                 'id_objet' => $id_forum,
    83                                 'action'=>'instituer'
     81        $c = pipeline('pre_edition', array(
     82                'args' => array(
     83                        'table' => 'spip_forum',
     84                        'id_objet' => $id_forum,
     85                        'action' => 'instituer'
    8486                ),
    85                 'data'=>forum_insert_statut($c, $force_statut)
     87                'data' => forum_insert_statut($c, $force_statut)
    8688        ));
    8789
    8890        $id_reponse = forum_insert_base($c, $id_forum, $objet, $id_objet, $c['statut'], _request('ajouter_mot'));
    8991
    90         if (!$id_reponse)
    91                 spip_log("Echec insertion forum sur $objet $id_objet (+$id_forum)", 'forum.'._LOG_ERREUR);
    92         else
     92        if (!$id_reponse) {
     93                spip_log("Echec insertion forum sur $objet $id_objet (+$id_forum)", 'forum.' . _LOG_ERREUR);
     94        } else {
    9395                spip_log("forum insere' $id_reponse sur $objet $id_objet (+$id_forum)", 'forum');
     96        }
    9497
    9598        return $id_reponse;
     
    98101
    99102// http://code.spip.net/@forum_insert_base
    100 function forum_insert_base($c, $id_forum, $objet, $id_objet, $statut, $ajouter_mot = false)
    101 {
     103function forum_insert_base($c, $id_forum, $objet, $id_objet, $statut, $ajouter_mot = false) {
    102104
    103         if (!in_array($statut,array('privrac','privadm'))){
     105        if (!in_array($statut, array('privrac', 'privadm'))) {
    104106                // si le statut est vide, c'est qu'on ne veut pas de ce presume spam !
    105                 if (!$statut OR !$objet OR !$id_objet){
     107                if (!$statut OR !$objet OR !$id_objet) {
    106108                        $args = func_get_args();
    107                         spip_log("Erreur sur forum_insert_base ".var_export($args,1),'forum.'. _LOG_ERREUR);
     109                        spip_log("Erreur sur forum_insert_base " . var_export($args, 1), 'forum.' . _LOG_ERREUR);
     110
    108111                        return false;
    109112                }
     
    112115        // Entrer le message dans la base
    113116        $id_reponse = sql_insertq('spip_forum', array(
    114                 'date_heure'=> date('Y-m-d H:i:s'),
     117                'date_heure' => date('Y-m-d H:i:s'),
    115118                'ip' => $GLOBALS['ip'],
    116119                'id_auteur' => $GLOBALS['visiteur_session']['id_auteur']
    117120        ));
    118121
    119         if ($id_reponse){
    120                 if ($id_forum>0) {
    121                         $id_thread = sql_getfetsel("id_thread", "spip_forum", "id_forum =".intval($id_forum));
    122                 }
    123                 else
    124                         $id_thread = $id_reponse; # id_thread oblige INSERT puis UPDATE.
     122        if ($id_reponse) {
     123                if ($id_forum > 0) {
     124                        $id_thread = sql_getfetsel("id_thread", "spip_forum", "id_forum =" . intval($id_forum));
     125                } else {
     126                        $id_thread = $id_reponse;
     127                } # id_thread oblige INSERT puis UPDATE.
    125128
    126129                // Entrer les cles
    127                 sql_updateq('spip_forum', array('id_parent' => $id_forum, 'objet' => $objet, 'id_objet' => $id_objet, 'id_thread' => $id_thread, 'statut' => $statut), "id_forum=".intval($id_reponse));
     130                sql_updateq('spip_forum', array(
     131                        'id_parent' => $id_forum,
     132                        'objet' => $objet,
     133                        'id_objet' => $id_objet,
     134                        'id_thread' => $id_thread,
     135                        'statut' => $statut
     136                ), "id_forum=" . intval($id_reponse));
    128137
    129138                // Entrer les mots-cles associes
    130                 if ($ajouter_mot) mots_du_forum($ajouter_mot, $id_reponse);
     139                if ($ajouter_mot) {
     140                        mots_du_forum($ajouter_mot, $id_reponse);
     141                }
    131142
    132143                //
     
    138149                // Ajouter un document
    139150                if (isset($_FILES['ajouter_document'])
    140                 AND $_FILES['ajouter_document']['tmp_name']) {
    141                         $files[] = array('tmp_name'=>$_FILES['ajouter_document']['tmp_name'],'name'=>$_FILES['ajouter_document']['name']);
    142                         $ajouter_documents = charger_fonction('ajouter_documents','action');
     151                        AND $_FILES['ajouter_document']['tmp_name']
     152                ) {
     153                        $files[] = array(
     154                                'tmp_name' => $_FILES['ajouter_document']['tmp_name'],
     155                                'name' => $_FILES['ajouter_document']['name']
     156                        );
     157                        $ajouter_documents = charger_fonction('ajouter_documents', 'action');
    143158                        $ajouter_documents(
    144159                                'new',
     
    154169
    155170                // Notification
    156                 $quoi = (strncmp($statut,'priv',4)==0?'forumprive':'forumposte');
    157                 if ($notifications = charger_fonction('notifications', 'inc'))
     171                $quoi = (strncmp($statut, 'priv', 4) == 0 ? 'forumprive' : 'forumposte');
     172                if ($notifications = charger_fonction('notifications', 'inc')) {
    158173                        $notifications($quoi, $id_reponse);
     174                }
    159175        }
    160176
     
    164180
    165181// http://code.spip.net/@forum_insert_statut
    166 function forum_insert_statut($champs, $forcer_statut = NULL)
    167 {
     182function forum_insert_statut($champs, $forcer_statut = null) {
    168183        include_spip('inc/forum');
    169184        $statut = controler_forum($champs['objet'], $champs['id_objet']);
    170185
    171         if ($forcer_statut !== NULL)
     186        if ($forcer_statut !== null) {
    172187                $champs['statut'] = $forcer_statut;
    173         else
    174                 $champs['statut'] = ($statut == 'non') ? 'off' : (($statut == 'pri') ? 'prop' : 'publie');
     188        } else {
     189                $champs['statut'] = ($statut == 'non') ? 'off' : (($statut == 'pri') ? 'prop' : 'publie');
     190        }
    175191
    176192        return $champs;
  • _core_/plugins/forum/notifications/forumposte.php

    r69937 r93612  
    1111 *
    1212 * @package SPIP\Forum\Notifications
    13 **/
     13 **/
    1414
    15 if (!defined("_ECRIRE_INC_VERSION")) return;
     15if (!defined("_ECRIRE_INC_VERSION")) {
     16        return;
     17}
    1618
    1719/**
     
    2325 */
    2426function notifications_forumposte_dist($quoi, $id_forum, $options) {
    25         $t = sql_fetsel("*", "spip_forum", "id_forum=".intval($id_forum));
    26         if (!$t)
     27        $t = sql_fetsel("*", "spip_forum", "id_forum=" . intval($id_forum));
     28        if (!$t) {
    2729                return;
     30        }
    2831
    2932        // plugin notification si present
    3033        $prevenir_auteurs = isset($GLOBALS['notifications']['prevenir_auteurs']) AND $GLOBALS['notifications']['prevenir_auteurs'];
    3134        // sinon voie normale
    32         if ($t['objet']=='article' AND !$prevenir_auteurs){
    33                 $s = sql_getfetsel('accepter_forum','spip_articles',"id_article=" . $t['id_objet']);
    34                 if (!$s)  $s = substr($GLOBALS['meta']["forums_publics"],0,3);
     35        if ($t['objet'] == 'article' AND !$prevenir_auteurs) {
     36                $s = sql_getfetsel('accepter_forum', 'spip_articles', "id_article=" . $t['id_objet']);
     37                if (!$s) {
     38                        $s = substr($GLOBALS['meta']["forums_publics"], 0, 3);
     39                }
    3540
    36                 $prevenir_auteurs = (strpos(@$GLOBALS['meta']['prevenir_auteurs'],",$s,")!==false
     41                $prevenir_auteurs = (strpos(@$GLOBALS['meta']['prevenir_auteurs'], ",$s,") !== false
    3742                        OR @$GLOBALS['meta']['prevenir_auteurs'] === 'oui'); // compat
    3843        }
     
    4954        // avertis par la notifications_forumvalide).
    5055        if ($prevenir_auteurs) {
    51                 $result = sql_select("auteurs.*","spip_auteurs AS auteurs, spip_auteurs_liens AS lien","lien.objet=".sql_quote($t['objet'])." AND lien.id_objet=".intval($t['id_objet'])." AND auteurs.id_auteur=lien.id_auteur");
     56                $result = sql_select("auteurs.*", "spip_auteurs AS auteurs, spip_auteurs_liens AS lien",
     57                        "lien.objet=" . sql_quote($t['objet']) . " AND lien.id_objet=" . intval($t['id_objet']) . " AND auteurs.id_auteur=lien.id_auteur");
    5258
    5359                while ($qui = sql_fetch($result)) {
    54                         if ($qui['email'] AND autoriser('modererforum', $t['objet'], $t['id_objet'], $qui['id_auteur']))
     60                        if ($qui['email'] AND autoriser('modererforum', $t['objet'], $t['id_objet'], $qui['id_auteur'])) {
    5561                                $tous[] = $qui['email'];
     62                        }
    5663                }
    5764        }
     
    6067        $destinataires = pipeline('notifications_destinataires',
    6168                array(
    62                         'args'=>array('quoi'=>$quoi,'id'=>$id_forum,'options'=>$options)
     69                        'args' => array('quoi' => $quoi, 'id' => $id_forum, 'options' => $options)
    6370                ,
    64                         'data'=>$tous)
     71                        'data' => $tous
     72                )
    6573        );
    6674
    6775        // Nettoyer le tableau
    6876        // Ne pas ecrire au posteur du message !
    69         notifications_nettoyer_emails($destinataires,array($t['email_auteur']));
     77        notifications_nettoyer_emails($destinataires, array($t['email_auteur']));
    7078
    7179        //
    7280        // Envoyer les emails
    7381        //
    74         $email_notification_forum = charger_fonction('email_notification_forum','inc');
     82        $email_notification_forum = charger_fonction('email_notification_forum', 'inc');
    7583        foreach ($destinataires as $email) {
    7684                $texte = $email_notification_forum($t, $email);
     
    8593        }
    8694}
     95
    8796?>
  • _core_/plugins/forum/notifications/forumvalide.php

    r93110 r93612  
    1111 *
    1212 * @package SPIP\Forum\Notifications
    13 **/
     13 **/
    1414
    15 if (!defined("_ECRIRE_INC_VERSION")) return;
     15if (!defined("_ECRIRE_INC_VERSION")) {
     16        return;
     17}
    1618
    1719/**
    1820 * Cette notification s'exécute quand on valide un message 'prop'osé.
    19  * 
     21 *
    2022 * On va notifier ceux qui ne l'ont
    2123 * pas été à la notification forumposte (sachant que les deux peuvent se
     
    2426 * @pipeline_appel notifications_destinataires
    2527 * @see inc/forum_insert.php
    26  * 
     28 *
    2729 * @param string $quoi
    2830 * @param int $id_forum
     
    3133function notifications_forumvalide_dist($quoi, $id_forum, $options) {
    3234
    33         $t = sql_fetsel("*", "spip_forum", "id_forum=".intval($id_forum));
     35        $t = sql_fetsel("*", "spip_forum", "id_forum=" . intval($id_forum));
    3436        if (!$t
    3537                // forum sur un message prive : pas de notification ici (cron)
    36                 OR @$t['statut'] == 'perso')
     38                OR @$t['statut'] == 'perso'
     39        ) {
    3740                return;
     41        }
    3842
    3943        // plugin notification si present
    4044        $prevenir_auteurs = isset($GLOBALS['notifications']['prevenir_auteurs']) AND $GLOBALS['notifications']['prevenir_auteurs'];
    4145        // sinon voie normale
    42         if ($t['objet']=='article' AND !$prevenir_auteurs){
    43                 $s = sql_getfetsel('accepter_forum','spip_articles',"id_article=" . $t['id_objet']);
    44                 if (!$s)  $s = substr($GLOBALS['meta']["forums_publics"],0,3);
     46        if ($t['objet'] == 'article' AND !$prevenir_auteurs) {
     47                $s = sql_getfetsel('accepter_forum', 'spip_articles', "id_article=" . $t['id_objet']);
     48                if (!$s) {
     49                        $s = substr($GLOBALS['meta']["forums_publics"], 0, 3);
     50                }
    4551
    46                 $prevenir_auteurs = (strpos(@$GLOBALS['meta']['prevenir_auteurs'],",$s,")!==false
     52                $prevenir_auteurs = (strpos(@$GLOBALS['meta']['prevenir_auteurs'], ",$s,") !== false
    4753                        OR @$GLOBALS['meta']['prevenir_auteurs'] === 'oui'); // compat
    4854        }
     
    6268        // pas le droit de le moderer (les autres l'ont recu plus tot)
    6369        if ($prevenir_auteurs) {
    64                 $result = sql_select("auteurs.*","spip_auteurs AS auteurs, spip_auteurs_liens AS lien","lien.objet=".sql_quote($t['objet'])." AND lien.id_objet=".intval($t['id_objet'])." AND auteurs.id_auteur=lien.id_auteur");
     70                $result = sql_select("auteurs.*", "spip_auteurs AS auteurs, spip_auteurs_liens AS lien",
     71                        "lien.objet=" . sql_quote($t['objet']) . " AND lien.id_objet=" . intval($t['id_objet']) . " AND auteurs.id_auteur=lien.id_auteur");
    6572
    6673                while ($qui = sql_fetch($result)) {
    6774                        if ($qui['email']) {
    68                                 if (!autoriser('modererforum', $t['objet'], $t['id_objet'], $qui['id_auteur']))
     75                                if (!autoriser('modererforum', $t['objet'], $t['id_objet'], $qui['id_auteur'])) {
    6976                                        $tous[] = $qui['email'];
    70                                 else
    71                                         // Ne pas ecrire aux auteurs deja notifies precedemment
     77                                } else // Ne pas ecrire aux auteurs deja notifies precedemment
     78                                {
    7279                                        $pasmoi[] = $qui['email'];
     80                                }
    7381                        }
    7482                }
     
    92100        // Envoyer les emails
    93101        //
    94         $email_notification_forum = charger_fonction('email_notification_forum','inc');
     102        $email_notification_forum = charger_fonction('email_notification_forum', 'inc');
    95103        foreach ($destinataires as $email) {
    96104                $texte = $email_notification_forum($t, $email);
  • _core_/plugins/forum/prive/modeles/forum_fonctions.php

    r93092 r93612  
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined("_ECRIRE_INC_VERSION")) {
     14        return;
     15}
    1416
    15 function forum_compte_messages_from($email, $id_forum){
     17function forum_compte_messages_from($email, $id_forum) {
    1618        static $mem = array();
    1719
    18         if (isset($mem[$email]))
     20        if (isset($mem[$email])) {
    1921                return $mem[$email];
     22        }
    2023
    2124        // sinon on fait une requete groupee pour essayer de ne le faire qu'une fois pour toute la liste
    22         $emails = sql_allfetsel("DISTINCT email_auteur","spip_forum","id_forum>".intval($id_forum-50)." AND id_forum<".intval($id_forum+50));
    23         $emails = array_map('reset',$emails);
     25        $emails = sql_allfetsel("DISTINCT email_auteur", "spip_forum",
     26                "id_forum>" . intval($id_forum-50) . " AND id_forum<" . intval($id_forum+50));
     27        $emails = array_map('reset', $emails);
    2428        $emails = array_filter($emails);
    2529        // et compter
    26         $counts = sql_allfetsel("email_auteur,count(id_forum) AS N","spip_forum",sql_in("email_auteur",$emails),"email_auteur");
     30        $counts = sql_allfetsel("email_auteur,count(id_forum) AS N", "spip_forum", sql_in("email_auteur", $emails),
     31                "email_auteur");
    2732
    28         foreach($counts as $c){
     33        foreach ($counts as $c) {
    2934                $mem[$c['email_auteur']] = $c['N'];
    3035        }
  • _core_/plugins/forum/public/forum.php

    r88959 r93612  
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined("_ECRIRE_INC_VERSION")) {
     14        return;
     15}
    1416
    1517//
     
    2527        // de meme qu'un critere sur {id_forum} ou {id_parent}
    2628        if (!isset($boucle->modificateur['tout'])
    27           AND !isset($boucle->modificateur['plat'])
    28           AND !isset($boucle->modificateur['criteres']['id_forum'])
    29           AND !isset($boucle->modificateur['criteres']['id_parent'])
    30           ) {
    31                 array_unshift($boucle->where,array("'='", "'$id_table." ."id_parent'", 0));
     29                AND !isset($boucle->modificateur['plat'])
     30                AND !isset($boucle->modificateur['criteres']['id_forum'])
     31                AND !isset($boucle->modificateur['criteres']['id_parent'])
     32        ) {
     33                array_unshift($boucle->where, array("'='", "'$id_table." . "id_parent'", 0));
    3234        }
    3335
     
    4749        $mparent = $boucle->id_table . '.' . $id_parent;
    4850
    49         $boucle->where[]= array("'='", "'$mparent'", $arg);
    50         $boucle->where[]= array("'>'", "'$mparent'", 0);
     51        $boucle->where[] = array("'='", "'$mparent'", $arg);
     52        $boucle->where[] = array("'>'", "'$mparent'", 0);
    5153        $boucle->modificateur['plat'] = true;
    5254}
     
    6769 * @return mixed|string
    6870 */
    69 function public_critere_secteur_forums_dist($idb, &$boucles, $val, $crit)
    70 {
    71         return calculer_critere_externe_init($boucles[$idb], array('spip_articles'), 'id_secteur', $boucles[$idb]->show, $crit->cond, true);
     71function public_critere_secteur_forums_dist($idb, &$boucles, $val, $crit) {
     72        return calculer_critere_externe_init($boucles[$idb], array('spip_articles'), 'id_secteur', $boucles[$idb]->show,
     73                $crit->cond, true);
    7274}
    7375
     
    8890        $p->code = '
    8991                // refus des forums ?
    90                 (quete_accepter_forum('.$_id_article.')=="non" OR
     92                (quete_accepter_forum(' . $_id_article . ')=="non" OR
    9193                ($GLOBALS["meta"]["forums_publics"] == "non"
    92                 AND quete_accepter_forum('.$_id_article.') == ""))
     94                AND quete_accepter_forum(' . $_id_article . ') == ""))
    9395                ? "" : // sinon:
    9496                ';
     
    98100
    99101        // si on est dans une boucle de forums, c'est une reponse
    100         if ($p->type_requete == 'forums')
     102        if ($p->type_requete == 'forums') {
    101103                $_id_reponse = champ_sql('id_forum', $p);
    102         else
     104        } else {
    103105                $_id_reponse = "null";
     106        }
    104107
    105108        // objet et id_objet principaux sont a determiner
     
    107110        // a la boucle mere de reserver son id_primary
    108111        if ($p->id_boucle
    109         AND isset($p->boucles[$p->id_boucle])
    110         AND $primary = $p->boucles[$p->id_boucle]->primary
     112                AND isset($p->boucles[$p->id_boucle])
     113                AND $primary = $p->boucles[$p->id_boucle]->primary
    111114        ) {
    112115                $_type = _q($p->boucles[$p->id_boucle]->type_requete);
     
    119122        // le code de base des parametres
    120123        $c = 'calcul_parametres_forum($Pile[0],'
    121                 .$_id_reponse.','.$_type.','.$_primary.')';
     124                . $_id_reponse . ',' . $_type . ',' . $_primary . ')';
    122125
    123126        // ajouter la lang, eventuellement donnee par le contexte
     
    130133        # note : ce bloc qui sert a recuperer des arguments calcules pourrait
    131134        # porter un nom et faire partie de l'API.
    132         $retour = interprete_argument_balise(1,$p);
    133         if ($retour===NULL)
     135        $retour = interprete_argument_balise(1, $p);
     136        if ($retour === null) {
    134137                $retour = "''";
     138        }
    135139
    136140        // Attention un eventuel &retour=xxx dans l'URL est prioritaire
    137141        $c .= '.
    138         (($lien = (_request("retour") ? _request("retour") : str_replace("&amp;", "&", '.$retour.'))) ? "&retour=".rawurlencode($lien) : "")';
    139 
    140         $c = '('.$c.')';
     142        (($lien = (_request("retour") ? _request("retour") : str_replace("&amp;", "&", ' . $retour . '))) ? "&retour=".rawurlencode($lien) : "")';
     143
     144        $c = '(' . $c . ')';
    141145        // Ajouter le code d'invalideur specifique a cette balise
    142146        include_spip('inc/invalideur');
    143         if ($i = charger_fonction('code_invalideur_forums','',true))
     147        if ($i = charger_fonction('code_invalideur_forums', '', true)) {
    144148                $p->code .= $i($p, $c);
    145         else
     149        } else {
    146150                $p->code .= $c;
     151        }
    147152
    148153        $p->interdire_scripts = false;
     154
    149155        return $p;
    150156}
     
    163169        if ($id_parent = intval($reponse)) {
    164170                if ($type
    165                 AND $type!='forums'
    166                 AND $primary)
     171                        AND $type != 'forums'
     172                        AND $primary
     173                ) {
    167174                        $forum = array('objet' => $type, 'id_objet' => $primary);
    168                 else
    169                         $forum = sql_fetsel('objet, id_objet', 'spip_forum', 'id_forum='.$id_parent);
    170 
    171                 if ($forum)
    172                         return id_table_objet($forum['objet']).'='.$forum['id_objet']
    173                         .'&id_forum='.$id_parent;
    174                 else
     175                } else {
     176                        $forum = sql_fetsel('objet, id_objet', 'spip_forum', 'id_forum=' . $id_parent);
     177                }
     178
     179                if ($forum) {
     180                        return id_table_objet($forum['objet']) . '=' . $forum['id_objet']
     181                        . '&id_forum=' . $id_parent;
     182                } else {
    175183                        return '';
     184                }
    176185        }
    177186
    178187        // Ce n'est pas une reponse, on prend la boucle mere
    179         if ($type AND $primary)
    180                 return id_table_objet($type).'='.intval($primary);
     188        if ($type AND $primary) {
     189                return id_table_objet($type) . '=' . intval($primary);
     190        }
    181191
    182192        // dernier recours, on regarde pour chacun des objets forumables
     
    184194        foreach ($env as $k => $v) {
    185195                if (preg_match(',^id_([a-z_]+)$,S', $k)
    186                 AND $id = intval($v)) {
    187                         return id_table_objet($k).'='.$v;
     196                        AND $id = intval($v)
     197                ) {
     198                        return id_table_objet($k) . '=' . $v;
    188199                }
    189200        }
     
    202213        $id_article = intval($id_article);
    203214
    204         if (isset($cache[$id_article])) return $cache[$id_article];
    205 
    206         return $cache[$id_article] = sql_getfetsel('accepter_forum','spip_articles',"id_article=$id_article");
     215        if (isset($cache[$id_article])) {
     216                return $cache[$id_article];
     217        }
     218
     219        return $cache[$id_article] = sql_getfetsel('accepter_forum', 'spip_articles', "id_article=$id_article");
    207220}
    208221
     
    218231        if (is_array($lang) AND preg_match(',id_([a-z_]+)=([0-9]+),', $qs, $r)) {
    219232                $id = 'id_' . $r[1];
    220                 if ($t = $lang[$id])
     233                if ($t = $lang[$id]) {
    221234                        $lang = sql_getfetsel('lang', $t, "$id=" . $r[2]);
    222         }
    223   // Si ce n'est pas la meme que celle du site, l'ajouter aux parametres
    224 
    225         if ($lang AND $lang <> $GLOBALS['meta']['langue_site'])
     235                }
     236        }
     237        // Si ce n'est pas la meme que celle du site, l'ajouter aux parametres
     238
     239        if ($lang AND $lang <> $GLOBALS['meta']['langue_site']) {
    226240                return $qs . "&lang=" . $lang;
     241        }
    227242
    228243        return $qs;
     
    236251        return $code;
    237252}
     253
    238254?>
  • _core_/plugins/forum/urls/generer_url_ecrire_forum.php

    r93092 r93612  
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined("_ECRIRE_INC_VERSION")) {
     14        return;
     15}
    1416
    1517// http://code.spip.net/@generer_url_ecrire_forum
    1618function urls_generer_url_ecrire_forum_dist($id, $args = '', $ancre = '', $public = null, $connect = '') {
    1719        $a = "id_forum=" . intval($id);
    18         if (is_null($public) AND !$connect)
     20        if (is_null($public) AND !$connect) {
    1921                $public = objet_test_si_publie('forum', $id, $connect);
     22        }
    2023        $h = ($public OR $connect)
    21         ?  generer_url_entite_absolue($id, 'forum', $args, $ancre, $connect)
    22         : (generer_url_ecrire('controler_forum', "debut_forum=@$id" . ($args ? "&$args" : ''))
    23                 . ($ancre ? "#$ancre" : ''));
     24                ? generer_url_entite_absolue($id, 'forum', $args, $ancre, $connect)
     25                : (generer_url_ecrire('controler_forum', "debut_forum=@$id" . ($args ? "&$args" : ''))
     26                        . ($ancre ? "#$ancre" : ''));
     27
    2428        return $h;
    2529}
  • _core_/plugins/forum/urls/generer_url_forum.php

    r93092 r93612  
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined("_ECRIRE_INC_VERSION")) {
     14        return;
     15}
    1416
    1517function urls_generer_url_forum_dist($id_forum, $args = '', $ancre = '') {
     
    1820                list($type, $id,) = racine_forum($id_forum);
    1921                if ($type) {
    20                         if (!$ancre) $ancre = "forum$id_forum";
     22                        if (!$ancre) {
     23                                $ancre = "forum$id_forum";
     24                        }
     25
    2126                        return generer_url_entite($id, $type, $args, $ancre, true);
    2227                }
    2328        }
     29
    2430        return '';
    2531}
Note: See TracChangeset for help on using the changeset viewer.