// // This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. // // To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/1.0/ // // or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. // // Francais (brouillon): http://creativecommons.org/projects/international/fr/translated-license // ////////////////////////////////////////////////////////////////////////////////////////////////////// // Classe gestion des abonnements // Version 0.1.3 class abonnements { var $err = array( "stop" => "oui", "log" => "oui", "debug" => "oui"); // Gestion des erreurs function _err($err,$debug="") { // Si le debug est activé if($this->err[debug] == "oui" && !empty($debug)) $err.= "\n// DEBUG //\n".$debug; // Si on log les erreurs if($this->err[log] == "oui") $this->erreurs[] = $err; // Si on s'arrête sur les erreurs if($this->err[stop] == "oui") { echo "
".htmlentities(stripslashes($err))."
"; exit; } $this->erreur = $err; return FALSE; } function ajout($membre,$journal,$bymail=FALSE) { $bymail ? $mail = "oui" : $mail = "non"; $res = mysql_query("SELECT suivimail FROM journaux WHERE id='{$journal}'"); $rec = mysql_fetch_row($res); if($rec[0] != "oui") return $this->_err("Vous ne pouvez pas vous abonner à ce journal."); mysql_unbuffered_query("INSERT INTO abonnements SET membre='{$membre}', journal='{$journal}', bymail='{$mail}'"); return TRUE; } function liste_tous($membre,$temps="") { if($temps < 0 || $temps > 336) $temps = 24; $time = time() - ($temps * 3600); $res = mysql_query("SELECT e.id,e.titre,e.date,e.uri,e.journal FROM ecrits AS e, abonnements AS a ". "WHERE a.membre='{$membre}' AND a.journal=e.journal AND e.valide='oui' AND e.date >= {$time} ORDER BY e.date DESC"); while($rec = mysql_fetch_assoc($res)) { $out[] = $rec; } mysql_free_result($res); return $out; } function liste_derniers($membre,$limit=6) { $res = mysql_query("SELECT e.id,e.titre,e.date,e.uri,e.journal,j.titre AS jtitre FROM journaux AS j, ecrits AS e, abonnements AS a ". "WHERE a.membre='{$membre}' AND a.journal=e.journal AND a.journal=j.id AND e.statut IN ('normal','page','haut') AND valide='oui' ORDER BY e.date DESC LIMIT 0,".$limit); while($rec = mysql_fetch_assoc($res)) { $out[] = $rec; } mysql_free_result($res); return $out; } function liste($membre) { $res = mysql_query("SELECT j.titre,j.id,a.journal,a.bymail FROM abonnements AS a, journaux AS j WHERE a.journal=j.id AND a.membre='{$membre}'"); while($rec = mysql_fetch_assoc($res)) $out[] = $rec; mysql_free_result($res); return $out; } function changer_bymail($membre,$journal,$bymail) { if(is_bool($bymail)) { if($bymail == TRUE) $mail = "oui"; else $mail = "non"; } else $mail = $bymail; $req = "UPDATE abonnements SET bymail='{$mail}' WHERE membre='{$membre}' AND journal='{$journal}'"; mysql_unbuffered_query($req); return TRUE; } function supprimer($membre,$journal) { mysql_unbuffered_query("DELETE FROM abonnements WHERE membre='{$membre}' AND journal='{$journal}'"); return TRUE; } function liste_journal($journal) { $res = mysql_query("SELECT m.pseudo,m.id FROM membres AS m, abonnements AS a WHERE a.membre=m.id AND a.journal='{$journal}'"); while($rec = mysql_fetch_assoc($res)) $out[] = $rec; mysql_free_result($res); return $out; } } ?>