הדפסת שדה CCK אל תוך הבלוק של Author pane
טוב, אני מקווה שזו לא שאלה יותר מידי ספציפית אבל אני מחפש לזה תשובה כבר הרבה זמן ולא נראה לי שזה צריך להיות כל כך מסובך.
מה שאני מנסה לעשות הולך ככה :
אני משתמש במודול Author Paneשמייצר לי בלוק עם כל מיני נתונים שנוגעים לכותב התוכן ובעיקר שואב נתונים ממודולים אחרים.
אני משתמש גם במודול Content Profile שמייצר Node לכל משתמש שלתוכו הכנסתי שדות CCK נוספים שבהם המשתמש יכול להוסיף נתונים על עצמו.
מה שאני מנסה זה להכניס שדה CCK מתוך ה Node הזה שיודפס בתוך הבלוק של Author Pane.
הצלחתי להדפיס את ה Title של ה Node אבל לא את השדה שרציתי, כל השלבים שניסיתי מפורטים בדיון המלא שפתחתי http://drupal.org/node/386756#comment-1304690 (שבינתיים לא היה מועיל במיוחד) יש שם גם קטע שצרפתי מתוך ה README שחשבתי שיכול לעזור, למרות שניסיתי אותו בכל צורה אפשרית ללא הועיל )-:
בתגובה לזה, מפתח המודול אמר שהוא לא מבין גם איך עבד הראשון (ההדפסה של הTitle ) ושלח אותי להסתכל כאן http://api.audean.com/api/function/content_view_field , לצערי אני לא ממש יודע מה לעשות עם האינפורמציה הזאת.
האמת שבכלל לא חשבתי שזו תהיה בעיה.
תודה מראש,

