אין לי טוויטר. אין לי חשבון בטוויטר. אני לא קורא טוויטים (בד"כ). אבל אני יודע שהרבה אנשים כן.
(אגב, קצת מפריע לי שקוראים לזה tweet אבל לאתר לא קוראים tweeter)
כשעפר, בעלת האתר קאפקייקס (שכזכור, אני בניתי על וורדפרס, וממשיך לתחזק) ביקשה ממני לשלב בבר הצדדי של האתר (sidebar, בשפת המקור) עדכונים מהטוויטר שלה, אמרתי לה שאין בעיה. זה טוויטר! לכל בלוג שני שאני קורא יש עדכונים מטוויטר, וכמעט כולם בוורפרס, הרי… אז נמצא איזה תוסף, ויאללה.
מסתבר שזה לא כזה קל.
רוב התוספים ל-WP, כפי שגיליתי, משתמשים ב-API של טוויטר באופן אנונימי. זה חוסך ממני את הצורך להכניס את הסיסמה של עפר ל-WP, שזה יתרון גדול, אבל זה גם חוסם אותי, כי טוויטר מאפשרים עד 100 קריאות אנונימיות בשעה מכל IP, ומכיוון שעל השרת שלי בדרימהוסט יושבים עוד מי יודע כמה אתרים, זה פשוט לא עבד – כנראה שהיו הרבה יותר מ-100 קריאות בשעה.
כשעברתי על תוספים אחרים, ראיתי אחד שמשתמש במשהו שנקרא badge. מקריאה נוספת הסתבר שמדובר בקוד HTML/JS שמייצרים איכשהו דרך חשבון הטוויטר שלך, באופן עקרוני, אבל התוסף הזה כבר מכיל אותו. זה מעלה את הטוויטים ב-JavaScript כך שזה לא יורד מה"מכסה" של ה-IP של השרת, אז זה פותר את הבעיה הראשונה. באשר לאיך זה בדיוק עובד, לא הייתי יכול לבדוק באתר של טוויטר עצמם כי אין לי חשבון שם, כאמור, אבל הבנתי מה הולך שם. הבעיה היתה שהקוד שהוא יצר נראה מזעזע כשהוא בא במגע עם עברית: כל הטוויטים היו מיושרים לאותו צד, והמספר בציון הזמן ("1 minute ago" וכו') זז לצד ימין (כמו שקורה כאן), או יותר גרוע, נתקע בדיוק בשבירת השורה, ועוד כל מני הפתעות. החלטתי שזה בלתי נסבל.
כתבתי קצת קוד משלי, שמזהה אם הטוויט הוא באנגלית או בעברית, ומגדיר לו CSS class בהתאם. משם זה היה רק קצת משחקי CSS, וזהו, קיבלתי את מה שרציתי: טוויטים בעברית מיושרים לימין, עם פרק הזמן שעבר בעברית לידם, וטוויטים באנגלית מיושרים לשמאל (עם כיוון זרימת טקסט מתאים, כמובן), ופרק הזמן מיושר לימין, שורה מתחת להם.
את הקוד שאני בניתי, ואת זה שלקחתי מטוויטר ושיניתי, אפשר לראות בקוד המקור של הדף. אין פה PHP – הכל HTML, JS ו-CSS. אני לא מפיץ חבילה מסודרת של זה, כי טוויטר לא ממש מעניין אותי ואין לי כוח לסדר יפה את הקוד וכו', אבל מי שרוצה בהחלט מוזמן, רק לתת לי קרדיט על החלקים שבניתי – בעיקר הפונקציה DetermineDirection. די טריויאלית אבל לא ראיתי כאלה ב-JS בשום מקום. מי שטורח ועושה מזה משהו מסודר, כדאי שיוסיף בדיקה של תווי RTL נוספים, כגון תווים עבריים נוספים (אלה עם הניקוד וכו'), ערבית, פרסית ואורדו, ובדיקה של תווי LTR נוספים, כמו אותיות לטיניות משפות אירופאיות אחרות, יוונית, כתב קירילי, וכו'. לפרטים נוספים על כיוון כתיבה של שפות שונות.
מישהו מכיר תוסף ל-WP שעושה את כל זה בלי טלאים מכוערים?