هذا الدرس الاساسي لعمل plug-ins و hook .
الدرس
اول شئ انت تحتاج الى عمله هو يجب التاكد ان ال plugins مفعل عندك في المنتدى، انت تستطيع ايجاد هذا الخيار في admin cp بواسطة البحث من خيارات المنتدى --> اختر Plugin/Hook System من اللوحة--> واختر نعم امام Enable Plugin/Hook System.
الان توجه مباشرة الى اضافة plugins وتستطيع الوصول اليها عن طريق تنفيذ هذا الرابط في متصفحك
كود HTML:
http://www.yoururl.com/forum/admincp/plugin.php?do=add
دعنا نذهب لنتعرف على عمل ووظيفة هذا الخيار:
Hook Location: هنا مكان ال phpcode المراد تنفيذه، Hook
Location معرف في جميع مقاطع ال vbulletin . انت تستطيع ايجاده بواسطة فتح اي ملف php وتبحث عن المتغير var $hook . عندما انت تجد عدة مقاطع مثل هذا انت استطعت ايجاد hook:
كود PHP:
($hook = vBulletinHook::fetch_hook('showthread_postbit_create')) ? eval($hook) : false;
لاحظ هذا الامر fetch_hook
('showthread_postbit_create')? حسنا النص "showthread_postbit_create" هو اسم هذا hook، اذا انت تمعنت بشكل جيد ستجد المكان الذي يندرج منه ال hook . في هذه الحالة انت تستطيع معرفة ال hook موقعه هو في showthread.php في السطر 1012.
Title: هنا نضع عنوان ال plugins، استعمل اسم جيد لانه هذا الشئ الوحيد الذي تمتلكه لتعريف ال plug-ins في plug-ins manager.
Plugin PHP Code: هل تستطيع معرفته؟ هذا عندما تضع php code الذي تريده، فانه سيتم تنفيذه في موقع hook في ملف .php . لاحظ انت لا تحتاج هنا الى استخدام <?php?> Taq هنا،بعبارة اخرى:
الخطأ
كود PHP:
<?php $var = true; ?>
العبارة الصحيحة:
Plugin is Active:يسمح لك بجعل plugins فعال on او غير فعال off دون ازالته. اذا انت وضعته على 'yes' فان الكود سيعمل عندما يتم طلبه.
------------
vbulletin_plugins.xml
اذا انت احتجت لتخبر المستخدمين لاضافة عدد من Plugins، هذا يتطلب بشكل مستمر وممل عمل ما يشابه copy/pasting . بطريقة مشابهة لذلك تستطيع استخدام ال ".xml import" . وعملها مشابه لاستيراد قالب او ملف لغة او ستايل، وهي تقوم بوضع محتوياته من php code ك plugin .
الصيغة الصحيحة لل plugin.xml هي الاتي:
كود PHP:
<?xml version="1.0" encoding="ISO-8859-1"?>
<plugins>
<plugin active="1">
<title>vB Category Icons</title>
<hookname>forumdata_start</hookname>
<phpcode><![CDATA[$this->validfields['forumhomeicon'] = array(TYPE_STR, REQ_NO);]]></phpcode>
</plugin>
</plugins>
توضيح
<plugin active="1"> - The 'active' attribute determines the default value of 'Plugin is Active' in the Plugin Manager.
<title></title> - Self explanatory, it is the 'Title' field in the Manager.
<hookname></hookname> - The 'Hook Location' you would select.
<phpcode><![CDATA[ ]]></phpcode> - Anything added in the space between these is added to the 'Plugin PHP Code' part.
هذه ترجمة متواضعة لموضوع موجود في vbulletin وتستطيعون مشاهدته وقرائته بشكل اكثر تفصيلا على هذا الرابط
http://www.vbulletin.org/forum/showt...5&page=1&pp=15