Joomla其他用户数据

时间:2012-08-30 14:59:36

标签: php html joomla content-management-system

我试图在joomla中创建一些新扩展。

我想为每个用户添加其他信息。我知道我可以通过创建自己的自定义用户个人资料插件并添加其他字段来实现这一目标,但这会将这些字段添加到用户个人资料页面。

我想分别显示新字段。例如,我可以在用户页面上具有一个链接,该链接将它们带到那里例如基本信息。名称,电子邮件等。另一个链接向他们显示“附加”字段。

其他字段不是个人信息,这就是我想单独显示的原因。

我的问题是,我该如何实现这一目标?我可以简单地为每个用户添加其他字段,还是必须编写一个全新的组件?

更新:我无法使用现有的扩展程序,因为我希望完全控制代码。此外,用户不会添加其他信息,只会由管理员添加。

4 个答案:

答案 0 :(得分:1)

您不必使用标准用户配置文件在用户配置文件页面上显示配置文件字段您只能将其配置为显示给管理员。您只需为不同的表单进行不同的设置(整个cms中有4个)。遵循核心插件中的模式。

答案 1 :(得分:1)

最后我决定创建自己的组件会更好。主要是因为当更新出来并且JED没有提供我想要的具体扩展时,黑客joomla会成为一种害虫。

答案 2 :(得分:0)

这可能有两种主要方式。

  1. 您可以创建一个扩展程序,用户可以在其中填写信息,并将数据存储在连接到#__users表的单独数据库表中。
  2. 您可以从JED下载扩展配置文件的扩展程序。有非商业和商业扩展,所以看看这里是否有任何可能适合您的需求。
  3. 就个人而言,我会安装一个预先制作的扩展程序,它会节省大量的工作/试错。

    检查一下:http://extensions.joomla.org/extensions/clients-a-communities/user-management

答案 3 :(得分:0)

如果您添加或更改了任何编码,例如向用户表添加字段或在joomla中自定义注册页面,则在升级Joomla版本后它将恢复为默认值。 这样做的方法是:

  • 您必须创建另一个包含其他额外信息的表,并且应该使用来自#__users的用户ID。
  • 提交表单时,您可以使用此Joomla代码获取另一个表格。

$ module_table = JTable :: getInstance('modules','profileTable');

  • 模块 - >表示您创建的表名。

  • ProfileTable - >表示“组件名称”是型号名称,“表格”是常见的。

然后你必须将post值传递给这个表..

if (!$module_table->bind($post))
    {
        return 0;
    }
    if (!$module_table->check())
    {
        return 0;
    }
    if (!$module_table->store())
    {
        return 0;
    }

这样,您就可以为用户存储其他数据。出于显示目的,您需要使用userid加入这两个表并显示它......

一切顺利......