Php Joomla附加用户数据

Php Joomla附加用户数据,php,html,joomla,content-management-system,Php,Html,Joomla,Content Management System,我试图在joomla中创建一些新的扩展 我想为每个用户添加其他信息。我知道我可以通过创建自己的自定义用户配置文件插件并添加其他字段来实现这一点,但这会将这些字段添加到用户配置文件页面 我想分别显示新字段。例如,我可能在用户页面上有一个链接,将他们带到那里的基本信息,如姓名、电子邮件等,另一个链接向他们显示“其他”字段 其他字段将不会是个人信息,这就是为什么我想单独显示它们 我的问题是,我如何做到这一点?我可以简单地为每个用户添加额外的字段,还是必须编写一个全新的组件 更新:我不能使用现有的扩展,

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

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

我想分别显示新字段。例如,我可能在用户页面上有一个链接,将他们带到那里的基本信息,如姓名、电子邮件等,另一个链接向他们显示“其他”字段

其他字段将不会是个人信息,这就是为什么我想单独显示它们

我的问题是,我如何做到这一点?我可以简单地为每个用户添加额外的字段,还是必须编写一个全新的组件


更新:我不能使用现有的扩展,因为我想完全控制代码。另外,附加信息不会由用户添加,它只会由管理员添加。

可能有两种主要方法

  • 您可以创建一个扩展,用户在其中填写信息,并将数据存储在单独的数据库表中,该数据库表连接到
    #uu用户
  • 您可以从JED下载扩展配置文件的扩展。有非商业的和商业的扩展,所以看看这里是否有任何东西可以满足您的需要 就我个人而言,我会安装一个预先制作的扩展,这将节省大量的工作/尝试和错误


    检查此项:

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

    • 您必须创建另一个表,该表包含其他额外信息,并且应该具有来自
      #uu用户的userid
    • 提交表单时,使用此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连接这两个表并显示它


    最好的..

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

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

    谢谢你的回答-应该提到我不想使用JED,用户将无法添加此信息。请参阅上面的更新,谢谢您的回答。这看起来是一个很有希望的解决方案。唯一的问题是我觉得有点难以理解。你能把它通读一遍并检查它是否有意义吗可能是我反应太慢了,我向你道歉。另外,为什么在if语句中返回0。您介意快速解释一下发生了什么吗?返回0-->这是在post数据成功存储到表中时返回的值。如果出现任何问题,它不会返回值,因此我们可以确定在发布数据时可能发生了一些错误。