Crabs Contents Management System

crabs_cms-1.0.4 ©2006-2008 - Christophe Cazajus (crabs-mettre_le_signe_at-crabs-world.com)

~~ / LIB / forum.php
Makefile util.php mysql.php xml.php xml_session.php only_session.php xml_publie.php generer.php forum.php xml_post_session.php xml_post_only_session.php httprequest.js
    1 <?php
    2 //
    3 // =============================================================================
    4 //  crabs_cms-1.0.4 : Crabs Contents Management System
    5 //  Copyright (C) 2006-2008 : Christophe Cazajus (crabs-mettre_le_signe_at-crabs-world.com)
    6 //
    7 //  Ce source fait partie d'un projet logiciel libre. Vous pouvez le distribuer
    8 //  et/ou le modifier en respectant les termes de la GNU General Public License
    9 //  version 2 ou (suite a votre propre choix) une version ulterieure.
   10 //
   11 //  Ce programme est distribue dans l'espoir qu'il puisse etre utile, mais
   12 //  sans aucune garantie, meme si il est associe a un produit qui vous en
   13 //  propose une. Conformez-vous a la GNU General Public License pour avoir
   14 //  plus de precisions.
   15 //
   16 //  L'auteur ne peut etre tenu responsable de l'utilisation faite des
   17 //  composantes associees a ce projet (en partie ou dans leur totalite).
   18 //
   19 //  Une copie du fichier de la GNU GPL est fournie dans le repertoire DOC
   20 //  de ce projet sous le nom gnu_gpl.txt
   21 //
   22 // =============================================================================
   23 //
   24 
   25 function liste_forums( &$xml, $c, $post, $modere )
   26     {
   27     global $DB_PRFX ;
   28     $attr['post'] = $post ; $attr['modere'] = $modere ;
   29     $f = &$xml->addElement( 'forums', $attr ) ;
   30     $sql = "SELECT fid, item, titre, info FROM ${DB_PRFX}ff ORDER BY fid" ;
   31     $res = $c->query( $sql ) ;
   32     while ( $r = mysql_fetch_assoc( $res ) )
   33         {
   34         foreach( $r as $var => $val ) $$var = fromMySQL( $val ) ;
   35         $ff = &$f->addElement( 'forum', array( 'fid'=>$fid ) ) ;
   36         $ff->addElementText( 'titre', toXML( $titre ) ) ;
   37         $ff->addElementText( 'info', toXML( $info ) ) ;
   38         $ff->addElementText( 'item', toXML( $item ) ) ;
   39         }
   40     mysql_freeresult( $res ) ;
   41     ajouter_menu( $xml, $c ) ;
   42     }
   43 
   44 function item_forum( &$xml, $c, $fid_courant )
   45     {
   46     global $DB_PRFX ;
   47     $f = &$xml->addElement( 'forums' ) ;
   48     $sql = "SELECT fid, item, titre FROM ${DB_PRFX}ff ORDER BY fid" ;
   49     $res = $c->query( $sql ) ;
   50     while ( $r = mysql_fetch_assoc( $res ) )
   51         {
   52         foreach( $r as $var => $val ) $$var = fromMySQL( $val ) ;
   53         $attr = array( 'fid'=>$fid  ) ;
   54         if ( $fid_courant == $fid ) $attr['courant'] = 'oui' ;
   55         $ff = &$f->addElement( 'forum',$attr ) ;
   56         $ff->addElementText( 'item', toXML( $item ) ) ;
   57         $ff->addElementText( 'titre', toXML( $titre ) ) ;
   58         }
   59     mysql_freeresult( $res ) ;
   60     }
   61 
   62 function liste_threads( &$xml, $c, $post, $modere, $fid )
   63     {
   64     global $DB_PRFX ;
   65     $attr['post'] = $post ; $attr['modere'] = $modere ; $attr['fid'] = $fid ;
   66     $f = &$xml->addElement( 'threads', $attr ) ;
   67     $sql = <<<SQL
   68         SELECT qid, titre, qui, last_qid as lqid, last_qui as lqui, nb_reponse,
   69             DATE_FORMAT( quand, '%d/%m') as quand,
   70             DATE_FORMAT( last_quand, '%d/%m %H:%i' ) as lquand
   71         FROM ${DB_PRFX}fq
   72         WHERE fid='$fid'
   73         ORDER BY last_quand DESC
   74 SQL;
   75     $res = $c->query( $sql ) ;
   76     while ( $r = mysql_fetch_assoc( $res ) )
   77         {
   78         $ff = &$f->addElement( 'thread' ) ;
   79         foreach( $r as $var => $val )
   80             $ff->addElementText( $var, toXML( fromMySQL( $val ) ) ) ;
   81         }
   82     mysql_freeresult( $res ) ;
   83     item_forum( $f, $c, $fid ) ;
   84     ajouter_menu( $xml, $c ) ;
   85     }
   86 
   87 function thread( &$xml, $c, $post, $modere, $qid )
   88     {
   89     global $DB_PRFX ;
   90     $sql = <<<SQL
   91         SELECT fid, titre, texte, qui, ouvert,
   92             DATE_FORMAT( quand, '%d/%m %H:%i' ) as quand
   93         FROM ${DB_PRFX}fq
   94         WHERE qid='$qid'
   95 SQL;
   96     $res = $c->query( $sql ) ;
   97     if ( $r = mysql_fetch_assoc( $res ) )
   98         {
   99         foreach( $r as $var => $val ) $$var = fromMySQL( $val ) ;
  100         $attr = array ( 'post'=>$post, 'modere'=>$modere, 'ouvert'=>$ouvert,
  101             'fid'=>$fid, 'qid'=>$qid ) ;
  102         $f = &$xml->addElement( 'thread', $attr ) ;
  103         $ff = &$f->addElement( 'le_thread' ) ;
  104         mysql_freeresult( $res ) ;
  105         $ff->addElementText( 'sujet', toXML( $titre ) ) ;
  106         $attr = array( 'table'=>'fq', 'id'=>$qid ) ;
  107         $msg = &$ff->addElement( 'message', $attr ) ;
  108         $texte = toXML( $texte ) ;
  109         $texte = '<p>'.str_replace( "\n", "</p>\n<p>", $texte ).'</p>' ;
  110         $msg->addElementText( 'pseudo', toXML( $qui ) ) ;
  111         $msg->addElementText( 'date', $quand ) ;
  112         $msg->addElementText( 'texte', $texte ) ;
  113         $sql = <<<SQL
  114             SELECT rid, texte, qui,
  115                 DATE_FORMAT( quand, '%d/%m %H:%i' ) as quand
  116             FROM ${DB_PRFX}fr
  117             WHERE qid='$qid'
  118             ORDER BY rid
  119 SQL;
  120         $res = $c->query( $sql ) ;
  121         while ( $r = mysql_fetch_assoc( $res ) )
  122             {
  123             foreach( $r as $var => $val ) $$var = fromMySQL( $val ) ;
  124             $texte = toXML( $texte ) ;
  125             $texte = '<p>'.str_replace( "\n", "</p>\n<p>", $texte ).'</p>' ;
  126             $attr = array( 'table'=>'fr', 'id'=>$rid ) ;
  127             $msg = &$ff->addElement( 'message', $attr ) ;
  128             $msg->addElementText( 'pseudo', toXML( $qui ) ) ;
  129             $msg->addElementText( 'date', $quand ) ;
  130             $msg->addElementText( 'texte', $texte ) ;
  131             }
  132         item_forum( $f, $c, $fid ) ;
  133         ajouter_menu( $xml, $c ) ;
  134         }
  135     mysql_freeresult( $res ) ;
  136     }
  137 
  138 function thread_ouvrir( $c )
  139     {
  140     global $DB_PRFX ;
  141     $post = array( 'fid', 'pseudo', 'titre', 'question' ) ;
  142     foreach( $post as $var ) $$var = toMySQL( fromPOST( $var ) ) ;
  143     $question = str_replace( "\r\n", "\n", $question ) ;
  144     $sql = <<<SQL
  145         INSERT INTO ${DB_PRFX}fq VALUES(
  146             '', '$fid', '$titre', '$pseudo', NOW(), '$question',
  147             '-1', '$pseudo', NOW(), '0', 'Y'
  148             )
  149 SQL;
  150     $c->query( $sql ) ;
  151     return $c->id() ;
  152     }
  153 
  154 function thread_repondre( $c )
  155     {
  156     global $DB_PRFX ;
  157     $post = array( 'fid', 'pseudo', 'qid', 'reponse' ) ;
  158     foreach( $post as $var ) $$var = toMySQL( fromPOST( $var ) ) ;
  159     $reponse = str_replace( "\r\n", "\n", $reponse ) ;
  160     // mise a jour de la table des reponses : INSERT
  161     $sql = <<<SQL
  162         INSERT INTO ${DB_PRFX}fr VALUES(
  163             '', '$qid', '$fid', '$pseudo', NOW(), '$reponse'
  164             )
  165 SQL;
  166     $c->query( $sql ) ; $rid = $c->id() ;
  167     // mise a jour de la table des question : UPDATE
  168     $sql = <<<SQL
  169         UPDATE ${DB_PRFX}fq
  170         SET last_qui='$pseudo', last_quand=NOW(), last_qid='$rid',
  171             nb_reponse=nb_reponse+1
  172         WHERE qid='$qid'
  173 SQL;
  174     $c->query( $sql ) ;
  175     return $qid.'#fr'.$rid ;
  176     }
  177 
  178 function liste_contribution( &$xml, $c, $post, $modere, $pseudo )
  179     {
  180     global $DB_PRFX ;
  181     $attr['post'] = $post ; $attr['modere'] = $modere ;
  182     $f = &$xml->addElement( 'contributions', $attr ) ;
  183     $sql = <<<SQL
  184         SELECT q.qid, q.titre, q.qui, q.last_qui as lqui, q.nb_reponse,
  185             q.last_qid as lqid,
  186             DATE_FORMAT( q.quand, '%d/%m') as quand,
  187             DATE_FORMAT( q.last_quand, '%d/%m %H:%i' ) AS lquand
  188         FROM ${DB_PRFX}fq AS q
  189         LEFT JOIN ${DB_PRFX}fr AS r ON (q.qid=r.qid)
  190         WHERE q.qui='$pseudo' OR r.qui='$pseudo'
  191         GROUP BY qid
  192         ORDER BY q.last_quand DESC
  193 SQL;
  194     $res = $c->query( $sql ) ;
  195     while ( $r = mysql_fetch_assoc( $res ) )
  196         {
  197         $ff = &$f->addElement( 'thread' ) ;
  198         foreach( $r as $var => $val )
  199             $ff->addElementText( $var, toXML( fromMySQL( $val ) ) ) ;
  200         }
  201     mysql_freeresult( $res ) ;
  202     item_forum( $f, $c, false ) ;
  203     ajouter_menu( $xml, $c ) ;
  204     }
  205 ?>
Makefile util.php mysql.php xml.php xml_session.php only_session.php xml_publie.php generer.php forum.php xml_post_session.php xml_post_only_session.php httprequest.js
~~ / LIB / forum.php

Haut de page

Contacter crabs

Date de génération : 24/10/2008 21:34