הצגת שדות בעמוד עצמו באמצעות היבט תוך שימוש בארגומנט
אני מחפש דרך להציג שדות של תוכן מסוים בעמוד עצמו באמצעות היבט.
אני מכיר ויודע ליישם את האפשרות של שימוש בארגומנט המשתמש ב- nid של המוצג ב- url של אותו עמוד. במקרה הזה זה היבט מאד פשוט.
אלא שהבעיה שלי היא שאני לא יכול מסיבה אחרת להשתמש ב- nid שיוצג ב- url של העמוד.
אני מניח שמדובר בסינטקס php פשוט שאני יכול לשים בארגומנט של ההיבט אלא שאני לא מצליח לעלות עליו.
[דרופל 7]

אם תפרט מה ניסית לעשות, זה
אם תפרט מה ניסית לעשות, זה יעזור לנו לעזור לך.
את הNID אפשר להשיג דרך הפונקציה arg(), א דרך הקלאס node.
אנסה שוב. יש לי עמוד מסוג
אנסה שוב.
יש לי עמוד מסוג "אתר".
בעמוד הזה מספר שדות ביניהם "תמונה" להוספת מספר תמונות ליצירת גלרית תמונות שמופיעה בעמוד עצמו.
אני עושה שימוש בהיבט על מנת להציג את הגלרייה בעמוד עצמו (בגלל שימוש ב- views slidshow).
בדר"כ על מנת לעשות זאת אעשה בהיבט שימוש בארגומנט שמתייחס ל-url של העמוד בו יש את ה-nid שלו.
במקרה הזה, אני לא יכול מסיבה מסוימת להשתמש ב- nid של העמוד ב-url שלו.
לכן אני מנסה למצוא דרך אחרת להשתמש בארגומנט. נראה לי php.
,
תודה!
אמיר תייר | TIKKE בונים אתר דרכך
עדיין לא הבנתי. אתה משתמש
עדיין לא הבנתי.
אתה משתמש בVIEWS EMBED VIEW עם ארגומנט מהדף?
כלומר, מאיפה אתה רוצה להשיג את הNID? מהממשק של VIEW, או מהקובץ טמפלייט?
אני מייצר היבט רגיל ומשתמש ב-
אני מייצר היבט רגיל ומשתמש ב- contextual filters שבהיבט.
אבל זה לא באמת משנה תכלס, העיקר שההיבט שאני יותר יציג את התמונות של אותו העמוד ולא של עמודים אחרים מאותו סוג תוכן.
ז"א הגלרייה שתוצג היא של העמוד המתאים.
אמיר תייר | TIKKE בונים אתר דרכך
אני לא יודע לגבי מתוך הממשק
אני לא יודע לגבי מתוך הממשק של VIEWS
אתה תמיד יכול לעשות בcontextual filters את הNID, ואז לשים בקובץ TPL מקום שתרצה
<?phpecho views_embed_view(my_view_name, my_display_name, arg(1))
?>
כאשר משתמשים בהיבט בארגומנט
כאשר משתמשים בהיבט בארגומנט שעושה שימוש ב- nid חייבים להגדיר איזשהו משהו אחרת הוא ידפיס את כל הערכים, מכל העמודים, בכל העמודים.
לכן יש אפשרות להזין פקודת php בהיבט עצמו, ב- contextual filter. פקודה שתאמר להיבט להציג רק את השדות של אותו העמוד ולא עמודים אחרים מאותו הסוג.
אמיר תייר | TIKKE בונים אתר דרכך
כל השרשור הזה נשמע לי כמו דו
כל השרשור הזה נשמע לי כמו דו שיח חרשים אחד גדול.
יודע מה? אני אפרט פתרון תיאורטי, מההתחלה, ואתה תסביר איזו נקודה בו לא נכונה.
אתה פותח היבט חדש של node. מגדיר אותו כשדות ,מוסיף לשדות את השדה של התמונות הנ"ל.
עכשיו, אתה הולך ל contextual filter, מגדיר filter של nid.
במצב כזה, נניח שיצרת דף של ההיבט עם הנתיב beee/%, אז beee/13 יציג לך את כל התמונות של node שמספרו 13. beee/156, יציג לך את התמונות של 156 וכו', נכון?
אתה מגדיר בלוק, לא דף, עם אותו קונפיגורציה.
עכשיו אתה הולך לNODE.TPL.PHP.
שם את השורה הבאה
<?phpecho views_embed_view(my_view_name, my_display_name, arg(1))
?>
כאשר המשתנה הראשון הוא שם ההיבט, המשתנה השני הוא שם הדיספליי (בדרך כלל block, או block_1) .
עכשיו, המשתנה השלישי בעצם אמור להיות הNID. איך משיגים אותו בדף NODE.tpl.php?
דרך אחת היא לכתוב arg(1). הפונקצייה הזו , arg, מחזירה תמיד, למיטב ידיעתי, מהנתיב המקורי, לא משנה כמה אליאסים עשית לו. לכן arg(1) , בדף נוד, תמיד יחזיר את הNID. (כאשר, arg(0) יחזיר "Node").
אם בגלל איזה משהו מופרע שעשית, arg לא יחזיר לך את הNID, ישנה עוד דרך להשיג את הNID בדף NODE.TPL, והיא דרך האובייקט NODE, אז במקרה הזה, במשתנה האחרון כתוב $node->nid, ואז הקוד ייראה כך:
<?phpecho views_embed_view(my_view_name, my_display_name, $node->nid)
?>
במחשבה שניה, אין בעצם סיבה להעדיף את arg. תשתמש מראש בNODE->nid
אם פתרון זה לא עובד, אשמח שתסביר גם למה, טוב?
תודה ובהצלחה
הנקודה הלא נכונה היא כבר
הנקודה הלא נכונה היא כבר בהתחלה.
אני לא רוצה לשים את ה-nid בנתיב.
הנתיב שלי הוא משהו כזה:website/gold/title שלמעשה gold הוא הסיווג ו-title הוא הכותר של העמוד.
אמיר תייר | TIKKE בונים אתר דרכך
נכתב על ידי אמיר תייר: הנתיב
הנתיב שלי הוא משהו כזה:website/gold/title שלמעשה gold הוא הסיווג ו-title הוא הכותר של העמוד.
אז למה אתה לא אומר כבר מההתחלה שזה הנתיב שאתה מדבר עליו , כל הזמן הזה אנשים נאלצו לנחש למה אתה מתכוון .
אבל אני עדיין לא מבין איך אתה עושה הנתיב הזה ? ב views אפשר רק להכניס % בתוך מרכיבי הנתיב
yakoub abaya
סתם כי בא לכתוב חידת חמיצר
סתם כי בא לכתוב חידת חמיצר דרופלית...
נו באמת, חשבתי שאנשים יבינו, ראה ציטוט מהמקור:
"אלא שהבעיה שלי היא שאני לא יכול מסיבה אחרת להשתמש ב- nid שיוצג ב- url של העמוד."
אני מייצר views שמציג תיבה. התיבה מוצגת בעמוד לו יש נתיב המוגדר אוטומטי באמצעות pathauto.
אמיר תייר | TIKKE בונים אתר דרכך
אני חושב שהפתרון נמצא באפשרות
אני חושב שהפתרון נמצא באפשרות השנייה אותה הצעת אלא שזה לא מסתדר לי.
נראה לי נכון לשתול את פיסת הקוד ב-view עצמו, בחלק של הארגומט. אלא שזה לא הקוד המתאים אבל זה הכיוון.
אמיר תייר | TIKKE בונים אתר דרכך
אמיר, בדקתי: arg() מחזיר את
אמיר, בדקתי: arg() מחזיר את הנתיב המקורי גם כשהדף הוא אליאס. תבדוק האם הכנסת
<?php
return arg(1)
?>
לא מניבה את התוצאה המבוקשת.
אתה מתכוון
אתה מתכוון לviews_get_views
שגם אני עכשיו שובר את הראש איך משתמשים בו?
ישראל דהן
עיצוב אתרים ותבנות בדרופל, ליצירת קשר
לא. זו לא אותה פונקציה:
לא.
זו לא אותה פונקציה: views_embed_view מחזיר את הVIEW מרונדרת (html) ולא את האובייקט VIEW, שזה למיטב זכרוני מה שעושה views_get_views.
מה הסיבה ש בגללה אתה לא יכול
מה הסיבה ש בגללה אתה לא יכול להשתמש ב nid?
זהר סטולר, לינווייט
לינווייט תשתיות תוכן קהילתיות
יש לי הרגשה שאמיר תייר חושב
יש לי הרגשה שאמיר תייר חושב שהוא חייב שהנתיב הנרדף - alias - יכיל את nid ולכן הוא נתקל בבעיה שלדעתו קיימת.
אמירוש, הנתיב של דרופל ידוע בכל עמוד, אם יש לנתיב נתיב נרדף, אם לאו. לכן, אתה יכול להשתמש בארגומנט nid גם אם בנתיב שלך אתה לא עושה בו שימוש.
זה העניין? או שהלכתי לכיוון שגוי?...
אמירוש2
| פרקטיקול - בונים לך אתר דרופל | עזרה מידית בקבוצה שלנו בפייסבוק! | שיעורי דרופל דרך האינטרנט
זה ברור לי, וזו בדיוק הבקשה
זה ברור לי, וזו בדיוק הבקשה שלי.
ברור לי שלעמוד nid בין אם הוא מוצג בשורת הכתובת או לא.
אני פשוט רוצה לדעת כיצד אני משתמש בו כאשר הוא לא מוצג בשורת כתובת.
אמיר תייר | TIKKE בונים אתר דרכך
אז אני לא מבין אותך בכלל. מה
אז אני לא מבין אותך בכלל. מה הבעיה להשתמש בו? אם זה הנתיב, אז הוא קיים.
| פרקטיקול - בונים לך אתר דרופל | עזרה מידית בקבוצה שלנו בפייסבוק! | שיעורי דרופל דרך האינטרנט
אין nid בנתיב אמיר. מה? אני
אין nid בנתיב אמיר.
מה? אני עד כדי כך לא ברור? זו תקופה כזו בשנה...
אמיר תייר | TIKKE בונים אתר דרכך
אוקיי, נניח שזה נכון, אז מה
אוקיי, נניח שזה נכון, אז מה הנתיב הדרופלי שאתה מקבל? אם אין שם nid אז זה פשוט לא דף של פריט תוכן, זה הכול.
| פרקטיקול - בונים לך אתר דרופל | עזרה מידית בקבוצה שלנו בפייסבוק! | שיעורי דרופל דרך האינטרנט
כל דבר אחר למעט ה- nid. במקרה
כל דבר אחר למעט ה- nid.
במקרה שלי הסיווג של העמוד.
מה זאת אומרת "אם אין שם nid אז זה פשוט לא דף של פריט תוכן, זה הכול."??? ממתי חייב nid בנתיב? זה ממש לא הכרחי.
אמיר תייר | TIKKE בונים אתר דרכך
אני לא עובד עם views אבל יש
אני לא עובד עם views אבל יש הקטע הזה שאתה מגדיר נתיב ל תצוגת דף ואז שם צריך להגדיר wildcard בשביל ה nid בלומר התו %
yakoub abaya
או ווה, סיפור ארוך..
או ווה, סיפור ארוך..
אמיר תייר | TIKKE בונים אתר דרכך
הוא כנראה סיפור חשוב. אם יש
הוא כנראה סיפור חשוב. אם יש לדף nid והוא פשוט לא מוצג בכתובת (אם יש alias לצורך העניין), למיטב ידיעתי views עדיין יידע לחלץ אותו מתוך המיקום הנוכחי.
בכל מקרה, אם אתה משתמש ב-php כנראה ש-menu_get_object או משהו בסגנון יעזרו לך.
זהר סטולר, לינווייט
לינווייט תשתיות תוכן קהילתיות
אין ספק שזו אפשרות קיימת
אין ספק שזו אפשרות קיימת ב-views.
בדיוק לשם זה אפשר לבחור את האופציה :
Provide default value
ואז לבחור את האופציה:
php code.
פה צריך להזין את הקוד שיתייחס ל-nid של העמוד.
אמיר תייר | TIKKE בונים אתר דרכך
לא יודע אם זה עדיין רלוונטי
לא יודע אם זה עדיין רלוונטי אבל, בשימוש בארגוומנט, אתה אומר לו nid ואז provide default argument ואז nid from url (משהו כזה - זה נמצא שם).
זה יביא לך את הנוד שאתה נמצא בו בלי קשר לאם הנוד id מופיע בurl או לא.
בהצלחה.
ברור שזה משנה. אם nid לא
ברור שזה משנה.
אם nid לא מופיע ב-url אז הארגומנט לא מקבל אותו ולכן יציג ערכים מכל התכנים ללא קשר לעמוד בו אתה נמצא.
לכן זה נקרא nid from url.
אמיר תייר | TIKKE בונים אתר דרכך
ניסית את מה שאדם רשם?
ניסית את מה שאדם רשם?
זהר סטולר, לינווייט
לינווייט תשתיות תוכן קהילתיות
אמירוש - מקדיש לך את זה.
אמירוש - מקדיש לך את זה.
| פרקטיקול - בונים לך אתר דרופל | עזרה מידית בקבוצה שלנו בפייסבוק! | שיעורי דרופל דרך האינטרנט
הבנתי מה הייתה הבעיה. ראשית
הבנתי מה הייתה הבעיה.
ראשית תודה לכל מי שעזר ומצטער על האי בהירות סביב העניין.
לאחר שיחה עם אמיר סימן טוב ונסיון נוסף זה עבד לפתע.
כמו תמיד יצרתי היבט עם ארגומנט ל- nid from url ואז הוא התייחס לנתיב הנרדף ולא לנתיב שהוגדר על ידי דרך pathauto.
אז למה זה לא קרה עד כה?
השדות שרציתי להציג היו בטאב נפרד עם url משלו וההיבט יצר עמוד. ממש לא שמתי לב ומרגע שכן שמתי לב, יצרתי טאב בשיטה אחרת (fields_group) שלא משפיע על הנתיב והכל עובד יופי.
אמיר תייר | TIKKE בונים אתר דרכך
אבל לא אמרתי כלום על הוורד...
אבל לא אמרתי כלום על הוורד...
| פרקטיקול - בונים לך אתר דרופל | עזרה מידית בקבוצה שלנו בפייסבוק! | שיעורי דרופל דרך האינטרנט