תבניות

ahardon

New member
תבניות

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

אמיר ט

New member
Templates

זה מה שאתה מחפש... בעיקרון בניתי לא מזמן משהו שעושה בדיוק את זה, זה ממש לא מסובך. המפתח הוא שימוש ב str_replace, ועכשיו אני אסביר למה התכוון המשורר: נגיד ואתה רוצה עכשיו לעשות מנוע חיפוש, שיציג את השם, כתובת, ותיאור של כל אתר. אתה עושה קובץ שיכיל את התבנית של מה שאתה רוצה להדפיס, לדוגמא :
<a href="{URL}">{NAME}</a> <pre>{DESCRIPTION}</pre> <br><br>​
עכשיו מה שאתה רוצה כדי להציג רשומה (או אתר איך שתקרא לזה...) זה להחליף כל פרמטר קבוע (URL,DESCRIPTION,NAME) בנתונים המתאימים, ואת זה אתה עושה עם str_replace. אני מקווה שהבנת בגדול את הרעיון שלי, ככה אתה יכול להוציא את העיצוב לחלוטין מהקוד והידע היחיד שיהיה דרוש למי שיעצב את המערכת הוא HTML, וכמובן שהוא צריך לשים ביטוים מוסכמים במקומות שבו הוא רוצה שיהיה המידע.
 

i s o T o p

New member
תשתמש בsmarty

אני רק לאחרונה התחלתי להשתמש בה היא די נוחה, כשיהיה לי כוח אני ינסה לעשות משהו דומה כי זה יותר כיף. הנה לינק: smarty.php.net
 

אמיר ט

New member
../images/Emo45.gif

כל יום לומדים משהו חדש... אני בטוח שאני אמצע לזה שימוש טוב :)
 

bnayal

New member
smarty מצויינת אבל

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

i s o T o p

New member
זה בכלל לא נכון

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

bnayal

New member
ת'אמת? אם אני מבין את המושג OO

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

i s o T o p

New member
OO=Object Oriented

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

אמיר ט

New member
אם כבר OO...

אז תלך לשפה נורמלית ו"טבעית" ל OO, C++
גם JAVA לא רעה אבל זה OO מוגזם ביותר... עם כל הכבוד ל PHP, ויש כבוד, ה OO שלה הוא בהחלט לא רע אבל שונה בהרבה מובנים מהעקרונות של OO ה"קלאסי". ואני מדבר מניסיון של עבודה עם OO גם ב PHP וגם ב C++.
 

orenphp

New member
אני יהיה טיפה יותר דרסטי ממך...

PHP זו לא שפת OOP בכלל. אבל הבנתי שהגרסה הבאה (5) אמורה להיות OOP מלאה. נחכה ונראה.. :)
 

אמיר ט

New member
מתקן את עצמי

דיברתי על ה OOP בגירסא 5... יש שיפור משמעותי ביותר, אבל זה עדיין לא זה.
 

ahardon

New member
תודה, אבל אני עדיין בבעיה.

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

nezek2003

New member
אני לא הבנתי מה אתה מנסה לעשות..

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