يوم سوالف، في 7 أغسطس القادم

 

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

موضوع مغلق
 
LinkBack أدوات الموضوع
عضو سوبر نشيط
تاريخ التسجيل: Dec 2000-
#1 (permalink)  
كائن تعدد الصفحات المتقدم


كائن تعدد الصفحات المتقدم

سبق أن طرح الأخ رفيع قبل مدة قصيرة كائناً لتعدد الصفحات، وحيث إن كائني يختلف فقد عرضته هنا لكي يستفيد منه الآخرون، وليس قصدي في هذا الطعن في الأخ رفيع وقدرته البرمجية، فهو أكفأ مني بشهادة برامجه المتميزة.

وإنما ليتعرض القراء على اختلاف المبرمجين.

مميزات هذا الكائن :

أولا :

أنه لا يظهر في الرابط سوى رقم الصفحة Page=1 وهلم جرا، عكس كثير من الكائنات التي تتطلب وضع بداية المدى

ونهايته على شاكلة :

start=10&offset=20&page=1

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

ثانيا :

أن الاستعلام من قاعدة البيانات خارج هذا الكائن، ولهذا لا تحتاج إلى تعديل أسماء الجداول والحقول.

ثالثا :

سهولة الاستخدام، فهو خالٍ من التعقيد للمستخدم

رابعا :

الخيارات المتعددة المتاحة ؛ حيث يمكنك استخدام هذا الكائن في برنامج واحد بصورة متعددة، بحيث تضع لكل صفحة

خياراتها الخاصة ، وهذه الخيارات

1) اختيار طباعة جملة : عرض النتائج من (1) إلى (5) من إجمالي (20)

2) اختيار طباعة كلمتي : الأولى .... الأخيرة

3) اختيار طباعة : عدد الصفحات (40)

4) اختيار طباعة : الصفحة السابقة ... الصفحة التالية

5) تحديد عدد الصفحات المعروضة

6) اختيار بطباعة مدى النتائج نحو ( 1-10 ) (11-20 )

انتهت المميزات

طريقة الاستخدام :

1) إدراج الكائن المرافق في الملف الأساس لبرنامجك، على سبيل المثال : main.php

2) إنشاء الكائن عن طريق أمر

كود PHP:
$NP =new NextPrevPage
3) عليك تحديد مدى العرض : LIMIT مثلا :

كود PHP:
$C_limit=20
4) الاستعلام الأول من قاعدة البيانات، لتحديد عدد النتائج، على سبيل المثال

كود:
SELECT * FROM YOURTABLE
WHERE id = '$id'
حيث YOURTABLE هو اسم الجدول

و id هو الرقم المراد جلب عدد نتائجه

5) اجعل دالة تحديد عدد النتائج باسم

كود PHP:
$totalRecords 
على سبيل المثال :
كود PHP:
$result mysql_query($query);
$totalRecords mysql_num_rows($result); 
6) أدرج هذه الأوامر :

كود PHP:
$page$NP->CheckPage($page);
$sql$NP->SQLlimit($page,$C_limit);
$SQL_limit$sql['SQL_LIMIT'];
$r=$sql['ROW']; 
7) في الاستعلام الثاني لجلب متغيرات الحقول من قاعدة البيانات استخدم المتغير
كود PHP:
$SQL_limit 
على سبيل المثال

كود PHP:
SELECT    PM_opening_verse ,PM_nu_verse
FROM 
".$prefix."_e4po_poemes
WHERE PM_poet_id 
='21'
ORDER BY BINARY PM_opening_verse
limit $SQL_limit 
8) في أثناء تكرار الحلقة المتغير
كود PHP:
$r 
يشير إلى الرقم التسلسلي ، ولهذا تضع هذا السطر داخل حلقة التكرار :

كود PHP:
$r=$r+1
ثم تضع المتغير السابق في خانة الرقم التسلسلي

9) بعد انتهاء حلقة التكرار ، حدد المتغير التالي بالمتغيرات التي يحتوي عليها الرابط

كود PHP:
$action 
على سبيل المثال :

كود PHP:

$action
="&name=me&order=A&linke=$link"
10) ضع الأمر التالي

كود PHP:
$printnextprev$NP->SHOW ("S1-F1-P1-R1-

4-T1"
,$page,$totalRecords,$C_limit,$action); 
لطباعة تعدد الصفحات، والخيارات هي كما يلي :

// S1-S0 * واحد = طباعة / صفر = لا شيء
#لطباعة : عرض الصفحات من (1) إلى (10) من إجمالي (100)
//F1- F0 * واحد = طباعة / صفر = لا شيء
# لطباعة : الصفحة الأولى ... الصفحة الأخيرة
//P1-P0
# لطباعة عدد الصفحات
//R1-R0
# لطباعة : الصفحة السابقة - الصفحة التالية
// N: عدد الصفحات المعروضة
//T1=
# طباعة أرقام النتائج بين قوسين نحو
# (1-10) (11-20)

تطبيق لهذا الكائن بالخيارات المتعددة

http://www.toarab.ws/scripts/NextPrevPages.php

كتبه الفقير إلى عفو ربه :

عبد الرحمن بن ناصر السعيد
صاحب موقع الشنكبوتية
http://www.toarab.ws

الكائن


يتضمن الملف المضغوط المرافق ملفين :

الأول : للكائن

الثاني : تطبيق كامل، وهو ملف الصفحة المعروضة هنا للتطبيق


