تغطية مباشرة لأحداث منتدى الإعلام الجديد المقام بمدينة أبوظبي
هل تقترح تمديد مسابقة سوالف كاست؟

 

العودة   سوالف سوفت > قسم تطوير المنتديات > إصلاح وصيانة المنتديات
المدوّنات البحث مشاركات اليوم اجعل كافة المشاركات مقروءة

موضوع مغلق  
 
LinkBack أدوات الموضوع
عضو فعال
تاريخ التسجيل: Nov 2002-
#1 (permalink)  
[درس في برمجة الهاكات] (تعدد الصفحات) للـــــــvb3


[درس في برمجة الهاكات] (تعدد الصفحات) للـــــــvb3

تحدثنا سابقا عن عمل صفحه والتعامل مع التمبلت في درس
http://www.swalif.net/softs/showthre...threadid=49122

والان سوف نتحدث عن درس بسيط وهو تعدد الصفحات وتقسيم النتائج على عدة الصفحة
فل نفرض اننا قمنا بعمل ملف صغير يعرض اسم كل عضو وعدد مشاركاته
كود PHP:
<?php
require_once('./global.php');


$vb =  $DB_site->query("
  SELECT userid,username,posts
  FROM " 
TABLE_PREFIX "user ORDER BY user.userid");


while(
$all_the_vb $DB_site->fetch_array($vb)) {
eval(
'$vbulletin .= "' fetch_template('userpostsbits') . '";');
}

eval(
'print_output("' fetch_template('userposts') . '");');
?>

والتمبلت userposts فيه
كود PHP:
$stylevar[htmldoctype]
<
html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">
<
head>
<
title>$vboptions[bbtitle] - all-the-vb</title>
$headinclude
</head>
<
body>
$header
$navbar
<br />
<
table class="tborder" cellpadding="$stylevar[cellspacing]" cellspacing="$stylevar[cellspacing]" border="0" width="50%" align="center">
<
td class="tcat">الاعضاء,والمشاركات</td>
$vbulletin
</table>
$footer
</body>
</
html
والتمبلت userpostsbit فيه
كود PHP:
<tr><td class="alt1"><a href="member.php?$session[sessionurl]u=$all_the_vb[userid]"$all_the_vb[username]</a>  $all_the_vb[posts]</td></tr
لو اردنا تقسيم هذه النتائج على عدة صفحات
نضيف
كود PHP:
globalize($_REQUEST, array('perpage' => INT'pagenumber' => INT)); 
وعمله تمرير المتغرين $pagenumber و $perpage
واخباره انهما عددين صحيحين
ومن هناك سوف يتم تمريرهما عبر الداله intval();
بما انهما عددين صحيحين وعملها اخذ الرقم من المتغير للمزيد عن هذه الدالة.
http://php.net/intval

والان نحدد
الحد الاقصى للصفحات
مثلا نسمى المتغير max
$max=4;
والحد الاقصى للاسماء بالصفحه
مثلا نسمى المتغير inpage
$inpage=2;

