אחד מהכלים החזקים ביותר שהתוודעתי אליהם בזמן האחרון הוא המודול המעולה Features של דרופל שבא לפתור בעיה מציקה מאד בדרופל. כידוע לכל מפתח דרופל שהתנסה בבניית אפליקציות ואתרים המבוססים על דרופל, בשלב הפיתוח הכל טוב ויפה. אך מה קורה אם אנו רוצים להוסיף פונקציונליות לאתר שנמצא כבר באוויר? או שאנחנו מפתחים בצוות ורוצים להעביר את הפונקציונליות שיצרנו לחבר צוות אחר?
תחשבו למשל על התרחיש הבא: אני וחבר עובדים במשותף על אתר. אני רוצה ליצור חלק המוקדש לחדשות. עבור זה אני יוצר מודול ייעודי ששואב מאיזה content type בשם news שיצרתי עבור העניין. עכשיו אני רוצה להעביר את הפיתוח שלי לחבר (באמצעות SVN או אפילו באמצעות העברת קבצים פשוטה). את המודול שכתבתי אין כל בעיה להעביר – אבל איך להעביר את ה-content type? באופן עקרוני, אפשר רק באמצעות dump של מסד הנתונים והעברתו אל החבר. אבל מה קורה אם החבר כבר פיתח דברים על מסד הנתונים שלו? אני אצטרך להסביר לו איך ליצור את ה-content באופן ידני!
הבעיה מתחדדת יותר אם למשל אני מבצע שינויים ב-content type שגם הוא ביצע בו שינויים – יהיה קשה לבצע resolve לסיפור הזה.
בדיוק זה נוצר מודול features! המודול הזה, שמתחבר ללא מעט מודולים שתומכים בו, מסוגל לקחת את ההגדרות שלי ולהפוך אותן למודול. את המודול הזה ניתן להתקין – במידה ויש דריסה של תכונות – הוא יתריע ואני אוכל לבצע resolve כרצוני! איך עושים את זה? פשוט מאד! אני אדגים את העניין במדריכון הקצר הזה:
מודול strongarm מצטרף למודול features ומאפשר גם העברת משתנים מליבת דרופל (כמו למשל הרשאות) וכדאי להוריד גם אותו.
1. התקנת מודול features
התקנת מודול features מהאתר או באמצעות drush היא פשוטה ביותר – זה דף המודול. לא לשכוח להוריד גם את מודול strongarm.
2. יצירת content type
אם אין לכם באתר content type, תצרו אחד כזה, אני מאמין שלא צריכים ללמד אתכם איך יוצרים אחד כזה.
3. אחרי שיצרנו איזה content type (או אם יש לנו כבר משהו שיצרנו), ניגש לפאנל הניהול ומשם ל-Features:
עכשיו ניצור feature חדש:
אחרי שכתבנו את הפרטים הבנאליים, ניגש לחלק המעניין. ניגש אל Edit components ונבחר ב-CCK. פתאום יופיעו בפנינו כל סוגי התוכן שלנו (אם יצרנו רק סוג תוכן אחד, זה מה שיופיע) אנו יכולים לסמן אותו ב-V, מצד ימין נוכל לראות באיזה מודולים הוא תלוי.
ניתן לבחור עוד הגדרות שאנו רוצים להוסיף. אחרי הכל אנו נלחץ על Download feature. מתקבל קובץ.
את הקובץ הזה ניתן לפתוח ולשמור בדיוק כמו כל מודול אחר בפרויקט אחר. אם גם בו מותקן features. ההתקנה שלו פשוטה ביותר – יש להכנס למודול features, לסמן V ולשמור:
זה הכל, ה-content type החדש וההגדרות הנוספות מותקנות בדרופל החדש! כאשר יש לנו סתירה בין הגדרות קיימות להגדרות של המודול שלנו, אנו נראה זאת מצד ימין ונוכל לבצע resolve כרצוננו באופן גרפי ומאד נוח.
לא כל מודול תומך ב-features, אך המספר שלהם מתרחב. מודול features כולל hookים משלו כך שניתן לשלבו במודולים שלכם – אבל על כך במאמר נפרד.