المصدر: شرح طريقة تصميم قوالب ووردبريس -الجزء السادس- - مدونة blog المبرمج


فى الدرس مفصل السابق، تعرفنا على كيفية برمجة أنواع للتدوينات، أما فى هذا الدرس مفصل -بإذن الله- سنتعرف على كيفية برمجة القائمة الجانبية SideBar، سنتعرف على كيفية تسجيلها فى لوحة تحكم الووردبريس، ومن ثم كيفية عرضها وعرض بعض القوائم الإفتراضية إن لم يكن تم إضافة آية قوائم فى هذا السايدبار من المستخدم.
أولاً: لتسجيل السايدبار فى لوحة تحكم الووردبريس؛ كي يستطيع المستخدم بإضافة بعض القوائم Widgets بها، يجب أن تقوم بتسجيل هذا السايدبار حتى يتسنى للمستخدم أن يضيف إليها بعض القوائم.
ثانيًا: قبل تسجيل السايدبار، يجب أن نقوم بخطوة أخرى، نحن نعلم أننا قد قمنا بإستخدام دالة get_sidebar فى ملف index.php من قبل لكي يتم إضافة السايدبار، وتلك الدالة تلقائيًا تقوم بتحميل ملف sidebar.php، لذلك سنقوم بعمل ملف جديد يدعى sidebar.php بجوار ملف index.php.
فى ملف sidebar.php سأقوم بإضافة كود code الـHTML الخاص بعرض السايدبار، وهو كالكود code التالي: رمز PHP:
<code style="white-space:nowrap"> <code> <div id="sidebar" class="sidebar">
<
div class="block-post">
<
h2>Title</h2>
Content
</div>
</
div>
</code> </code>

لاحظ أن: كل قائمة جديدة فى السايدبار تبدأ بالديف الذي يحتوى على الكلاس block-post (وهو الكود code الذي سيتم تكراره مع كل قائمة جديدة يتم إضافتها فى السايدبار).
ثالثًا: لتسجيل السايدبار، يجب أن نقوم بفتح ملف functions.php، ثم نبدأ بالعمل !
سنقوم أولاً بعمل جملة joomla شرطية للتحقق من إذا كانت توجد دالة فى نسخة الووردبريس التي نعمل عليها تدعى register_sidebar، فقط يستخدم أى مستخدم القالب template على إصدار قديم لووردبريس ، ولذلك سنقوم بهذا التحقق، وإن كانت تلك الجملة joomla الشرطية ترجع TRUE، فسيتم تسجيل السايدبار، الآن جملة joomla التحقق ستكون هكذا: رمز PHP:
<code style="white-space:nowrap"> <code> // Register Sidebar
if(function_exists('register_sidebar')){

}
</code> </code>

لتسجيل السايدبار الواحد سنحتاج إلى تسجيل 7 معلومات، كل معلومة منهم لها اسم محدد، وتلك هي قائمة تلك الاسماء وشرح طريقةها:
1- ID، وهو الاسم الكود codeي للسايدبار الذي سوف نستخدمه لاحقًا فى أماكن أخرى من الكود code.
2- NAME، وهو اسم السايدبار الذي سيتم عرضه للمستخدم فى لوحة تحكم الووردبريس.
3- DESCRIPTION، وهو وصف السايدبار الذي سيتم عرضه للمستخدم فى لوحة تحكم الووردبريس.
4- Before-widget، وهو الكود code المُراد وضعه قبل بداية أى قائمة Widget جديدة يتم إضافتها إلى السايدبار.
5- After-widget، وهو الكود code المُراد وضعه بعد نهاية أى قائمة جديدة يتم إضافتها إلى السايدبار.
6- Before-title، وهو الكود code المُراد وضعه قبل عنوان أى قائمة جديدة.
7- After-title، وهو الكود code المُراد وضعه بعد نهاية عنوان أى قائمة جديدة.
جميع تلك البيانات السابقة تخزن على شكل بارامتر (عبارة عن مصفوفة) لدالة register_sidebar، حيث أن كل اسم من الأسماء السابقة يكون عبارة عن Key فى المصفوفة ويتم إضافة القيمة التي نريدها لها.
نلاخظ أننا فى كود code الـHTML الذي تم وضعه فى بداية الدرس مفصل أننا قبل أى قائمة جديدة نقوم بكتابة السطر التالي:
رمز PHP:
<code style="white-space:nowrap"> <code> <div class="block-post">
</code> </code>

