需要一些关于如何在php页面

时间:2017-03-08 05:08:04

标签: php mysql vbulletin

我希望为成员列表添加一些额外的功能。这涉及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,它仅按用户名排序。我该如何添加此功能? 谢谢

1 个答案:

答案 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,让列表最新活动

注意 这只是您可能希望如何执行此操作的粗略指南。