ديموفنف توفر لك نظام إحترافي سلس للهوك بوينت ، حيث أن الهوك بوينت كتوضيح هي عباره عن مراكز نقاط يتم زرعها و توزيعها داخل ملفات الـ 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 ، وهو ليس إجباري و يتوقف علي حسب إن كان إرتكاز نقطة الهوك يرسل باراميترز أم لا كما تم الإيضاح سابقاً.

Was this answer helpful? 20 Users Found This Useful (20 Votes)