בלוג דרופל

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

הגדרת תיקיות מערכת

Printer-friendly versionPrinter-friendly version
דרופל

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

ראשית, אנו צפויים להיתקל בבעיה כזו:

אם תגשו לנתיב בו מוגדרות התיקיות בהן דרופל עושה שימוש - admin/config/media/file-system - תוכלו לראות את מקור אחת הבעיות: תיקיית קבצים זמניים אינה מוגדרת נכון.

נשנה את הנתיב לתיקייה קיימת. שימו לב, יש גם ליצור את התיקייה.

זה עוד לא הסוף. יש לתת הרשאות נרחבות (777) לתיקיית files באופן רקורסיבי:

זה אמור לעשות את העבודה.

Drupal report

על אלגנטיות של כתיבת תכנה

Printer-friendly versionPrinter-friendly version
אלגנטיות וקוד

או: איך למצוא את האיבר הגדול ביותר ולהימנע מהגעה למיון. מסר הגותי לא עקרוני על עניין עקרוני מאוד.

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

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

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

מתוך סדרת ההרצאות 12 דקות.

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

Drupal report

רכיבי תרגום עיקריים

Printer-friendly versionPrinter-friendly version
דרופל עברית

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

בדרופל 7 נושא השפות והתמיכה בריבוי לשונות נכנסו לליבה וזה שימושי מאוד. אנו מקבלים תזכורת לזה בכל פעם שאנו נתקלים ב-[und] כאשר אנו מדפיסים היררכית את ערכיו של פריט תוכן מסוים. הערך und הנו קיצור של undefined - כלומר, פריט התוכן חסר שפה מסוימת.

המצב עדיין רחוק מלהיות מספיק, מכיוון שרבים מהרכיבים המספקים יכולות חשובות עדיין אינם בליבה עצמה אלא ברכיבי קהילה משלימים - contributed modules. בתמונה להלן משורטטת סכמה של הרכיבים החשובים לשם תמיכה בתרגום וריבוי לשונות: רכיבי ליבה (צבע חול), רכיבי קהילה (צבע אדמה) ורכיב הפצה (צבע ים). המרובעים התכלכלים מקטלגים את הרכיבים לתחומים תפישתיים.

התמונה לקוחה מתוך פרק בבלוג של גַבּור הוטסי המוביל את נושא הרב-לשוניות בדרופל זה מספר שנים. בפרק הבלוג הוא מספר על תכניותיו להכניס לליבה של דרופל 8 רכיבי קהילה רבים וכן מספק רשימת מעקב אחר התפתחות הפיתוח בתחום זה (מומלץ). בנושא תרגום בדרופל 8 ראו גם כאן.

שליף טיפים לתרגום מוצלח

מקור

Drupal report

פונקציות מסד נתונים

Printer-friendly versionPrinter-friendly version
טיפת דרופל

על שכבת ההפשטה של דרופל מול מסד הנתונים - מה זה, מתי להשתמש ומהם היתרונות בשימוש בשכבה זו. וגם - שליף מדליק עם כל הפונקציות.

מעל מסד הנתונים של דרופל - לרוב מסד מסוג MySQL אך לא תמיד - מגיע הקוד של דרופל, הכתוב בשפת PHP. באמצעות הקוד ניתן לבצע מניפולציות במסד הנתונים - תוך אינטראקציה עם המשתמש בממשק החזותי - או בלעדיו. מומלץ לעשות שימוש בשכבת ההפשטה שמספקת דרופל על-מנת לבצע את אותן מניפולציות ולא לכתוב קוד PHP נא ישירות מול מסד הנתונים. שכבת הפשטה זו נקראת DAL - Data Abstraction Layer והיא כוללת מספר עשרות פונקציות. חשוב מאוד לזכור לעבוד עם קוד API של דרופל ככל שניתן.

היתרונות של עבודה דרך שכבת ההפשטה של דרופל:

  1. פישוט הקוד הלוגי של האתר מספק האחדה בצורת הקוד בין אתרים שונים;
  2. אובייקטיזציה של הפקודות שעוזרת הן לדיבגינג והן לקריאוּת הקוד ולשינויו;
  3. הפשטה של הקוד כך שיתאים לעבודה מול מסדי נתונים מסוגים שונים;
  4. בדיקת קלט אוטומטית למניעת הזנה בקוד זדוני או שימוש בקוד כזה.

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

מקור: ההולנדים של ויצלרן

Drupal report

ניתוח ובנייה - גישות משלימות

Printer-friendly versionPrinter-friendly version
קרל פופר

על ההבדל בין גישת Top-Down לבין גישת Bottom-up, על הפער בין אופן התייחסות הגולש באתר לזה של בונה האתר וגם קצת פילוסופיה.

כך רואה את מבנה האתר הגולש

  • וואי, מה זה האתר הזה?
  • מה יש כאן עבורי?
  • לאן כדאי לי לפנות?
  • הנה עמוד הבית. אה, גם חברים שלי עשו לייק!
  • הנה כמה דברים שמושכים את העין. אוקיי...
  • הנה תפריט הניווט - יופי , יש מדורים.
  • הנה מדור שמעניין אותי.
  • הנה פריט במדור שמעניין אותי.
  • הנה קישור לפריט מעניין נוסף.
  • הנה עוד קישור, בוא נראה.
  • מה יש במדורים האחרים?
  • בוא נחזור לעמוד הבית.
  • נראה לי אני נרשם לניוזלטר שלהם גם.

במילים אחרות, הגולש מנתח את האתר לחלקיו השונים, על מנת להבינו ולקבל את התמונה הכללית. התהליך דומה לפעולת נחיתה בה מתגלים הפרטים. השיטה המדעית בה מבצעים מהלך זה באופן מודע נקראת אסטרטגיית Top-down ובעברית: 'מלמעלה מטה'. אם אתם רוצים גם בארמית אז: 'מלעיל'.

כך רואה את מבנה האתר איש טכני

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

  • ישויות ("סוגי עמודים")
  • יחסים בין הישויות
  • השדות של כל ישות
  • מדורים עם היבטים (רשימות פריטים)
  • עמוד הבית (כן... בסוף!)

כלומר, איש טכני (רצוי בעל לוגיקה בריאה) מייצר את החלקים השונים ומהם ממשיך ובונה חלקים מורכבים יותר. אט-אט ניתן לראות את האתר קורם עור וגידים. השיטה המדעית של מהלך הסינתזה הזה קרויה אסטרטגיית Bottom-up, בעברית 'מלמטה מעלה' ובארמית 'מלרע'.

אריסטו רואה דברים "מלמטה" ואפלטון "מלמעלה"

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

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

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

ח"י רוֹת, מורה-דרך בפילוסופיה היוונית, מאגנס, ירושלים 1960, עמ'' 88 - 89.

 

גישור בין שני כיווני המבט למטרת בנייה

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

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

גישור בין שני כיווני המבט למטרת גלישה

דבר אחד זה לבנות את האתר נכון מבחינה לוגית ודבר שני זה לאפשר לגולש למצוא מה שהוא רוצה (או מאנחנו רוצים לגרום לו לחשוב שהוא רוצה). כאן מגיע תחום חוויית המשתמש החשוב כל כך.

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

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

אז מי צריך להגיד קודם שלום, "זה שיורד או זה שעולה?"

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

Drupal report