本文整理汇总了PHP中Pw::collectByKey方法的典型用法代码示例。如果您正苦于以下问题:PHP Pw::collectByKey方法的具体用法?PHP Pw::collectByKey怎么用?PHP Pw::collectByKey使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Pw
的用法示例。
在下文中一共展示了Pw::collectByKey方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: check
public function check($permission)
{
if (!isset($permission['move']) || !$permission['move']) {
return false;
}
if (!$this->srv->user->comparePermission(Pw::collectByKey($this->srv->data, 'created_userid'))) {
return new PwError('permission.level.move', array('{grouptitle}' => $this->srv->user->getGroupInfo('name')));
}
if (isset($this->fid)) {
Wind::import('SRV:forum.bo.PwForumBo');
$this->forum = new PwForumBo($this->fid);
if (!$this->forum->isForum()) {
return new PwError('BBS:manage.error.move.targetforum');
}
if ($this->topictype && !$this->forum->forumset['topic_type']) {
return new PwError('BBS:post.topictype.closed');
}
if ($this->forum->forumset['topic_type'] && $this->forum->forumset['force_topic_type'] && !$this->topictype) {
$topicTypes = Wekit::load('SRV:forum.PwTopicType')->getTypesByFid($this->forum->fid);
if ($topicTypes) {
return new PwError('BBS:post.topictype.empty');
}
}
}
return true;
}
示例2: check
public function check($permission)
{
if (!isset($permission['lock']) || !$permission['lock']) {
return false;
}
if (!$this->srv->user->comparePermission(Pw::collectByKey($this->srv->data, 'created_userid'))) {
return new PwError('permission.level.lock', array('{grouptitle}' => $this->srv->user->getGroupInfo('name')));
}
return true;
}
示例3: check
public function check($permission)
{
if (!isset($permission['topped']) || !$permission['topped']) {
return false;
}
if (array_diff(Pw::collectByKey($this->srv->data, 'topped'), array('0'))) {
$log = Wekit::load('log.PwLog')->fetchLogByTid(array_keys($this->srv->data), array('19', '20', '21'));
if (!$this->srv->user->comparePermission(Pw::collectByKey($log, 'created_userid'))) {
return new PwError('permission.level.topped', array('{grouptitle}' => $this->srv->user->getGroupInfo('name')));
}
}
if ($this->topped) {
if ($this->topped > $permission['topped_type']) {
return new PwError('BBS:manage.error.topped.permission.' . $this->topped);
}
}
return true;
}
示例4: displayReplylist
public function displayReplylist($replies, $contentLength = 140)
{
$users = Wekit::load('user.PwUser')->fetchUserByUid(array_unique(Pw::collectByKey($replies, 'created_userid')));
foreach ($replies as $key => $value) {
$value['content'] = WindSecurity::escapeHTML($value['content']);
if (!empty($value['ifshield'])) {
$value['content'] = '<div class="shield">此帖已被屏蔽</div>';
} elseif ($users[$value['created_userid']]['groupid'] == '6') {
$value['content'] = '用户被禁言,该主题自动屏蔽!';
} elseif ($value['useubb']) {
$ubb = new PwUbbCodeConvertThread();
$value['reminds'] && $ubb->setRemindUser($value['reminds']);
$value['content'] = PwSimpleUbbCode::convert($value['content'], $contentLength, $ubb);
} else {
$value['content'] = Pw::substrs($value['content'], $contentLength);
}
!$value['word_version'] && ($value['content'] = Wekit::load('SRV:word.srv.PwWordFilter')->replaceWord($value['content'], $value['word_version']));
$replies[$key] = $value;
}
return $replies;
}
示例5: _getAutoData
private function _getAutoData($param)
{
$model = $this->bo->getModel();
if (!$model) {
return false;
}
$cls = sprintf('PwDesign%sDataService', ucwords($model));
$service = Wekit::load('design.srv.model.' . $model . '.' . $cls);
$service->setModuleBo($this->bo);
$PwDesignShield = Wekit::load('design.PwDesignShield');
$limit = $param['limit'];
$start = $param['start'];
$times = 20;
do {
$data = $service->buildAutoData($param, $param['order'], $limit, $start);
$count = count($data);
if ($count < 1) {
break;
}
$shield_num = 0;
$fromids = Pw::collectByKey($data, 'standard_fromid');
$shields = $PwDesignShield->fetchByFromidsAndApp($fromids, $model);
$shieldids = $shields ? Pw::collectByKey($shields, 'from_id') : array();
foreach ($data as $k => $v) {
if (in_array($v['standard_fromid'], $shieldids) || $v['standard_title'] === '') {
$shield_num++;
continue;
} else {
$v['from_type'] = 'auto';
$v['data_type'] = 1;
$this->_newAutoIds[$v['standard_fromid']] = $v;
}
}
$start += $limit;
if ($count < $limit) {
break;
}
$limit = $shield_num;
} while (--$times > 0 && $limit > 0);
return true;
}
示例6: fetchByPage
/**
* 获取用户权限列表
*
* @param int $page
* @param int $perpage
* @return array|PwError
*/
public function fetchByPage($page, $perpage)
{
list($count, $list, $page) = $this->_loadAuthService()->findByPage($page, $perpage);
$uids = Pw::collectByKey($list, 'uid');
$users = $this->getAdminUserService()->getUserByUids($uids);
foreach ($list as $key => $value) {
if (isset($users[$value['uid']])) {
$value['username'] = $users[$value['uid']]['username'];
}
$list[$key] = $value;
}
return array($count, $list, $page);
}
示例7: initData
public function initData($threaddb)
{
$tids = Pw::collectByKey($threaddb, 'tid');
$this->_data = Wekit::load('forum.PwThread')->fetchHit($tids);
}
示例8: getChildForumByFid
/**
* 根据版块id获取子版块
*
* @param int $fid
* @return array
*/
public function getChildForumByFid($fid)
{
$fid = intval($fid);
if ($fid < 1) {
return $this->buildResponse(FORUM_INVALID_PARAMS);
}
$forumService = $this->_getFroumService();
$map = $forumService->getForumMap();
$forumList = $forumService->getForumsByLevel($fid, $map);
if ($forumList instanceof PwError) {
return $this->buildResponse(-1, $forumList->getError());
}
$forums = $subForums = $secondSubForums = array();
$count = 0;
$fids = Pw::collectByKey($forumList, 'fid');
$domains = $this->_getDomainDs()->fetchByTypeAndId('forum', $fids);
foreach ($forumList as $v) {
$v['domain'] = '';
if (isset($domains[$v['fid']])) {
$v['domain'] = $domains[$v['fid']]['domain'];
}
$statistics = $this->_getPwForum()->getForum($v['fid'], PwForum::FETCH_STATISTICS);
if ($v['type'] == 'forum') {
//TODO 用户版块访问权限
$forums[$v['fid']] = array('fid' => $v['fid'], 'forumname' => strip_tags($v['name']), 'type' => $v['type'], 'todaypost' => $statistics['todayposts'], 'domain' => $v['domain']);
} elseif ($v['type'] == 'sub') {
$subForums[$v['parentid']][$v['fid']] = array('fid' => $v['fid'], 'forumname' => strip_tags($v['name']), 'type' => $v['type'], 'todaypost' => $statistics['todayposts'], 'domain' => $v['domain']);
} elseif ($v['type'] == 'sub2') {
$secondSubForums[$v['parentid']][$v['fid']] = array('fid' => $v['fid'], 'forumname' => strip_tags($v['name']), 'type' => $v['type'], 'todaypost' => $statistics['todayposts'], 'domain' => $v['domain']);
}
$count++;
}
$result = array();
foreach ($forums as $k => $v) {
$v['child'] = isset($subForums[$k]) ? $this->_fetchSubForum($subForums[$k], $secondSubForums) : array();
$result[] = $v;
}
return $this->buildResponse(0, array('count' => $count, 'forums' => $result));
}
示例9: comparePermission
/**
* 与指定用户比较权限等级
*
* @param array $uids 用户id序列
* @return bool
*/
public function comparePermission($uids)
{
is_array($uids) || ($uids = array($uids));
$level = $this->getPermission('manage_level');
$users = $this->_getUserDs()->fetchUserByUid($uids);
if ($gids = array_diff(Pw::collectByKey($users, 'groupid'), array('0'))) {
$array = $this->_getPermissionDs()->getPermissionByRkeyAndGids('manage_level', $gids);
foreach ($array as $key => $value) {
if ($value['rvalue'] && $level < $value['rvalue']) {
return false;
}
}
}
return true;
}