MEAN module on Drupal

מודול שמסייע להפוך את דרופל למערכת back end עבור מערכות מבוססות JavaScript או להטמיע את angular בדרופל.
הלוגו של MEAN

בשנים האחרונות הועם זוהרה של מערכת דרופל. טרנדים אחרים ונוחים הרבה יותר ובראשם הפריימוורקים המורכבים של JavaScript כגון angular תפסו את מקומה.

למרות זאת, דרופל עדיין מהווה את אחד הכלים הנוחים ביותר לבניית מערכות מורכבות במעט מאוד זמן פיתוח. אם אתם רוצים להשתמש ב-angular או בדומיה אבל עדיין להשתמש בדרופל כמערכת להזנת נתוני השרת. או לחלופין – יש לכם אתר דרופל שאתם רוצים להמיר ל-angular מבחינת הפרונט אבל רוצים להמשיך להשתמש בו מבחינת הבק אנד. או אפילו אם אתם מתכוננים מראש להשתמש בדרופל כמערכת בק אנד בלבד – החבר'ה הטובים של חברת לינווייט השיקו מודול חדש בשם MEAN module שמקל מאוד על יצירת אתרים כאלו.

באופן עקרוני, מה שהמודול הזה עושה הוא המרת כל התכנים המרכזיים של דרופל לאובייקטים של JSON. את האובייקטים אפשר כמובן לקבל בשאילתות AJAX רגילות באמצעות כל פריימוורק של JavaScript.

איך עושים את זה? פשוט מאוד – קודם כל מתקינים את מודול MEAN. אחרי ההתקנה, אתם יכולים כבר לגשת אל כל אובייקט באמצעות URL באופן הבא:

/mean/json/load/node/[NID]

יטען עבורכם את אובייקט ה-node ויחזיר אותו ב-JSON

/mean/json/load/user/[UID]

יטען עבורכם את אובייקט המשתמש ויחזיר אותו ב-JSON.

/mean/json/view/[VIEW_MACHINE_NAME]

יטען את כל ה-view ויחזיר אותו כאובייקט JSON.

יש עוד לא מעט דוגמאות לאובייקטים השונים ולאפשרויות השונות של הטעינה שלהם. למשל:

/mean/json/view/[VIEW_MACHINE_NAME]/page_1

יחזיר לי את ה-display שנקרא page1 של ה-view המדובר. אפשר גם לטעון טקסונומיה, תפריטים, לנהל משתמשים (לעשות לוג אין, לוג אאוט ולקבל session של משתמש כדי לוודא שהוא מחובר).

אבל אחד הדברים החזקים במודול הזה הוא האפשרות לבנות 'חבילות' של מידע באמצעות ממשק נוח. החבילות האלו יכולות להכיל לא מעט נתונים שמומרים לאובייקט JSON ומתקבלים בקריאה אחת. למשל אני יכול להכין חבילה שכוללת כמה views ולקבל אותה בקריאה אחת. אני יכול להכין חבילה של המשתמש הנוכחי ו-view מסוים (שכולל את כל הפעילויות האחרונות שלו למשל) וכך הלאה. החבילות האלו נקראות packets וניתן לבנות אותן באמצעות הממשק של MEAN שמופיע בפאנל הניהול מיד לאחר ההתקנה.

ממשק הניהול של MEAN
ממשק הניהול של MEAN

ראשית נבחר את השם – לצורך העניין My-first-packet, אחרי שבחרנו את השם, אנו יכולים להוסיף את כל הנתונים שאותם אנו רוצים להמיר בשדה של JSON to be fetched. בואו למשל נכניס את:

/mean/json/load/user/me

שמחזיר את אובייקט המשתמש הנוכחי

/mean/json/load/node/1

מחזיר את Node 1, שבו יש הודעת לוג-אין לצורך העניין

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

/mean/json/get-mean-packet/My-first-packet

ולראות את כל האובייקטים שביקשנו – אובייקט המשתמש הנוכחי ואובייקט node 1 ב-JSON. נחמד, לא?

מדובר בכלי שימושי ביותר, אבל אני הייתי צריך יותר שימושיות, בגלל זה כתבתי patch לגרסת דרופל 6, שמופיע בדף המודול של MEAN ואני מקווה שמתישהו יכנס למודול עצמו. ה-Patch הזה מאפשר לי לשלוח פרמטרים ל-packets ולהשתמש בהם בקריאות השונות. למשל לשלוח קריאה כזו:

/mean/json/get-mean-packet/My-first-packet/[UID]

ולקבל חזרה את

mean/json/load/user/[UID]
/mean/json/view/[VIEW_MACHINE_NAME]/[DISPLAY_NAME]/0/[UID[

איך משתמשים בזה? מתקינים את ה-patch שכתבתי ומשתמשים בדיוק באותה דרך שהראיתי לעיל. שימו לב שה-patch כולל הסבר ב-readme.txt על דרך ההפעלה שלו.

שימו לב שאם יש לכם אתר שאתם לא רוצים לחשוף את כל התוכן שלו, אתם צריכים להתקין את ה-patch השני שלי שדואג לעניין. גם הוא מופיע בדף המודול.

פוסטים נוספים שכדאי לקרוא

פתרונות ומאמרים על פיתוח אינטרנט

יישום של nonce על מנת להגן מפני התקפות injection

בפוסט הקודם הסברתי על hash עם CSP על משאבי inline – שזה נחמד ומעולה אבל פחות ישים בעולם האמיתי שבו בדרך כלל התוכן ה-inline (בין

DALL·E 2024-09-06 12.34.24 - A visually engaging post about Python and cryptographic problems. The image should feature a dark-themed background with a glowing, futuristic Python
פתרונות ומאמרים על פיתוח אינטרנט

בעיות במימוש של פונקציות קריפטוגרפיות בפייתון

היום (16 לספטמבר) ממש, אני מעביר הרצאה ב-PyconIL 2024 על בעיות קריפטוגרפיות באפליקציות פייתון. לצערי אי אפשר להכניס את כל הבעיות הקריפטוגרפיות להרצאה אחת או

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