coldfusion / טפסים מגניבים ב-coldfusion / כושר הסתגלות עם תוויות מותאמות אישית
כושר הסתגלות עם תוויות מותאמות אישית
היסוד האחרון של טופס מודרני הוא כושר הסתגלות. ניתן להגדיר כושר הסתגלות בעזרת שתי שאלות: עד כמה קשה לבצע שינויים? עד כמה הרכיבים ניתנים לשימוש חוזר? ביצוע שינויים משמעותו שטופס ימשיך לעשות את העבודה שלו גם אחרי שנסיבות ישתנו. שימוש חוזר משמעותו שחלק מיכולות הטופס יכולות לשמש לצרכים אחרים אם כאלה עולים. כמובן, פיצלנו את הטופס שלנו לתוך הרבה מאוד חלקים עובדים. הוא די מודולארי. אבל אם מסתכלים על מה שעשינו עד כה, יש עוד הרבה מקום לשיפור.
לדוגמא, אם תבחנו את כל השאילתות בהן אנו משתמשים, תראו שעשינו hard coding ל-DSNים (שמות מקורות המידע) שלנו. זהו מנהג לא טוב, מאחר ואם ה-DSN משתנה, הטופס יתקלקל. כדי להתגבר על הבעיה הזאת, עלינו לשנות את ה-DSN למשתנה ואז להוסיף את אותו משתנה לקובץ application.cfm. אני בחרתי ב-#webmonkey# בתוך משתנה ה-DSN שלי והשתמשתי בשורה הזאת כדי להגדיר אותו:
<cfset webmonkey = "wired_cf">
כעת אם שם מקור המידע ישתנה, הטופס יוכל להתאים את עצמו במהירות. מכאן, שזה מוגדר תחת פן "ביצוע השינויים" של כושר ההסתגלות. לדוגמא של שימוש חוזר, בואו נעיף מבט בקובץ input.cfm שלנו.
כשאני מסתכל על הקוד ב- input.cfm, הדבר שהכי בולט לי לעין הוא הקטע הבא:
<CFIF listfindnocase(validation_error, "name")><FONT color="red"></CFIF>
<CFOUTPUT>Name:</CFOUTPUT> <CFIF listfindnocase(validation_error,
"name")></FONT></CFIF>
זה חוזר על עצמו בכל יסוד input בעמוד. עכשיו בכל פעם שתראו משהו שחוזר על עצמו שוב ושוב, תדעו שיש הזדמנות לדחוס את היסודות שלכם ע"י שימוש חוזר בהם. ומאחר ואתם חייבים לכלול ווידוא תקינות בכל טופס אותו אתם מייצרים, הגיוני שיהיה לכם איזשהו רכיב חוזר שתוכלו לעשות בו שימוש.
אתם יכולים לעשות זאת ע"י יצירת תווית מותאמת אישית. ממש פשוט לעשות את זה ב-coldfusion. פשוט פתחו מסמך ריק והדביקו בתוכו את הקוד הבא:
<cfif listfindnocase(#attributes.verr#, #attributes.item#)> <font color="red"> </cfif>
<cfoutput>#attributes.item#: </cfoutput> <cfif listfindnocase(#attributes.verr#,
#attributes.item#)> </font> </cfif>
קראו למסמך vtag.cfm ושמרו אותו. ברגע זה יצרתם תווית מותאמת אישית שמשנה שמות שדות לאדום אם הם מכילים שגיאה. במקרה שלא ידעתם, אתם יכולים לקרוא לכל קובץ coldfusion בעל סיומת .cfm ע"י שימוש בתחביר תוויות. כל שעליכם לעשות הוא לרשום את שם הקובץ בין סימני "< >" ולתת לו את הקידומת "cf_". במקרה שלנו, היינו קוראים לתווית שיצרנו בעזרת התחביר הזה:
<cf_vtag>.
אבל בגלל שאנחנו רוצים שהתווית תבדוק אם שם מסוים נמצא ברשימה, עלינו קודם להעביר לה מספר פרמטרים. במקרה הנוכחי, עלינו להעביר את השם אותו אנחנו מחפשים ואת שם הרשימה הנבחרת. כדי לעשות זאת, נוסיף את התוספות "item" ו-"verr" לתווית. "item" הוא שם הפריט אותו אנו בודקים ו-"verr" היא הרשימה מולה מתבצעת הבדיקה. אם התווית מוצאת את הפריט ברשימה, היא תציג אותו באדום. אם לא, היא תציג אותו כרגיל. עכשיו יש לנו תווית בודקת-שגיאות בה אנחנו יכולים לעשות שימוש חוזר בכל אחד מהטפסים העתידיים שלנו.
עם זאת, לפני שנסיים, עלינו לבצע משימה אחת נוספת. עלינו לעבור דרך input.cfm ולשנות את כל הבלוקים הללו...
<CFIF listfindnocase(validation_error, "name")><FONT color="red"></CFIF>
<CFOUTPUT>Name:</CFOUTPUT>
<CFIF listfindnocase(validation_error, "name")></FONT></CFIF>
... לבלוקים הללו:
<cf_vtag item="Name" verr="#validation_error#">
אם עשיתם את זה וזה עבד, אז מזל טוב, סיימתם! אנחנו יכולים סוף סוף להיפטר מכל הספרים הארורים האלה ששוכבים פה כבר יובלות. יייפי!!
עבדתם קשה, אז קחו הפסקה קצרה ותנו לעצמכם טפיחה על השכם.
זה מספיק, עכשיו לכו לעבוד.
|