ג'ומלה ישראל

הסבת רכיב (component) מ-1.5 ל-2.5

יש לכם רכיב ג'ומלה תוצרת עצמית, או רכיב שהורדתם מזמן, ואיש לא מתחזק יותר? להלן מדריך קצר שיסביר לכם כיצד ניתן לעשות זאת בקלות. אם נתקלתם בעוד קשיים או פתרונות, אנא כתבו באשכול פיתוח בפורום.
הסבה ידנית פשוטה יחסית: (נאמר שלרכיב קוראים yourcomponent)
  1.  העתק (באמצעות ftp או ssh) את כל קבצי התכנית שיושבים מתחת לאדמיניסטרטור: ../aministrator/components/com_yourcomponent -מהתיקיה הזו ומטה, למקום המקביל בהתקנת 2.5 שלך.  
    כנ"ל גם לכל הקבצים שמתחת ל- ../components. יש להעתיק את כל התיקיה com_yourcomponent כולל כל מה שמתחתיה. 
  2. יצא את הטבלאות של הרכיב מבסיס הנתונים (למשל באמצעות phpmyadmin). כל הטבלאות אמורות להתחיל ב- jos_yourcomponent (או קידומת אחרת במקום ה- jos, בהתאם להתקנה שלך).
  3. את הטבלאות שיצאת יש לייבא ל- DB של התקנת ה- 2.5 (לא לשכוח לשנות את קידומת שמות הטבלאות בהתאמה לקידומת של ההתקנה החדשה).
  4. יש לרשום את הרכיב ב-2 טבלאות: jos_extantions ו- jos_menu. פשוט צריך להעתיק את הרישום של אחד הרכיבים האחרים שכבר רשומים (עם שינוי השמות בהתאמה כמובן).
  5. זה עדיין לא עובד. מסתבר שבגרסת 2.5 האובייקט $mainframe לא מוגדר (לא בשם זה לפחות). דרך עקיפה מהירה היא לרשום בקובץ ../administrator/index.php מתחת ל:

$app = JFactory::getApplication('administrator');

את השורות הבאות:
global $mainframe;
$mainframe = JFactory::getApplication();
את אותן שורות צריך לרשום באופן דומה גם בקובץ index.php שנמצא בתיקיה הכללית של האתר (לא תחת אדמיניסטרטור).
 
עדיין סביר שחלק מהרכיב לא יעבוד טוב (כמו מיון טבלאות למשל) אבל בעיקרון זה עובד.
 
6. הצגת נתונים באתר (frontend): 
כדי שמבטים (views) יופיעו ברשימת אפשרויות הבחירה כאשר יוצרים פריט תפריט כדי להציג מבט כלשהו באתר (הקדמי, לא אדמיניסטרטור), צריך להוסיף קובץ XML בכל תיקיה עם השם tmpl (שבה יושב קובץ המבט שאתם רוצים להציג). קובץ ה- XML יכול להיות פשוט לגמרי, משהו כמו: 
 

<?xml version="1.0" encoding="utf-8"?>

<metadata>

      <layout title="COM_YOURCOMPONENT View">

            <message>COM_ YOURCOMPONENT _ YOURCOMPONENT _VIEW_DEFAULT_DESC</message>

      </layout>

</metadata>

 
 
האותיות הגדולות אמורות להיות מתורגמות במערכת ריבוי שפות. אבל אפשר במקום לכתוב ישירות לתוך הקובץ הזה, שלא יעבור תרגום, ויהיה מובן לכם.
תגובות (7)
בעת עדכון גרסאות ג'ומלה
7שני, 30 אפריל 2012 07:31
ישראל בן אפרים
כשמעדכנים גרסה (למשל מ- 02.5 ל- 2.51) ידרסו השורות שהכנסנו בסעיף 5, והרכיב שוב לא יעבוד. לכן תמיד לאחר עדכון גרסה צריך לתקן שוב.
זה המחיר של לא להסב את הרכיב בצורה מלאה.
תשובה לישראל
6שבת, 18 פברואר 2012 14:20
עופר כהן
אני חושב שמה שציינת קיים רק ב-2.5.0 ולא ב-2.5.1. זה באג חמור שתוקן בין הגירסאות. אני לא בטוח אבל יכול להיות מאוד.
בכל אופן, זה לא מזיק אבל בטוח שמישהו יתקל בזה אחריך אז טוב שתיעדת. :-)
תשובה לעופר
5רביעי, 15 פברואר 2012 15:16
ישראל בן אפרים
הכנסתי את ההערה שלי. אני מקווה שבמקום הנכון, אין לי ניסיון בזה. נא אשר לי שזה בסדר. ההערה שלי נמצאת פה, בסוף:
http://docs.joomla.org/Talk:Adapting_a_Joomla_1.5_extension_to_Joomla_1.6
תשובה לישראל
4רביעי, 15 פברואר 2012 10:44
עופר כהן
ישראל, אם אתה מוצא משהו שלא צויין במדריך באנגלית שאיתמר ציין, צריך להוסיף לשם את הפרט הזה.
תגובה ל-2 - Itamar Elharar
3שלישי, 14 פברואר 2012 13:33
ישראל בן אפרים
כן, הצגת ההבדלים בין 1.5 ל- 1.6 טובה. אבל לא תמיד מובן מה הקשר, ואיך זה משפיע על הרכיב שלך.
בכלל, כשאני עושה העברה כזו, לא מעניינים אותי כל ההבדלים. מעניין אותי שהרכיב שלי יעבוד בגרסה החדשה, ואיך פותרים מה שלא עובד.
למשל, תמצא לי איפה מוסבר שם למה מיון טבלאות לפי שדות לא עובד?
אני לא הייתי קורא לזה הסבה.
2שלישי, 14 פברואר 2012 12:46
Itamar Elharar
להלן לינק לכל מה ששונה בין 1.5 לבין 1.6 ומשם יש תאימות כרגע ל 2.5
http://docs.joomla.org/Adapting_a_Joomla_1.5_extension_to_Joomla_1.6
טיפול בבעיות שונות בהסבת רכיב מ- 1.5 ל-2.5
1שבת, 11 פברואר 2012 15:51
ישראל בן אפרים
מיון טבלאות לא עובד?
ב- 1.5 טפסים נקראו: "adminForm". ההקפדה הייתה שהשם יהיה זה ("name="adminForm).
בג'ומלה 2.5 יש להקפיד שה- id של הטופס יהיה זה: "id="adminForm.
בכל קובץ שמציג (defauld.php או form.php) צריך להוסיף בשורת ה- html שפותחת טופס את התכונה "id="adminForm.