php / ניווט באתר בעזרת PHP / על מה אני מסתכל?

על מה אני מסתכל?


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

# section nav
if (!$storyid)
{
print "<table border=0 cellpadding=10 cellspacing=10>\n;
}
else
{
print "<table border=0 cellpadding=10 cellspacing=0 align=right bgcolor=lightgreen width=100>\n;
}
print "<tr><td><<r><b>"
.strtoupper("$section stories")
."</b><hr></td></tr>\n";


כמובן שעכשיו אנחנו חייבים להמציא את רשימת הסיפורים באגף. המידע הזה נמצא בקובץ בשם stories.lst שנמצא בספריית כל אגף. הקובץ מכיל מספרי זיהוי לכל הסיפורים שאמורים להופיע באותו אגף.

אנחנו משתמשים במספרי הזיהוי על מנת לפתוח את הספור המתאים

stories/story-number/meta_1st .


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

title=This Is a Pretty Poor Example
author=Louis d'Amore
subtitle=We can accept that it's not reasonable to write a whole story to demonstrate a technique in PHP, but this is ridiculous


אנחנו שומרים את המידע שנתקבל במערך בשם stories$. המערך הזה קצת שונה משאר המערכים בהם השתמשנו עד לרגע זה. השוני הוא שמפתח התאים במערך מורכב ממחרוזות ולא ממספרים $stories["fred"] ,ולא $stories[0] אם נרצה לסבך עוד קצת את העניינים, שזה תמיד כיף, זהו מערך דו-ממדי.
הכוונה היא שנוכל להתייחס לשני אלמנטים בכל פעם, אורכי ורחבי, לדוגמא,
$stories["002"]["title"]. זה נשמע הגיוני אם תתבונן בזה, יש הגיון במה שאני עושה.

שם הסיפור אותו אנחנו קוראים יופיע בכתב מודגש. שאר הסיפורים יקבלו קישור מכתובת השורה המכיל את שם האגף ושם הסיפור.

הקוד לכל הבלגן הזה יראה ככה:


$stories = array();

$fp = fopen("$docroot/$section/stories.lst","r");

while ($fline = fgets($fp, 256))
{
$story = trim($fline);
print "<tr><td>";
If ($story == "$storyid")
{
print "<b>";
}
else
{
print "<a href=\"$root/netsloth/$section/$story\">";
}
$sfp = fopen("$docroot/stories/$story/meta.lst","r");
while ($sfline = fgets($sfp, 256))
{
$sfline = trim($sfline);
$key = substr($sfline, 0, strpos($sfline,"="));
$value = substr($sfline, strpos($sfline,"=")+1);

$stories[$story][$key] = $value;
}
fclose($sfp);
if (!isset($stories[$story]["title"]))
{
$stories[$story]["title"] = "(no title for [$story])\n";
}
print $stories[$story]["title"];
if ($story == "$storyid")
{
print "</b>";
}
else
{
print "</a>";
}
print "<br><br></td></tr>\n";
}
print "</table>\n";
fclose($fp);


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



עמוד הבא: קח הכל הביתה >>




הקדמה
האלטרנטיבה
דרך ה -PHP
כולם ביחד
עוד דוגמא
הכנות
סודות נחשפים
על מה אני
מסתכל? >
קח הכל הביתה