منتدى دعم PBBoard الرسمي
(نسخة قابلة للطباعة من الموضوع)
https://pbboard.info/forums/t7512
أنقر هنا لمشاهدة الموضوع بهيئته الأصلية

تعلم برمجة PBBoard البسيطة
PhpMax 15-09-2011 12:11 صباحاً
بسم الله الرحمن الرحيم

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

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

مكان تطبيق الدروس: في أي قالب تريده مثلا في قالب header.tpl في آخر القالب.

لوحة التحكم القوالب » الافتراضي » تحرير : header.tpl

الدرس 1: عرض قيمة حقل من جدول info

ادخل ل phpmyadmin ثم توجه لقاعدة بيانات منتداك ثم ادخل لجدول info كما في الصورة.

index


فلنفرض أنك نريد عرض عنوان منتداك على الصفحة. نضع في القالب هذا الكود:

CODE
{$_CONF['info_row']['title']}


لاحظت title هو اسم الحقل الذي فيه عنوان المنتدى, وبنفس الطريقة نستطيع أن نعرض أي حقل من جدول info وهذا مثال فيه عدة حقول:
CODE


أهلاً وسهلا بك في منتدى:
{$_CONF['info_row']['title']}
، في منتدانا
{$_CONF['info_row']['member_number']}
عضو،
نرحب بآخر عضو سجل لدينا
{$_CONF['info_row']['last_member']}
، أعضاء منتدانا قدموا
{$_CONF['info_row']['subject_number']}
موضوع، و
{$_CONF['info_row']['reply_number']}
رد




ضع الكود في القالب وقم بزيارة المنتدى سيظهر لك يشبه:

أهلاً وسهلا بك في منتدى:الشعر ، في منتدانا 77عضو، نرحب بآخر عضو سجل لدينا أحمد، أعضاء منتدانا قدموا521 موضوع، و6541 رد


تم بحمده





درس رقم 2 : عرض للعضو معلوماته في المنتدى.

من خلال phpmyadmin ندخل لجدول member ثم نتعرف على الحقول التي نعرض منها المعلومات.

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

index

كود عرض أي حقل من جدول العضو

CODE

{$_CONF['rows']['member_row']['إسم الحقل']}



وهذه معظم الحقول التي يمكنك استعمالها:


id
username
password
email
user_sig
user_country
user_gender
user_website
lastvisit
user_time
register_date
posts
user_title
visitor
user_info
avater_path
away
away_msg
hide_online
send_allow
unread_pm
lastpost_time
keepmeon
logged
autoreply
autoreply_title
autoreply_msg
pm_senders
pm_senders_msg
member_ip
username_style_cache
review_subject
inviter
invite_num
warnings
lang
review_reply
reputation
award
lastsearch_time
pm_emailed
pm_window
visitormessage
bday_day
bday_month
bday_year
-------------
extrafield_1
extrafield_2
....
-------------
user_mood
user_css
...

الحقول قبل الأخيرة extrafield_1 ... إذا وجدت : تعني الحقول الإضافية التي يضيفها المدير في لوحة الإدارة.

الحقول الأخيرة مثلا user_mood هي حقول تم اضافتها بواسطة إضافات برمجية.




وهذا مثال للتطبيق

CODE

مرحبا بك
{$_CONF['rows']['member_row']['username']}

أعرف بعض الأشياء عنك
أنت العضو رقم
{$_CONF['rows']['member_row']['id']}
بريدك الإلكتروني هو
{$_CONF['rows']['member_row']['email']}
أنت تنتمي للمجوعة رقم
{$_CONF['rows']['member_row']['usergroup']}
اسم المجموعة التي تنتمي اليها
{$_CONF['rows']['group_info']['title']}
مسمى العضو ولقبة حسب المجموعة التي ينتمي اليها
{$_CONF['rows']['group_info']['user_title']}
الجنس الذي اخترته هو
{$_CONF['rows']['member_row']['user_gender']}

آخر زيارة لك كانت في
{$_CONF['rows']['member_row']['lastvisit']}

سمعتك في المنتدى تساوي
{$_CONF['rows']['member_row']['reputation']}

انت مولود في تاريخ
{$_CONF['rows']['member_row']['bday_day']}
-
{$_CONF['rows']['member_row']['bday_month']}
-
{$_CONF['rows']['member_row']['bday_year']}
دولتك هي
( {$_CONF['rows']['member_row']['user_country']} )

عدد مشاركاتك في المنتدى
{$_CONF['rows']['member_row']['posts']}





سينتج عن إضافة النص السابق لملف القالب وزيارة المنتدى ظهور رسالة

مرحبا بك admin أعرف بعض الأشياء عنك أنت العضو رقم 1 بريدك الإلكتروني هوadmin@localhost.com أنت تنتمي للمجوعة رقم 1 الجنس الذي اخترته هو m آخر زيارة لك كانت في 1316087976 سمعتك في المنتدى تساوي 70 انت مولود في تاريخ 15- 9- 1990 دولتك هي ( ) عدد مشاركاتك في المنتدى 3


ملاحظتك على النص صحيحة
السؤال الأول: ما هذا الرقم بدل التاريخ؟
السؤال الثاني: لماذا يظهر m بدل ذكر ولماذا يظهر دولتك هي ( ) ما دام يوجد دولة. ؟