הממ.. נתחיל בזה שאני מכיר את
הממ.. נתחיל בזה שאני מכיר את Author Pane אבל בקושי השתמשתי בו.
עניתי לך בדיון שם על איך להדפיס CCK בבלוקים. אני לא יודע איזה Variables יש לך בשביל לעבוד איתם, אבל אם יש לך את המשתמש בתוך user$, אז משהו כזה אמור לעבוד:
<?php$node = content_profile_load('uprofile', $user->uid);
?>
<?phpprint $node->field_state[0]['value'];
?>
עוזר?
-אסף
CPO - פתרונות דרופל.
www.cpo.co.il
תודה תודה תודה תודה תודה תודה
תודה תודה תודה תודה תודה תודה תודה תודה תודה תודה
האפשרות הזו כל כך שימושית לי שאתה לא מאמין.
חוץ מזה שאני שובר על זה את הראש כבר כמה ימים...
(צעדים ראשונים ב PHP )
עדכון : לגבי הUID (של מחבר התוכן) ב Author pane אפשר לקחת אותו באמצעות $account_id ככה שהקוד המלא שעובד בשבילי נראה ככה (עשיתי קצת שיפוצים קוסמטיים) :
<?php $node = content_profile_load('uprofile', $account_id); ?><?php if (!empty($node->field_state)): ?>
<span class="author-pane-label"><?php print t('Location'); ?>:</span> <?php print $node->field_state[0]['value']; ?>
<?php endif; ?>
סימנתי את זה כפתרון, בכל מקרה תודה רבה, כל הקרדיט אליך.
צחי שלידור, לינוויט
תשתיות תוכן קהילתיות
Sasson - Smart Drupal Theming
ובכל זאת עוד שאלה : פקודת ה
ובכל זאת עוד שאלה :
פקודת ה if לא עובדת כרצוי, משתמש שיצר לעצמו את ה Node אבל לא הכניס שום ערך לשדה המדובר מקבל את הכותרת (מיקום) אבל בלי שום ערך אחריה, מה עשיתי לא נכון ?
אני פשוט מעדיף להמנע מלחייב את המשתמשים להכניס מיקום רק מתוך שיקולים קוסמטיים.
צחי שלידור, לינוויט
תשתיות תוכן קהילתיות
Sasson - Smart Drupal Theming
לא בטוח ולא ניסיתי - אבל אני
לא בטוח ולא ניסיתי - אבל אני חושב שאתה צריך להשתמש בזה ככה:
<?phpif (!empty($node->field_state[0]['value'])):
?>
כמו שאתה משתמש כשאתה רוצה להדפיס את התוכן (כי שם התוכן...)
-אסף
CPO - פתרונות דרופל.
www.cpo.co.il
תודה, זה הדבר הראשון שניסיתי,
תודה,
זה הדבר הראשון שניסיתי, לא עבד.
בינתיים זה לא נורא כי החלטתי להשתמש בזה בלי ה Lable ככה שאם זה ריק, פשוט לא רואים כלום, לא מושלם אבל בהחלט מספיק טוב.
תודה רבה בכל מקרה.
צחי שלידור, לינוויט
תשתיות תוכן קהילתיות
Sasson - Smart Drupal Theming
לעולם אל תדפיס את ה value של
לעולם אל תדפיס את ה value של משתנה - זו פרצת אבטחה.
נכון בהחלט. אולי אתה יודע למה
נכון בהחלט.
אולי אתה יודע למה בחלק מהמקרים ה View לא מדפיס כלום? ממה שאני מבין זה בגלל שבחלק מהמקומות (למשל מיילים דרך Mimemail) אין למשתנה הגדרה ל View במקרה כזה - ולכן הוא ריק.
בכל מקרה, check_plain מסדר את זה לא?
CPO - פתרונות דרופל.
www.cpo.co.il
לא, אני לא יודע זה תלוי
לא, אני לא יודע זה תלוי בהגדרות התצוגה של כל שדה.
כן, check_plain() יסדר את זה, אבל רק במקרה בו אתה רוצה להציג תוכן "פשוט". בהרבה מקרים זה לא מה שאתה רוצה.
האמת שקצת איבדתם אותי... אז
האמת שקצת איבדתם אותי...
אז איך אני יכול ליישם את זה על הקוד המדובר ?
אם בא לך גם להרחיב קצת על נושא פרצת האבטחה, זה יהיה נחמד, כי לא ממש הבנתי את הקשר.
צחי שלידור, לינוויט
תשתיות תוכן קהילתיות
Sasson - Smart Drupal Theming
אם בא לך גם להרחיב קצת על
אתה לא יכול לדעת מה המשתמש כתב באתר. יכולים להיות שם כל מיני דברים. אם למשל, הוא כותב JS שמשנה את הסיסמה שלך באתר, ואתה נכנס בתור admin ומסתכל על העמוד הזה, הוא ישנה לך את הסיסמא שלך!
הנה תמצית השימוש:
http://drupal.org/node/227763#comment-750570
תודה, למדתי משהו חדש, אבל אני
תודה, למדתי משהו חדש,
אבל אני לא מבין איך ליישם את זה על הקוד המדובר.
צחי שלידור, לינוויט
תשתיות תוכן קהילתיות
Sasson - Smart Drupal Theming
תדפיס את האלמנט 'view' במקום
תדפיס את האלמנט 'view' במקום את 'value'.
אתה יכול לבדוק את value בקוד, אין עם זה בעיה, רק אל תדפיס אותו - אם כי במקרה זה, נראה לי נכון גם לבדוק את view לפני התצוגה.
אם הכוונה היא פשוט להחליף את
אם הכוונה היא פשוט להחליף את המילה 'value' ב 'view', זה לא עובד,
אני מפספס משהו שאולי נראה לכם ברור מאליו ?
צחי שלידור, לינוויט
תשתיות תוכן קהילתיות
Sasson - Smart Drupal Theming
כי קראת ל load ולא ל view.
כי קראת ל load ולא ל view. נסה את זה:
<?php $node = node_build_content(content_profile_load('uprofile', $account_id)); ?><?php if (!empty($node->field_state[0]['view'])): ?>
<span class="author-pane-label"><?php print t('Location'); ?>:</span> <?php print $node->field_state[0]['view']; ?>
<?php endif; ?>
למרות שזה קצת מוזר לעשות את כל זה בעיצוב. צריכה להיות דרך יותר פשוטה, אבל אני לא מכיר את המודולים המדוברים, אז אני עונה בצורה כללית.
לצערי זה לא עובד בצורה
לצערי זה לא עובד בצורה הנוכחית...
הצעות ?
צחי שלידור, לינוויט
תשתיות תוכן קהילתיות
Sasson - Smart Drupal Theming
אני הסתבכתי עם זה המון בכל
אני הסתבכתי עם זה המון בכל מיני מצבים... מצאתי שבהרבה מקרים View לא נותן לי את המידע המבוקש, והפתרון היחיד (וכמו שראינו לא אידיאלי) הוא בכל זאת להשתמש ב Value, אבל עם check_plain, ככה:
<?phpprint check_plain($node->field_state[0]['value']);
?>
נכון שבהרבה מקרים זה לא יספיק - אבל בהרבה מקרים זה כן :)
CPO - פתרונות דרופל.
www.cpo.co.il
טוב, זה עובד. זה משפר את המצב
טוב, זה עובד.
זה משפר את המצב ? או שבעיית האבטחה עדיין קיימת ?
צחי שלידור, לינוויט
תשתיות תוכן קהילתיות
Sasson - Smart Drupal Theming
ממה שאני יודע - זה בסדר גמור.
ממה שאני יודע - זה בסדר גמור. כמו שנאמר - תזכור אתה מוגבל כך לטקסט פשוט. כמוך, אשמח אם עוד מישהו יוכל לאשר את העניין.
משום מה drupal.org לא עולה כרגע וכבר מאוחר... אבל בבוקר אני אמצע דיון שאני זוכר בנושא.
CPO - פתרונות דרופל.
www.cpo.co.il
לצערי זה לא עובד בצורה
הצעות למה? שאני אנחש מה לא עובד ומה הפתרון?