- לינווייט - תשתיות תוכן וקהילה
- אמנון לבב - לבבי
מי שניסה, יודע שזה מאוד מעצבן לעבוד עם המודול של דרופל - profile. מודול זה מאפשר להחזיק מידע משלים על המשתמשים (שם פרטי, שם משפחה, מספר ילדים, תחביבים, תאריך לידה....), עפ"י שדות מסוגים שונים שאנחנו מגדירים.
בעת עריכת פרטי משתמש מוצגים לנו שדות אלו בטאב משני בעמוד. כלומר - בכניסה לעריכת פרטי משתמש, מוצגים לנו קודם כל פרטי המשתמש ה"דרופליים": שם משתמש, אימייל, עיצוב נבחר, שפת ממשק וכד'. בכדי לערוך את שדות הפרופיל, עלינו ללחוץ על קישור שמעביר אותנו למסך נוסף, ובו רק שדות הפרופיל.
פעמים רבות עולה הבקשה להציג דוקא את פרטי הפרופיל, ובנוסף אליהם, באותו מסך, לאפשר למשתמשים לשנות פרטים "דרופליים" כמו שם המשתמש והסיסמה.
ושוב - מי שניסה לעשות את זה - יודע שזה מעצבן. במקרים רבים הפתרון הוא פשוט להשתמש במודול אחר - nodeprofile, שמייצר node עבור כל משתמש, ומאפשר לנו להגדיר שדות בפשטות, דרך CCK, עם כל המשתמע מכך.
מי שבכל זאת משתמש ב-profile הישן (והטוב?), בד"כ משום שאין לו דרישות גבוהות מפרטי המשתמש, יוכל להשתמש בטריק הבא על מנת לאחד את שני הטפסים:
<?php
function mymodule_form_alter($form_id,&$form) {
switch ($form_id) {
case "user_edit":
// 1
if ($form['_category']['#value'] == 'Personal information') {
// 2
$account_form = user_edit('account');
// 3
$form['account'] = $account_form['account'];
}
break;
}
}
?>הסברים:
1. ראשית עלינו לוודא שאנחנו בטופס העריכה של הקטגוריה המתאימה. קטגוריה זו נקבעת בעת יצירת השדות בפרופיל
2. זהו ליבו של הטריק - אנחנו יוצרים משתנה חדש, $account_form, שמחזיק העתק של טופס עריכת פרטי המשתמש, ה"דרופלי".
3. אנחנו מוסיפים לטופס הנוכחי את השדות הרצויים מתוך הטופס המועתק.
שימו לב שהכל מתבצע בתוך hook_form_alter של מודול שכתבנו במיוחד לשם כך.
זהו :-)
זהר סטולר, לינווייט
לינווייט תשתיות תוכן קהילתיות
| סוג | נושא | מאת | תגובות | התעדכן |
|---|---|---|---|---|
| שאלה | אני מחפש לקבל ייעוץ בנוגע לשימוש בדרופל (תמורת תשלום) | yorame | 1 | לפני 48 דקות 47 שניות |
| שאלה | טרנזילה | yanivnizry | 13 | לפני שעה אחת 25 דקות |
| אתר | לאן היום - לוח אירועים המתעדכן על ידי הגולשים | avior | 0 | לפני שעה אחת 46 דקות |
| שאלה | מספר שאלות | ido10 | 0 | לפני 4 שעות 38 דקות |
| שאלה | האם יש מודול שמציג את כמות התכנים באתר? | yorame | 2 | לפני 7 שעות 17 דקות |
| שאלה | איך משנים את התוכן של הדף הראשי? | wualla | 8 | לפני 8 שעות 43 דקות |
| שאלה | הצגת שדה CCK בתוך התוכן של הNODE | Tomim | 2 | לפני 10 שעות 41 דקות |
| שאלה | דרוש מפתח דרופל להקמת אתר חדש | agiveon | 0 | לפני 22 שעות 24 דקות |
| שאלה | שיפור במהירות של דרופל ישראל ודרופל העולמית | kobitriki | 8 | לפני 22 שעות 47 דקות |
| הודעה | משלוח SMS כאינדיקציה למילוי טופס | yhager | 10 | לפני יום אחד 3 שעות |