[מדריך] חלק 2 במדריך ליוצר המודים - הגדרות מערכת - משתמש

מדריכים שונים ומגוונים לגרסה phpBB2. שימו לב - פורום זה הינו פורום ארכיון. התמיכה במערכת phpBB2 הופסקה.
BBman
חבר צוות phpBB ישראל לשעבר
חבר צוות phpBB ישראל לשעבר
הודעות: 1595
הצטרף: 13/02/2005 ב-13:50:52

[מדריך] חלק 2 במדריך ליוצר המודים - הגדרות מערכת - משתמש

הודעה שלא נקראהעל ידי BBman » 08/04/2007 ב-15:44:55

שלום!

יוזמה חדשה שלי היא כתיבת סדרה של מספר קטן של מדריכים קצרים המסבירים כל אחד על תכונה במערכת שניתנת לשימוש, על מנת ללמד כיצד ניתן לבנות מודים.

זהו הפרק השני בסדרה, רעה ערך "יצירת דפים חדשים", הפרק הראשון בסדרה.

המדריך הזה מלמד כיצד ניתן להשתמש בפרטי משתמש על מנת לבצע משימות שונות שהמוד שלנו דורש.

לדוגמא, במדריך זה נעבוד על "מוד" (מוד כל כך פשוט שפשוט נכנס למרכאות :) ) אשר מציג הודעת המלצה למשתמשים שאינם מחוברים להרשם, כלומר נצא מנקודת הנחה שזוהי כניסתם הראשונה לפורום.

המלצה שלי, נסו ללמוד את הצעדים הבאים ולתכנת את המוד בעצמכם, אם לא תצליחו המשיכו גם לאחר הצעדים הבאים.

פרטי משתמש

ל-phpBB תכונה מאוד נוחה והיא נגישות לפרטי המשתמש המחובר בכל זמן נתון ובכל מקום על ידי הזנת מילת מפתח פשוטה.
תכונה זו עוזרת לנו להשתמש בתכונות המשתמש לשם שימושים שונים, אך התכונות משתנות בהתאם לכל משתמש כמובן.

כיצד ניגשים לפרטי משתמש?

על ידי שימוש במערך userdata אשר מוגדר במערכת :

קוד: בחר הכל

$userdata['a_field'];


a_field כמובן לא קיים, זוהי רק המחשה.
לדוגמא, ארצה לגשת לרמת המשתמש, לכן אכתוב :

קוד: בחר הכל

$userdata['user_level'];


*כל מה שבא בין הגרשיים בסוגריים המרובעים זהו שם של שדה שנמצא בטבלא phpbb_users במסד הנתונים, בעצם הפקודה הזו קוראת את רמת המשתמש.

כנ"ל גם עם שם המשתמש :

קוד: בחר הכל

$userdata['username'];


*** עד כאן המדריך המקוצר, מכאן ואלאה מתוארת בניית המוד ***

עצור!האם למדת php אי פעם? אם ענית לעצמך "לא" סביר להניח שהשורות הבאות אינן תהיינה מובנות לך, מדריך זה לא מלמד php אלא רק איך ניתן להשתמש בו ב-phpBB.

עד כה, בעזרת המדריך הנ"ל והקודם, למדנו כיצד להגדיר משתנים וכיצד לגשת לנתונים של משתמש.
כעת נייסם את הידע על מנת לבנות את המוד שמתואר בתחילת המדריך.

כלים דרושים :

*משתנה שיכיל את ההודעה
*קוד שיבדוק את ה-id של המשתמש

קבצים שצריך :

includes/page_header.php
tempaltes/xxx/overall_header.tpl

נפתח את page_header.php ונחפש :

קוד: בחר הכל

//
// The following assigns all _common_ variables that may be used at any point
// in a template.
//


זהו מיקום כל שהוא שבחרתי, כאשר אתם בוחרים מיקומים בדקו האם הם תקינים.

עצור! הקוד הבא הינו הדגמה, ישנה דרך יעילה יותר לעשות זאת אך אני מעדיף להציג את הדרך שקלה יותר ומתאימה יותר לנלמד.

הוסיפו לאחר מכן:

קוד: בחר הכל

//הבדיקה

if($userdata['user_id'] == -1)
   $msg = " שלום אורח! כדאי לך <a href=\"".append_sid('profile.'.$phpEx.'?mode=register')."\">להרשם</a> לפורום שלנו";
else
   $msg="";


//סוף הבדיקה


