Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. CodeIgniter
Code

ترقيم الصفحات في CodeIgniter: الدليل الكامل

by
Difficulty:BeginnerLength:LongLanguages:

Arabic (العربية/عربي) translation by Hamdan Veerlax (you can also view the original English article)

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

اليوم ، سنستكشف مكتبة مهمة في إطار CodeIgniter - مكتبة ترقيم الصفحات.

دعوني أسلط الضوء على الموضوعات التي سنغطيها في سياق هذه المقالة:

  • مظاهرة من الترحيل الأساسية
  • استكشاف خيارات التخصيص
  • تهيئة Pagination

مظاهرة من الترحيل الأساسية

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

في مثالنا ، سنقوم ببناء قائمة مستخدم بسيطة جدًا والتي سنقوم فيها بجلب سجلات من جدول MySQL للمستخدمين. لتشغيل هذا المثال بنجاح ، تأكد من وجود حقول uid و uname في جدول المستخدمين.

مع هذا الإعداد ، نحن على استعداد للفة.

المضي قدما وإنشاء ملف تحكم controllers/Paging.php مع المحتويات التالية.

بعد ذلك ، سنحتاج إلى ملف نموذج models/Users.php هذا يجلب السجلات من جدول المستخدمين.

أخيرًا ، لنقم بإنشاء ملف عرض على views/user_listing.php الذي يعرض قائمة المستخدم.

الآن ، يمكنك المتابعة والوصول إلى صفحتنا المخصصة على http://your-code-igniter-site/paging/index ويجب أن تشاهد قائمة المستخدمين جنبًا إلى جنب مع ترقيم الصفحات! لذلك ، هذا كل شيء ، لقد فعلنا ذلك! لا تقلق ، لن أتركك قريبًا ، إذ سنبدأ في تشريح كل جزء من الشفرة الآن.

سنبدأ مع نماذج الملفات النموذجية/Users.php ، حيث سيتم استدعاء شيء ما من أساليب التحكم الخاصة بنا. هناك طريقتان مهمتان ، هما get_current_page_records و get_total ، التي يطبقها نموذجنا من أجل إنشاء روابط الفواصل الزمنية.

دعونا نذهب من خلال أسلوب get_total. يتم استخدامه لحساب عدد السجلات في جدول المستخدمين.

بعد ذلك ، هناك طريقة get_current_page_records.

هناك وسيطان هامان يجب عليك ملاحظةهما في أسلوب get_current_page_records. يتم استخدام الوسيطة الأولى ، limit$ ، لتحديد عدد السجلات التي سيتم إرجاعها أثناء تشغيل الاستعلام. والحجة الثانية ، $start ، تعمل كمؤشر البدء للسجل.

لذلك ، وكما ترى ، في ضوء قيم $start و $limit ، يمكننا جلب السجلات حسب الصفحة. هذا هو جوهر الترقيم ، وفي الوقت نفسه قمنا بتنفيذ أهم طريقة من هذه المقالة!

إذن ، كان هذا نموذجنا - بسيط وأنيق!

المضي قدما ، دعونا نحول انتباهنا إلى ملف وحدة التحكم. المضي قدما والاستيلاء على رمز طريقة المنشئ.

لاستخدام الحدود الفاصلة للصفحات في CodeIgniter ، أول ما يجب عليك فعله هو تحميل مكتبة ترقيم الصفحات. ويمكننا فعل ذلك باستخدام $this->load->library('pagination')

لقد قمنا أيضًا بتحميل مساعد URL بحيث يمكننا استخدام وظائف المساعد العالمية التي يوفرها ذلك المساعد.

الآن ، نحن على استعداد للذهاب من خلال قلب وحدة التحكم لدينا - طريقة index.

للبدء ، نتأكد من تحميل قاعدة البيانات بشكل صحيح. بعد ذلك ، نقوم بتحميل نموذج users حتى نتمكن من استخدام أساليب النموذج.

بعد ذلك ، نقوم بتهيئة اثنين من المتغيرات الهامة.

يحدد المتغير limit_per_page$ الحد لكل صفحة. بالطبع ، يمكنك تعيينها كما يحلو لك. تم تعيينها على 1 في الوقت الحالي على سبيل المثال.

يحتوي متغير start_index$ على فهرس البدء لسجل MySQL. عندما ينشئ CodeIgniter ارتباطات ترقيم الصفحات ، فإنه يلحق فهرس البدء الخاص بالصفحة باعتباره الجزء الثالث في عنوان URL بشكل افتراضي. يمكنك تغيير هذا السلوك الافتراضي ، ولكن هذا شيء سنقوم بحجزه في القسم الأخير من هذه المقالة ، حيث سنناقش خيارات التخصيص.

أخيرًا ، نحن نطلق على طريقة get_total لنموذج المستخدمين للحصول على إجمالي سجلات جدول المستخدمين ، ويتم تعيينه للمتغير total_records$.

بعد ذلك ، نحضر سجلات الصفحة الحالية باستخدام طريقة get_current_page_records.

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

وهذه مجموعة من المعلمات الدنيا لإنشاء روابط الفواصل.

  • base_url: عنوان URL الذي سيتم استخدامه أثناء إنشاء روابط الفواصل الزمنية
  • total_rows: العدد الإجمالي للسجلات
  • per_page: عدد السجلات لكل صفحة

أخيرًا ، نستخدم طريقة create_links لإنشاء روابط ترقيم الصفحات.

الباقي هو مجرد شكلي للاتصال وجهة نظرنا user_listing وتقديم المخرجات! شغّل عنوان URL http://your-code-igniter-site/paging/index للاطلاع على قائمة المستخدمين إلى جانب روابط الفواصل الزمنية.