##########################################################
# #
# كائن تعدد الصفحات #
# #
# برمجة : عبد الرحمن بن ناصر السعيد #
# صاحب موقع الشنكبوتية #
# http://www.toarab.ws #
# الإصدار الأول #
# ababab90@yahoo.com #
# فضلاً : هذا العمل استغرق الكثير من الوقت والجهد #
# فلا تستخدمه في معصية من خلقك! #
# ولا تحذف هذه الحقوق، والحساب يوم الحساب! #
##########################################################
# #
# تـــــحـــــــذيـــــر #
# لا يسمح باستخدام هذا الكائن في البرامج التجارية #
# إلا بعد تفاهم مع المبرمج #
##########################################################






الملفات المرفقة
نوع الملف: zip nextprevpages.zip‏ (5.5 كيلوبايت, المشاهدات 170)
__________________
لا تعاند من إذا قال فعل
الشنكبوتية
اللغة العربية سياج هويتنا
عبد الرحمن غير متواجد حالياً   قديم 17-11-2003, 06:09 PM
عضو سوبر نشيط
تاريخ التسجيل: Nov 2001-
#2 (permalink)  

جميل جدا أستاذنا الكبير عبدالرحمن

بارك الله فيك
وجهد جبار جدا ماشاء الله






__________________
يارب تهديني قبل لحظة الفوت ++ وتجزل ثوابي يا جزيل العطايا
طريق التوبة II ذكرى II قلوب الأنقياء II صيد الفوائد IIمنابر الدعوة IIدعوة IIكلمات
مهلا فقد يلد الأسى أفراحا ++ فالليل ينجب للحياة صباحا
أبو الوليد غير متواجد حالياً   قديم 18-11-2003, 04:17 AM
عضو فعال جدا
تاريخ التسجيل: Feb 2002-
#3 (permalink)  

جزاك الله خيرا اخوي عبدالرحمن وفقك الله وعفا عنا وعنك






__________________
مؤسسة المهمات البرمجية
00966507585887
0507585887


www.mr-php.com.sa
www.mr-php.com
المهمة9 غير متواجد حالياً   قديم 18-11-2003, 04:52 AM
Banned
تاريخ التسجيل: May 2000-
#4 (permalink)  

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

حقيقة فئة مثل العسل .. لا ينقصها إلا شيء واحد وهو عدم إمكانية إخفاء أرقام الصفحات الكثيرة وعرض "..." وكل ما تقدم المستخدم تعرض له × صفحة من اليمين واليسار كما في فئة الأخ رفيع .. وليس كل الصفحات في آنٍ واحد .. أعتقد فهمت قصدي .. وجزاكم الله خيراً.






فاعل خير غير متواجد حالياً   قديم 21-11-2003, 07:07 PM
عضو سوبر نشيط
تاريخ التسجيل: Dec 2000-
#5 (permalink)  

شكرًا لكم


الأخ فاعل خير :


لم يغب عني هذا الأمر، ولو تأملت في الكائن لعلمت أني قد وضعت لك خيار عدد الصفحات المعروضة :

في المميزات :

5) تحديد عدد الصفحات المعروضة

وهو في المتغير :


كود PHP:

$printnextprev
$NP->SHOW ("S1-F1-P1-R1-

4-T1"
,$page,$totalRecords,$C_limit,$action); 

حيث إن 4 يعني عرض أربع صفحات، وتستيطع بهذا إخفاء الصفحات الكثيرة


عموما

هناك تعديل في الكائن :

في السطر 278


كود PHP:

if ($isfirst && !empty($page)) { 

يعدل إلى


كود PHP:

if ($isfirst $NumberOfPagesToShow && !empty($page)) { 

وفي السطر 376

كود PHP:

if ($islast ) { 
يعدل إلى

كود PHP:

if ($islast $NumberOfPagesToShow ) { 

وهنا الملف المرافق بعد التعديل






الملفات المرفقة
نوع الملف: zip nextprevpages.zip‏ (5.5 كيلوبايت, المشاهدات 67)
__________________
لا تعاند من إذا قال فعل
الشنكبوتية
اللغة العربية سياج هويتنا
عبد الرحمن غير متواجد حالياً   قديم 21-11-2003, 08:09 PM
Banned
تاريخ التسجيل: May 2000-
#6 (permalink)  

لله درك يا شيخ .. الله يحفظك ويبارك فيك ويطول عمرك في طاعته ..






فاعل خير غير متواجد حالياً   قديم 21-11-2003, 08:23 PM
Banned
تاريخ التسجيل: May 2000-
#7 (permalink)  

ركبته بنجاح والحمد لله .. ولو ان الأخطاء المذكورة لم تصحح في الملف المرفق في المرة الثانية

وهناك بعض الأخطاء الطفيفة .. منها كلمة: limte .. يجب أن تغير إلى كلمة limit لتعمل الفئة بشكل سليم بكل الخيارات.

وجزاكم الله خيراً.






فاعل خير غير متواجد حالياً   قديم 23-11-2003, 11:05 PM
عضو سوبر نشيط
تاريخ التسجيل: Dec 2000-
#8 (permalink)  

كلامك صحيح،

أنا صححت ملف التطبيق ونسيت ملف الكائن


شكرا لك على التنبيه






__________________
لا تعاند من إذا قال فعل
الشنكبوتية
اللغة العربية سياج هويتنا
عبد الرحمن غير متواجد حالياً   قديم 24-11-2003, 07:17 AM
عضو سوبر نشيط
تاريخ التسجيل: Mar 2003-
#9 (permalink)  

اقتباس:
رد مقتبس من فاعل خير
لله درك يا شيخ .. الله يحفظك ويبارك فيك ويطول عمرك في طاعته ..

شيء جميل جداً
بارك الله فيك أخي عبد الرحمن






__________________
دكتور لا
Dr.no غير متواجد حالياً   قديم 24-11-2003, 08:46 AM
موضوع مغلق


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

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

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



الساعة الآن: 01:41 AM بتوقيت المملكة العربية السعودية