والان نضع هذا الكود
كود PHP:
if(isset($perpage)) {

    if(
$perpage >$max) {
    
$perpage $max;
    }
} else {
    
$perpage $inpage;

وعمله
اذا تحقق الشرط وهو ان المتغير $perpage غير فارق
ويتم التاكد من ذلك بالدالة isset();
ومن ثم شرط اخر
اذا كان الحد الاقصى للاسماء بالصفحه الواحد اكبر من الحد الاقصى للصفحات
يعطى المتغير $perpage
قيمة المتغير $max
ومن بعد اذ لم يتحقق الشرط الاول
يعطى المتغير $perpage
قيمة المتغير $inpage
وهو الحد الاقصى للاسماء بالصفحه

والان نضيف استعلام
كود PHP:
$pagequery $DB_site->query_first("SELECT COUNT(*)AS alluser FROM " TABLE_PREFIX "user"); 
للتعرف على عدد الاسماء الكلى.

والان نضيف الكود التالى
كود PHP:
if ($pagenumber 1)
{
    
$pagenumber 1;
}
else if (
$pagenumber ceil(($pagequery['alluser']+ 1) / $perpage))
{
    
$pagenumber ceil(($pagequery['alluser'] + 1) / $perpage);

وعمله اذا كان $pagenumber اصغر من واحد يعطيه القيمه 1
ومن بعد اذا لم يتحقق الشرط يعمل شرط اخر وهو
ان يكون المتغير $pagenumber
اكبر من العدد الكلى للاسماء زائد واحد تقسيم عدد الاسماء بكل صفحه
وتم تمرير (اكبر من العدد الكلى للاسماء زائد واحد) بالدالة ceil();
وعملها تقريب العدد الى العدد الصحيح الاكبر
للمزيد حول هذه الدالة
http://php.net/ceil

والان نضيف التالى
كود PHP:
$limitlower = ($pagenumber 1) * $perpage
اى رقم الصفحه ناقص واحد ضرب عدد الاسماء بكل صفحه

والان نحدد عدد الاسماء التى ستخرج لكل صفحه
من الاستعلام
الذى كتبناه سابقا
كود PHP:
$vb =  $DB_site->query("
  SELECT userid,username,posts
  FROM " 
TABLE_PREFIX "user ORDER BY user.userid"); 
نضيف اليه
كود PHP:
 LIMIT $limitlower$perpage 
ليصبح
كود PHP:
$vb =  $DB_site->query("
  SELECT userid,username,posts
  FROM " 
TABLE_PREFIX "user ORDER BY user.userid LIMIT $limitlower, $perpage"); 
والان نضيف
التالى
كود PHP:
$pages construct_page_nav($pagequery['alluser'], "m.php?","&pp=$perpage"); 
تمرير العدد الكلى للاسماء واسم الملف عدد الاسماء لكل صفحه
عبر دالة الvb
construct_page_nav
وهي الى تختص بعمل تعدد الصفحات بالفي بي 3
للمزيد حول هذه الداله
راجع ملف functions.php الموجود بمجلد includes
عند السطر 1686 تقريبا

واسندنا هذه العمل الى المتغير $pages

والان بقى ان نضيف المتغير $pages
الى تمبلت userposts
باى مكان تود ان تظهر لك تعدد الصفحات

والان بعد نهاية التعديلات
كود PHP:
<?php
require_once('./global.php');

globalize($_REQUEST, array('perpage' => INT'pagenumber' => INT));

$max=4;
$inpage=2;

if(empty(
$page)){
$page=1;
}
if(isset(
$perpage)) {

    if(
$perpage >$max) {
    
$perpage $max;
    }
} else {
    
$perpage $inpage;
}

$pagequery $DB_site->query_first("SELECT COUNT(*)AS alluser FROM " TABLE_PREFIX "user");

// set page number
if ($pagenumber 1)
{
    
$pagenumber 1;
}
else if (
$pagenumber ceil(($pagequery['alluser']+ 1) / $perpage))
{
    
$pagenumber ceil(($pagequery['alluser'] + 1) / $perpage);
}

$limitlower = ($pagenumber 1) * $perpage;


$vb =  $DB_site->query("
  SELECT userid,username,posts
  FROM " 
TABLE_PREFIX "user ORDER BY user.userid LIMIT $limitlower, $perpage");


while(
$all_the_vb $DB_site->fetch_array($vb)) {
eval(
'$vbulletin .= "' fetch_template('userpostsbits') . '";');
}
$pages construct_page_nav($pagequery['alluser'], "m.php?","&pp=$perpage");

eval(
'print_output("' fetch_template('userposts') . '");');
?>

والتمبلت userposts فيه
كود PHP:
$stylevar[htmldoctype]
<
html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">
<
head>
<
title>$vboptions[bbtitle] - all-the-vb</title>
$headinclude
</head>
<
body>
$header
$navbar
<br />
<
table class="tborder" cellpadding="$stylevar[cellspacing]" cellspacing="$stylevar[cellspacing]" border="0" width="50%" align="center">
<
td class="tcat">الاعضاء,والمشاركات</td>
$vbulletin
</table>
$pages
$footer
</body>
</
html
والتمبلت userpostsbit فيه
كود PHP:
<tr><td class="alt1"><a href="member.php?$session[sessionurl]u=$all_the_vb[userid]"$all_the_vb[username]</a>  $all_the_vb[posts]</td></tr
الموضوع في فيبيولتين عرب:
http://vbulletin-arab.com/forums/sho...6772#post16772

والسلام عليكم
All-the-vb






__________________
نــــــــــحو سـوالف أفضل...
All-the-vb site
All-the-vb forum
all-the-vb غير متواجد حالياً   قديم 15-06-2004, 03:25 PM
عضو فعال
تاريخ التسجيل: Nov 2002-
#2 (permalink)  



من أعلى المتصفح

view=>Encoding=>Left-to-right Document






__________________
نــــــــــحو سـوالف أفضل...
All-the-vb site
All-the-vb forum
all-the-vb غير متواجد حالياً   قديم 15-06-2004, 03:30 PM
عضو نشيط
تاريخ التسجيل: Sep 2003-
#3 (permalink)  

مشكوووووووور

اخي الكريم هذا الموضوع الاكثر من رائع

وعلى هذا الدرس المتميز


وعسى يكون بميزان حسناتك

يارب

وبالتوفيق






__________________
قالوا اين انت يا موقع تثير شهرة في العلى
فقلت من كثرتها ضاع وضعت معاه ...
Email
Aloraibi@gmail.com
بحريننا غير متواجد حالياً   قديم 16-06-2004, 06:31 AM
عضو نشيط جدا
تاريخ التسجيل: Jun 2003-
#4 (permalink)  

درس رائع جدا .. الف الف شكر لك استاذي .. فعلا نستطيع اللعب في بعض الشغلات اللي علمتنا عليه .. ونسوي شي جديد ونطور حالنا .. سلمت لنا .. يا مبدع .. ولا تطول الغيبات ترى ما نقدر ..

اخوك
شنكول






__________________
:: ستايلات احترافيه::
1- ستايل احترافي ورائع
2- 2- قريباً..
3- 2- قريباً..
معروف غير متواجد حالياً   قديم 16-06-2004, 09:27 PM
عضو سوبر نشيط
تاريخ التسجيل: Jun 2003-
#5 (permalink)  

اقتباس:
رد مقتبس من معروف
درس رائع جدا .. الف الف شكر لك استاذي .. فعلا نستطيع اللعب في بعض الشغلات اللي علمتنا عليه .. ونسوي شي جديد ونطور حالنا .. سلمت لنا .. يا مبدع .. ولا تطول الغيبات ترى ما نقدر ..
والله شيء قمة..
يا ريت كل هاك يتم برمجته...يصير درس مثل هذ1ا مع شرح كامل
يعطيك الف الف عافيه






__________________
شكرا
المتواضع غير متواجد حالياً   قديم 17-06-2004, 01:13 AM
عضو فعال
تاريخ التسجيل: Nov 2002-
#6 (permalink)  

بحريننا & معروف & safareeat

بارك الله فيكم, وحياكم الله

واذا اي واحد من الشباب عنده سؤال لايتردد .






__________________
نــــــــــحو سـوالف أفضل...
All-the-vb site
All-the-vb forum
all-the-vb غير متواجد حالياً   قديم 17-06-2004, 01:34 PM
عضو نشيط
تاريخ التسجيل: Nov 2003-
#7 (permalink)  

مشكوور أخوي على الشرح والله يوفقك






__________________
MSN:Alkhayaal@alkhayaal.com
alkhayaal.com غير متواجد حالياً   قديم 17-06-2004, 07:34 PM
عضو فعال
تاريخ التسجيل: Jun 2003-
#8 (permalink)  

all-the-vb

الف شكر وتقدير لك يادب ما قصرت

رااائع دوماً

سلمت يداك

اخوك الوافي






__________________
شبكة الوافي التطويرية
في خدمتكم دائماً لتطوير منتدياتكم ومواقعكم ..
http://www.vbulletin4arab.com
الوافي غير متواجد حالياً   قديم 18-06-2004, 11:32 AM
عضو نشيط جدا
تاريخ التسجيل: Jun 2003-
#9 (permalink)  

all-the-vb

السلام عليكم و رحمة الله و بركاته ،،،

ما شاء الله تبارك الله من حسن الى احسن ... الله يوفقك اخوي ...

تحياتي لك يالغالي الغايب






__________________
[CENTER]احمدك ياربي على نجاتي من موت محقق بلا محاله

العارف - ادارة فيبولتن العربيه
\\ فيبولتن العربيه _ vBulletin-arab //

[]انتظرووو Golden Board ... اسطوره في عالم الانترنت بإذن الله[]
. . .[/CENTER]
al3arf غير متواجد حالياً   قديم 22-06-2004, 02:14 PM
عضو فعال
تاريخ التسجيل: Nov 2002-
#10 (permalink)  

alkhayaal.com
بارك الله فيك وحياك الله

الوافي
الله حيه الغالي
العفو وتسلم على الرد

al3arf
وينك يالحبيب
تعرف والله نفس اليوم الى رديت فيه ان طريتك وكنت انشد عنك
بارك الله فييك ولاتحرمنا من شوفتك






__________________
نــــــــــحو سـوالف أفضل...
All-the-vb site
All-the-vb forum
all-the-vb غير متواجد حالياً   قديم 25-06-2004, 05:15 PM
موضوع مغلق


 

أدوات الموضوع

تعليمات المشاركة
لا تستطيع كتابة مواضيع
لا تستطيع كتابة ردود
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة



الساعة الآن: 12:36 PM بتوقيت المملكة العربية السعودية