根据组中的用户数组将图标附加到用户名的脚本,如何创建?

时间:2012-04-24 19:16:33

标签: javascript mediawiki

我正在扩展维基上的排名系统,我是其管理员,我希望能够:

  1. 在多个用户组中创建人员数组
  2. 在当前页面上搜索列表中的名称
  3. 根据状态
  4. 在其名称后附加一个图标

    我知道要创建数组,我需要将它们定义为:

    var hosts = new Array("H1");
        /* Prob don't need an array for a group with one user;
        * however, will it break anything to have it?
        * There may be users added here in the future. */
    var bureaucrats = new Array("B1", "B2", "B3", "B4", "B5")
    var admins = new Array("A1", "A2", "A3", "...")
    /* There are more, abbreviating for effect. */
    var superUsers = new Array("SU1", "SU2", "SU3", "SU4", "...")
    /* There are more, abbreviating for effect. */
    

    我最初可以concat()所有数组,看看是否存在其中一个用户。

    var ranked_users = hosts.concat(bureaucrats, admins, superUsers)
    

    我可以创建循环以浏览列表rankedUsers

    var numOfUsers=rankedUsers.length;
    for (i=0;i<=numOfUsers;i++)
    {
        if (rankedUsers[i]==/* Not sure */)
        {
             concat(String.fromCharCode(/* Based on group */, 00a0), rankedUsers[i])
        }
    }
    

    我会为主机使用代码2776,为官僚使用2777,为管理员使用2778,为超级用户使用2779。 (如果我宣布更多的组,可能会更进一步,但扩展模式会很简单)。 这是我开始卡住的地方..如何在页面上找到用户名? 我使用match()还是search()?

    编辑:我构建了一个jsfiddle的开头,可以找到here

2 个答案:

答案 0 :(得分:0)

一段时间后再次发现,我最终给每个组分配了一个类,然后使用css为图像添加以下前缀:

=SUMIF(A1, ">0", A$1:A1)

答案 1 :(得分:-1)

为什么要在JavaScript中执行此操作?在解析时用PHP完成。

然后,您可以轻松访问正在创建的任何链接对象的命名空间和标题,并且可以在需要时执行操作(即,当命名空间为2 [User]且title是属于组的用户名时)。

只需使用LinkBegin hook撰写一个简单的扩展程序,然后检查$user->getGroups()您要标记的论坛。