我试图在joomla中创建一些新扩展。
我想为每个用户添加其他信息。我知道我可以通过创建自己的自定义用户个人资料插件并添加其他字段来实现这一目标,但这会将这些字段添加到用户个人资料页面。
我想分别显示新字段。例如,我可以在用户页面上具有一个链接,该链接将它们带到那里例如基本信息。名称,电子邮件等。另一个链接向他们显示“附加”字段。
其他字段不是个人信息,这就是我想单独显示的原因。
我的问题是,我该如何实现这一目标?我可以简单地为每个用户添加其他字段,还是必须编写一个全新的组件?
更新:我无法使用现有的扩展程序,因为我希望完全控制代码。此外,用户不会添加其他信息,只会由管理员添加。
答案 0 :(得分:1)
您不必使用标准用户配置文件在用户配置文件页面上显示配置文件字段您只能将其配置为显示给管理员。您只需为不同的表单进行不同的设置(整个cms中有4个)。遵循核心插件中的模式。
答案 1 :(得分:1)
最后我决定创建自己的组件会更好。主要是因为当更新出来并且JED没有提供我想要的具体扩展时,黑客joomla会成为一种害虫。
答案 2 :(得分:0)
这可能有两种主要方式。
#__users
表的单独数据库表中。就个人而言,我会安装一个预先制作的扩展程序,它会节省大量的工作/试错。
检查一下:http://extensions.joomla.org/extensions/clients-a-communities/user-management
答案 3 :(得分:0)
如果您添加或更改了任何编码,例如向用户表添加字段或在joomla中自定义注册页面,则在升级Joomla版本后它将恢复为默认值。 这样做的方法是:
#__users
的用户ID。$ 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加入这两个表并显示它......
一切顺利......