אינטרנט ישראל
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
ראשי » פיתוח אינטרנט » פתרונות ומאמרים על פיתוח אינטרנט » להכניס view לתוך דפים בדרופל

להכניס view לתוך דפים בדרופל

רן בר-זיק אוגוסט 5, 2012 8:20 am אין תגובות

הסבר על איך עושים embed ל-view מסוים בתוך כל עמוד שהוא באמצעות template.php ופונקציה אחת שעושה את כל העבודה.

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.

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

אחד הפיצ'רים הגאוניים שיש בדרופל וכרגע אין לו מקבילה שוות ערך לא בג'ומלה ולא בוורדפרס היא מערכת ה-views של דרופל. למי שלא מתמצא, מדובר פשוט במערכת ממש פשוטה לבניית שאילתות למסד הנתונים בלי צורך לבנות אותן ממש ב-MySQL ובנוסף זה מגיע עם אפשרויות רבות לשינוי ועיצוב ה-Output ועובר דרך מערכת ה-Themes של דרופל ומערכת ההרשאות שלו.

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

יצירת view
יצירת view

ה-view הזה יכול להיות מורכב או מסובך, זה לא משנה. אפשר לראות לפי הדוגמה שלא מדובר ב-view פשוט מאד.

לאחר יצירת ה-view, נזכור את השם שלו ואת הארגומנטים (אם יש לנו כאלו). כאן למשל, יש לי ארגומנט של ה-user id שאותו אני צריך להכניס ל-URL על מנת שה-view ידע את ההודעות של מי להציג.

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

ב-template אני צריך לבחור את ה-preprocess הנכון. במקרה שלי, כיוון שאני רוצה להכניס את ה-view הזה לפרופיל של המשתמש, אני אבחר ב-TEMPLATE_preprocess_user_profile. כמובן שיש להחליף את ה-TEMPLATE בשם של התמה שלנו. בתוך ה-preprocess, אני אצור משתנה ואכניס את ה-view לתוכו. איך? בדיוק ככה:


function TEMPLATE_preprocess_user_profile(&$vars) {
  $vars['user_messages'] = views_embed_view('users_messages', 'page', arg(1));
}

במה השתמשתי? השתמשתי בפונקצית views_embed_view (והנה קישור לדוקומנטציה שמספרת עליה). הפונקציה הזו כשמה כן היא, פשוט לוקחת view ודואגת שהוא יכנס לתוך התמה שלנו. מה הפונקציה הזו צריכה? באופן עקרוני שני דברים:
1. שם ה-view (כאילו דההה)
2. ה-display (אם יש לכם view פשוט, אז זה page)

אם יש ארגומנטים שצריך להכניס, צריך להכניס אותם לפי הסדר, במקרה שלי הייתי צריך את שם המשתמש שמופיע ב-URL (ואם לא, אגב, קל להשיג אותו ב-preprocess של user_profile) – השתמשתי ב-(arg(1 על מנת להשיג אותו ולהציב אותו ב-views_embed_view.

כל מה שנותר לי לעשות, זה להדפיס את המשתנה שהכנסתי אליו את התוצאות של views_embed_view ב: user-profile.tpl.php וזהו! פיניטו לה קומדיה!

הקוד הזה, אגב, עובד גם בדרופל 6 וגם בדרופל 7.

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.
דרופל

השארת תגובה

ביטול

ללמוד ג'אווהסקריפט בעברית

ללמוד לתכנת ג'אווהסקריפט בעברית שגייס יותר משלוש מאות אלף שקל ולמעלה מ-2000 תומכים - בואו ללמוד עכשיו איך לתכנת.

רשימת הנושאים
  • מדריכים
    • ריאקט
    • טייפסקריפט
    • ECMAScript 6
    • ES20XX
    • Node.js
    • Express
    • רספברי פיי
    • Babel
    • docker
    • MongoDB
    • Git
    • לימוד MySQL
    • SASS
    • jQuery
    • CSS3
    • HTML 5
    • SVN
    • LESS
  • פיתוח אינטרנט
    • פתרונות ומאמרים על פיתוח אינטרנט
    • jQuery Scripts
    • jQuery למתקדמים
    • יסודות בתכנות
    • נגישות אינטרנט
  • חדשות אינטרנט
  • מידע כללי על אינטרנט
    • רשת האינטרנט
    • בניית אתרי אינטרנט
  • rss logo

    לכל המאמרים

    לכל המאמרים שפורסמו באינטרנט ישראל משנת 2008 ועד עכשיו.
  • rss logo

    RSS Feed

    משתמשים בקורא RSS? אם כן, עקבו אחרי אינטרנט ישראל באמצעות פיד ה-RSS!
    מה זה RSS?
  • Twitter logo

    עקבו אחרי בטוויטר

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

    ערוץ הטלגרם של אינטרנט ישראל

    בערוץ הטלגרם של אינטרנט ישראל אני מפרסם את הפוסטים של באתר וכן עדכונים טכנולוגיים נוספים.
    מה זה טלגרם?
  • github logo

    הפרויקטים שלי בגיטהאב

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

כל הזכויות שמורות לרן בר-זיק ולאינטרנט ישראל | מדיניות הפרטיות של אתר אינטרנט ישראל | אתר אינטרנט ישראל נגיש לפי תקן WCAG 2.0 AA | הצהרת הנגישות של האתר | אבטחת מידע ודיווח על בעיית אבטחת מידע

גלילה לראש העמוד