ديموفنف توفر لك نظام إحترافي سلس للهوك بوينت ، حيث أن الهوك بوينت كتوضيح هي عباره عن مراكز نقاط يتم زرعها و توزيعها داخل ملفات الـ PHP سواء لديموفنف أو لبرمجيتك و التي تسمح من خلالها سواء لك أو للمبرمجين الأخرين من تنفيذه أكواد خاصة بهم و مناداتها في هذه النقاط ، و التي تتيح للمبرمج الفرصة وقتها في إضافة إضافاته البرمجية إلي البرنامج دون الاضطرار إلي تعديل ملف المصدر للملف الرئيسي ، هناك نقاط أساسية يجب فهمها عن نظام نقاط الهوك بديموفنف :
- يتم حفظ نقاط الهوك في ملف xml حيث في ديموفنف يتواجد ملف نقاط الهوك في المسار include/xml بإسمhook_points.xml ، أما في البلجن فيتواجد ملف نقاط الهوك في المسار include/plugins/pluginFolder/xml/pluginfolder-hook_points.xml مع إستبدال pluginfolder بإسم مجلد البلجن.
(هام : يجب أن يتم حفظ ملف نقاط الهوك بنفس صياغ هذا الإسم في البلجنات)
[code] // hook points groups functionsglobal_start functionsglobal_end [/code]
ملاحظات :
يتم تقسيم نقاط الهوك إلي مجموعات ، كل مجموعة تحتوي النقاط الخاصه بها.
الخاصية module في الوسم hookmodule هو إسم مجموعة نقاط الهوك.
الوسم hook يحتوي علي إسم نقطة الهوك.
أساسيات :
- زراعة نقطة هوك في مكان داخل ملف الـ PHP :
يمكنك زراعة نقطة إرتكاز في ملف الPHP في أي مكان تريده من الملف ، من أجل إتاحة إستدعاء هذه النقطة ، مع ملاحظة أنه يجب أن تكون هذه النقطة معرفة مسبقاً في ملف نقاط الهوك للبلجن و المجموعة المندرج تحتها هذه النقطة مستدعاة في بداية ملف الـ PHP .
حيث يجب أولاً في بداية ملف الـPHP الموجود علي المسار الرئيسي لديموفنف ، وضع أسماء مجموعات نقاط الهوك المسموح بتنفيذ أي من نقاطها في هذا الملف ، و يتم ذلك عن طريق الإضافة إلي المصفوفة $Globalhookmodules
بالإضافة لها في بداية ملف الـPHP قبل إستدعاء أي ملف من مجلد include .
مثال :
PHP :
حيث أن الدالة $hook->hook_exist() تقوم بالتأكد إن كانت نقطة الهوك متاحة للإستدعاء أم لا (للتأكد أن النقطة مضافة لملف الـ XML لنقاط الهوك ، و أنه تم تعريف المجموعة الخاصة للإستدعاء)، ومن ثم في حال تم التأكد ، تقوم الدالة $hook->execute_hook() بتنفيذ النقطة و إستدعاء كل الدوال المرسله لها من البلجنات و تنفيذها.
ملاحظة : يمكن تمرير مصفوفة من البارميترز إلي الدوال المرسله من البلجنات إلي نقطة الهوك مع Reference من أجل, علي سبيل المثال, تعديل قيمة في متغير داخل ملف الـ PHP الرئيسي.
مثال :
PHP :
- إرسال دالة من البلجن إلي نقطة هوك :
من خلال البلجن الخاص بك ، تستطيع إرسال الكود الخاص بك إلي نقطة الهوك عن طريق وضع هذا الكود في دالة ، و من ثم إرسالها إلي نقطة الهوك بإستخدام دالة add_hook().
مثال :
في ملف دوال البلجن الموجود علي المسار include/plugins/pluginfolder/pluginfolder_plugin.php
مع ملاحظة إستبدال pluginfolder بـ إسم مجلد البلجن.
ضع الكود الخاص بك الذي تريد إرساله داخل دالة ، و من ثم إستخدم الدالة add_hook() لإرساله إلي نقطة الهوك ، حيث أن هذه الدالة تقبل 3 متغيرات :
- المتغير الأول (إجباري) : وهو يحمل إسم نقطة الهوك الذي سترسل إليها الدالة.
- المتغير الثاني (إجباري) : إسم الدالة التي سترسل إلي نقطة الهوك.
- المتغير الثالث (إختياري) : ترتيب الهوك (لـ أولوية تنفيذه).
PHP :
ملاحظة : البارميتر $vars هو المرسل من مركز نقطة الهوك كـ Reference ، وهو ليس إجباري و يتوقف علي حسب إن كان إرتكاز نقطة الهوك يرسل باراميترز أم لا كما تم الإيضاح سابقاً.