summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/UserFlag/adminprofileflag.php99
1 files changed, 93 insertions, 6 deletions
diff --git a/plugins/UserFlag/adminprofileflag.php b/plugins/UserFlag/adminprofileflag.php
index ab1a86ac4..17374927b 100644
--- a/plugins/UserFlag/adminprofileflag.php
+++ b/plugins/UserFlag/adminprofileflag.php
@@ -117,7 +117,14 @@ class AdminprofileflagAction extends Action
$this->showPage();
}
- function title() {
+ /**
+ * Title of this page
+ *
+ * @return string Title of the page
+ */
+
+ function title()
+ {
return _('Flagged profiles');
}
@@ -137,6 +144,12 @@ class AdminprofileflagAction extends Action
$this->page, 'adminprofileflag');
}
+ /**
+ * Retrieve this action's profiles
+ *
+ * @return Profile $profile Profile query results
+ */
+
function getProfiles()
{
$ufp = new User_flag_profile();
@@ -151,7 +164,7 @@ class AdminprofileflagAction extends Action
$ufp->orderBy('flag_count DESC, profile_id DESC');
$offset = ($this->page-1) * PROFILES_PER_PAGE;
- $limit = PROFILES_PER_PAGE + 1;
+ $limit = PROFILES_PER_PAGE + 1;
$ufp->limit($offset, $limit);
@@ -172,7 +185,27 @@ class AdminprofileflagAction extends Action
}
}
-class FlaggedProfileList extends ProfileList {
+/**
+ * Specialization of ProfileList to show flagging information
+ *
+ * Most of the hard part is done in FlaggedProfileListItem.
+ *
+ * @category Widget
+ * @package StatusNet
+ * @author Evan Prodromou <evan@status.net>
+ * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
+ * @link http://status.net/
+ */
+
+class FlaggedProfileList extends ProfileList
+{
+ /**
+ * Factory method for creating new list items
+ *
+ * @param Profile $profile Profile to create an item for
+ *
+ * @return ProfileListItem newly-created item
+ */
function newListItem($profile)
{
@@ -180,13 +213,29 @@ class FlaggedProfileList extends ProfileList {
}
}
+/**
+ * Specialization of ProfileListItem to show flagging information
+ *
+ * @category Widget
+ * @package StatusNet
+ * @author Evan Prodromou <evan@status.net>
+ * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
+ * @link http://status.net/
+ */
+
class FlaggedProfileListItem extends ProfileListItem
{
const MAX_FLAGGERS = 5;
- var $user = null;
+ var $user = null;
var $r2args = null;
+ /**
+ * Overload parent's action list with our own moderation-oriented buttons
+ *
+ * @return void
+ */
+
function showActions()
{
$this->user = common_current_user();
@@ -211,6 +260,12 @@ class FlaggedProfileListItem extends ProfileListItem
$this->endActions();
}
+ /**
+ * Show a button to sandbox the profile
+ *
+ * @return void
+ */
+
function showSandboxButton()
{
if ($this->user->hasRight(Right::SANDBOXUSER)) {
@@ -226,6 +281,12 @@ class FlaggedProfileListItem extends ProfileListItem
}
}
+ /**
+ * Show a button to silence the profile
+ *
+ * @return void
+ */
+
function showSilenceButton()
{
if ($this->user->hasRight(Right::SILENCEUSER)) {
@@ -241,6 +302,12 @@ class FlaggedProfileListItem extends ProfileListItem
}
}
+ /**
+ * Show a button to delete user and profile
+ *
+ * @return void
+ */
+
function showDeleteButton()
{
@@ -252,6 +319,12 @@ class FlaggedProfileListItem extends ProfileListItem
}
}
+ /**
+ * Show a button to clear flags
+ *
+ * @return void
+ */
+
function showClearButton()
{
if ($this->user->hasRight(UserFlagPlugin::CLEARFLAGS)) {
@@ -262,12 +335,24 @@ class FlaggedProfileListItem extends ProfileListItem
}
}
+ /**
+ * Overload parent function to add flaggers list
+ *
+ * @return void
+ */
+
function endProfile()
{
$this->showFlaggersList();
parent::endProfile();
}
+ /**
+ * Show a list of people who've flagged this profile
+ *
+ * @return void
+ */
+
function showFlaggersList()
{
$flaggers = array();
@@ -288,12 +373,12 @@ class FlaggedProfileListItem extends ProfileListItem
}
}
- $cnt = count($flaggers);
+ $cnt = count($flaggers);
$others = 0;
if ($cnt > self::MAX_FLAGGERS) {
$flaggers = array_slice($flaggers, 0, self::MAX_FLAGGERS);
- $others = $cnt - self::MAX_FLAGGERS;
+ $others = $cnt - self::MAX_FLAGGERS;
}
$lnks = array();
@@ -310,7 +395,9 @@ class FlaggedProfileListItem extends ProfileListItem
if ($cnt > 0) {
$text = _('Flagged by ');
+
$text .= implode(', ', $lnks);
+
if ($others > 0) {
$text .= sprintf(_(' and %d others'), $others);
}