السؤال الثالث: لماذا عند الخروج من المنتدى لا تظهر قيم ويظهر النص كالتالي:

مرحبا بك أعرف بعض الأشياء عنك أنت العضو رقم بريدك الإلكتروني هو أنت تنتمي للمجوعة رقم الجنس الذي اخترته هو آخر زيارة لك كانت في سمعتك في المنتدى تساوي انت مولود في تاريخ - - دولتك هي ( ) عدد مشاركاتك في المنتدى




جواب السؤال الأول : هذا الرقم نحوله لصيغة التاريخ الذي نريد بواسطة دالة php بسيطة , سنتعلم كيف في المراحل المتقدمة.

نتابع ...






جواب السؤال الثاني والثالث:
كل هذا سيتم التعامل معه بأشهر أمر في البرمجة وهو if وتعني إذا. وتكتب في القالب على هذا الشكل:

CODE

{if {الشرط} }

{/if}



وبالتالي حتى لا يتم عرض دولتك هي ( ) في حال لا يوجد دولة

CODE

{if {$_CONF['rows']['member_row']['user_country']} }

دولتك هي
( {$_CONF['rows']['member_row']['user_country']} )

{/if}



تم حل مشكلة الدولة كيف نعرض كلمة ذكر أو انثى بدل m f
بسيطة نضيف لأمر الشرط
else وتعني عدا ذلك

وشكل الكود كالتالي:

CODE

{if {الشرط} }

{else}

{/if}




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


CODE

الجنس الذي اخترته هو
{if {$_CONF['rows']['member_row']['user_gender']}=='m' }
ذكر
{else}
أنثى
{/if}



لاحظ أضفنا == وتعني تساوي


أها إذن جواب السؤال الثالث سهل كيف لا أعرض النص للزائر

CODE

{if {$_CONF['rows']['member_row']['username']} }

نضع كامل الأسطر هنا

{/if}



معنى الكود إذا كان مستخدم المنتدى عضو أي له اسم مسجل اعرض النص.

وبدل الكود السابق من الأفضل استعمال كود جاهز يستعمل في البرنامج وهو:

CODE

{if {$_CONF['member_permission']}}

نضع كامل الأسطر هنا

{/if}



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


وبالتالي يكون الكود كاملاً
CODE

{if {$_CONF['member_permission']}}

مرحبا بك
{$_CONF['rows']['member_row']['username']}

أعرف بعض الأشياء عنك
أنت العضو رقم
{$_CONF['rows']['member_row']['id']}
بريدك الإلكتروني هو
{$_CONF['rows']['member_row']['email']}
أنت تنتمي للمجوعة رقم
{$_CONF['rows']['member_row']['usergroup']}

الجنس الذي اخترته هو
{if {$_CONF['rows']['member_row']['user_gender']}=='m' }
ذكر
{else}
أنثى
{/if}

آخر زيارة لك كانت في
{$_CONF['rows']['member_row']['lastvisit']}

سمعتك في المنتدى تساوي
{$_CONF['rows']['member_row']['reputation']}

انت مولود في تاريخ
{$_CONF['rows']['member_row']['bday_day']}
-
{$_CONF['rows']['member_row']['bday_month']}
-
{$_CONF['rows']['member_row']['bday_year']}


{if {$_CONF['rows']['member_row']['user_country']} }
دولتك هي
( {$_CONF['rows']['member_row']['user_country']} )
{/if}

عدد مشاركاتك في المنتدى
{$_CONF['rows']['member_row']['posts']}

{/if}



نتابع ..

الآن وقت الدخول ل PHP

ضع في القالب الذي تعمل عليه وفرضا انه header.tpl الكود التالي:

CODE
تاريخ عمل المنتدى هو:
{$_CONF['info_row']['create_date']}


احفظ القالب وقم بزيارة منتداك. سيظهر لك نص يشبه:

تاريخ عمل المنتدى هو: :1315950509

ثم من خلال ال ftp ادخل لمجلد compiler وحمل الملف header-compiler.php

ستجد الكود الذي كتبته قد تغير إلى:

CODE
تاريخ عمل المنتدى هو:
<?php echo $PowerBB->_CONF['template']['_CONF']['info_row']['create_date']; ?>


الان ستسأل لو وضعت هذا الكود في ملف header.tpl هل سيعمل؟
الجواب: بالطبع سيعمل ولكن الأفضل أن يبقى ملف القالب مرتب وبدون اكواد php قدر الإمكان.

الان سنعدل على الكود لعرض التاريخ بصيغة صحيحة وكما نريد.

CODE
تاريخ عمل المنتدى هو:
<?php echo date("j.n.Y",$PowerBB->_CONF['template']['_CONF']['info_row']['create_date']); ?>


الان قم بزيارة المنتدى سيظهر لك:

تاريخ عمل المنتدى هو:14.9.2011

لمزيد من المعلومات عن صيغة التاريخ يمكنك زيارة صفحة المرجع لدالة التاريخ date

http://www.php.net/manual/en/function.date.php


تم بحمده


منتدى دعم PBBoard الرسمي

Copyright © 2009-2024 PBBoard® Solutions. All Rights Reserved