
30-08-2009, 11:42
|
|
|
|
חבר מתאריך: 01.02.09
הודעות: 120
|
|
מחלקה ליצירת תפריט עמודים - לשימושכם החופשי
היי חבר'ה. יצירתי לי מחלקה קטנה שתנהל לי בקלות את יצירת תפריט העמודים. יצא לי מספר פעמים לעשות את זה וכל פעם שברתי את הראש מחדש כי זה דיי מבלבל.
תוצאה:
אופן שימוש:
קוד PHP:
echo MenuCreator::select($galleryPageUrl, $pagesCount, $thisPage, 1); echo "<br />"; echo MenuCreator::pages($galleryPageUrl, $pagesCount,$thisPage,5,1,"לדף הבא->>", "<--לדף הקודם");
select:
- פרמטר ראשון: כתובת אליה יפנה הקישור. למשל: http://site.co.il/page=
*בסוף הקישור יתווסף מספר העמוד. - פרמטר שני: מספר העמודים הכולל
- פרמטר שלישי: מספר העמוד הנוכחי (ברירת מחדל 0)
- פרמטר רביעי: התחלת הספירה (ברירת מחדל 0, בדרך כלל מתחילים לספור מ1)
- פרמטר חמישי: האם התפריט מסוג MULTIPLE - ברירת מחדל FALSE.
pages:
- פרמטר ראשון: כתובת. בדומה לפעולה select
- פרמטר שני: מספר דפים. בדומה לפעולה select.
- פרמטר שלישי: מספר דף נוכחי. בדומה לפעולה select.
- פרמטר רביעי: מספר דפים להציג בכל צד. אם אני בעמוד 4 והכנסתי את הערך 2 יוצג לי: 23456. שני מספרים מכל צד. אם אכניס 3 יוצג לי: 1234567. כמובן רק אם העמודים הללו קימים.
- פרמטר חמישי: מספר להתחלת הספירה. בדומה לפעולה select.
- פרמטר שישי: טקסט לקישור ללחצן הבא. אם לא מוכנס לא יופיע הלחצן. (ברירת מחדל - לא מופיע)
- פרמטר שביעי: טקסט לקישור ללחצן הקודם. אם לא מוכנס לא יופיע הלחצן. (ברירת מחדל - לא מופיע)
המחלקה:
קוד PHP:
class MenuCreator { public static function select($url, $pagesCount, $selectItem=0, $start=0, $isMULTIPLE=false){ if ($isMULTIPLE) $isMULTIPLE = "MULTIPLE"; else $isMULTIPLE = ""; $content .= <<<CONTENT <select $isMULTIPLE onchange="javascript:document.location='$url' + this.value"> CONTENT; for($i=$start; $i<=$pagesCount; $i++){ if ($i == $selectItem){ $content .= <<<CONTENT <option SELECTED value="{$i}">{$i}</option> CONTENT; } else{ $content .= <<<CONTENT <option value="{$i}">{$i}</option> CONTENT; } } $content .= "</select>"; return $content; } public static function pages($url, $pagesNum, $currentPage=0, $pagesEachSide, $start=0, $nextText="", $previousText=""){
if ($previousText){ $priv = ($currentPage - 1); if ($priv >= $start){ $content .= <<<CONTENT <span><a href="{$url}{$priv}">{$previousText}</a></span> CONTENT; } } for($i=($currentPage-$pagesEachSide); $i<=($currentPage+$pagesEachSide); $i++){ if ($i >= $start && $i <= $pagesNum){ if ($i == $currentPage){ $content .= <<<CONTENT <span>{$currentPage}</span> CONTENT; } else { $content .= <<<CONTENT <span><a href="{$url}{$i}">{$i}</a></span> CONTENT; } } } if ($nextText){ $next = ($currentPage + 1); if ($next <= $pagesNum){ $content .= <<<CONTENT <span><a href="{$url}{$next}">{$nextText}</a></span> CONTENT; } } return $content ; } }
תהנו ואשמח להצעות לשיפור !
_____________________________________
איתי סלע,
פיתוח מערכות תוכנה ואינטרנט.
|