예제 #1
0
 /**
  * Show a list of people who've flagged this profile
  *
  * @return void
  */
 function showFlaggersList()
 {
     $flaggers = array();
     $ufp = new User_flag_profile();
     $ufp->selectAdd();
     $ufp->selectAdd('user_id');
     $ufp->profile_id = $this->profile->id;
     $ufp->orderBy('created');
     if ($ufp->find()) {
         // XXX: this should always happen
         while ($ufp->fetch()) {
             $user = User::staticGet('id', $ufp->user_id);
             if (!empty($user)) {
                 // XXX: this would also be unusual
                 $flaggers[] = clone $user;
             }
         }
     }
     $cnt = count($flaggers);
     $others = 0;
     if ($cnt > self::MAX_FLAGGERS) {
         $flaggers = array_slice($flaggers, 0, self::MAX_FLAGGERS);
         $others = $cnt - self::MAX_FLAGGERS;
     }
     $lnks = array();
     foreach ($flaggers as $flagger) {
         $url = common_local_url('showstream', array('nickname' => $flagger->nickname));
         $lnks[] = XMLStringer::estring('a', array('href' => $url, 'class' => 'flagger'), $flagger->nickname);
     }
     if ($cnt > 0) {
         if ($others > 0) {
             $flagging_users = implode(', ', $lnks);
             // TRANS: Message displayed on a profile if it has been flagged.
             // TRANS: %1$s is a comma separated list of at most 5 user nicknames that flagged.
             // TRANS: %2$d is a positive integer of additional flagging users. Also used for the plural.
             $text .= sprintf(_m('Flagged by %1$s and %2$d other', 'Flagged by %1$s and %2$d others', $others), $flagging_users, $others);
         } else {
             // TRANS: Message displayed on a profile if it has been flagged.
             // TRANS: %s is a comma separated list of at most 5 user nicknames that flagged.
             $text .= sprintf(_m('Flagged by %s'), $flagging_users);
         }
         $this->out->elementStart('p', array('class' => 'flaggers'));
         $this->out->raw($text);
         $this->out->elementEnd('p');
     }
 }
예제 #2
0
 /**
  * Show a list of people who've flagged this profile
  *
  * @return void
  */
 function showFlaggersList()
 {
     $flaggers = array();
     $ufp = new User_flag_profile();
     $ufp->selectAdd();
     $ufp->selectAdd('user_id');
     $ufp->profile_id = $this->profile->id;
     $ufp->orderBy('created');
     if ($ufp->find()) {
         // XXX: this should always happen
         while ($ufp->fetch()) {
             $user = User::staticGet('id', $ufp->user_id);
             if (!empty($user)) {
                 // XXX: this would also be unusual
                 $flaggers[] = clone $user;
             }
         }
     }
     $cnt = count($flaggers);
     $others = 0;
     if ($cnt > self::MAX_FLAGGERS) {
         $flaggers = array_slice($flaggers, 0, self::MAX_FLAGGERS);
         $others = $cnt - self::MAX_FLAGGERS;
     }
     $lnks = array();
     foreach ($flaggers as $flagger) {
         $url = common_local_url('showstream', array('nickname' => $flagger->nickname));
         $lnks[] = XMLStringer::estring('a', array('href' => $url, 'class' => 'flagger'), $flagger->nickname);
     }
     if ($cnt > 0) {
         $text = _('Flagged by ');
         $text .= implode(', ', $lnks);
         if ($others > 0) {
             $text .= sprintf(_(' and %d others'), $others);
         }
         $this->out->elementStart('p', array('class' => 'flaggers'));
         $this->out->raw($text);
         $this->out->elementEnd('p');
     }
 }