0

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

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

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

附加字段不会是个人信息,这就是我想单独显示它们的原因。

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

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

4

4 回答 4

1

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

于 2012-08-31T01:08:37.513 回答
1

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

于 2012-09-04T09:26:14.660 回答
0

可能有两种主要方法可以做到这一点。

  1. 您可以创建一个扩展,用户填写信息并将数据存储在连接到该#__users表的单独数据库表中。
  2. 您可以从 JED 下载扩展配置文件的扩展。有非商业和商业扩展,所以看看这里,看看是否有任何东西可能适合您的需求。

就我个人而言,我会安装一个预制的扩展程序,它将节省大量的工作/试验和错误。

看看这个:http ://extensions.joomla.org/extensions/clients-a-communities/user-management

于 2012-08-30T15:09:37.363 回答
0

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

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

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

  • Modules -> 表示您创建的表名。

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

然后你必须像这样将帖子值传递给这个表..

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

这样,您可以为用户存储额外的数据。出于显示目的,您需要使用 userid 连接两个表并显示它...

祝一切顺利..

于 2012-08-30T15:35:57.830 回答