זימברה הוא יישום המספק שירותים לקבוצות עבודה כמו דוא"ל, שיתוף יומנים, אנשי קשר, מסמכים וכד'.
עורך הטקסט הסטנדרטי ביישום הווב של זימברה לא תומך ביכולת בחירת כיווניות הפיסקה - מצרך די מבוקש במחוזותינו. להוסיף את זה ידרוש שינויים לא מעטים ...
למזלנו, ישנו פתרון קל יותר: החל מגרסה 6.0.5 הוא כולל בתור אופציה את עורך הטקסט העשיר הידוע TinyMCE, כדי להשתמש בו יש לציין זאת בעזרת פרמטר בכתובת, לדוגמא:
https://zimbra.example.com/?editor=tinymce
אך גם הוא לא מאפשר את תכונת בחירת כיווניות הפסקה למרות שהיא קיימת ב-TinyMCE בצורת תוסף, כפי שניתן לראות בתצלום הבא (לחצו להגדלה):
<img src="/whatsup/images/articles/zimbra_rtl/t_zimbra_tinymce_no_rtl.png" alt="zimbra editor without RTL">
למזלנו לאפשר את התוסף הוא עסק פשוט יחסית.
קובץ ה-diff הבא [להורדה] מתאר את השינויים הנדרשים בקובץ Startup2_all.js. אם התקנתם את זימברה תחת /opt/zimbra תמצאו אותו ב-/opt/zimbra/jetty/webapps/zimbra/js/Startup2_all.js . את הפעולה הבאות יש לבצע תחת המשתמש שזימברה רצה תחתיו (zimbra בברירת מחדל). ראשית נגבה את הקובץ ליתר בטחון:
cp Startup2_all.js{,.bk}
וכעת לשינויים:
--- Startup2_all.js.bk 2010-04-12 11:52:48.000000000 +0000
+++ Startup2_all.js 2010-04-12 13:58:04.000000000 +0000
@@ -20530,9 +20530,9 @@
// General options
mode : (mode == DwtHtmlEditor.HTML)? "exact" : "none",
elements: id,
- plugins : "table,ztable,inlinepopups,zcontextmenu,fullscreen",
+ plugins : "table,ztable,inlinepopups,zcontextmenu,fullscreen,directionality",
theme : "advanced",
- theme_advanced_buttons1 : "fontselect,fontsizeselect,formatselect,justifyleft,justifycenter,justifyright,justifyfull,separator,bullist,numlist,outdent,indent,separator,bold,italic,underline,separator,forecolor,backcolor,separator,link,ztablecontrols,fullscreen",
+ theme_advanced_buttons1 : "fontselect,fontsizeselect,formatselect,justifyleft,justifycenter,justifyright,justifyfull,separator,bullist,numlist,outdent,indent,separator,bold,italic,underline,separator,forecolor,backcolor,separator,link,ztablecontrols,fullscreen,separator,ltr,rtl",
theme_advanced_buttons2: "",
theme_advanced_buttons3: "",
theme_advanced_buttons4: "",
@@ -20542,16 +20542,16 @@
convert_urls : false,
verify_html : false,
gecko_spellcheck : true,
- force_br_newlines : true,
- forced_root_block : '',
- force_p_newlines : false,
+ force_br_newlines : false,
+ forced_root_block : 'p',
+ force_p_newlines : true,
content_css : false,
editor_css: editorCSS,
setup : function(ed) {
ed.onLoadContent.add(handleContentLoad);
ed.onInit.add(onTinyMCEEditorInit);
ed.onKeyPress.add(onEditorKeyPress);
-
+ ed.onBeforeSetContent.add(function(ed, o){if (o.content == '' || o.content == '') o.content = '<p dir="rtl">'});
}
});
אז מה אנו עושים בעצם ? בקטע הראשון מאפשרים את תוסף ה-directionality ומוסיפים את לחצני הכיווניות לסרגל הכלים. בשאר אנו מוודאים שהעסק יעבוד עם פסקאות (מאחר ועליהם מחילים את הכיווניות) והתחלה עם פסקה ריקה מוצמדת לימין. התוצאה:
<img src="/whatsup/images/articles/zimbra_rtl/t_zimbra_tinymce_rtl.png" alt="zimbra editor with RTL">
שימו לב שה-diff יוצר עבור גרסה 6.0.6, יכול להיות שיהיו בעיות עם גרסה 6.0.5 (לי היו) אך לא צריך להיות סיפור להחיל ידנית.
מאחר וזימברה דוחס את כל העסק ומגיש אותו דרך Jetty, עלינו לדחוס את הקובץ:
gzip -c Startup2_all.js > Startup2_all.js.zgz
ולאחר מכן לאתחל את שירות ה-mailboxd:
zmmailboxdctl restart
כדאי גם לנקות את זכרון המטמון של הדפדפן אם לא רואים את הנדרש. לא לשכוח להוסיף את פרמטר ה-editor=tinymce לשורת הכתובת.
אולי היה חכם יותר אם הייתי מאפשר את אופציית ה-
directionality (להבדיל ובנוסף לתוסף באותו השם) במקום ההתחלה עם הפסקה הריקה, אך יש לבדוק אם זה משפיע רק על מצב העריכה ולא נכלל בדוא"ל הנשלח בפועל.
-- מאיר