基于下图,通过为Joomla(3.0)的核心注册组件创建插件或者创建自定义组件会更好吗?
我设想它仍然会将用户数据库表用于公共元素,但是根据用户类型(客户端/供应商)使用两个单独的关系表
提前谢谢。
答案 0 :(得分:2)
我必须尊重其他答案,这个用例实际上是创建自定义用户插件的标志。
您甚至可以使用现有的#__user_profiles表来存储任何新数据,只需使用一个插件就可以将整个用例范围复制到注册,配置文件查看/编辑和后端用户管理。
<?php
defined('JPATH_BASE') or die;
class plgUserCustomProfile extends JPlugin
{
function onContentPrepareData($context, $data) {
// This method loads all data for existing users
// By attaching variables to the $data object using the
// same naming convention as your form field definitions
// will facilitate automatic loading of values into forms
return true;
}
function onContentPrepareForm($form, $data) {
// This method allows you to attach custom forms to core user form
// I usually have different forms for profile view, profile edit
// registration and back-end administration depending on needs
}
function onUserAfterSave($data, $isNew, $result, $error) {
// This method allows you to save edits to custom user fields
return true;
}
function onUserAfterDelete($user, $success, $msg) {
// Here you get to delete all custom profile data when
// a user is deleted.
return true;
}
}
以下链接是一个更详细的解释,但一旦建成;它提供的控制和灵活性将使管理用户配置文件数据变得更加容易。
http://docs.joomla.org/Creating_a_profile_plugin
您是否熟悉使用Joomla方法创建XML表单定义文件?
您是否为自定义扩展程序实现了多语言支持或Latisha定义文件?
答案 1 :(得分:1)
根据以下定义,您的添加更好地描述为一个组件。
http://docs.joomla.org/Extension_types_(general_definitions)
组件是它们中最大和最复杂的扩展;它们可以被视为迷你应用程序。大多数组件包含两部分:站点部分和管理员部分。每次加载Joomla页面时,都会调用一个组件来呈现主页面主体。例如,Content(com_content)是处理内容显示的组件;用户可以在您网站的前端查看,并且作为管理员,您可以编辑内容。组件是页面的主要部分,因为组件由菜单项驱动,每个菜单项都运行组件。
模块是用于页面呈现的更轻量级和灵活的扩展。这些模块通常被称为围绕组件布置的“盒子”,例如:登录模块。页脚是一个模块。每个菜单项分配模块。因此,您可以决定显示或隐藏登录模块,具体取决于用户正在查看的菜单项。有时,模块链接到组件,例如“最新新闻”模块,该模块链接到com_content并显示指向最新内容项的链接。但是,模块不需要链接到组件,事实上它们甚至不需要链接到任何东西,只能是静态HTML或文本。
插件是更高级的扩展,实质上是事件处理程序。在执行Joomla的任何部分时,无论是核心,模块还是组件,都可以触发事件。触发事件时,会向应用程序注册以处理该事件的插件执行。例如,插件可用于拦截用户提交的文章并过滤掉坏词。