السلام عليكم
اليوم سوف ندرس سويا طريقة انشاء صفحة جديدة وتعزيز هذه الصفحة وتطويرها بقدر الامكان ولنستفد الاستفادة القصوى من امكانيات مكتبات الـvBulletin 3.5.x .
إنشاء الصفحة بابسط ما يكن
افتح ملف جديد وليكن اسمه mypage.php وليكن في نفس دليل منتداك ،،،
وضع هذا الكود بداخله واحفظ الملف:
انتهينا من الملف ق بحفظه.كود:<?php // ######################## اعداد البئية العامة ########################### error_reporting(E_ALL & ~E_NOTICE); // ##################### تعريف الثوابت المهمة ####################### // تعريف اسم الملف بدون الحاق الامتداد الخاص به وذلك لكي تسهل عملية مناداته داخل المنتدى // وليكن الاسم نفس اسم الملف define('THIS_SCRIPT', 'mypage'); // #################### استدعاء القوالب والبييانات ###################### //مصفوفة القوال المستخدمة في هذا الملف $globaltemplates = array( // اسماء القوالب التي سوف يتم استدعاءها 'mypage_temp1',// اسم القالب الاول 'mypage_temp2',// اسم القالب الثاني ); // ########################## الثوابت ############################ require_once('./global.php'); // #################### مسار كود الجافا سكريبت ######################## $headinclude = str_replace('clientscript', $vbulletin->options['bburl'] . '/clientscript', $headinclude); // ######################################################################## // #########################بداية الكود الخاص بصفحتك ############################ // ######################################################################## $navbits = array(); // عنوان الصفحة في الشريط $navbits[$parent] = 'صفحتي المتطورة'; $navbits = construct_navbits($navbits); eval('$navbar = "' . fetch_template('navbar') . '";');// استدعاء قالب النافبار // استدعاء قوالبك الخاصة والتي عرفتها بالاعلى eval('print_output("' . fetch_template('mypage_temp1') . '");'); //############################################################################ // .:: s u d a b e s t . c o m ::. //############################################################################ ?>
الان نقم بإنشاء القوالب التي نريدها
ولتكن هذه محتويات قالب mypage_temp1:
انتهينا ، قم الان بطلب عنوان الملف mypage.php وانظر.كود:$stylevar[htmldoctype] <html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]"> <head><meta http-equiv="Content-Type" content="text/html; charset=windows-1256"> $headinclude <title>$vboptions[bbtitle]</title> </head> <body> $header $navbar <table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center"> <tr> <td class="tcat">عنوان صفحتي المتطورة</td> </tr> <tr> <td class="alt1">هنا ضع اي شي تريد قوله :)</td> </tr> </table> $footer </body> </html>
أضافة اسم الصفحة في المتواجدون الان
عندما تكن تنظر في المتواجدون الان بيظهر لك اسم المستخدم ومكان تواجده ، "مثلا : يقرا رسالة خاصة من "
الان اذا اتى زائر وفتح هذه الصفحة سوف يظهر لك مكان تواجده باسم "Unknown Location" او " غير معروف"
واليكم طريقة التعريف عبر الـPlugins أضف Plugins جديد و ضعه فيه الكود التالي :
واحفظكود:Product: vBulletin Hook Location: online_location_process Title: My Custom Location (Part1) Plugin PHP Code: if ($filename == 'mypage.php') { $userinfo['activity'] = 'test'; } Plugin is Active: Yes
قم بالحفظكود:قم باضافة Plugin جديد مره اخرى وضع فيه الكود التالي : Product: vBulletin Hook Location: online_location_unknown Title: My Custom Location (Part2) Plugin PHP Code: if ($userinfo['activity'] == 'mypage') { $userinfo['action'] = 'يشاهد صفحتي المتطورة'; / $userinfo['where'] = '<a href="./test.php?' . $vbulletin->session->vars['sessionurl'] . '">هذه صفحتي المتطورة</a>'; $handled = true; } Plugin is Active: Yes
( هنالك طريقة اخرى عبر الملفات ومعقدة نوعا ماء كنت استخدمها قبل 3.5 )
انتهينا بحمد الله من تعريف اماكن التواجد.
اعطاء صلاحيات المشاهدة لصفحتي
هنالك طريقتين لعمل تحديد الصلاحيات بالنسبة للمجموعات وكلاهما يعتمدان على الشرط المنطقي " IF" ،، وسوف نستخدم اسهل الطرق .
1- الطريقة الاولى عبر القوالب
2- عبر الملف البرمجي
في قالبك ضع هذا الشرط في المكان المناسب واحبذ بعد متغير الـ$navbar ، هذا الكةد يقم بعرض الصفحة اذا كان المستخدم ينتمي الى المجموعة رقم 6 ( وهي في العادة مجموعة المشرف العام)
لناخد مثال آخر ،،، اذا كنت تريد عرض الصفحة للاعضاء فقطكود:<if condition="is_member_of($bbuserinfo, 6)"> اذا كان المستخدم ينتمي للمجموعة 6 <else /> اعرض هذا </if>
طريقة استخدام المتغيرات في القوالبكود:<if condition="!$bbuserinfo['userid']">
1- المتغيرات العادية ، مثل $sudabest , $var1،، يمكنك استخدامها بكل يسر.
2- متغيرات المصفوفات مثل $sudabest[hosting] ،، ولا تستخدم ابدا علامات الاقتباس المفردة او الزوجية، والا سوف يظهر لك خطا.
3- متغيرات الكائنات او الاوبجيكت ،
تذكر الازواج من هذا النوع {} في البداية والنهايةكود:{$sudabest->host['package']}
* لاسباب امنية لا تستخدم ابدا مصفوفات الـ$_POST[], $_GET[], $_REQUEST حاول ا تتجنبها في قوالبك.
إستخدام العبارات الشرطية
كل قوالب الاصدار الثالث تدعم استخدام العبارة الشرطية IF في قوالبها
مثلا:-
انتبه لا يمكنك ان تستخدم عبارة else if في القوالب واذا كنت بحوجة الى استخدامها عليك بهذه الطريقةكود:<if condition="$somevbulletinvar"> htmlcode <else /> other html code </if>
وهكذا ........كود:<if condition="$condition1"> htmlcode <else /> <if condition="$condition2"> more html code </if> </if>
أنشاء رسالة خطا
لانشاء رسالة خطا خاصة بك ينبغي ان تراعي :-
1- انشاء عبارة جديدة في Front-End Error Messages
2- يجب ان يكن اسم المتغير لهذه العبارة ان يبدا بي "error_"
3- يجب ان تضع الدالة هذه في الملف البرمجي:
وتاكد من تطابق متغير العبارة الذي عرفته مع error_mypagephraseكود:eval(standard_error(fetch_error('error_mypagephrase')));
انشاء رسائل اعادة التوجيه
لإنشاء رسالة اعادة توجيه خاصة يجب ان تراعي :-
1- تاكد بانه لايوجد نتيجة استعلام او اية نتيجة اخرى قبل هذه اعادة التوجيه.
2- تعريف مسار صفحة اعادة التوجيه ، مثلا:-
3- تذكر باننا نستخدم دائما الاسم mypage.php .كود:$vbulletin->url = "mypage.php" . $vbulletin->session->vars['sessionurl'] ."somevar=someval";
4- لاتنسى ان تستبدل الـsomevar=someval باسماء متغيراتك الخاصة التي تريد تمريرها للصفحة القادمة هذه.
الان علينا بالقيام بإضافة عبارات رسالة اعادة التوجيه :-
1- قم بإنشاء عبارة في مجموعة "Front-End Redirect Messages" ، ويجب ان تبدا بـ"redirect_" .
2- اضف الكود التالي :-
كود:eval(print_standard_redirect('redirect_myphrase', true, true));
في المكان الذي تريد فيه رسالة اعادة التوجيه.
بحمد الله وصلنا لنهاية هذا الدرس ، واتمنى اكن قد أفدتكم
![]()







رد مع اقتباس


مواقع النشر (المفضلة)