繁体   English   中英

这应该是插件还是组件解决方案? (J!)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM