הסבת רכיב (component) מ-1.5 ל-2.5
- פרטים
- פורסם בשבת, 11 פברואר 2012 13:35
- נכתב על ידי ישראל בן אפרים
- כניסות: 433
יש לכם רכיב ג'ומלה תוצרת עצמית, או רכיב שהורדתם מזמן, ואיש לא מתחזק יותר? להלן מדריך קצר שיסביר לכם כיצד ניתן לעשות זאת בקלות. אם נתקלתם בעוד קשיים או פתרונות, אנא כתבו באשכול פיתוח בפורום.
הסבה ידנית פשוטה יחסית: (נאמר שלרכיב קוראים yourcomponent)
הסבה ידנית פשוטה יחסית: (נאמר שלרכיב קוראים yourcomponent)
- העתק (באמצעות ftp או ssh) את כל קבצי התכנית שיושבים מתחת לאדמיניסטרטור: ../aministrator/components/com_yourcomponent -מהתיקיה הזו ומטה, למקום המקביל בהתקנת 2.5 שלך.
כנ"ל גם לכל הקבצים שמתחת ל- ../components. יש להעתיק את כל התיקיה com_yourcomponent כולל כל מה שמתחתיה. - יצא את הטבלאות של הרכיב מבסיס הנתונים (למשל באמצעות phpmyadmin). כל הטבלאות אמורות להתחיל ב- jos_yourcomponent (או קידומת אחרת במקום ה- jos, בהתאם להתקנה שלך).
- את הטבלאות שיצאת יש לייבא ל- DB של התקנת ה- 2.5 (לא לשכוח לשנות את קידומת שמות הטבלאות בהתאמה לקידומת של ההתקנה החדשה).
- יש לרשום את הרכיב ב-2 טבלאות: jos_extantions ו- jos_menu. פשוט צריך להעתיק את הרישום של אחד הרכיבים האחרים שכבר רשומים (עם שינוי השמות בהתאמה כמובן).
- זה עדיין לא עובד. מסתבר שבגרסת 2.5 האובייקט $mainframe לא מוגדר (לא בשם זה לפחות). דרך עקיפה מהירה היא לרשום בקובץ ../administrator/index.php מתחת ל:
$app = JFactory::getApplication('administrator');
את השורות הבאות:
global $mainframe;
$mainframe = JFactory::getApplication();
$mainframe = JFactory::getApplication();
את אותן שורות צריך לרשום באופן דומה גם בקובץ index.php שנמצא בתיקיה הכללית של האתר (לא תחת אדמיניסטרטור).
עדיין סביר שחלק מהרכיב לא יעבוד טוב (כמו מיון טבלאות למשל) אבל בעיקרון זה עובד.
6. הצגת נתונים באתר (frontend):
כדי שמבטים (views) יופיעו ברשימת אפשרויות הבחירה כאשר יוצרים פריט תפריט כדי להציג מבט כלשהו באתר (הקדמי, לא אדמיניסטרטור), צריך להוסיף קובץ XML בכל תיקיה עם השם tmpl (שבה יושב קובץ המבט שאתם רוצים להציג). קובץ ה- XML יכול להיות פשוט לגמרי, משהו כמו:
|
האותיות הגדולות אמורות להיות מתורגמות במערכת ריבוי שפות. אבל אפשר במקום לכתוב ישירות לתוך הקובץ הזה, שלא יעבור תרגום, ויהיה מובן לכם.
תגובות (7)
זה המחיר של לא להסב את הרכיב בצורה מלאה.
בכל אופן, זה לא מזיק אבל בטוח שמישהו יתקל בזה אחריך אז טוב שתיעדת. :-)
http://docs.joomla.org/Talk:Adapting_a_Joomla_1.5_extension_to_Joomla_1.6
בכלל, כשאני עושה העברה כזו, לא מעניינים אותי כל ההבדלים. מעניין אותי שהרכיב שלי יעבוד בגרסה החדשה, ואיך פותרים מה שלא עובד.
למשל, תמצא לי איפה מוסבר שם למה מיון טבלאות לפי שדות לא עובד?
http://docs.joomla.org/Adapting_a_Joomla_1.5_extension_to_Joomla_1.6
ב- 1.5 טפסים נקראו: "adminForm". ההקפדה הייתה שהשם יהיה זה ("name="adminForm).
בג'ומלה 2.5 יש להקפיד שה- id של הטופס יהיה זה: "id="adminForm.
בכל קובץ שמציג (defauld.php או form.php) צריך להוסיף בשורת ה- html שפותחת טופס את התכונה "id="adminForm.