我希望为成员列表添加一些额外的功能。这涉及2个文件,我需要一些关于此功能应该去哪里的指导。
File1)staff-members.php
File2)memberships.php
staff-members.php (一个简单的php页面 - 需要memberships.php才能运行)
<div>
<?php echo Memberships(91); ?>
</div>
截至目前(据我所知),此页面只是从用户组91获取数组,并在屏幕上显示其内容。
memberships.php (此文件有很多内容,因为它链接到vbulletin)
- 我将尝试发布我认为很重要的片段,以了解staff-members.php是如何填充的。如果您需要其他东西,请告诉我
$Users = $vbulletin->db->query_read("
SELECT user.userid, userfield.field31
FROM " . TABLE_PREFIX . "user AS user
LEFT JOIN " . TABLE_PREFIX . "userfield AS userfield ON(userfield.userid = user.userid)
WHERE " . $Condition . " ORDER BY user.username ASC
if ($vbulletin->userinfo['userid'])
$Output .= '<span style="width:181px; text-align: left; display: block; float: left; font-weight: bold; color: #909090;">Username</span>';
if ($vbulletin->userinfo['userid']) {
$Output .= '<span style="width:62px; text-align: left; display: block; float: left; font-weight: bold; color: #909090;">Posts</span>';
$Output .= '<span style="width:183px; text-align: left; display: block; float: left; font-weight: bold; color: #909090;">Steam Name</span>';
$Output .= '<span style="width:100px; text-align: left; display: block; float: left; font-weight: bold; color: #909090;">Join Date</span>';
$Output .= '<span style="width:81px; text-align: left; display: block; float: left; font-weight: bold; color: #909090;">Last Activity</span>';
}
在上面的代码中(同样,据我所知)它采用组的用户标识和用户名(field31)并按用户名对它们进行排序。 然后使用您在上面看到的格式将其添加到$ output?
我在寻找合适的地方吗?我想要的功能是 staff-members.php页面上的帖子,Steam名称,加入日期,上次活动可点击链接。截至目前,由于SELECT语句中的ORDER BY,它仅按用户名排序。我该如何添加此功能? 谢谢
答案 0 :(得分:0)
IF 此功能的工作方式如您所述,会员功能需要从
等添加的附加参数function membership(int $usergroup)
类似
function membership(int $usergroup, $orderby, $direction)
在函数内部需要添加一些额外的代码来解析像
这样的参数switch($orderby)
{
case 'posts' :
$orderby = 'users.posts';
break;
case 'streamname' :
$orderby = 'users.streamname';
break;
case 'lastactivity' :
$orderby = 'users.lastactivity';
break;
case 'joinned' :
$orderby = 'users.joinedate';
break;
default :
$orderby = 'users.username';
}
switch ($direction) {
case 'DESC' :
$orderby .= ' DESC';
break;
default :
$orderby .= ' ASC';
}
字段名称取决于数据库结构等,以上不准确
然后只需更新SQL顺序以包含ORDER BY " . $orderby
最后要做的是从URL获取排序,所以使用
更新staff-membership.php页面<?php
$orderby = isset($_GET['order'])?:'username';
$direction = isset($_GET['sort']?:'asc';
echo membership(91, $orderby, $direction);
?>
然后在网址中添加参数,以便http://example.com/staff-membership.php成为http://example.com/staff-membership.php?order=lastactivity&sort=DESC,让列表最新活动
注意 这只是您可能希望如何执行此操作的粗略指南。