אינטרנט ישראל
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
ראשי » פיתוח אינטרנט » פתרונות ומאמרים על פיתוח אינטרנט » יצירת קובץ התקנה למודול בדרופל 6/7

יצירת קובץ התקנה למודול בדרופל 6/7

רן בר-זיק מרץ 8, 2011 7:58 am אין תגובות

אם אתם יוצרים מודול בדרופל 6/7 שבו יש שימוש בטבלה במסד הנתונים, יצירת קובץ התקנה הוא בגדר חובה.

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

לא כל מודול בדרופל צריך קובץ התקנה, קובץ התקנה נדרש בדרך כלל כאשר המודול שלנו יותר מורכב ויש צורך בהוספה של טבלה אחת או יותר למסד הנתונים. כאשר אנו נדרשים לייצר טבלה במסד הנתונים, אנו צריכים לגרום לה להיווצר כאשר המודול מותקן בפעם הראשונה. אנו גם צריכים לגרום לה להמחק כאשר המודול מוסר ונעשה לו הליך uninstall.
בנוסף, אם אנו מעדכנים את המודול שלנו לגרסה חדשה ויש צורך להוסיף/להוריד מהטבלה שלנו – אפשר לעשות זאת עם קובץ ההתקנה. במאמר הזה אני אסביר איך לעשות כן – זה קל ופשוט!

יצירת קובץ install

קובץ ה-install הוא קובץ PHP פשוט שהסיומת שלו היא פשוט install. כך למשל קובץ ה-install של my_module יהיה my_module.install בתוכו אנו מרכזים את כל פונקציות ההתקנה שלנו.

יצירת schema

על מנת ליצור את מסד הנתונים, אנו צריכים להגדיר אותו באמצעות hook_schema ב-hook הזה אנו פשוט מחזירים את מבנה הטבלה שאנו רוצים להחזיר. כך למשל, אם אני רוצה ליצור טבלה ששמה הוא my_table ויש לה אך ורק טור אחד בשם 'name' שהוא varchar 32 וגם ה-primary key, אני עושה זאת כך:


function my_module_schema() {
  $schema['my_table'] = array(
    'description' => 'The base table for my_table.', 
    'fields' => array(
      'name' => array(
        'description' => 'my_table description.', 
        'type' => 'varchar', 
        'length' => 32, 
        'not null' => TRUE, 
        'default' => '',
      ), 
    ), 
    'primary key' => array('name'),
  );
  return $schema;
}

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

יצירת hook_install

ב-hook_install אנו מציינים את כל מה שאנו רוצים שיקרה בהתקנת המודול – במקרה שלנו, התקנת ה-scheme שהכנו בעמל רב. אנו יכולים לעשות שם עוד כמה דברים, כמו יצירת סוג תוכן באמצעות ה-CCK או יצירת תוכן של ממש. הכל הולך! אבל בדוגמא נתקין את ה-scheme בלבד:


function my_module_install() {
  drupal_install_schema('my_module');
}

השתמשנו בפקודת drupal_install_schema על מנת להתקין את ה-scheme שלנו. אם תתקינו את המודול, תוכלו לראות שנוספה לנו טבלה בשם my_table.

יצירת hook_uninstall

יצירת ה-hook הזו הכרחית כדי לאפשר למי שהתקין את המודול להסיר את הטבלה ללא בעיות מיוחדות.


function my_module_uninstall() {
  drupal_uninstall_schema('my_module');
}

חשוב להכניס את ה-hook הזה כדי שימחה כל שריד מהמודול שלנו.

עדכון

כאשר אנו מוציאים עדכון למודול שלנו, אפשר להשתמש ב-hook מיוחד, הכולל את מספר העדכון שלנו, כדי לעשות פעולות שונות. כך למשל, אם בגרסה החדשה (1.1) של המודול שלי אני רוצה להוסיף שדה חדש לטבלה שלי בשם name, כך אעשה את זה:


function my_module_update_11() {
  $ret = array();
  db_add_field($ret, 'my_table', 'time', array('type' => 'int'));
  return $ret;
}

קל מאד ופשוט מאד, רק צריך לזכור שאם יש לי כמה עדכונים, הם ירוצו לפי הסדר של המספרים.

את כל הפקודות שניתן להשתמש בהן בהתקנה, עדכון או הסרה ניתן למצוא ב-scheme API. יש גרסה לדרופל 7 וגרסה לדרופל 6.

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

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-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 | הצהרת הנגישות של האתר | אבטחת מידע ודיווח על בעיית אבטחת מידע

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