דרופל

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

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

כתבות אחרונות מתוך הדרופל בלוג שלנו...

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

דרופל

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

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

אלגנטיות וקוד

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

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

דרופל עברית

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

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

טיפת דרופל

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

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

קרל פופר

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

סיכום מפגש דרופל ירושלים 03.01.12

דרופל

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

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

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

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

גירסת הדפסהגירסת הדפסה
דרופל

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

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

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

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

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

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

Drupal report

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

גירסת הדפסהגירסת הדפסה
אלגנטיות וקוד

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

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

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

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

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

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

Drupal report

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

גירסת הדפסהגירסת הדפסה
דרופל עברית

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

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

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

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

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

מקור

Drupal report

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

גירסת הדפסהגירסת הדפסה
טיפת דרופל

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

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

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

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

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

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

Drupal report

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

גירסת הדפסהגירסת הדפסה
קרל פופר

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

Drupal report

חדש במדריך דרופל...

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

כדי לייבא אתר צריך שיהיו ברשותכם: 1. תיקיית השורש של אתר דרופל; 2. מסד נתונים מיוצא של אותו אתר.

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

יבוא מסד נתונים
1. גלשו לאתר שיצרתם על-ידי לחיצה על שם האתר שבתפריט הצדדי.
1. לחצו על כפתור Import המצוי בתפריט הראשי.
1. לחצו על הכפתור הנמצא ליד כותרת השדה Browse your computer - תצוץ תיבת דושיח - בחרו דרכה את קובץ המסד המיוצא.
1. לחצו על Go והמתינו בסבלנות.
1. אם תקבלו הודעת Import has been successfully finished - הצלחתם.

קישור בין המסד לקבצים
1. אם שם המסד אצלכם שונה מהשם המוגדר בקובץ sites/default/settings.php - עליכם לעדכן את הקובץ. אם הקובץ לא ניתן לכתיבה, הסירו את Read Only, ערכו והחזירו את Read only.
1. כנ"ל לגבי שם המשתמש במסד וססמתו.

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

ייצוא מסד נתונים

  1. נקו מטמונים - Flush all caches - בכך תקטינו את הקובץ המיוצא.
  2. פתחו את ממשק phpMyAdmin - יש קישורית לממשק בצלמית WAMP ובהתקנת ברירת מחדל הוא נמצא בנתיב localhost/phpmyadmin.
  3. בחרו בשם מסד הנתונים המקושר לאתר באמצעות לחיצה עליו; רשימת המסדים מצויה בתפריט הצדדי.
  4. לחצו על כפתור Export המצוי בתפריט העליון.
  5. בחרו באפשרות Custom - display all possible options.
  6. בשדה Compression בחרו באפשרות gzipped.
  7. לחצו על Go והמתינו בסבלנות. תיפתח לכם חלונית דושיח.
  8. שמרו את הקובץ במקום רצוי לכם וזכרו אותו.

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

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

דרופל אינה MVC טוב שכך. למה?

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

  1. ודאו ששרת wamp פועל (צבע ירוק).

    יצירת מסד נתונים

  2. גלשו לממשק מסד הנתונים - localhost/phpmyadmin - ניתן לגלוש באמצעות לחיצה על צלמית wamp שבשורת המשימות ובחירה בפריט phpMyAdmin.
  3. לחצו על לשונית Databases
  4. בשדה Create new database רשמו את שם האתר שלכם, למשל: mysite
  5. בשדה Collation בחרו בערך utf8_general_ci - שימו לב: ש מספר ערכים עם שם דומה, לא להתבלבל; ערך זה נמצא כמעט בסוף הרשימה.
  6. לחצו על הכפתור Create - אתם אמורים לקבל הודעה ירקרקה שהמסד נוצר.

    הכנת קובצי הקוד

  7. הורידו גרסה נדרשת של דרופל (בחרו בקובץ הדחוס tar.gz - הוא קטן יותר) לתוך תיקיית wamp\www. אם אינכם יודעים היכן תיקייה זו מצויה, ניתן לגלוש גם אליה בקלות באמצעות צלמית wamp שבשורת המשימות ובחירה בפריט www directory.
  8. חלצו את התיקייה מתוך הקובץ הדחוס. אם אתם משתמשים בתכנת הדחיסה 7zip תצטרכו לחלץ פעמיים - את שתקבלו תיקייה רגילה ובה תיקיות-משנה וקבצים.
  9. שנו את שמה של התיקייה לשם של האתר אותו הנכם בונים. למשל: mysite

    התקנת דרופל

  10. גלשו לעמוד הבית של האתר שלכם: רשמו localhost/mysite בשורת הכתובת של הדפדפן שלכם. הערה: אינכם צריכים לזכור בעל-פה את כל נתיבי האתרים שתבנו כי הם רשומים בעמוד localhost אליו ביכולתכם להגיע באמצעות צלמית wamp.
  11. בחירת פרופיל התקנה - השאירו את ברירת המחדל Standard ולחצו על Save and continue
  12. בחירת שפת ממשק - השאירו את ברירת המחדל English ולחצו על Save and continue
  13. חיבור למסד הנתונים - בשדה Database name הזינו את שם המסד שיצרתם קודם (למשל, mysite) ואת המילה root הזינו בשדה Database username (אל תרשמו דבר בשדה Database password). הערה: הגדרות אלו מתאימות לאתר בזמן פיתוח שאינו דורש אבטחה; בשרת הייצור (כשנעלה את האתר לאינטרנט) יהיה צורך בהגדרת משתמש מסוים עם הרשאות מסוימות ועם ססמה.
  14. לחצו על כפתור האישור. ההתקנה תחל ותיקח דקה או שתיים.

    הגדרות אתר בסיסיות

  15. מידע על האתר - מלאו את שם האתר ואת כתובת האימייל האמתית שלכם.
  16. חשבון תחזוקת האתר - תחת Username רשמו admin (זה לא חובה אבל זה מאוד מקובל) ותחת שדה האימייל את כתובת האימייל שלכם. מלאו את הססמה פעמיים באופן זהה - בחרו ססמה שתזכרו בטוח, אחרת אתם נכנסים לצרות. ססמה כגון 1111 היא ססמה מצוינת לאתר כל עוד הוא בשלב הפיתוח המקומי.
  17. הגדרות שרת - תחת Default country בחרו Israel ותחת Default time zone חפשו את שם העיר המרכזית הקרובה אליכם; להזכיר, למרות שאנו משתתפים באירוויזיון, אנחנו עדיין ביבשת אסיה - גללו למעלה :)
  18. הודעות עדכון - בזמן פיתוח מומלץ לוותר על הודעות ולכן הסירו את הסימן מתיבת הסימון Check for updates automatically.
  19. לחצו Save and continue.

ההתקנה הסתיימה. לחצו על Visit your new site ותגיעו לעמוד הבית.

ברכות!