יצירת דף בדרופל המכיל מספר טפסים

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

אבל לפעמים אנו זקוקים לדף אחד שמכיל מספר טפסים. איך עושים את הפלא הזה? בקלות רבה! כל מה שצריך הוא ליצור מודול של דרופל ואז אנחנו יכולים להפעיל את ה-hooks שלנו.

ראשית עלינו ליצור את הדף. איך יוצרים דפים? באמצעות hook_menu!


function mymodule_menu() {
	$items['my_page'] = array(
		'title' => t('My Page'),
		'page callback' => 'my_page_view',
		'access arguments' => array('access content'),
    );
    return $items;
}

עכשיו עלינו לכתוב את פונקצית הקולבק שהיא בעצם זו שמחזירה את המידע לדף. בפונקציה הזו יהיה שימוש ב-drupal_get_form שמביא לנו את הטופס:


function my_page_view() {
	$page['p1'] = drupal_get_form('form_id_1');
	$page['p2'] = drupal_get_form('form_id2');
	return $page;
}

קל להבין מה קורה פה, אני מחזיר מערך של דפים. בכל איבר של המערך אני מכניס drupal_get_form עם ה-id של הטופס. כאשר הטופס יכול להיות טופס שאני יצרתי באמצעות המודול או טופס של מודול אחר או מערכת.

אם אני רוצה להכניס HTML בין הטפסים או בנוסף להם, גם זה פשוט מאד, פשוט משתמשים ב-markup! למשל:


function my_page_view() {
	$page['p1'] = drupal_get_form('form_id_1');
	$page['p2'] = drupal_get_form('form_id2');
	$page['3']['#markup'] = "<h2>This is some text...</h2>";
	return $page;
}

אני יכול לשחק עם המבנה כמובן כמה שיתחשק לי, כל עוד אני מחזיר מערך כמובן. את הדף הזה אפשר לתבנת (מלשון Theming) באופן הרגיל והוא בדיוק כמו כל דף שהוא. אם אני רוצה להוסיף js לדף, קל לי לעשות את זה באמצעות drupal_add_js:


function my_page_view() {

	drupal_add_js(drupal_get_path('module', 'mymodule').'/js/my_js.js', array('type' => 'file', 'scope' => 'footer'));

	$page['p1'] = drupal_get_form('form_id_1');
	$page['p2'] = drupal_get_form('form_id2');
	$page['3']['#markup'] = "<h2>This is some text...</h2>";
	return $page;
}

כך ניתן ליצור בדרופל 7 דף מרובה טפסים באופן פשוט ואלגנטי.

כדאי תמיד להשאר מעודכנים! הרשמו לעדכונים של האתר במייל! - המייל יישלח כל יום ראשון בעשר בבוקר ויכיל אך ורק את המאמרים שהתפרסמו באינטרנט ישראל. ללא ספאם, ללא הצפות, ללא בלגנים. 🙂

אהבתם? לא אהבתם? דרגו!

לא אהבתי בכלללא אהבתיבסדראהבתיאהבתי מאוד (אין הצבעות)


אל תשארו מאחור! יש עוד מה ללמוד!

הצטרפו לעדכונים!

העדכונים נשלחים אך ורק כאשר האתר מתעדכן.

רן בר-זיק

רן בר-זיק כותב כל המאמרים באינטרנט ישראל, מפתח אינטרנט מנוסה במגוון שפות ופלטפורמות.
ניתן ליצור איתי קשר באמצעות:
כתובת המייל שלי: info@internet-israel.com.
פרופיל הלינקדאין שלי
הטוויטר שלי
פרופיל הפייסבוק שלי
אני תמיד שמח לייעץ ולעזור, אך בשל עומס הפניות הרב, אני לא תמיד מצליח לענות במהירות.