الوحداتالموقع والاسم
يجب إضافة جميع الوحدات فيوحداتمجلدفي الدليل الجذري الخاص بك حيث يتم تثبيت Crm لدينا ويجب على كل وحدةلديك اسم مجلد فريد وملف init بنفس اسم مجلد الوحدة الخاصة بكالاسم.
إنشاءوحدتك الأولى
قبلالبدء في تطوير وحدة، تأكد من تعيينوضع التنميةمن أجل رؤية أيالأخطاء والوظائف / السنانير تحذيرات الاستهلاك.
للبدء وإنشاء الوحدة الأولى الخاصة بك ، اتبعالخطوات أدناه.
·انتقل إلى تركيب Crm لدينا وافتحوحداتالدليل
·إنشاء دليل جديد وتسميته بعد الوحدة الخاصة بك(هـ) ف.عينة_وحدة)
·إنشاء ملف Php جديدبنفس اسمدليل الوحدةفي هذه الحالةsample_module. php,هذا الملف سيكون بمثابة "إيتملف "لهذه الوحدة.
في هذه الحالة ، تم إنشاء الوحدة وتسجيلها بالفعللكنه لا يفعل أي شيء حتى الآن ولا لديه أي اسم أو أوصاف المضافة، ونحنسوف تضيف البيانات الوصفية للوحدة مثل الاسم والوصف وعنوان Url والمؤلف عبر phpحظر التعليق الذي سيكون بمثابة رؤوس وحدة.
يجب إضافة رؤوس الوحدة فقط في وحدة initملف.
الآن افتح وحدة العينة.ملف php أنشأنا من قبل وأضف التعليق التالي في أعلى الملف:
<؟Php
/**
* يضمن أن ملف init وحدة لا يمكن أن يكونالوصول إليها مباشرة، فقط داخل التطبيق.
*/
تعريف ("الأساس") أوالخروج ("لا يسمح بالوصول المباشر إلى البرنامج النصي") ؛
/*
اسم الوحدة: عينة لديناوحدة Crm
الوصف: عينةوصف الوحدة.
الإصدار: 2.3.0
يتطلب على الأقل: 2.3.*
*/
بعد حفظ الملف ، يمكنك التنقل في Crm الخاص بكمنطقة الإدارة إلىإعداد-> وحداتوسوف تكون قادرة على رؤيةوحدتك المدرجة.
سيكون التعليق بمثابة رأس ملف للوحدة ، أنتيجب التحقق مندليل رؤوس الملفاتإذا كنت ترغب في الحصول علىأكثر دراية.
جعلتأكد من أنك دائما إضافة Meme itاسم الوحدةرأس
إنهمهم جدا لتأكد من أن اسم مجلد الوحدة الخاصة بك و .Phpاسم الملف هو نفسه، وإلا ، لن يتم عرض وحدتك فيقائمة الوحدات
الأساسيةالسنانير
سوف تحتاج إلى تنفيذ عدد قليل من الخطافات الأساسية عند إنشاءوحدة جديدة، مثلregister_activation_hook()التسجيل_تعطيل_hook()لجنة حقوق الإنسانRegister_uninstall_hook()
إذا كنت على دراية بـ WordPress ، فمن المحتمل أن تعرفالعمل الذي تقوم به هذه السنانير.
إضافةالسنانير
يمكنك إضافة خطافات في الوحدة الخاصة بك.ملفات Php مع:
السنانير ()->add_action($tag,$function_to_add ، $الأولوية = 10 ، $corded_args = 1 ؛
السنانير ()->add_filter($علامة,$function_to_add ، $الأولوية = 10 ، $corded_args = 1 ؛
السنانير ()-> do_action($tag,$arg = ")؛
السنانير ()->apply_filters($علامة,$قيمة, $Params إضافية;
يمكنك إضافة الفلاتر والإجراءات الخاصة بك حتى تتمكن من استخداملهم في تنفيذ الوحدة الخاصة بك أيضا، وإضافة الإجراءات والمرشحات سوف تساعدوحدات أخرى للتفاعل مع وحدتك وتوسيع الوحدةالوظائف.
البادئةوظائف مخصصة
يجب عليكدائما البادئة أي وظائف مخصصةلجنة حقوق الإنسانفئات لمنع أي تعارض مع وظائفنا أو فئاتنا الافتراضية Crm أومع أي وحدات أخرى.
استخداممثال رمزي في ملفات وحدة
ربما سوف ترغب في استخدام إطار كوديجنيترمثال في ملف init وحدة الخاص بك أو أي ملفات وحدات أخرى ليستتوسيع الطبقات الأساسية الإطارية.
$هذا، يعمل فقط داخل وحدات التحكم الخاصة بك ،نماذجك أو وجهات نظرك.
يمكنك تحقيق ذلك في أي مكان في الملفات الخاصة بك معالرمز التالي:
أولاً ، قم بتعيين كائن CodeIgniter لمتغير:
$CI = &get_instance() ؛
بمجرد تعيين الكائن لمتغير ، ستستخدمهذا المتغيربدلا من ذلكالجلسات المعقودة$هذا
$Ci=&get_instance()
$CI->load-> helper('module_name/helper_name')؛
$CI->load-> المكتبة('module_name/library_name')؛
قاعدة البياناتالبادئة
من الإصدار 2.3.0 لدينا Crm لديها خيار لتحديد العرفبادئة جداول قاعدة البيانات.
بادئة الجدول الافتراضي في Crm لدينا هيTbl
يجب عليك دائما استخدام وظيفتنا المخصصةدب_prefix()إلىالحصول على بادئة قاعدة البيانات عند الاستعلام عن قاعدة البيانات، وهذا سيضمن أنه فيإذا قام المستخدم بتغيير بادئة قاعدة البيانات ، فستظل وحدتك تعمل معبادئة المستخدم الجديدة.
وهنا مثال منتتبع الأهدافوحدةتثبيت. phpملف.
<؟Php
تعريف ("الأساس") أوالخروج ("لا يسمح بالوصول المباشر إلى البرنامج النصي") ؛
إذا(!$CI->db-> table_exists(db_prefix() . "الأهداف") {
$CI->db-> الاستفسار ("إنشاء الجدول".db_prefix () . "الأهداف" (
"id" in (11) ليس بلا،
"الموضوع" varchar (191) ليس صفرًا ،
نص "وصف" ليس بلا،
تاريخ "start_date" ليس بلا،
تاريخ "end_date" ليس صفرًا ،
'goal_type' int(11) وليس صفر،
'contact_type' int(11) وليس NULL DEFAULT '0'،
"الإنجاز" في (11) وليس صفر،
'nothen_fail' tinint(1) ليس صفرًادفاولت '1'
'notify_when_achieve' tinint(1) ليس صفردفاولت '1'
'أخطر' in (11) وليس NULL DEFAULT '0'،
'staff_id' int(11) ليس صفر DEFAULT '0'
) المحرك = ديفولت InnoDBتشارسيت=". $CI-> db-> char_set. '؛')؛
إنشاءخيارات الوحدة
لدينا Crm لديه جدول في قاعدة البياناتالخياراتمن أجلتخزين إعدادات مختلفة للاستخدام الداخلي والإعدادات المستخدمة فيالميزات. لقد قمنا بتطوير وظائف Php مخصصة من شأنها إجراء الاستعلامات لجلب الخيارات من قاعدة البيانات.
أسماء الخيارات هي سلاسل، ويجب أن تكون فريدة من نوعها بحيث.أنها لا تتعارض مع إدارة علاقات العملاء لدينا أو وحدات أخرى.
add_option($اسم,$قيمة, $autoload)
$الاسم
مطلوب (السلسلة). اسم الخيار المراد إضافته ، وجعلتأكد من أنها فريدة من نوعها ومسبقة مع E. q. اسم الوحدة الخاصة بك.
$القيمة
قيمة الخيار (السلسلة)
$autoload
(أكثر) 1 أو 0
ما إذا كان ينبغي أن يكون هذا الخيار تلقائيا مع جميع الخيارات الأخرى، إذا كنتباستخدام الخيار الكثير من الوقت في وجهة النظر، والأفضل هو أن التلقائي لمنع الاستفسارات المتعددة من أجل الحصول على الخيار. التخلف عن السداد إلى 1
ضع في اعتبارك أنإضافة_optionوظيفةلن ينشئ الخيار إذا كان اسم الخيار موجودًا بالفعل في جدول الخيارات.
get_option($option_name)؛
استرداد خيار من قاعدة البيانات،$option_name(السلسلة)اسم خيارك.
update_option($option_name,$new_value)
الجلسةupdate_optionوظيفة سوف تحديث Meme itقيمة الخيار، منذ الإصدار 2.3.3، عند الاتصالupdate_option إذا كانالخيار غير موجود ، سيقوم Crm بإنشاء هذا الخيار.