הרשם | שאלות ותשובות | רשימת חברים | לוח שנה | הודעות מהיום | חיפוש |
|
|
כלים לאשכול | תצורת הצגה |
23-07-10, 16:07 | # 1 |
חבר וותיק
|
PHP וSQL - מערכת רב-לשונית
אהלן, חבר'ה.
בימים אלו אני שוקד על פיתוח מערכת CMS מודולרית, שמכילה חלק מהמודולים הבאים:
הבעיה שלי היא כזו: אני צריך לפתח מודול נוסף: מודול שפות. באמצעות המודול ניתן יהיה לתרגם את האתר למספר שפות בלתי מוגבל, בעוד שהשפות נשלפות מתוך טבלה במסד, לצורך העניין. הבעיה שלי היא בתכנון המסד. אני רוצה לתכנן את המסד כך שאוכל להחליף שפת ברירת מחדל ללא שום בעיות, ואוכל לתרגם את התוכן שלי, לא משנה באיזה מודול, בקלות וביעילות. הציעו לי לעשות טבלה מקשרת בין תרגום לבין פריט במודול: parentID - הפריט שרוצים לתרגם itemID - הפריט המתורגם (להלן: התרגום עצמו) module - כמובן, לאיזה מודול שייך התרגום (עמודים/מאמרים/...) lang - קוד השפה (he/en וכו') הבעיה היא מה קורה כאשר משנים את שפת ברירת המחדל? צריך לעבור על כל הטבלאות של כל המודולים (לטפסים למשל יש יותר מטבלה אחת), כדי לשנות את הparentID... לכן הפתרון הזה נראה לי לא בדיוק יעיל. פתרון נוסף: בסגנון וורדפרס, היא רשומה אחת ריקה, שלא מכילה תוכן, ושאר התרגומים לאותו הפריט נכנסים כרשומות נוספות כאשר הגדרות הפריט עצמו לא מופיעות ונלקחות מפריט האב. דוגמה לשליפת כל העמודים בשפה מסוימת: PHP קוד:
פתרון נוסף: לשייך לכל מודול 2 טבלאות: אחת לתכנים ואחת לכל שאר הדברים שצריך לשמור לגבי אותו הפריט (סטטוס, כתובת וכו'). אשמח לעזרה בנושא, זו פעם ראשונה שאני עושה דבר כזה. תודה לעוזרים, גל. |
23-07-10, 16:19 | # 2 |
חבר מתקדם
|
אני לא חושב שהבנתי אותך במדוייק, אבל אם אתה רוצה לעבוד עם מספר שפות, למה לא לעבוד עם קבצי LANG?
__________________
בברכה, שרף כהן |
23-07-10, 16:22 | # 3 |
חבר וותיק
|
כי אני רוצה שלתוכן (לשם הפריט, לתוכן שלו עצמו וכו') יהיו מס' תרגומים.
התוכן כמובן נשלף מהמסד, והבעייתיות כאן היא בתכנונו. |
23-07-10, 16:24 | # 4 |
חבר וותיק
|
|
23-07-10, 16:30 | # 5 |
חבר וותיק
|
אשמח לקבל הסבר על הסקיצה,
ולדעת באיזו תוכנה השתמשת כדי לייצר אותה. |
23-07-10, 16:59 | # 6 |
חבר וותיק
|
אני מתכנת DB בד"כ ע"י mysql workbench
בכל אופן, אני מציע ליצור מפתח זר(fk) לעצמך- בגרסאות החדשות זה נתמך, בכל אופן זה לא קריטי לך כי אתה יוצר את זה בקוד שלך. הכוונה היא שparent הוא מתוך טווח הערכים של id(במקרה הזה מאותה טבלה) |
23-07-10, 17:33 | # 7 |
חבר וותיק
|
אלמוג, יש שיטה דרך המסד ליצור את מה שכתוב בסכמה באנגלית מימין?
או דרך יעילה לעשות זאת בPHP?.. |
23-07-10, 18:02 | # 8 |
חבר וותיק
|
רשמתי שההתנהלות היא בצרוה כזו שאם הערך של השדה לא ריק הוא דורס את הערך של שדה האב, אם הערך ריק הוא יורש אותו מהאב.
כלומר: אם בתרגום לא הכנסתי כותרת, הכותרת תהיה הכותרת של האב. |
23-07-10, 19:10 | # 9 | |
חבר וותיק
|
ציטוט:
אם תשים לב בדוגמת הקוד שנתתי כאן: גם לאב יש שדה תוכן (אך הוא ריק), ולכן דרסתי אותו בלולאה. אני מחפש דרך יעילה יותר לעשות את זה, בלי לולאות מיותרות וכו'. Last edited by Gal Shafrir; 23-07-10 at 19:38.. |
|
24-07-10, 19:54 | # 10 |
חבר וותיק
|
כי עשית שם משהו אחר לגמרי..
שוב- אתה צריך ליצור טבלאה אחת בכל הסיפור הזה. תיצור פעולה רקורסיבית שמביאה לך את המידע הסופיע עם המידע(פעולה()-לוקחת נתונים. אם יש לו אבא, ממלאת את הנתונים הריקים בנתונים מפעולה()) |
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|