בשורה למרטלים
בשורה חשובה לכל מי שמתעסק מדי פעם באתרים דו כיווניים -
ששון יודעת לרטל את עצמה !
כל מה שאתם צריכים לעשות זה לשים בקובץ NAME-rtl.scss את השורה הבאה :
@flip { file: "NAME.scss" }
וששון כבר תדע לקחת את התוכן של NAME.scss, לרטל אותו ולהכניס את התוצאה במקום השורה הזו.
כמה ייתרונות לדרך הזו :
* זה הרבה יותר מהיר מכל טכניקה אחרת.
* שיניתם משהו ב NAME ? אין בעיה, NAME-rtl יתעדכן אוטומטית.
* הסקריפט של ששון יודע להכין את הסיאסאס המתאים לדרופל, זאת אומרת שהוא מסנן את כל השורות שלא עברו ריטול כי לא צריך אותן פעמיים, והוא גם יודע לאפס ערכים מהקובץ המקורי כדי שלא תקבלו פתאום פאדינג משני הצדדים במקום רק בצד "ההפוך"
עוד פיצ'ר חשוב וקשור -
עם ששון אפשר לעבוד גם הפוך !
מה הכוונה ? אנחנו רגילים לשים את הסטיילים הדיפולטיביים ב style.css ואת הדריסות של ה RTL בקובץ style-rtl.css, אבל קורה שצריך בדיוק את ההפך - לפתח סטיילים דיפולטיביים עבריים (מרוטלים) ולהוסיף רק כמה דריסות בשביל דף או שניים באנגלית.
ששון אפשרת לעשות בדיוק את זה - ליצור סטיילים עבריים דיפולטיביים ב style.css וליצור לידו style-ltr.css שייטען רק בדפים האנגליים (המלוטרים), שווה ?
הפוסט המלא באנגלית אצלנו באתר http://www.linnovate.net/blog/drupal-theme-rtls-itself
- הבלוג של tsi
- חברי האתר יכולים לשלוח תגובה - כניסה , הצטרפות.


