モジュール場所と名前
すべてのモジュールは、モジュールフォルダ私たちのCrmがインストールされているルートディレクトリに各モジュールは必須モジュールフォルダと同じ名前のユニークなフォルダ名とinitファイルを持っていますお名前ここに記載のCookieを拒否したい場合で、ブラウザーの設定などから直接拒否できない場合は、 __email0__ までお問い合わせください。
作成する最初のモジュール
前へモジュールの開発を開始し、設定したことを確認してください開発モードどちらかを見るためにエラーと機能/フックの非推奨警告。
最初のモジュールを始めて作成するには、次のことを行います。下のステップ。
・私たちのCrmインストールに移動し、開きますモジュールディレクトリ
・新しいディレクトリを作成し、モジュールにちなんで名前を付ける(e.q.sample_module__email0__ )
・新しいPhpファイルを作成する同じ名前でモジュールディレクトリこの場合、サンプル_modulePHP、このファイルは次のように機能します。インティブファイル "このモジュールのため。
この場合、モジュールはすでに作成され、登録されています。しかし、それはまだ何もしていないし、名前や説明も追加されていません。Php経由で名前、説明、url、作成者などのモジュールメタデータを追加します。モジュールヘッダーとして機能するブロックコメント。
モジュールヘッダは init モジュールでのみ追加する必要があります。ファイル。
sample_module を開きます。以前に作成したPHPファイルとファイルの上部に次のコメントを追加します。
< ?Phpについて
/**
* モジュール init ファイルができないことを確認しますアプリケーション内でのみ直接アクセスできます。
*/
defined('BASEPATH') またはexit('直接スクリプトアクセスは許可されていません');
__email0__ /*
モジュール名: サンプル 私達Crmモジュール
説明: サンプルモジュールの説明。
バージョン: 2.__email0__ 3.__email0__ 0
少なくとも必要:2__email0__ 3.*
*/
ファイルを保存したら、当社のCrmでナビゲートできます管理エリアへセットアップ->モジュールあなたがたは必ず見るであろう。あなたのモジュールがリストされています。
コメントはモジュールのファイルヘッダとして機能します。チェックすべきファイルヘッダーガイドあなたが得たいならもっと馴染み。
メイク常に追加することを確認します。モジュール名ヘッダー
それは非常に重要ですモジュールフォルダ名とPhpについてファイル名は同じですそうでなければ、モジュールは表示されません。モジュール一覧
基本的なホック
作成するときにいくつかの基本的なフックを実装する必要があります新しいモジュール、のようなregister_activation_hook(),register_deactivation_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, $addival パラム);
独自のフィルターとアクションを追加して、使用できます。モジュールの実装でも、アクションとフィルタを追加すると役立ちます。あなたのモジュールと相互作用し、モジュールを拡張する他のモジュール機能。
プレフィックスカスタム機能
あなたはすべきです常に任意のカスタム関数をプレフィックスそして当社のCrmデフォルト関数またはクラスとの競合を防ぐクラスまたは他のモジュールと
使用するモジュールファイルのコードigniterインスタンス
おそらくコードigniterフレームワークを使用したいと思うでしょう。モジュール init ファイルまたはそうでない他のモジュールファイルの例フレームワークベースクラスを拡張します。
$これコントローラ内でのみ動作し、あなたのモデル、またはあなたの意見。
これをファイルのどこでも達成できます。以下のコード:
まず、コードイグニターオブジェクトを変数に割り当てます。
$CI = &get_instance();
オブジェクトを変数に割り当てたら、この変数代わりにまたは$これ
$Ci=&get_instance();
$CI->load->helper('module_name/helper_name');
$CI->load->library('module_name/library_name');
データベースプレフィックス
バージョン2から。__email0__ 3.0 私たちのCRMには、カスタムを定義するオプションがありますデータベーステーブルプレフィックス
私たちのCrmのデフォルトのテーブルプレフィックスはTblについて
常にカスタム機能を使用する必要がありますdb_プレフィックス()へデータベースを照会するときにデータベースプレフィックスを取得すると、ユーザーがデータベースプレフィックスを変更した場合も、モジュールは引き続き新規ユーザープレフィックス
ここに例があります目標追跡モジュールインストールします。Phpについてファイル。
< ?Phpについて
defined('BASEPATH') またはexit('直接スクリプトアクセスは許可されていません');
もし__email0__ (!$CI->db->table_exists(db_prefix())。 ( ́・ω・')
$CI->db->query('テーブルを作成する' ) 。db_prefix() です。 そろそろ2人の関係に終止符が打たれた。
'id' int(11) NULL でない、
"subject" varchar(191) NULL ではなく、
"description" テキストは NULL でなく、
'start_date' 日付 NULL,
'end_date' 日付 NULL,
'goal_type' int(11) NULL ではなく、
'contract_type' int(11) NULL DEFAULT '0',
"達成" int(11) NULL でない、
'notify_when_fail' tinyint(1) NOLLDefault '1'、
'notify_when_achieve' tinyint(1) NOLLDefault '1'、
int(11) NULL DEFAULT '0' でない int(11)
'staff_id' int(11) NULL DEFAULT '0'
) ENGINE=InnoDBデフォルトチャーセット=" 。 $CI->db->char_set ';');
作成するモジュールオプション
私たちのCrmにはデータベースにテーブルがありますオプションのために内部使用のためのさまざまな設定と使用される設定を格納特徴。 クエリを実行するカスタムPhp関数を開発しました。データベースからオプションを取得します。
オプション名は文字列であり、当社のCrmやその他のモジュールとは矛盾しません。
add_option($name,$value, $autoload)
$name
string(文字列) 追加するオプションの名前は、ユニークで、Eが付いています。q. モジュール名。
$value
オプション値(文字列)
$autoload
(整数) 1 か 0
このオプションを他のすべてのオプションで自動読み込むべきかどうかビューで時間が多すぎるオプションを使用すると、最善の方法は自動読み込むことですオプションを取得するために複数のクエリを防ぎます。 デフォルトは1
注意してくださいアド_オプション機能オプション名がオプションテーブルに既に存在する場合、オプションは作成されません。
get_option($option_name);
データベースからオプションを取得し、$option_name(文字列)オプション名です。
update_option($option_name,$new_value);
ザ・アップデート_オプション関数は更新しますバージョン2以降のオプション値。__email0__ 3.3、電話するときupdate_option の場合オプションが存在しません, 私たちのCrmはこのオプションを作成します.