[英]Should this be a plugin or component solution? (Joomla!)
根据下图,通过为Joomla(3.0)的核心注册组件创建一个插件会更好地实现这一点,还是创建一个自定义组件会更好?
我设想它仍将用户数据库表用于公共元素,但根据用户类型(客户/供应商)使用两个单独的关系表
先感谢您。
我必须尊重其他答案,这个用例实际上是创建自定义User插件的标志。
您甚至可以使用现有的#__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定义文件?
根据下面的定义,您添加的内容可以更好地描述为组件。
http://docs.joomla.org/Extension_types_(general_definitions)
组件是所有组件中最大,最复杂的扩展。 它们可以看作是微型应用程序。 大多数组件都有两个部分:站点部分和管理员部分。 每次加载Joomla页面时,都会调用一个组件来呈现主页主体。 例如,Content(com_content)是处理内容显示的组件; 用户可以在您的站点的前端查看,并且作为管理员,您可以编辑内容。 组件是页面的主要部分,因为组件由菜单项驱动,并且每个菜单项都运行一个组件。
模块是用于页面渲染的更轻量级和灵活的扩展。 这些模块通常被称为围绕组件排列的“框”,例如:登录模块。 页脚是一个模块。 每个菜单项分配模块。 因此,您可以根据用户正在查看的菜单项来决定显示或隐藏登录模块。 有时,模块链接到组件,例如“最新新闻”模块,该模块链接到com_content并显示指向最新内容项的链接。 但是,模块不需要链接到组件,事实上,它们甚至不需要链接到任何东西,而可以只是静态HTML或文本。
插件是更高级的扩展,本质上是事件处理程序。 在执行Joomla的任何部分(无论是核心,模块还是组件)时,都可以触发事件。 触发事件时,将向应用程序注册以处理该事件的插件。 例如,一个插件可以用来拦截用户提交的文章并过滤掉不良单词。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.