תמוז

מוודל – הגדרות שצריכים ותמיד שוכחים איפה הן

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

“But Mr. Dent, the plans have been available in the local planning office for the last nine months.”
“Oh yes, well as soon as I heard I went straight round to see them, yesterday afternoon. You hadn’t exactly gone out of your way to call attention to them, had you? I mean like actually telling anybody or anything?”
“But the plans were on display…”
“On display? I eventually had to go down to the cellar to find them.”
“That’s the display department.”
“With a flashlight.”
“Ah, well, the lights had probably gone.”
“So had the stairs.”
“But look, you found the notice, didn’t you?”
“Yes,” said Arthur, “yes I did. It was on display in the bottom of a locked filing cabinet stuck in a disused lavatory with a sign on the door saying ‘Beware of the Leopard’.”

לפעמים אני נזכרת בדו-שיח הזה כשאני מחפשת הגדרות של דברים שונים במוודל’ אם כי לזכותם ייאמר שהתיעוד שלהם הולך ומשתפר בשנים האחרונות מאוד מאוד. ועדיין, יש הגדרות במקומות לא אינטואיטיביים ושקשה לזכור. לכן החלטתי לאגור כאן את מציאותיי, בבחינת “…עַד שֶׁמָּצָאתִי, אֵת שֶׁאָהֲבָה נַפְשִׁי; אֲחַזְתִּיו, וְלֹא אַרְפֶּנּוּ…” (שיר השירים, ג’)

Image by Alexas_Fotos from Pixabay

קביעת דף הבית כדף ברירת המחדל כשנכנסים למערכת

לפי התיעוד:

ניהול מערכת -> עיצוב הממשק -> ניווט.

ברכיב ” בררת־המחדל של העמוד הראשי עבור משתמשים ” בוחרים “מערכת”.

מסך העדכונים שלי – משבצות ברירת מחדל

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

  1. לחיצה על ניהול המערכת
  2. בטאב “עיצוב הממשק” לחיצה על “עיצוב עמוד:”עדכונים בקורסים שלי” “
  3. כניסה לעמוד העדכונים שלי
  4. עריכת המשבצות
  5. לחיצה על כפתור “איפוס עמוד הבית לכל המשתמשים”

בחירת טאב קורסים במשבצת “סקירה כללית” (myoverview)

ניהול המערכת -> רכיבים -> משבצות (בלוקים) -> סקירה כללית (אפשר לבחור שם “קורסים” או “ציר הזמן”)

קביעת רשימת הקורסים שמופיעה בניווט בצדדי (drawer של Boost)

ניהול מערכת -> עיצוב ממשק -> ניווט

  • “מיון הקורסים שלי”: לפי איזה סדר למיין את הקורסים שמופיעים ברשימה
  • “גבול קורס”: כמה קורסים להציג ברשימה

מיקום קובץ ב-moodledata

חיפוש לפי בסיס הנתונים:

  1. מחפשים את שם הקובץ בטבלת mdl_files:
    select * from mdl_files where filename like '%mino%';
  2. מהתוצאה המתקבלת לוקחים את הערך בעמודה contenthash
  3. ניגשים ל-moodledata/filedir. יש שם תתי תיקיות רבות, כולן בעלות שתי אותיות בלבד
  4. תת התיקיה הרלוונטית היא בעלת שתי האותיות הראשונות של Contenthash. נכנסים אליה
  5. התיקיה הפנימית הבאה היא שתי האותיות הבאות של contenthash.
  6. בתוכה יש קובץ ששמו הוא ה-.contenthash.

חיפוש בבסיס הנתונים לפי הנתיב של הקובץ:

נניח שזה נתיב הקובץ שלנו:

http://apps.moodle.ort.org.il/aviv/pluginfile.php/85/mod_label/intro/לבי במזרח.jpg

נחלק אותו לחלקים:

  1. http://apps.moodle.ort.org.il/aviv/pluginfile.php – הוא כללי ושייך לכל הקבצים
  2. ניגשים לטבלת mdl_files, ומוצאים בעמוגות שלו את החלקים השונים של שאר הכתובת:
  3. 85 – contextid
  4. mod_label – component
  5. intro – filearea
  6. filename – לבי במזרח.jpg

