crabs_cms-1.0.4 ©2006-2008 - Christophe Cazajus (crabs-mettre_le_signe_at-crabs-world.com)
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 ?>
Date de génération : 24/10/2008 21:34