זהו בעצם תנאי, הבודק בעזררת שימוש במילת המפתח userdata האם רמת המשתמש user_id שווה -1, כלומר הוא אורח או במילה התקינה Annonymus, במידה והוא אכן, היא מגדירה משתמש המכיל את ההודעה שאנו רוצים, במידה ולא היא מגדירה את אותו המשתמש רק ללא שום ערך, במידה והמשתמש בעל רמה כל שהיא (משתמש, מנהל או מנהל-על).

סיימנו את הבדיקה, עכשיו נגדיר את המשתנה שאיתו נשתמש בדף.

עצור! האם למדת להגדיר משתנים? במידה ולא, קרא את המדריך "[מדריך] יצירת דפים חדשים והגדרת משתנים".

נלך לתבנית משתנים מוכנה, אנו לא צריכים אחת מוגדרת.
בחרתי בתבנית שאחראית גם שיראו את המילים "פרופיל", "רשימת משתמשים" וכל הקישורים שלמעלה.

עצור!את הקוד הבא לא נהוג לכתוב, אלא נהוג להגדיר הודעות בתוך קבצי שפה, היות ומדריך זה לא עוסק בקבצי שפה, אין כאן ציות משמעות לנוהג.

חפשו:

קוד: בחר הכל

   'L_WHOSONLINE_MOD' => sprintf($lang['Mod_online_color'], '<span style="color:#' . $theme['fontcolor2'] . '">', '</span>'),


שזהו בעצם השורה האחרונה בהגדרות המשתנים של תבנית זו.
הוסיפו :

קוד: בחר הכל

   'MOD_MSG'=>$msg,


כאן בעצם הגדרנו את המשתנה MOD_MSG אשר יכיל את ערך המשתנה $msg אותו הגדרנו בבדיקה, במידה והמשתמש בעל רמה המשתנה הנ"ל אינו יכיל כלום, ובמידה והוא חסר רמה, כלומר אינו מחובר, משתנה זה יכיל את ההודעה שרצינו.

סיימנו עם page_header.php

כעת צריך בסך הכל לקבוע מקום להופעת ההודעה, אני בחרתי בראש הפורום.
פתחו את overall_header.tpl וחפשו:

קוד: בחר הכל

                  <td height="25" align="center" valign="top" nowrap="nowrap"><span class="mainmenu">&nbsp;<a href="{U_PROFILE}" class="mainmenu"><img src="templates/subSilver/images/{LANG}/icon_mini_profile.gif" width="12" height="13" border="0" alt="{L_PROFILE}" hspace="3" />{L_PROFILE}</a>&nbsp; &nbsp;<a href="{U_PRIVATEMSGS}" class="mainmenu"><img src="templates/subSilver/images/{LANG}/icon_mini_message.gif" width="12" height="13" border="0" alt="{PRIVATE_MESSAGE_INFO}" hspace="3" />{PRIVATE_MESSAGE_INFO}</a>&nbsp; &nbsp;<a href="{U_LOGIN_LOGOUT}" class="mainmenu"><img src="templates/subSilver/images/{LANG}/icon_mini_login.gif" width="12" height="13" border="0" alt="{L_LOGIN_LOGOUT}" hspace="3" />{L_LOGIN_LOGOUT}</a>&nbsp;</span></td>
               </tr>
               
            </table></td>
         </tr>
      </table>


ופשוט הוסיפו את שם המשתנה שהגדרנו (אני גם הוספתי ירידת שורה כפולה ויישור למרכז):

קוד: בחר הכל

<p><center>{MOD_MSG}</center>


והנה התוצאה -

כאשר המשתמש אינו מחובר :

תמונה

וכאשר הוא מחובר:

תמונה

בדיוק כמו שנתבקשנו.

בהצלחה וחג שמח!

*** חסר משהו? טעיתי במשהו? יש טענות, מענות תגובות? לא להסס. ***
מור.
"Give a man a fish, and you feed him for a day. Teach a man to fish, and you feed him for a lifetime"

ozsason
משתמש מתקדם
משתמש מתקדם
הודעות: 1232
הצטרף: 02/10/2005 ב-14:05:36
מיקום: הרצליה
יצירת קשר:

הודעה שלא נקראהעל ידי ozsason » 08/04/2007 ב-16:48:54

פפפששששש... מור שיחקת אותה!
יפה אני נורא אוהב לקרוא מדריכים שלך הם מוסברים באופן מושלם!
תודה רבה אני בטוח שזה יעזור למלא אנשים!


חזור אל “מדריכים - ארכיון”

מי מחובר

משתמשים הגולשים בפורום זה: אין משתמשים רשומים ו־ 2 אורחים