本文整理汇总了PHP中LogEventsList::userCanBitfield方法的典型用法代码示例。如果您正苦于以下问题:PHP LogEventsList::userCanBitfield方法的具体用法?PHP LogEventsList::userCanBitfield怎么用?PHP LogEventsList::userCanBitfield使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LogEventsList
的用法示例。
在下文中一共展示了LogEventsList::userCanBitfield方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: formatValue
/**
* @param string $field
* @param string $value
* @return string HTML
* @throws MWException
*/
function formatValue($field, $value)
{
/** @var $row object */
$row = $this->mCurrentRow;
$formatted = '';
switch ($field) {
case 'log_timestamp':
// when timestamp is null, this is a old protection row
if ($value === null) {
$formatted = Html::rawElement('span', array('class' => 'mw-protectedpages-unknown'), $this->msg('protectedpages-unknown-timestamp')->escaped());
} else {
$formatted = htmlspecialchars($this->getLanguage()->userTimeAndDate($value, $this->getUser()));
}
break;
case 'pr_page':
$title = Title::makeTitleSafe($row->page_namespace, $row->page_title);
if (!$title) {
$formatted = Html::element('span', array('class' => 'mw-invalidtitle'), Linker::getInvalidTitleDescription($this->getContext(), $row->page_namespace, $row->page_title));
} else {
$formatted = Linker::link($title);
}
if (!is_null($row->page_len)) {
$formatted .= $this->getLanguage()->getDirMark() . ' ' . Html::rawElement('span', array('class' => 'mw-protectedpages-length'), Linker::formatRevisionSize($row->page_len));
}
break;
case 'pr_expiry':
$formatted = htmlspecialchars($this->getLanguage()->formatExpiry($value, true));
$title = Title::makeTitleSafe($row->page_namespace, $row->page_title);
if ($this->getUser()->isAllowed('protect') && $title) {
$changeProtection = Linker::linkKnown($title, $this->msg('protect_change')->escaped(), array(), array('action' => 'unprotect'));
$formatted .= ' ' . Html::rawElement('span', array('class' => 'mw-protectedpages-actions'), $this->msg('parentheses')->rawParams($changeProtection)->escaped());
}
break;
case 'log_user':
// when timestamp is null, this is a old protection row
if ($row->log_timestamp === null) {
$formatted = Html::rawElement('span', array('class' => 'mw-protectedpages-unknown'), $this->msg('protectedpages-unknown-performer')->escaped());
} else {
$username = UserCache::singleton()->getProp($value, 'name');
if (LogEventsList::userCanBitfield($row->log_deleted, LogPage::DELETED_USER, $this->getUser())) {
if ($username === false) {
$formatted = htmlspecialchars($value);
} else {
$formatted = Linker::userLink($value, $username) . Linker::userToolLinks($value, $username);
}
} else {
$formatted = $this->msg('rev-deleted-user')->escaped();
}
if (LogEventsList::isDeleted($row, LogPage::DELETED_USER)) {
$formatted = '<span class="history-deleted">' . $formatted . '</span>';
}
}
break;
case 'pr_params':
$params = array();
// Messages: restriction-level-sysop, restriction-level-autoconfirmed
$params[] = $this->msg('restriction-level-' . $row->pr_level)->escaped();
if ($row->pr_cascade) {
$params[] = $this->msg('protect-summary-cascade')->escaped();
}
$formatted = $this->getLanguage()->commaList($params);
break;
case 'log_comment':
// when timestamp is null, this is an old protection row
if ($row->log_timestamp === null) {
$formatted = Html::rawElement('span', array('class' => 'mw-protectedpages-unknown'), $this->msg('protectedpages-unknown-reason')->escaped());
} else {
if (LogEventsList::userCanBitfield($row->log_deleted, LogPage::DELETED_COMMENT, $this->getUser())) {
$formatted = Linker::formatComment($value !== null ? $value : '');
} else {
$formatted = $this->msg('rev-deleted-comment')->escaped();
}
if (LogEventsList::isDeleted($row, LogPage::DELETED_COMMENT)) {
$formatted = '<span class="history-deleted">' . $formatted . '</span>';
}
}
break;
default:
throw new MWException("Unknown field '{$field}'");
}
return $formatted;
}
示例2: extractRowInfo
/**
* Extracts from a single sql row the data needed to describe one recent change.
*
* @param stdClass $row The row from which to extract the data.
* @return array An array mapping strings (descriptors) to their respective string values.
* @access public
*/
public function extractRowInfo($row)
{
/* Determine the title of the page that has been changed. */
$title = Title::makeTitle($row->rc_namespace, $row->rc_title);
$user = $this->getUser();
/* Our output data. */
$vals = array();
$type = intval($row->rc_type);
$vals['type'] = RecentChange::parseFromRCType($type);
$anyHidden = false;
/* Create a new entry in the result for the title. */
if ($this->fld_title || $this->fld_ids) {
if ($type === RC_LOG && $row->rc_deleted & LogPage::DELETED_ACTION) {
$vals['actionhidden'] = true;
$anyHidden = true;
}
if ($type !== RC_LOG || LogEventsList::userCanBitfield($row->rc_deleted, LogPage::DELETED_ACTION, $user)) {
if ($this->fld_title) {
ApiQueryBase::addTitleInfo($vals, $title);
}
if ($this->fld_ids) {
$vals['pageid'] = intval($row->rc_cur_id);
$vals['revid'] = intval($row->rc_this_oldid);
$vals['old_revid'] = intval($row->rc_last_oldid);
}
}
}
if ($this->fld_ids) {
$vals['rcid'] = intval($row->rc_id);
}
/* Add user data and 'anon' flag, if user is anonymous. */
if ($this->fld_user || $this->fld_userid) {
if ($row->rc_deleted & Revision::DELETED_USER) {
$vals['userhidden'] = true;
$anyHidden = true;
}
if (Revision::userCanBitfield($row->rc_deleted, Revision::DELETED_USER, $user)) {
if ($this->fld_user) {
$vals['user'] = $row->rc_user_text;
}
if ($this->fld_userid) {
$vals['userid'] = $row->rc_user;
}
if (!$row->rc_user) {
$vals['anon'] = true;
}
}
}
/* Add flags, such as new, minor, bot. */
if ($this->fld_flags) {
$vals['bot'] = (bool) $row->rc_bot;
$vals['new'] = $row->rc_type == RC_NEW;
$vals['minor'] = (bool) $row->rc_minor;
}
/* Add sizes of each revision. (Only available on 1.10+) */
if ($this->fld_sizes) {
$vals['oldlen'] = intval($row->rc_old_len);
$vals['newlen'] = intval($row->rc_new_len);
}
/* Add the timestamp. */
if ($this->fld_timestamp) {
$vals['timestamp'] = wfTimestamp(TS_ISO_8601, $row->rc_timestamp);
}
/* Add edit summary / log summary. */
if ($this->fld_comment || $this->fld_parsedcomment) {
if ($row->rc_deleted & Revision::DELETED_COMMENT) {
$vals['commenthidden'] = true;
$anyHidden = true;
}
if (Revision::userCanBitfield($row->rc_deleted, Revision::DELETED_COMMENT, $user)) {
if ($this->fld_comment && isset($row->rc_comment)) {
$vals['comment'] = $row->rc_comment;
}
if ($this->fld_parsedcomment && isset($row->rc_comment)) {
$vals['parsedcomment'] = Linker::formatComment($row->rc_comment, $title);
}
}
}
if ($this->fld_redirect) {
$vals['redirect'] = (bool) $row->page_is_redirect;
}
/* Add the patrolled flag */
if ($this->fld_patrolled) {
$vals['patrolled'] = $row->rc_patrolled == 1;
$vals['unpatrolled'] = ChangesList::isUnpatrolled($row, $user);
}
if ($this->fld_loginfo && $row->rc_type == RC_LOG) {
if ($row->rc_deleted & LogPage::DELETED_ACTION) {
$vals['actionhidden'] = true;
$anyHidden = true;
}
if (LogEventsList::userCanBitfield($row->rc_deleted, LogPage::DELETED_ACTION, $user)) {
$vals['logid'] = intval($row->rc_logid);
//.........这里部分代码省略.........
示例3: userCan
/**
* Determine if the current user is allowed to view a particular
* field of this revision, if it's marked as deleted.
* @param $rc RCCacheEntry
* @param $field Integer
* @param $user User object to check, or null to use $wgUser
* @return Boolean
*/
public static function userCan($rc, $field, User $user = null)
{
if ($rc->mAttribs['rc_type'] == RC_LOG) {
return LogEventsList::userCanBitfield($rc->mAttribs['rc_deleted'], $field, $user);
} else {
return Revision::userCanBitfield($rc->mAttribs['rc_deleted'], $field, $user);
}
}
示例4: canView
/**
* Check if a log item can be displayed
* @param int $field LogPage::DELETED_* constant
* @return bool
*/
protected function canView($field)
{
if ($this->audience == self::FOR_THIS_USER) {
return LogEventsList::userCanBitfield($this->entry->getDeleted(), $field, $this->context->getUser());
} else {
return !$this->entry->isDeleted($field);
}
}
示例5: extractRowInfo
private function extractRowInfo($row)
{
/* Determine the title of the page that has been changed. */
$title = Title::makeTitle($row->rc_namespace, $row->rc_title);
$user = $this->getUser();
/* Our output data. */
$vals = array();
$type = intval($row->rc_type);
/* Determine what kind of change this was. */
switch ($type) {
case RC_EDIT:
$vals['type'] = 'edit';
break;
case RC_NEW:
$vals['type'] = 'new';
break;
case RC_MOVE:
$vals['type'] = 'move';
break;
case RC_LOG:
$vals['type'] = 'log';
break;
case RC_EXTERNAL:
$vals['type'] = 'external';
break;
case RC_MOVE_OVER_REDIRECT:
$vals['type'] = 'move over redirect';
break;
default:
$vals['type'] = $type;
}
$anyHidden = false;
/* Create a new entry in the result for the title. */
if ($this->fld_title || $this->fld_ids) {
// These should already have been filtered out of the query, but just in case.
if ($type === RC_LOG && $row->rc_deleted & LogPage::DELETED_ACTION) {
$vals['actionhidden'] = '';
$anyHidden = true;
}
if ($type !== RC_LOG || LogEventsList::userCanBitfield($row->rc_deleted, LogPage::DELETED_ACTION, $user)) {
if ($this->fld_title) {
ApiQueryBase::addTitleInfo($vals, $title);
}
if ($this->fld_ids) {
$vals['pageid'] = intval($row->rc_cur_id);
$vals['revid'] = intval($row->rc_this_oldid);
$vals['old_revid'] = intval($row->rc_last_oldid);
}
}
}
/* Add user data and 'anon' flag, if user is anonymous. */
if ($this->fld_user || $this->fld_userid) {
if ($row->rc_deleted & Revision::DELETED_USER) {
$vals['userhidden'] = '';
$anyHidden = true;
}
if (Revision::userCanBitfield($row->rc_deleted, Revision::DELETED_USER, $user)) {
if ($this->fld_userid) {
$vals['userid'] = $row->rc_user;
// for backwards compatibility
$vals['user'] = $row->rc_user;
}
if ($this->fld_user) {
$vals['user'] = $row->rc_user_text;
}
if (!$row->rc_user) {
$vals['anon'] = '';
}
}
}
/* Add flags, such as new, minor, bot. */
if ($this->fld_flags) {
if ($row->rc_bot) {
$vals['bot'] = '';
}
if ($row->rc_type == RC_NEW) {
$vals['new'] = '';
}
if ($row->rc_minor) {
$vals['minor'] = '';
}
}
/* Add sizes of each revision. (Only available on 1.10+) */
if ($this->fld_sizes) {
$vals['oldlen'] = intval($row->rc_old_len);
$vals['newlen'] = intval($row->rc_new_len);
}
/* Add the timestamp. */
if ($this->fld_timestamp) {
$vals['timestamp'] = wfTimestamp(TS_ISO_8601, $row->rc_timestamp);
}
if ($this->fld_notificationtimestamp) {
$vals['notificationtimestamp'] = $row->wl_notificationtimestamp == null ? '' : wfTimestamp(TS_ISO_8601, $row->wl_notificationtimestamp);
}
/* Add edit summary / log summary. */
if ($this->fld_comment || $this->fld_parsedcomment) {
if ($row->rc_deleted & Revision::DELETED_COMMENT) {
$vals['commenthidden'] = '';
$anyHidden = true;
}
//.........这里部分代码省略.........
示例6: extractRowInfo
private function extractRowInfo($row)
{
/* Determine the title of the page that has been changed. */
$title = Title::makeTitle($row->rc_namespace, $row->rc_title);
$user = $this->getUser();
/* Our output data. */
$vals = [];
$type = intval($row->rc_type);
$vals['type'] = RecentChange::parseFromRCType($type);
$anyHidden = false;
/* Create a new entry in the result for the title. */
if ($this->fld_title || $this->fld_ids) {
// These should already have been filtered out of the query, but just in case.
if ($type === RC_LOG && $row->rc_deleted & LogPage::DELETED_ACTION) {
$vals['actionhidden'] = true;
$anyHidden = true;
}
if ($type !== RC_LOG || LogEventsList::userCanBitfield($row->rc_deleted, LogPage::DELETED_ACTION, $user)) {
if ($this->fld_title) {
ApiQueryBase::addTitleInfo($vals, $title);
}
if ($this->fld_ids) {
$vals['pageid'] = intval($row->rc_cur_id);
$vals['revid'] = intval($row->rc_this_oldid);
$vals['old_revid'] = intval($row->rc_last_oldid);
}
}
}
/* Add user data and 'anon' flag, if user is anonymous. */
if ($this->fld_user || $this->fld_userid) {
if ($row->rc_deleted & Revision::DELETED_USER) {
$vals['userhidden'] = true;
$anyHidden = true;
}
if (Revision::userCanBitfield($row->rc_deleted, Revision::DELETED_USER, $user)) {
if ($this->fld_userid) {
$vals['userid'] = (int) $row->rc_user;
// for backwards compatibility
$vals['user'] = (int) $row->rc_user;
}
if ($this->fld_user) {
$vals['user'] = $row->rc_user_text;
}
if (!$row->rc_user) {
$vals['anon'] = true;
}
}
}
/* Add flags, such as new, minor, bot. */
if ($this->fld_flags) {
$vals['bot'] = (bool) $row->rc_bot;
$vals['new'] = $row->rc_type == RC_NEW;
$vals['minor'] = (bool) $row->rc_minor;
}
/* Add sizes of each revision. (Only available on 1.10+) */
if ($this->fld_sizes) {
$vals['oldlen'] = intval($row->rc_old_len);
$vals['newlen'] = intval($row->rc_new_len);
}
/* Add the timestamp. */
if ($this->fld_timestamp) {
$vals['timestamp'] = wfTimestamp(TS_ISO_8601, $row->rc_timestamp);
}
if ($this->fld_notificationtimestamp) {
$vals['notificationtimestamp'] = $row->wl_notificationtimestamp == null ? '' : wfTimestamp(TS_ISO_8601, $row->wl_notificationtimestamp);
}
/* Add edit summary / log summary. */
if ($this->fld_comment || $this->fld_parsedcomment) {
if ($row->rc_deleted & Revision::DELETED_COMMENT) {
$vals['commenthidden'] = true;
$anyHidden = true;
}
if (Revision::userCanBitfield($row->rc_deleted, Revision::DELETED_COMMENT, $user)) {
if ($this->fld_comment && isset($row->rc_comment)) {
$vals['comment'] = $row->rc_comment;
}
if ($this->fld_parsedcomment && isset($row->rc_comment)) {
$vals['parsedcomment'] = Linker::formatComment($row->rc_comment, $title);
}
}
}
/* Add the patrolled flag */
if ($this->fld_patrol) {
$vals['patrolled'] = $row->rc_patrolled == 1;
$vals['unpatrolled'] = ChangesList::isUnpatrolled($row, $user);
}
if ($this->fld_loginfo && $row->rc_type == RC_LOG) {
if ($row->rc_deleted & LogPage::DELETED_ACTION) {
$vals['actionhidden'] = true;
$anyHidden = true;
}
if (LogEventsList::userCanBitfield($row->rc_deleted, LogPage::DELETED_ACTION, $user)) {
$vals['logid'] = intval($row->rc_logid);
$vals['logtype'] = $row->rc_log_type;
$vals['logaction'] = $row->rc_log_action;
$vals['logparams'] = LogFormatter::newFromRow($row)->formatParametersForApi();
}
}
if ($anyHidden && $row->rc_deleted & Revision::DELETED_RESTRICTED) {
$vals['suppressed'] = true;
//.........这里部分代码省略.........
示例7: userCan
/**
* Determine if the current user is allowed to view a particular
* field of this revision, if it's marked as deleted.
* @param $rc InterwikiIntegrationRCCacheEntry
* @param $field Integer
* @return Boolean
*/
public static function userCan($rc, $field)
{
if ($rc->mAttribs['integration_rc_type'] == RC_LOG) {
return LogEventsList::userCanBitfield($rc->mAttribs['integration_rc_deleted'], $field);
} else {
return Revision::userCanBitfield($rc->mAttribs['integration_rc_deleted'], $field);
}
}