העלתי כאן מקלדת איכותית ל-PHP.
נשמח אם חברי הפורום יוסיפו וישכללו את המקלדת לתועלת כלל הציבור.
בתודה..
הודעות שפורסמו על ידי ע.ג.
-
מקלדת ל-PHP
-
מקלדת
לתועלת הציבור, אני משתף כאן מקלדת איכותית ל-PHP.
נשמח אם חברי הפורום יוסיפו וישכללו את המקלדת.
ההקלדה רציפה, כמו כתיבת איש קשר, ובסיום סולמית.
בין שני אותיות על אותו מקש יש להקיש * (-כוכבית).
הקשת *** (-שלוש פעמים כוכבית) מוחקת את האות האחרונה שהוקשה.
להלן המקלדת:function digitsToText($digits) { $array_number = [ 22222222, 2222222, 222222, 22222, 2222, 222, 22, 2, 33333333, 3333333, 333333, 33333, 3333, 333, 33, 3, 44444444, 4444444, 444444, 44444, 4444, 444, 44, 4, 55555555, 5555555, 555555, 55555, 5555, 555, 55, 5, 66666666, 6666666, 666666, 66666, 6666, 666, 66, 6, 777777777, 77777777, 7777777, 777777, 77777, 7777, 777, 77, 7, 88888888, 8888888, 888888, 88888, 8888, 888, 88, 8, 999999999, 99999999, 9999999, 999999, 99999, 9999, 999, 99, 9, '00000000000000', '0000000000000', '000000000000', '00000000000', '0000000000', '000000000', '00000000', '0000000', '000000', '00000', '0000', '000', '00', '0', 11111111111, 1111111111, 111111111, 11111111, 1111111, 111111, 11111, 1111, 111, 11, 1, '*' ]; $array_abc = [ "c", "b", "a", 2, 2, "ו", "ה", "ד", "f", "e", "d", 3, 3, "ג", "ב", "א", "i", "h", "g", 4, "ן", "נ", "ם", "מ", "l", "k", "j", 5, "ל", "ך", "כ", "י", "o", "n", "m", 6, 6, "ט", "ח", "ז", "s", "r", "q", "p", 7, 7, "ת", "ש", "ר", "v", "u", "t", 8, 8, "ק", "ץ", 'צ', "z", "y", "x", "w", 9, "ף", "פ", "ע", 'ס', ">", "<", "#", "%", "$", "@", "&", "/", "=", "*", "-", "+", "0", " ", "]", "[", ")", "(", ":", "!", "?", "'", 1, ",", ".", "" ]; $parts = explode('***', $digits); if (count($parts) > 1) { while (in_array('', $parts, true)) { foreach ($parts as $index => $part) { if ($part === '' && $index > 0) { $prevIndex = $index - 1; $prevPart = $parts[$prevIndex]; foreach ($array_number as $seq) { if (str_ends_with($prevPart, strval($seq))) { $parts[$prevIndex] = substr($prevPart, 0, -strlen($seq)); unset($parts[$index]); $parts = array_values($parts); break 2; } } } elseif ($part === '' && $index === 0) { unset($parts[$index]); $parts = array_values($parts); continue 2; } } } $lastPart = array_pop($parts); foreach ($parts as &$part) { foreach ($array_number as $seq) { if (str_ends_with($part, strval($seq))) { $part = substr($part, 0, -strlen($seq)); break; } } } $digits = implode('', $parts) . $lastPart; } $text = ''; while ($digits !== '') { $matched = false; foreach ($array_number as $index => $seq) { $seqStr = strval($seq); if (str_starts_with($digits, $seqStr)) { $text .= $array_abc[$index]; $digits = substr($digits, strlen($seqStr)); $matched = true; break; } } if (!$matched) { $text .= $digits[0]; $digits = substr($digits, 1); } } return $text; }
להלן מקרא המקלדת:
(1) 1 = . (2) 11 = , (3) 111 = 1 (4) 1111 = ' (5) 11111 = ? (6) 111111 = ! (7) 1111111 = : (8) 11111111 = ( (9) 111111111 = ) (10) 1111111111 = [ (11) 11111111111 = ] (1) 2 = ד (2) 22 = ה (3) 222 = ו (4) 2222 = 2 (5) 22222 = 2 (6) 222222 = a (7) 2222222 = b (8) 22222222 = c (1) 3 = א (2) 33 = ב (3) 333 = ג (4) 3333 = 3 (5) 33333 = 3 (6) 333333 = d (7) 3333333 = e (8) 33333333 = f (1) 4 = מ (2) 44 = ם (3) 444 = נ (4) 4444 = ן (5) 44444 = 4 (6) 444444 = g (7) 4444444 = h (8) 44444444 = i (1) 5 = י (2) 55 = כ (3) 555 = ך (4) 5555 = ל (5) 55555 = 5 (6) 555555 = j (7) 5555555 = k (8) 55555555 = l (1) 6 = ז (2) 66 = ח (3) 666 = ט (4) 6666 = 6 (5) 66666 = 6 (6) 666666 = m (7) 6666666 = n (8) 66666666 = o (1) 7 = ר (2) 77 = ש (3) 777 = ת (4) 7777 = 7 (5) 77777 = 7 (6) 777777 = p (7) 7777777 = q (8) 77777777 = r (9) 777777777 = s (1) 8 = צ (2) 88 = ץ (3) 888 = ק (4) 8888 = 8 (5) 88888 = 8 (6) 888888 = t (7) 8888888 = u (8) 88888888 = v (1) 9 = ס (2) 99 = ע (3) 999 = פ (4) 9999 = ף (5) 99999 = 9 (6) 999999 = w (7) 9999999 = x (8) 99999999 = y (9) 999999999 = z (1) 0 = (2) 00 = 0 (3) 000 = + (4) 0000 = - (5) 00000 = * (6) 000000 = = (7) 0000000 = / (8) 00000000 = & (9) 000000000 = @ (10) 0000000000 = $ (11) 00000000000 = % (12) 000000000000 = # (13) 0000000000000 = < (14) 00000000000000 = > (1) * =
להלן דוגמה לשימוש במקלדת:
// דימוי מערך GET עם פרמטר digits $_GET['digits'] = '77555522244099222555544'; // העברת הקלט מה-GET למשתנה $digits = $_GET['digits']; // קריאה לפונקציה והכנסת התוצאה למשתנה $text = digitsToText($digits); // הדפסת התוצאה echo $text;
כאמור, נשמח בכל שידרוג המקלדת לתועלת כלל הציבור.
תודה.. -
סיסמה לפי מספר מחויג
סדר פעולות הבדיקה שהמערכת מבצעת היא, קודם סיסמה לשלוחה, ואח"כ הפניה לפי מס' מחוייג.
אני רוצה שרק מי שמחייג למספר מסויים יתבקש להזין סיסמה, ומי שמחייג למספר אחר, לא.
יש למישהו רעיון?נ.ב. אני לא מחפש קומבינה פשוטה של הפניה לפי מס' מחוייג, ואז סיסמה רק בשלוחה הספיציפית.
זה לא מתאים לי, כי זה מבטל לי לגמרי את השלוחה הראשית. כי אז אני צריך להגדיר הפניה רק פעם אחת בשיחה, וזה לא מתאים לי ספיציפית.בתודה מראש..
-
RE: שינוי שם קובץ (API - FileAction)
@שמואל
לתשומת ליבך!
נא לתקן בתיעוד את הצורה הנכונה לכתיבת הנתיב.
עם ' / ' (סלש) בתחילת הנתיב.
סה"כ 3 תיקונים.
ויתכן שגם בעוד פעולות API זה צריך להיות ככה, ואז צריך לתקן בעוד כמה מקומות. -
RE: שינוי שם קובץ (API - FileAction)
@amp-Software-0
תודה רבה, עיינתי שם והבנתי איפה הבעיה.
צריך לשלוח ככה:https://www.call2all.co.il/ym/api/FileAction?token=077123456:123456&action=move&what=ivr2:/2/000.tts&target=ivr2:/2/002.tts
כלומר, עם ' / ' (סלש) בתחילת הנתיב.
משום מה בתיעוד לא מופיע לשים סלש בתחילת הנתיב. -
שינוי שם קובץ (API - FileAction)
לגבי זה:
ניהול קבצים (שינוי שם, העתקה, העברה ומחיקה)-FileAction
איך אמורה להיראות פקודה לשינוי שם קובץ?בשלוחה 2 יש לי קובץ 000.tts , אני רוצה לשנות את שמו ל- 002.tts , איך אני עושה את זה?
זה:
https://www.call2all.co.il/ym/api/FileAction?token=077123456:123456&action=move&what=ivr2:2/000.tts&target=ivr2:2/002.tts
מחזיר לי:
{"responseStatus":"ERROR","message":"simultaneous file operation rejected","messageCode":null,"yemotAPIVersion":6}אציין שאין בשלוחה קובץ מספר 002
למישהו יש מידע בעניין?
בתודה מראש.. -
RE: מישהו רוצה לעזור לי לעשות פקודה מהדפדפן?
@ivrפון כתב במישהו רוצה לעזור לי לעשות פקודה מהדפדפן?:
@ע-ג תסביר את הצורך שלך ואני אבין?
אתה רוצה להוריד בא נגיד כל יום קבצים במיקום קבוע במערכת?אני רוצה להוריד קבצים מכמה שלוחות,
ואני רוצה לעשות את זה בפעולה אחת, שלא אצטרך לשנות את הקוד על כל שלוחה או לחילופין להחזיק כמה קודים קוד לכל שלוחה.
תודה רבה מראש.. -
RE: מישהו רוצה לעזור לי לעשות פקודה מהדפדפן?
@ivrפון כתב במישהו רוצה לעזור לי לעשות פקודה מהדפדפן?:
@צבי-ד-צ יש לך את הדבר הזה קרדיט ל @אביי-ורבא שפרסם כאן
תיצור סימנייה בדפדפן שלך כאילו לאתר חדש אבל במקום הכתובת תשים את זהjavascript:(function() { for (let index = 0; index <= 100; index++) { window.open("https://www.call2all.co.il/ym/api/DownloadFile?token=077000000:1234&path=ivr2:1/" + index.toString().padStart(3, '0') + ".wav"); } })();
כמובן תחליף מספר מערכת סיסמה
ואז תיכנס לאתר אינטרנט כל שהוא ותפעיל את הסימנייה ואז כל הקבצי שמע שבשלוחה 1 ירדו כמובן שאתה יכול לשנות לשלוחה אחרתאיך אפשר לעשות שהוא יעבור גם בין שלוחות שונות ויוריד הכל אחד אחרי השני?
-
RE: איך מציגים YMGR בדפדפן?
@ע-ג כתב באיך מציגים YMGR בדפדפן?:
https://www.call2all.co.il/ym/api/RenderYMGRFile?token=0771234567:123456&wath=ivr2:/Log/LogApi.ymgr&convertType=html¬LoadLang=1
איך אני עושה שזה יוצג בדפדפן? כי כמו שזה עכשיו זה יורד לי כקובץ.להלן קוד PHP לביצוע הפעולה:
<?php // URL של הקובץ שאתה רוצה להציג בדפדפן $file_url = 'https://www.call2all.co.il/ym/api/RenderYMGRFile?token=0771234567:123456&wath=ivr2:/Log/LogApi.ymgr&convertType=html¬LoadLang=1'; // שולח בקשה ל-URL ומקבל את התוכן $file_content = file_get_contents($file_url); // מוודא שקיבלנו את התוכן if ($file_content === false) { die('Error loading file content'); } // שולח כותרות כדי להציג את התוכן כ-HTML בדפדפן header('Content-Type: text/html'); // מדפיס את התוכן ישירות echo $file_content; ?>
בהצלחה..
-
איך מציגים YMGR בדפדפן?
https://www.call2all.co.il/ym/api/RenderYMGRFile?token=0771234567:123456&wath=ivr2:/Log/LogApi.ymgr&convertType=html¬LoadLang=1
איך אני עושה שזה יוצג בדפדפן? כי כמו שזה עכשיו זה יורד לי כקובץ. -
הצגת YMGR בדפדפן
https://www.call2all.co.il/ym/api/RenderYMGRFile?token=0771234567:123456&wath=ivr2:/Log/LogApi.ymgr&convertType=html¬LoadLang=1
איך אני עושה שזה יוצג בדפדפן? כי כמו שזה עכשיו זה יורד לי כקובץ. -
RE: למה הבקשה נשלחת עם & בסופה?
בקיצור, יש אפשרות לעשות שישלח את הבקשה בלי & בין ה: add ?
בתודה מראש.. -
RE: למה הבקשה נשלחת עם & בסופה?
@יוסף-ח כתב בלמה הבקשה נשלחת עם & בסופה?:
למה זה משבש את התגובה?
אני לא יודע למה, אבל אם אני לוקח את הבקשה שהוא שולח ושם בדפדפן, השרת מחזיר לי את התגובה ביחד עם זה:
Warning: Undefined array key "" in /.../.../.../...A.php on line 176שורה 176 בקובץ ההוא היא:
$param_value = $_GET[$param[0]];
תוכלו לכוון אותי מה לעשות?
-
למה הבקשה נשלחת עם & בסופה?
ההגדרות בשלוחה:
type=api api_link=http://.../.../123.php api_add_0=voice0=next api_add_1=voice1=next api_add_2=voice2=next api_dir=/99/99/1 api_end_goto=/99/1
הוא מוסיף & בסוף הבקשה, וזה משבש את התגובה מהשרת.
יש אפשרות לעשות שלא יוסיף & בסוף הבקשה? -
RE: הפניית שיחות לפי ימים
@כהן-צדק
יש לי רעיון יותר טוב,
תעשה שלפני שמגיעים לשלוחה של הפילטר ימים ושעות, יעברו בשלוחה של פילטר 'מעגל השנה', שם תגדיר כך:;מודול אקסס פילטר type=access_filter ;בין הזמנים אב לשלוחה 987 access_filter_1=h.*.*.10-29.11-11.*.*.*.*.* access_filter_1_yes_goto=/987 ;בין יוה"כ לסוכות access_filter_1=h.*.*.11-14.01-01.*.*.*.*.* access_filter_1_yes_goto=/986 ;חוה"מ סוכות access_filter_1=h.*.*.16-24.01-01.*.*.*.*.* access_filter_1_yes_goto=/985 ;בימים רגילים מועברים לשלוחה של 'פילטר שיגרה' access_filter_no_goto=/השלוחה של 'פילטר שיגרה'
ואז אתה לא צריך לשנות כלום בשלוחת הפילטר,
וגם בשלוחת 'פילטר מעגל השנה' אתה לא צריך לשנות יותר מידאי, פשוט כל תקופה שמגיעה תכניס עוד הגדרה חדשה (והם לא צריכות להיות לפי סדר מסויים, פסח יכול להיות לפני חנוכה ופורים יכול להיות אחרי שבועות), וכך בעוד שנה תסיים להדגיר את כל מעגל השנה.
ובשלוחות שלשם מועברים ב'ימים מיוחדים' אתה יכול לעשות כבחירתך, או הודעה על סגירת בית ההוראה, או מעבר לרבנים מסויימים בשעות מסויימות.
ואז גם יש לך דרך מצוינת לסגור את בית ההוראה ליום מסויים במהלך השיגרה בלי לשנות את הפילטר של השיגרה, פשוט תכניס שם הגדרה לתקופה של חוסר הפעילות.
בהצלחה.. -
RE: הפניית שיחות לפי ימים
@כהן-צדק
אתה לא צריך להכניס את זה לפני, אתה יכול גם להכניס את זה אחרי...
העניין הוא שהמספר הסידורי יהיה ראשון!;בין הזמנים לשלוחה 987 access_filter_1=h.*.*.10-29.11-11.*.*.*.*.* access_filter_1_yes_goto=/987
הסבר:
access_filter_1 = הגדרה ראשונה (שים לב לשנות את כל המספרים של ההגדרות הקיימות, ע"מ שלא תהיה התנגשות עם עוד הגדרה באותו מספר).
h = תאריך עברי
כוכבית = כל השעות ביום
כוכבית = כל הימים בשבוע
10-29 = ימים בחודש (י' - כ"ט)
11-11 = חודש אב (לא ברור לי האם צריך לכתוב 11-11 או רק 11 תבדוק את שניהם)
כוכבית = כל השנים
שאר הכוכביות חובה אך הם לא רלוונטיות לענייננו
שים לב! בשימוש בתאריך עברי המערכת מחליפה יום בשקיעה, ככה שאם מישהו מתקשר ביום כ"ט אב אחרי השקיעה, ההגבלה הזו לא תחול עליו כי הוא התקשר בא' אלול (לא יודע מה איתכם, אבל כשאני רושם את זה אוחזתני פלצות..)
עריכה: אם רוצים שהתאריך העברי יתחלף ב-12:00 בלילה ראה כאן. שים לב שזה צריך להכנס לקובץ ivr.ini , וזה יחול על כל המערכת (גם על הרישומים בדוחות והלוגים השונים).
בהצלחה.. -
RE: הפניית שיחות לפי ימים
@כהן-צדק
זה נשמע מיוחד, אבל כמובן שאין לנו אפשרות לראות את כל התיכנות המיוחד שעשית שם...
עכ"פ זה יפה מאד, עלה והצלח, חילך לאורייתא... -
RE: הפניית שיחות לפי ימים
@כהן-צדק
בהחלט, מאד מעניין אותי.
מדוע שלא תרשום כאן את מס' המערכת?
(אם תתייג אותי, לכאורה תוכל מייד למחוק, כי אני יקבל את ההודעה במייל. אם לא, אודיעך).