وبعد نهاية كل قائمة جديدة نقوم بإضافة السطر التالي:
رمز PHP:
<code style="white-space:nowrap"> <code> </div>
</code> </code>

وأيضًا قبل أى عنوان قائمة نقوم بإضافة السطر التالي:
رمز PHP:
<code style="white-space:nowrap"> <code> <h2>
</code> </code>

وبعد كل أى عنوان نقوم بإضافة السطر التالي:
رمز PHP:
<code style="white-space:nowrap"> <code> </h2>
</code> </code>

وتلك هي النقاط الأربع الأخيرة فى المعلومات التي نريد تخزينها فى المصفوفة، ولذلك سيصبح كود code تسجيل السايدبار كالتالي: رمز PHP:
<code style="white-space:nowrap"> <code> if(function_exists('register_sidebar')){
register_sidebar(array(
"id"=> "main-sidebar",
"name"=> "Main Sidebar",
"description"=> "The Main Sidebar in the right",
"before-widget" => "<div class='block-post'>",
"after-widget" => "</div>".
"before-title" => "<h2>",
"after-title" => "</h2>"
));
}
</code> </code>

والآن قمنا بتسجيل السايدبار بنجاح !
رابعًا: سنقوم بالدخول إلى ملف sidebar.php، وحذف الكود code الذي سيتم تكراره مع كل قائمة جديدة، ليصبح الملف يحتوى على هذا الكود code فقط: رمز PHP:
<code style="white-space:nowrap"> <code> <div id="sidebar" class="sidebar">

</
div>
</code> </code>

والآن سنقوم بعمل جملة joomla شرطية، للتحقق من إن لا يوجد دالة dynamic_sidebar، وهي الدالة المسئولة عن عرض القوائم فى السايدبار أو ألا يكون بإستطاعة دالة dynamic_sidebar عرض السايدبار المسمي بـmain-sidebar (لاحظ أننا استخدمنا الاسم الكود codeي للسايدبار)، ففى تلك الحالة لن تكون هنالك آية قوائم فى السايدبار ولذلك سيتم عرض رسالة تقول بأنه لا يوجد آية قوائم حتى الآن تم إضافتها من المدير، كما بالكود code التالي: رمز PHP:
<code style="white-space:nowrap"> <code> if(!function_exists('dynamic_sidebar') || !dynamic_sidebar('main-sidebar')){
?>
There is no Widgets Yet !
<?php
}
</code> </code>

أو ببساطة يمكنك بدلاً من عرض تلك الرسالة وضع كود code HTML يكون بمثابة قوائم إفتراضية يتم وضعها حتى يقوم المستخدم بإضافة قوائمه الخاصة من لوحة تحكم الووردبريس.
أما فى حالة أنك تريد وجود سايدبار فى اى مكان آخر، فى الفوتر مثلاً، فما عليك سوى أن تقوم بتسجيله مثلما قمنا بتسجيل السايدبار السابق فى ملف functions.php، ومن ثم الذهاب إلى مكانه فى ملف footer.php، ومن ثم حذف الكود code الذي سيتم تكراره مع كل قائمة جديدة، ومن ثم إستخدام دالة get_sidebar، وتلك الدالة ستقوم بتمرير بارامتر واحد فقط لها، وهذا البارامتر هو الاسم الكود codeي للسايدبار الذي تريد عرضه فى مكان تلك الدالة.
أما إذا أردت أن تقوم بإضافة رسالة تفيد أنه لا توجد قوائم فى تلك السايدبار التى بالفوتر مثلاً، فستقوم بإنشاء ملف يدعى sidebar-ID، حيث ستقوم بإستبدال كلمة ID بالإسم الكود codeي لهذا السايدبار، ثم تقوم بوضع نفس الكود code الذي قمت بوضعه فى ملف sidebar.php، ولكن مع تغيير الاسم الكود codeي.

المصدر: شرح طريقة تصميم قوالب ووردبريس -الجزء السادس- - مدونة blog المبرمج







©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى©