2 rcs_id('$Id: Buddy.php,v 1.1 2004-06-18 14:42:17 rurban Exp $');
4 // It is anticipated that when userid support is added to phpwiki,
5 // this object will hold much more information (e-mail,
6 // home(wiki)page, etc.) about the user.
8 // There seems to be no clean way to "log out" a user when using HTTP
9 // authentication. So we'll hack around this by storing the currently
10 // logged in username and other state information in a cookie.
12 // 2002-09-08 11:44:04 rurban
13 // Todo: Fix prefs cookie/session handling:
14 // _userid and _homepage cookie/session vars still hold the
16 // If no homepage, fallback to prefs in cookie as in 1.3.3.
22 require_once (dirname(__FILE__)."/Utils.php");
25 class Buddy extends WikiUserNew {}
28 function addBuddy($user, $buddy, $dbi)
30 $START_DELIM = _("Buddies:");
31 // the delimiter is really a comma, but include a space to make it look
32 // nicer (getBuddies strips out extra spaces when extracting buddies)
35 addPageTextData($user, $dbi, $buddy, $START_DELIM, $DELIM);
38 function getBuddies($fromUser, $dbi, $thePage = ""){
39 $START_DELIM = $thePage . _("Buddies:");
42 $buddies_array = getPageTextData($fromUser, $dbi, $START_DELIM, $DELIM);
43 if (count($buddies_array) == 0){
44 $buddies_array = getPageTextData($fromUser, $dbi, _("Buddies:"), $DELIM);
47 return $buddies_array;
50 function CoAgreement($dbi, $page, $users, $active_userid){
51 //Returns a "yes" 1, "no" -1, or "unsure" 0 for whether
52 //the group agrees on the page based on their ratings
55 $my_ratings_iter = $dbi->get_rating(0, $active_userid, $page);
56 $my_ratings_single = $my_ratings_iter->next();
57 $cur_rating = $my_ratings_single['ratingvalue'];
61 if($cur_rating >= $MIDDLE_RATING){
66 foreach($users as $buddy){
67 $buddy_rating_iter = $dbi->get_rating(0, $buddy, $cur_page);
68 $buddy_rating_array = $buddy_rating_iter->next();
69 $buddy_rating = $buddy_rating_array['ratingvalue'];
70 if($buddy_rating == ""){
72 }else if($agreePos && $buddy_rating >= $MIDDLE_RATING){
74 } else if(!$agreePos && $buddy_rating < $MIDDLE_RATING){
81 if($agree && $agreePos){
83 } else if($agree && !$agreePos){
90 function MinMisery($dbi, $page, $users, $active_userid){
91 //Returns the minimum rating for the page
96 $my_ratings_iter = $dbi->get_rating(0, $active_userid, $page);
97 $my_ratings_single = $my_ratings_iter->next();
98 $cur_rating = $my_ratings_single['ratingvalue'];
101 foreach($users as $buddy){
102 $buddy_rating_iter = $dbi->get_rating(0, $buddy, $cur_page);
103 $buddy_rating_array = $buddy_rating_iter->next();
104 $buddy_rating = $buddy_rating_array['ratingvalue'];
105 if($buddy_rating != "" && $buddy_rating < $min){
106 $min = $buddy_rating;
112 function AverageRating($dbi, $page, $users, $active_userid){
113 //Returns the average rating for the page
114 //from all the users.
118 $my_ratings_iter = $dbi->get_rating(0, $active_userid, $page);
119 $my_ratings_single = $my_ratings_iter->next();
120 $cur_rating = $my_ratings_single['ratingvalue'];
121 if($cur_rating != ""){
122 $total = $cur_rating;
128 foreach($users as $buddy){
129 $buddy_rating_iter = $dbi->get_rating(0, $buddy, $cur_page);
130 $buddy_rating_array = $buddy_rating_iter->next();
131 $buddy_rating = $buddy_rating_array['ratingvalue'];
132 if($buddy_rating != ""){
133 $total = $total + $buddy_rating;
140 return $total / $count;
144 // $Log: not supported by cvs2svn $
150 // c-hanging-comment-ender-p: nil
151 // indent-tabs-mode: nil