如何根据用户所属的用户组为joomla网站上的用户名着色


How to colorize usernames on the joomla website depending on usergroups they belong to?

我的网站是基于Joomla CMS,它使用多个扩展,如Kunena论坛,EasySocial等一起工作,给我的社区很好的社交体验。社区以游戏为中心,我们需要根据用户所属的用户组为用户赋予不同的颜色。

所以,Kunena论坛有自己的颜色基于论坛权限(管理员,Mod,成员,禁止,访客等),EasySocial就像Facebook一样,只有一个默认的颜色为所有用户,就像Joomla一般。我试着看看是否有一个选项来为每个Joomla用户组的用户着色,但这样的功能不存在。在网上搜索了解决方案,一无所获。发现很少有类似或相同的问题,没有有用的回答。在Joomla官方支持论坛上提问,没有收到任何回复。

现在,我知道如何做这件事,但我不确定是否能做到。基本上,用户名的呈现方式如下所示:

<a alt="administrator" href="/community/profile/560-administrator">administrator</a>

<a class="kwho-admin" rel="nofollow" title="View administrator's Profile" href="/community/profile/560-administrator">administrator</a>

是否有可能修改后端代码,以这样的方式有它添加一个ID到<a>元素上面依赖于用户组自动,所以我们可以设置颜色的CSS,我们喜欢每个用户组?(你在上面看到的"a"元素中的类只存在于论坛中,而不是整个网站,因此在这个问题中对我没有用处)

我的意思是像这样的例子:

<a id="usergroup1" class="kwho-admin" rel="nofollow" title="View administrator's Profile" href="/community/profile/560-administrator">

,然后在usergroup1 ID上使用CSS给它上色

#usergroup1{ color: black;}

如果这样的事情是可能改变后端,我真的需要一些帮助,因为我没有经验的PHP

这里的问题是,并不是所有的扩展都会添加一个类或alt属性到包含用户名的标签。例如,Kunena可以渲染如下:

<a class="kwho-admin" href="#">mistergeko</a>

where as Community Builder可能会渲染这个:

<a href="#">mistergeko</a>

请注意,第二个实例上没有类,因此如何检测这两个实例呢?

如果您只想针对一个特定的扩展来呈现用户名,例如:

<a class="kwho-admin" title="View administrator's Profile" href="#">administrator</a>

然后你可以简单地使用下面的CSS:

.kwho-admin {
    color: black;
}

不要以ID为目标用户名,因为你可能会因为某种原因在将来改变这一点,而忘记更新你的CSS。这不是一个动态方法,因此不应该这样做。