هذا مثال بسيط جدًا ومفيد لترقيم الصفحات في متناول يدك بحيث يمكنك تمديده ليلائم متطلباتك.

في القسم التالي ، سنستكشف كيف يمكنك تخصيص التقسيم الافتراضي للصفحات من حيث المظهر والوظيفة.

استكشاف خيارات التخصيص

في هذا القسم ، سنستكشف الخيارات المتاحة التي يمكنك استخدامها إذا كنت ترغب في تخصيص روابط الفواصل الافتراضية للصفحات.

قطاع URI

على الرغم من أن مكتبة الترحيل CodeIgniter تقوم تلقائيًا باكتشاف المعلمة المتعلقة بـ ترحيل الصفحات من عنوان URL ، يمكنك تحديد قيمة مخصصة إذا كان لديك نمط عنوان URL مختلف.

عدد من الارقام وصلات

يتيح لك خيار num_links تحديد عدد روابط الأرقام التي سيتم عرضها قبل وبعد رقم الصفحة النشط في روابط ترقيم الصفحات.

رقم الصفحة كجزء URI

عندما تقوم بالوصول إلى جزء ترحيل عنوان URL ، فإنه يعتبر مؤشر بدء بشكل افتراضي. على سبيل المثال ، إذا كان لديك عشرة سجلات لكل صفحة ، فإن الجزء الخاص بخاصية ترحيل الصفحات URI هو 20 للصفحة الثالثة. بدلاً من ذلك ، إذا كنت ترغب في عرض أرقام الصفحات الفعلية في ارتباطات الترحيل ، فيمكنك تعيين use_page_numbers على TRUE.

بالطبع ، تحتاج إلى التأكد من حساب مؤشر البدء الصحيح استنادًا إلى رقم الصفحة الذي قمت باسترداده من عنوان URL.

الحفاظ على سلسلة الاستعلام

في أكثر الأحيان ، ينتهي بك الأمر في الحالة التي تريد فيها المحافظة على معلمات سلسلة الاستعلام التي لا ترتبط الحدود الفاصلة بين الصفحات. يمكنك استخدام خيار reuse_query_string لتمكين هذا المرفق.

كانت هذه بعض الخيارات التي يمكنك استخدامها لتغيير وظيفة ترقيم الصفحات الافتراضية. بعد ذلك ، سننظر في بعض الخيارات الأخرى التي تسمح لك بتغيير طريقة عرض روابط الفواصل.

علامة التفاف

إذا كنت تريد التفاف شفرة ترقيم الصفحات بأي علامة HTML أخرى ، فيمكنك القيام بذلك باستخدام خيارات full_tag_open و full_tag_close.

قد يكون مفيدًا حقًا إذا كنت ترغب في تطبيق تصميم مخصص على روابط تقسيم الصفحات.

الأول ، الأخير ، التالي ، والسابق

إذا كنت تريد تغيير النص الذي سيتم عرضه للارتباطات الأولى والأخيرة والتالية والسابقة ، فيمكنك القيام بذلك أيضًا.

أيضا ، إذا كنت ترغب في لف هذه الروابط الفردية مع أي علامة HTML ، يمكنك القيام بذلك بنفس الطريقة التي قمنا بها لفك شفرة الاستدعاء بالكامل.

رابط نشط ورقم الارتباط

في بعض الأحيان ، تريد تصميم الرابط النشط بشكل مختلف. يمكنك القيام بذلك عن طريق تطبيق علامات المجمع كما هو موضح أدناه.

بالطريقة نفسها ، إذا كنت تريد التفاف روابط أرقام بشيء:

وينتهي قصة التخصيص. في الواقع ، يمكنك المضي قدمًا وإلقاء نظرة على مثال التخصيص في http://your-code-igniter-site/paging/custom الذي تم تضمينه بالفعل في ملف وحدة التحكم لدينا!

تكوين الترحيل

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

في الواقع ، هناك طريقة أفضل للتعامل مع هذا السيناريو. يمكنك إنشاء ملف تكوين ترحيل صفحات في application/config/pagination.php واستخدام متغير config$ لتحديد إعداداتك.

بناءً على ذلك ، يجب أن تبدو طريقة إجراء الفهرسة المعدلة بالشكل التالي:

وبالطبع ، يتغير المتغير total_rows و base_url من إجراء إلى آخر ، لذا يجب عليك إعدادها بشكل صريح في كل إجراء.

لتحقيق ذلك ، تحتاج إلى تحميل تهيئة الحدود الفاصلة للصفحات في المقام الأول.

بعد ذلك ، يمكنك تجاوز الإعدادات الخاصة بالإجراء.

وانتهيت بذلك!

كانت تلك هي قصة تكوين ترقيم الصفحات ، وتنتهي هذه المقالة أيضًا!

استنتاج

اليوم ، مررنا مكتبة ترقيم الصفحات في CodeIgniter.

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

بعد ذلك ، ناقشنا خيارات التخصيص المتاحة لك أثناء إعداد ترقيم الصفحات.

أخيرًا ، ناقشنا تكوين الحدود الفاصلة للصفحات في القسم الأخير.

CodeIgniter هو منصة PHP قوية. سواء كنت بدأت للتو أو تبدأ بالإصدار التالي ، لا تنسى أن تتحقق من ما يتوفر لدينا لك أيضًا.

أحب أن أعرف ملاحظاتك في شكل استفسارات وتعليقات باستخدام الخلاصة أدناه!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.