ניקוי מערכת ממשתמשים שלא נעשה בהם שימוש

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

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

  1. צריך להיכנס לניהול מערכת -> משתמשים -> ניהול חתך
  2. ללחוץ על “הגדרות נוספות” (מתחת לכפתור “הוספת מסנן”)
  3. להקליק בשדה הצ’ק בוקס “טרם התחבר למערכת”
  4. בשדה “שינוי אחרון” להפעיל את השורה של “לפני” ולבחור תאריך. כל משתמש שנוצר לפני תאריך זה יופיע במסנן
  5. אפשר לבחור תפקיד בקורס, למשל סטודנט
  6. כשמגיעה רשימת המשתמשים המסוננים, מתחתיה יש קומבו של פעולות שאפשר לבצע עליה. לבחור מחיקה.
נבחר הצ'ק בוקס "ארם התחבר למערכת", והופעל שדה ה"לפני" של "שינוי אחרון"

פורמט תאריך ביומני מעקב

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

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

טבלת פעילות משתמשים בקורס, עם תאריך בפורמט נטול שנה

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

יש שני מפתחות זיהוי מחרוזות שאחראים על הפורמט בטבלה הזאת: strftimerecent ו-strftimedatetimeshort. הפורמט של strftimerecent היה %d %b, %H:%M, וכדי להוסיף שנה שיניתי אותו ל-%d/%m/%y, %H:%M.

טבלת פעילות משתמשים בקורס, עם תאריך בפורמט עם שנה

*****

וכמה דברים תכנותיים:

דריסת איקוני מערכת ותוספים

לפי המאמר הזה, כך נדרוס איקונים:

איקוני מערכת:

יוצרים בתיקיית התבנית תיקיה בשם pix_core. לפי האיקון שנרצה לדרוס נדע איזו תת תיקיה ליצור ואיך לקרוא לתמונה. למשל תמונת משתמש נמצאת בתיקיה בשם u, ויש שלושה שמות אפשריים  ששונים ביניהם בגדלים: f1, f2, f3.

איקונים של פעילויות או משאבים:

יוצרים בתיקיית התבנית תיקיה בשם pix_plugins. אם הרכיב הוא בתיקיית mod אז יוצרים תיקיית mod ובתוכה תיקיה עם שם הרכיב (למשל quiz או assign) ולשם מעלים איקון בשם icon.png/icon.svg.

**

תכנות שקשור לתבנית פורדסון:

בלוקים – משבצת הוספה, וביטול בלוקים ברירות מחדל

מיקום “הוספת משבצת”

תבנית מבוססת Fordson – מה עם הבלוקים?

יש שורות ב-config שנכתבות בדם.

ב-fordson, המשבצת של “הוספת משבצת” הופיע ב-nav drawer שתבנית Boost המציאה. אצלי זה לא, אלא הופיע בסרגל צדדי. לקח לי זמן, אבל בסוף מצאתי איפה מגדירים שזה יופיע ב-nav drawer:

$THEME->addblockposition = BLOCK_ADDBLOCK_POSITION_FLATNAV;

מיקום משבצות הניווט והניהול

ועוד דבר שלקח לי זמן למצוא: בתבנית Fordson לא מופיעות משבצות הניווט והניהול, שהן לכאורה משבצות חובה של מוודל. הסיבה שה-Fordson (בעקבות אביו, ה-Boost) לא מראה אותן היא כי הוא פותר אותן באופן אחר ב-nav drawer. מכל מקום, אצלי בתבנית הן כן הופיעו, והייתי צריכה להעיף אותן. חקרתי ובדקתי וראיתי שבפונקציה get_required_by_theme_block_types ב-lib/blocklib.php בודקים את $this->page->theme->requiredblocks, ואם הוא false אז מכניסים את שתי המשבצות ניווט וניהול ואם הוא מחרוזת ריקה אז לא מכניסים שום משבצת! אז התבנית שלי באמת הגיעה עם false, אבל התבנית של Fordson הגיעה עם מחרוזת ריקה. פפאם! איפה מגדירים את המחרוזת הריקה הזאת? חקרתי ודרשתי, ואז הגעתי ל-config.php. חייבים לכתוב בו:

$THEME->requiredblocks = '';

ובא לציון גואל!

לא להציג את הקורסים שלי בפס העליון

כל עניין התפריט העליון והניווט הצדדי (drawer) נקבעים הדף settings של menu_settings. צריך להקפיד לשכפל את של Fordson ולתת לזה את השם של התבנית שלנו. בכל מקרה, כל העניין נבנה ב-render_custom_menu שאותו אפשר לדרוס אצלנו בקלות.

הגדלת כמות הקבצים המצורפים לקורס

ניהול המערכת -> עיצוב הממשק -> (תחת עיצוב הממשק) קורסים -> השדה “מגבלת כמות קובצי המבוא הציבוריים של הקורס”

כתבו תגובה

כתובת הדוא"ל שלכם לא תוצג.