override
נניח שהריטול האוטומתי גורם ללוגו להתהפך כשהדרישה שהלוגו ישאר במקומו במעבר בין השפות, איך אפשר ל"עקוף" את השורה שקשורה לוגו שנוצרת אוטומטית במקום @filp ?
האם צריך לדאוג לכך ששורת הלוגו תהיה בקובץ ניטרלי ולא NAME.scss ?
yakoub abaya
שאלה טובה, האפשרות שאתה מציע
שאלה טובה, האפשרות שאתה מציע תעבוד מצויין, או שאפשר גם להוסיף אחרי השורה הזאת כל דריסה/תוספת שנדרשת.
עלתה גם הצעה להוסיף קומנט מסויים שימנע ריטול של קטעים מסויימים, אבל כרגע זה עוד לא ממומש, זה יידרוש קצת רג׳אקס טיפל׳ה מסובך.
צחי שלידור,
Front-end Developer & Themer @ Linnovate
Smart Drupal Theming with Sasson
מניעת ריטול של שורות/בלוקים מסויימים: הצעה
נניח ש
/[no-flip]/
מציין- אל תרטל שורה נוכחית.
ו
/[no-flip-block]/
מציין- אל תרטל בלוק נוכחי.
אפשר להוסיף כמה שורות לfliper.inc:
אחרי שורה 69 (תחילת הפונקציה parse_block) להוסיף:
<?phpif(preg_match("[no-flip-block]",$block)){return false;}
?>
ובאותו עיקרון, אחרי שורה שורה 141, תחילת הפונקציה parse_line, להוסיף:
<?phpif (preg_match("[no-flip]",$line)){return false;}
?>
כדי למנוע מחיקה של הקומנט האלו, אפשר להוסיף בפונקציה REMOVE_COMMENTS את השורות האלו אחרי שורה 243
<?phpif($t[1]=="[no-flip]"||$t[1]=="[no-flip-block]"){
$r[] = "/<em>" . $t[1] . "</em>/";
}
?>
אני מניח שחסר לי פה מידע, כי בוודאי היתה לך סיבה שמחקת את ההערות, אבל לא תחקרתי את הקוד מספיק לעומק את כדי להבין את זה.
אם תרצה, תסביר לי למה ההערות מתנגשות, ואנסה לפתור גם את זה.
אני לא בטוח לגבי השורה, כי
אני לא בטוח לגבי השורה, כי הקובץ עובר דרך הקומפיילר של סאסס קודם והנ"ל שובר את השורות לגמרי, או לחילופין מוציא אאוטפוט מיניפייד לגמרי (הכל בשורה אחת), תלוי באיזה מצב אתה נמצא.
לגבי הבלוק, זה כיוון טוב, והרבה יותר פשוט מזה שאני חשבתי עליו, אני אנסה ונראה.
תודה רבה.
לגבי ההסרה של ההערות, בסופו של דבר אני לא מסיר אותם, במקומות שהם עלולות להפריע אני מוריד אותם, אבל רק לצורך בדיקה.
צחי שלידור,
Front-end Developer & Themer @ Linnovate
Smart Drupal Theming with Sasson
לא הבנתי משהו:
כל Line נוצר על ידי ימפלוד של ";". אז מה זה משנה מה הקומפיילר עושה עם הברייק ליינס? כל עוד בין הRULE והקומנט לא מפריד ";", זה לא אמור להפריע.
(בלי קשר: עברתי מעט על ששון. אני לא מכיר מספיק SASS, אבל זה נראית לי אחלה עבודה. כל הכבוד!)
אני מבין מה אתה מציע, זה
אני מבין מה אתה מציע, זה יעבוד על קוד כזה :
.selector {/* no-flip-line */
float: right;
margin-left: 10px;
}
ומה שאני דמיינתי (ובטח רוב האנשים) זה :
.selector {float: right; /* no-flip-line */
margin-left: 10px;
}
אבל זו בהחלט אופציה טובה גם ככה.
צחי שלידור,
Front-end Developer & Themer @ Linnovate
Smart Drupal Theming with Sasson
טוב,
זה נראה לי שלב שבו אתה אומר: נכתוב את הסינטקס הזה באותיות גדולות בהוראה של FLIP, ומי שיפספס, זבש"ו.
זה עדיף לי על פני להמציא קוד סיבוכי פי שבע כדי לענות על האינטואיציות של כולם.
נ.ב.
ראיתי עכשיו שבעצם אתה מוריד את כל ההערות לפני prase_line, בשורה 84. אז צריך להוריד (או לשנות) את זה כדי שהקומנטס על שורה יעבדו. משהו כמו
<?phppreg_match('/\/\<em>.</em>\<em>\//',$line,$all_comments);
foreach ($all_comments as $comment){if($comment!="\/</em>[no-flip]*\/"){
preg_replace($comment, '', $line);
}
}
?>
כמובן שבאיזשהו שלב יהיה צריך להחליף את הסטרינג No-flip במשתנה שיקבע במקום אחד מה הסטרינג של הערה על שורה ועל בלוק.
כמו שאמרתי, אל תתרגש מההסרה
כמו שאמרתי, אל תתרגש מההסרה של ההערות, אפשר פשוט לחפש את הסטרינג לפני שמסירים את ההערות.
צחי שלידור,
Front-end Developer & Themer @ Linnovate
Smart Drupal Theming with Sasson
הייתי צריך משהו כזה לכמה דפים
הייתי צריך משהו כזה לכמה דפים באתר שלנו, וכשאנחנו צריכים משהו, כולם מרוויחים :)
אז דחפתי היום עדכון לפליפר (בנתיים בבראנץ' dev בלבד) :
כדי למנוע ריטול של שורה מסויימת -
.selector {/* no-flip */
float: right;
margin-left: 10px;
}
כאן רק ה float לא ירוטל.
כאן, לעומת זאת, כל הבלוק לא ירוטל, לא ה float ולא ה margin :
.selector {/* no-flip-block */
float: right;
margin-left: 10px;
}
צחי שלידור,
Front-end Developer & Themer @ Linnovate
Smart Drupal Theming with Sasson
תודה רבה!!
עובד מעולה! וגם חסך לי המון עבודה...
נו תראי...
נו תראי...
צחי שלידור,
Front-end Developer & Themer @ Linnovate
Smart Drupal Theming with Sasson