模块基础

模块基础

联系方式位置和名称

所有模块都应添加到模块化联系方式在您的根目录中安装了我们的Crm每个模块必须具有与模块文件夹名称相同的唯一文件夹和init文件姓名如果您不同意本站基于目的 C~f 使用您的信息,请在您的帐户中查看。

创建您的第一个模块

更多>>开始开发一个模块,确保你设置发展模式为了看到任何错误和函数/钩子弃用警告。

要开始并创建您的第一个模块,请遵循下面的步骤。

联系我们导航到我们的Crm安装并打开模块化联系方式

联系我们创建一个新目录,并以模块命名(e。五。样本_模块__email0__ )

联系我们创建一个新的 Php 文件与The相同的名称模块目录在这种情况下,sample_module。PHP,此文件将充当"联系我们文件"对于这个模块。

在这种情况下,模块已经创建和注册但它还没有做任何事情,也没有添加任何名称或描述,我们将通过Php添加模块元数据,如名称,描述,url,作者块注释,它将充当模块标题。

模块标题应仅添加到 init 模块中文件。

现在打开 sample_module。我们之前创建的php文件和在文件顶部添加以下注释:

__email0__ < ?公司简介

/**

* 确保模块 init 文件不能直接访问,仅在应用程序中。

*/

defined('BASEPATH') 或exit("不允许直接脚本访问");

/*

模块名称: 样品 我们的Crm模块

描述: 样品模块描述。

版本: 2.3.联系我们

至少需要:2。3.*

*/

保存文件后,您可以在我们的Crm中导航管理区域设置->模块你们必定看见。您的模块列出。

注释将充当模块的文件标题,应该检查文件标题指南如果你想得到更熟悉。

联系我们确保你总是添加模块名称联系方式

它是非常重要确保您的模块文件夹名称和 。公司简介文件名是一样的否则,您的模块将不会显示在模块列表

基本内容联系方式

创建时需要实现一些基本钩子新模块,如register_activation_hook(),register_deactation_hook()register_uninstall_hook()

如果你熟悉WordPress,你可能会知道这些钩子所做的工作。

添加联系方式

您可以在模块 中添加钩子。Php文件具有:

hooks()->add_action($tag,$function_to_add, $priority = 10, $accepted_args = 1);

hooks()->add_filter($tag,$function_to_add, $priority = 10, $accepted_args = 1);

hooks()->do_action($tag,$arg = ');

hooks()->apply_filters($tag,$value, $addivention 参数);

您可以添加自己的过滤器和操作,以便使用在您的模块实现中,添加操作和过滤器将有所帮助其他模块与您的模块交互并扩展模块功能。

前缀自定义功能

你应该始终前缀任何自定义函数和类,以防止与我们的Crm默认函数或类的任何冲突或任何其他模块。

联系我们模块文件中的代码设计实例

你可能想使用代码设计器框架。在您的模块init文件或任何其他模块文件中扩展框架基类。

$这个只在您的控制器中工作,你的模型,或者你的观点。

您可以在文件中的任何地方实现这一点以下代码:

首先,将 CodeIgniter 对象赋值给变量:

$CI = &get_instance();

一旦你将对象赋值给一个变量,你将使用这个变量相反,$这个

$Ci=&get_实例();

$CI->load->helper('module_name/helper_name');

$CI->load->library('module_name/library_name');

数据库前缀

从版本2。3.0 我们的Crm有定义自定义的选项数据库表前缀。

我们的Crm中的默认表前缀是中文(繁體)

您应该始终使用我们的自定义功能中文版 English联系我们在查询数据库时获得数据库前缀,这将确保如果用户更改了数据库前缀,您的模块仍然可以使用新用户前缀。

这里有一个例子从目标跟踪模块化联系我们公司简介文件。

__email0__ < ?公司简介

defined('BASEPATH') 或exit("不允许直接脚本访问");

如果( !$CI->db->table_exists(db_prefix()。 {'目标')

$CI->db->query('创建表'' ) 。db_prefix( ) 。 中文版 English

'id' int(11) NOULL,

"subject" varchar(191) 不是 NULL,

"描述" 文本不是 Null,

'start_date' 日期 NOULL,

'end_date' 日期 NOLL,

'goal_type' int(11) 不是 NULL,

'contract_type' int(11) 不是 NULL DEFAULT '0',

"成就" int(11) not NULL,

'notify_when_fail' tinyint(1) NOLL缺陷 '1',

'notify_when_achieve' tinyint(1) NOLL缺陷 '1',

int(11) 不是 NULL DEFAULT '0',

'staff_id' int(11) 不是零 DEFAULT '0'

Engine=创意开发Charset=" 。 $CI->db->char_set 。 ';');

联系我们模块选项

我们的Crm有表格在数据库选项为存储各种设置的内部使用和使用的设置特点。 我们已经开发了自定义的Php函数,将执行查询从数据库获取选项。

选项名称是字符串,它们必须是唯一的,以便它们不会与我们的Crm或其他模块发生冲突。

add_option($name,$value, $autoload)

$ 名称
字符串(string)。 要添加的选项的名称,使它是独一无二的,前缀为E。五。 您的模块名称。

$值
选项值(字符串)

$自动加载
(整数) 1 或 0
是否应该与所有其他选项自动加载此选项,如果您在视图中使用该选项太多时间,最好将其自动加载到防止多个查询以获得选项。 默认值为 1

请记住,添加_选项联系方式如果选项名称已经存在于选项表中,则不会创建选项。

get_option($option_name);

从数据库中检索选项,$option_name(字符串)您的选项名称。

update_option($option_name,$new_value);

排 定 的 会update_选项函数将更新选项值,自版本2以来。3.3、当你打电话update_option 如果选项不存在, 我们的Crm将创建此选项.