בלוג דרופל

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

מאגר מידע אקדמי משפטי בדרופל

אתר עבור מאגר מידע

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

האירוע נערך בהשתתפות דליה דורנר, שופטת בית במשפט העליון בדימוס ומועמדת לנשיאות המדינה:

הצדק צריך להיראות היטב - גם במובייל...

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

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

מאגר המידע האינטרנטי בתצוגת טלפון חכם (סמרטפון)

בניית מאגר מידע במערכת דרופל קוד פתוחתפריט קטגוריות אתר מאגר מידעקטגוריות חיפוש מאגר מידעתוצאות חיפוש מאגר מידעתפריט ראשי מאגר מידע אקדמי מובייליצירת קשר מאגר מידע אקדמי

מאגר המידע האינטרנטי בתצוגת מחשב רגיל

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

לחצו כאן לאתר מאגר המידע

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

הפרויקט מומן בעזרת מענק מקרן היינריך בל.
לוגו קרן היינריך בל

Drupal report. Permalink: http://practicall.co.il/1/node/837

בחירה ברכיב דרופל

דרופל מודול

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

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

מה מספק לך הרכיב?

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

מה לוקח הרכיב מהמערכת שלך ומהלקוח שלך?

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

מהי מידת הגמישות של הרכיב?

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

מהי רמת הפעילות של הרכיב בקרב קהילת דרופל כעת?

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

מהם הרכיבים האחרים בהם תלוי הרכיב?

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

האם המודול "משחק יפה" עם המערכת הקיימת של אתר הדרופל שלך?

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

עד כמה מורכב או מסובך להתקין ולהגדיר את הרכיב באתר שלך?

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

לא לשכוח

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

בהצלחה!

Drupal report. Permalink: http://practicall.co.il/1/node/836

קטע קוד: איך יודעים בהיבט שכל השדות ריקים

דרופל קוד

באתר של אחד הלקוחות שלנו צריך להציג יסודות מסוימים והיבט רק אם לפחות שדה אחד בהיבט אינו ריק.

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

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

<?php
// Whether any of the fields in the given view is not empty.
// For views with a field in the same nid to check all fields
function any_field_not_empty($nid, $view_name, $display = 'default'){

   
$view = views_get_view_result($view_name, $display, $nid);

    foreach (
$view[0] as $property => $value) {

        if (!
is_logical_field($property)) {
                continue;
        }

        if(
$value){
                return
true;
        }
    }

    return
false;
}

// Non-logical fields are the ones which alway comes with a view like _field_data
// or contextual ones like nid
function is_logical_field($name)
{
    return
starts_with($name, 'field_field');
}

function
starts_with($haystack, $needle)
{
    return
$needle === "" || strpos($haystack, $needle) === 0;
}
?>

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

<?php if(any_field_not_empty($nid, 'work_secondary_relates_to_works')) : ?>
    <div class="relates-to-box-text-third Work box-above-me">Relates to Works</div>
    <div class="ref-box-content Work">
        <?php print views_embed_view('work_secondary_relates_to_works', 'default', $nid); ?>
    </div>                 
<?php endif; ?> 

Drupal report. Permalink: http://practicall.co.il/1/node/835

הטמעת שיווק אוטומטי במערכת דרופל

אוטומציית שיווק באינטרנט

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

הכלי הוא Marketo Munchkin - עוצמתי ביותר. נעזרנו ברכיב קיים ואחרי כמה ניסיונות אונליין זה אפיו עבד :)

לאחר הטמעת הרכיב בהצלחה אמורים לראות משהו כזה בקוד המקור:

<footer id="footer" role="contentinfo">
      <script type="text/javascript">document.write(unescape("%3Cscript src='" + document.location.protocol + "//munchkin.marketo.net/munchkin.js' type='text/javascript'%3E%3C/script%3E"));</script>
      <script>Munchkin.init('CLIENT-CODE-HERE');</script>
</footer>

דרופל שיווק אוטומטי
תמונה מתוך הספרון של חברת MediaCurrent

Drupal report. Permalink: http://practicall.co.il/1/node/830

באיזה רכיבים אתם משתמשים?

דרופל modules

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

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

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

בתור דוגמאות לרכיבים העיקריים בהם אנו עושים שימוש, וסביר להניח שגם באתר שלכם נזדקק להם, ניתן לציין את הרכיבים Views, CTools, Entity Reference, Global Redirect, Metatag, Webform. כל קישור מוביל ישירות לעמוד הסטטיסטיקה של השימוש באותו הרכיב.

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

Drupal report. Permalink: http://practicall.co.il/1/node/829