الويب العربي

الويب العربي (http://www.arabwebtalk.com/index.php)
-   تطويرالمواقع (http://www.arabwebtalk.com/forumdisplay.php?f=47)
-   -   تعلم بناء صفحة جديدةفي الـvBulletin بتقنيات متطورة (http://www.arabwebtalk.com/showthread.php?t=18216)

HaMaDa4eVeR 05-01-2006 12:46 PM

تعلم بناء صفحة جديدةفي الـvBulletin بتقنيات متطورة
 
السلام عليكم

اليوم سوف ندرس سويا طريقة انشاء صفحة جديدة وتعزيز هذه الصفحة وتطويرها بقدر الامكان ولنستفد الاستفادة القصوى من امكانيات مكتبات الـvBulletin 3.5.x .

إنشاء الصفحة بابسط ما يكن
افتح ملف جديد وليكن اسمه mypage.php وليكن في نفس دليل منتداك ،،،
وضع هذا الكود بداخله واحفظ الملف:
كود 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:
كود 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

انتهينا ، قم الان بطلب عنوان الملف mypage.php وانظر.
أضافة اسم الصفحة في المتواجدون الان
عندما تكن تنظر في المتواجدون الان بيظهر لك اسم المستخدم ومكان تواجده ، "مثلا : يقرا رسالة خاصة من "
الان اذا اتى زائر وفتح هذه الصفحة سوف يظهر لك مكان تواجده باسم "Unknown Location" او " غير معروف"
واليكم طريقة التعريف عبر الـPlugins أضف Plugins جديد و ضعه فيه الكود التالي :
كود PHP:

ProductvBulletin
Hook Location
online_location_process
Title
My Custom Location (Part1)
Plugin PHP Code: if ($filename == 'mypage.php')
{
        
$userinfo['activity'] = 'test';
}
Plugin is ActiveYes 

واحفظ
كود PHP:

قم باضافة Plugin جديد مره اخرى وضع فيه الكود التالي :
ProductvBulletin
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 ActiveYes 

قم بالحفظ
( هنالك طريقة اخرى عبر الملفات ومعقدة نوعا ماء كنت استخدمها قبل 3.5 )
انتهينا بحمد الله من تعريف اماكن التواجد.

اعطاء صلاحيات المشاهدة لصفحتي

هنالك طريقتين لعمل تحديد الصلاحيات بالنسبة للمجموعات وكلاهما يعتمدان على الشرط المنطقي " IF" ،، وسوف نستخدم اسهل الطرق .

1- الطريقة الاولى عبر القوالب
2- عبر الملف البرمجي

في قالبك ضع هذا الشرط في المكان المناسب واحبذ بعد متغير الـ$navbar ، هذا الكةد يقم بعرض الصفحة اذا كان المستخدم ينتمي الى المجموعة رقم 6 ( وهي في العادة مجموعة المشرف العام)

كود:

<if condition="is_member_of($bbuserinfo, 6)">
اذا كان المستخدم ينتمي للمجموعة 6
<else />
اعرض هذا
</if>

1
لناخد مثال آخر ،،، اذا كنت تريد عرض الصفحة للاعضاء فقط
كود PHP:

<if condition="!$bbuserinfo['userid']"

طريقة استخدام المتغيرات في القوالب
1- المتغيرات العادية ، مثل $sudabest , $var1،، يمكنك استخدامها بكل يسر.
2- متغيرات المصفوفات مثل $sudabest[hosting] ،، ولا تستخدم ابدا علامات الاقتباس المفردة او الزوجية، والا سوف يظهر لك خطا.
3- متغيرات الكائنات او الاوبجيكت ،
كود:

{$sudabest->host['package']}
، تذكر الازواج من هذا النوع {} في البداية والنهاية

* لاسباب امنية لا تستخدم ابدا مصفوفات الـ$_POST[], $_GET[], $_REQUEST حاول ا تتجنبها في قوالبك.

إستخدام العبارات الشرطية

كل قوالب الاصدار الثالث تدعم استخدام العبارة الشرطية IF في قوالبها
مثلا:-
كود PHP:

<if condition="$somevbulletinvar">
        
htmlcode
<else />
        
other html code
</if> 

انتبه لا يمكنك ان تستخدم عبارة else if في القوالب واذا كنت بحوجة الى استخدامها عليك بهذه الطريقة
كود PHP:

<if condition="$condition1">
        
htmlcode
<else />
        <if 
condition="$condition2">
                
more html code
        
</if>
</if> 

وهكذا ........

أنشاء رسالة خطا
لانشاء رسالة خطا خاصة بك ينبغي ان تراعي :-
1- انشاء عبارة جديدة في Front-End Error Messages
2- يجب ان يكن اسم المتغير لهذه العبارة ان يبدا بي "error_"
3- يجب ان تضع الدالة هذه في الملف البرمجي:
كود PHP:

 eval(standard_error(fetch_error('error_mypagephrase'))); 

وتاكد من تطابق متغير العبارة الذي عرفته مع error_mypagephrase

انشاء رسائل اعادة التوجيه
لإنشاء رسالة اعادة توجيه خاصة يجب ان تراعي :-
1- تاكد بانه لايوجد نتيجة استعلام او اية نتيجة اخرى قبل هذه اعادة التوجيه.
2- تعريف مسار صفحة اعادة التوجيه ، مثلا:-
كود PHP:

 $vbulletin->url "mypage.php" $vbulletin->session->vars['sessionurl'] ."somevar=someval"

3- تذكر باننا نستخدم دائما الاسم mypage.php .
4- لاتنسى ان تستبدل الـsomevar=someval باسماء متغيراتك الخاصة التي تريد تمريرها للصفحة القادمة هذه.

الان علينا بالقيام بإضافة عبارات رسالة اعادة التوجيه :-
1- قم بإنشاء عبارة في مجموعة "Front-End Redirect Messages" ، ويجب ان تبدا بـ"redirect_" .
2- اضف الكود التالي :-
كود PHP:

 eval(print_standard_redirect('redirect_myphrase'truetrue)); 

في المكان الذي تريد فيه رسالة اعادة التوجيه.

بحمد الله وصلنا لنهاية هذا الدرس ، واتمنى اكن قد أفدتكم

تحياتي القلبية لكم بالتوفيق
27-12-2005 الساعة الثامنة وربع بتوقيت الخرطوم :)
--------------------------------------------------------------------------------------------------------

الحاج متولى 05-01-2006 02:05 PM

حقيقة شرح رائع
وهذا الامر اضافة حقيقية للمنتديات من هذا النوع
وشكرا على الشرح اخى حمادة
وانت هكذا دوماً كما تعودنا
رائع بكل المواصفات

Ali Hamad 05-01-2006 02:16 PM

السلام عليكم :

رائع جدا ، شكرا لك على مساعدتك اخوانك ومشاركتهم افكارك ،

علي حمد !

HaMaDa4eVeR 07-01-2006 02:34 PM

لكم اجزل الشكر والتقدير لمروركم الكريم
واذا في اي استفسار انا جاهز
والسلام عليكم

JSRhost.com 07-01-2006 09:12 PM

ما شاء الله عليك ..

بطل .. يعطيك الف عافية ,,


جميع الأوقات بتوقيت مكة المكرمة. الساعة الآن » 04:13 PM.

Powered by vBulletin
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © ArabWebTalk.Com 2004-2012