• דף הבית
    • אינדקס קישורים
    • פוסטים אחרונים
    • משתמשים
    • חיפוש בהגדרות המתקדמות
    • חיפוש גוגל בפורום
    • ניהול המערכת
    • ניהול המערכת - שרת private
    • הרשמה
    • התחברות

    אשף הגדרות אוטומטי למודל קבלת נתונים והקלטות

    מתוזמן נעוץ נעול הועבר עזרה הדדית למשתמשים מתקדמים
    2 פוסטים 2 כותבים 8 צפיות 2 עוקבים
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • תגובה כנושא
    התחברו כדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • ה מנותק
      הדיבל המעופף
      נערך לאחרונה על ידי הדיבל המעופף

      בניתי בעזרת גמיני ממשק נחמד עבור המודל המייגע הזה
      לפניכם הקוד

      <!DOCTYPE html>
      <html lang="he" dir="rtl">
      <head>
          <meta charset="UTF-8">
          <title>מחולל הגדרות מקיף - קבלת הקלטות ונתונים</title>
          <style>
              body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background: #eef2f5; padding: 20px; color: #333; margin: 0; }
              .container { max-width: 900px; margin: auto; background: white; padding: 30px; border-radius: 10px; box-shadow: 0 4px 15px rgba(0,0,0,0.1); }
              h1 { text-align: center; color: #0056b3; margin-bottom: 5px; }
              p.subtitle { text-align: center; color: #666; margin-bottom: 30px; }
              .section { background: #f9fbfd; border: 1px solid #e1e5ea; border-radius: 8px; padding: 20px; margin-bottom: 20px; }
              .section h3 { margin-top: 0; color: #004494; border-bottom: 2px solid #dde4eb; padding-bottom: 10px; }
              .form-group { margin-bottom: 15px; display: flex; flex-direction: column; }
              .form-row { display: flex; gap: 15px; margin-bottom: 15px; flex-wrap: wrap; }
              .form-row > div { flex: 1; min-width: 150px; }
              .checkbox-group { flex-direction: row; align-items: center; gap: 10px; }
              label { font-weight: bold; margin-bottom: 5px; font-size: 14px; }
              input[type="text"], input[type="number"], select { width: 100%; padding: 10px; border: 1px solid #ccd; border-radius: 5px; box-sizing: border-box; font-size: 14px; }
              input[type="checkbox"] { width: 18px; height: 18px; cursor: pointer; }
              .note { font-size: 12px; color: #777; margin-top: 3px; }
              button { background: #0056b3; color: white; border: none; padding: 15px; font-size: 18px; border-radius: 5px; cursor: pointer; width: 100%; font-weight: bold; transition: 0.3s; margin-top: 10px; }
              button:hover { background: #004494; }
              .add-btn { background: #28a745; padding: 10px; font-size: 16px; margin-bottom: 15px; width: auto;}
              .add-btn:hover { background: #218838; }
              textarea { width: 100%; height: 250px; margin-top: 20px; padding: 15px; font-family: monospace; direction: ltr; text-align: left; border: 2px solid #333; background: #f4f4f4; box-sizing: border-box; font-size: 16px; border-radius: 5px; }
              .question-list { background: #e9ecef; padding: 10px; border-radius: 5px; margin-bottom: 15px; font-family: monospace; direction: ltr; text-align: left; min-height: 40px; white-space: pre-wrap;}
          </style>
      </head>
      <body>
          <div class="container">
              <h1>מחולל ההגדרות המלא והחכם</h1>
              <p class="subtitle">מודול: קבלת הקלטות ונתונים + כל ההגדרות + בוני שאלות</p>
      
              <form id="generatorForm">
                  <!-- 1. הגדרות כלליות ומעברים -->
                  <div class="section">
                      <h3>הגדרות כלליות ומעברים</h3>
                      <div class="form-row">
                          <div class="form-group">
                              <label>מה מתבצע קודם?</label>
                              <select name="start_first">
                                  <option value="">הקלטות קודם (ברירת מחדל)</option>
                                  <option value="data">הקשות (נתונים) קודם</option>
                              </select>
                          </div>
                          <div class="form-group">
                              <label>מיקום קבצי השמע (השאר ריק לשלוחה הנוכחית):</label>
                              <input type="text" name="recording_and_entering_data_folder_to_play" placeholder="למשל: /1/2">
                          </div>
                      </div>
                      <div class="form-row">
                          <div class="form-group">
                              <label>מעבר בסיום מוצלח:</label>
                              <input type="text" name="recording_and_entering_data_end_goto" placeholder="/1">
                          </div>
                          <div class="form-group">
                              <label>מעבר בשגיאה או חסימה:</label>
                              <input type="text" name="recording_and_entering_data_error_goto" placeholder="/2">
                          </div>
                      </div>
                      <div class="form-row">
                          <div class="form-group">
                              <label>מעבר ביציאה באמצע:</label>
                              <input type="text" name="recording_and_entering_data_exit_goto" placeholder="/3">
                          </div>
                          <div class="form-group">
                              <label>מקש יציאה באמצע הרישום:</label>
                              <input type="number" name="skip_key" placeholder="למשל: 0">
                          </div>
                      </div>
                      <div class="form-group checkbox-group">
                          <input type="checkbox" name="recording_and_entering_data_say_approval_number" value="no">
                          <label>בטל השמעת "נרשמת בהצלחה" בסיום</label>
                      </div>
                  </div>
      
                  <!-- 2. תקשורת: Email, SMS, API -->
                  <div class="section">
                      <h3>התראות ותקשורת (Email, SMS, API)</h3>
                      <div class="form-group checkbox-group">
                          <input type="checkbox" name="set_ok_send_mail" value="yes">
                          <label>שלח דוא"ל בסיום מוצלח</label>
                      </div>
                      <div class="form-group checkbox-group">
                          <input type="checkbox" name="sms_sending_approval" value="yes">
                          <label>שלח SMS למאזין עם מספר האישור בסיום</label>
                      </div>
                      <div class="form-group checkbox-group">
                          <input type="checkbox" name="recording_and_entering_data_ok_sand_api" value="yes">
                          <label>שדר את אישור ההזמנה ב-API לשרת חיצוני</label>
                      </div>
                      <div class="form-row">
                          <div class="form-group">
                              <label>קישור ה-API החיצוני:</label>
                              <input type="text" name="recording_and_entering_data_ok_sand_api_link" placeholder="https://yourdomain.com/api.php">
                          </div>
                      </div>
                  </div>
      
                  <!-- 3. בונה שאלות דינמי - הקלטות -->
                  <div class="section">
                      <h3>בונה שאלות חכם - הקלטות (000-049)</h3>
                      <p class="note">הגדר כאן מאפיינים להקלטות קוליות (זמנים, המרה לטקסט וכו').</p>
      
                      <div class="form-row">
                          <div>
                              <label>מספר שאלה:</label>
                              <input type="text" id="qb_rec_num" value="000" placeholder="000">
                          </div>
                          <div>
                              <label>זמן שקט מקסימלי (שניות):</label>
                              <input type="number" id="qb_rec_silence" placeholder="ברירת מחדל">
                          </div>
                          <div>
                              <label>אורך הקלטה מקסימלי (שניות):</label>
                              <input type="number" id="qb_rec_max" placeholder="ברירת מחדל">
                          </div>
                      </div>
      
                      <div class="form-row">
                          <div>
                              <label>השמעת ההמרה ללקוח (אם הומרה):</label>
                              <select id="qb_rec_tts">
                                  <option value="">ללא השמעה למאזין</option>
                                  <option value="TTS">הקראת טקסט (TTS)</option>
                                  <option value="Digits">ספרות בודדות (Digits)</option>
                                  <option value="Number">מספר שלם (Number)</option>
                                  <option value="Alpha">אותיות באנגלית (Alpha)</option>
                              </select>
                          </div>
                      </div>
      
                      <div class="form-group checkbox-group">
                          <input type="checkbox" id="qb_rec_stt">
                          <label>המר הקלטה לטקסט (STT) - דורש יחידות!</label>
                      </div>
                      <div class="form-group checkbox-group">
                          <input type="checkbox" id="qb_rec_ask">
                          <label>שאל את הלקוח אם ההמרה תקינה (ask)</label>
                      </div>
                      <div class="form-group checkbox-group">
                          <input type="checkbox" id="qb_rec_skip">
                          <label>אפשר דילוג על השאלה (Skip) במקרה של שתיקה/אי זיהוי</label>
                      </div>
      
                      <button type="button" class="add-btn" onclick="addRecordQuestion()">+ הוסף שאלת הקלטה לרשימה</button>
                  </div>
      
                  <!-- 4. בונה שאלות דינמי - הקשות -->
                  <div class="section">
                      <h3>בונה שאלות חכם - נתונים/הקשות (050-099)</h3>
                      <p class="note">הגדר כאן שאלות מבוססות מקלדת טלפונית, מספרים ותאריכים.</p>
      
                      <div class="form-row">
                          <div>
                              <label>מספר שאלה:</label>
                              <input type="text" id="qb_num" value="050" placeholder="050">
                          </div>
                          <div>
                              <label>סוג קלט:</label>
                              <select id="qb_type">
                                  <option value="Number">מספר שלם (ברירת מחדל)</option>
                                  <option value="Digits">הקראת ספרות</option>
                                  <option value="HebrewKeyboard">מקלדת עברית</option>
                                  <option value="EnglishKeyboard">מקלדת אנגלית</option>
                                  <option value="EmailKeyboard">מקלדת דוא"ל</option>
                                  <option value="DigitsKeyboard">מקלדת ספרות</option>
                                  <option value="Price">מחיר (שקלים ואגורות)</option>
                                  <option value="Date">תאריך לועזי</option>
                                  <option value="HebrewDate">תאריך עברי</option>
                                  <option value="TeudatZehut">תעודת זהות</option>
                                  <option value="Phone">מספר טלפון ישראלי</option>
                                  <option value="File">השמעת קובץ לפי הקשה</option>
                                  <option value="TTS">הקראת טקסט מותאם (TTS)</option>
                                  <option value="No">ללא הקראה</option>
                              </select>
                          </div>
                      </div>
      
                      <div class="form-row">
                          <div>
                              <label>מקסימום תווים/ספרות:</label>
                              <input type="number" id="qb_max" placeholder="ללא הגבלה">
                          </div>
                          <div>
                              <label>מינימום תווים/ספרות:</label>
                              <input type="number" id="qb_min" placeholder="ברירת מחדל: 1">
                          </div>
                          <div>
                              <label>זמן המתנה (בשניות):</label>
                              <input type="number" id="qb_timeout" placeholder="ברירת מחדל: 10">
                          </div>
                      </div>
      
                      <div class="form-row">
                          <div>
                              <label>מקשים מותרים בלבד:</label>
                              <input type="text" id="qb_allowed" placeholder="למשל: 1234567890*#">
                          </div>
                          <div>
                              <label>ערך מינימלי מותר:</label>
                              <input type="text" id="qb_minval" placeholder="למשל: 50">
                          </div>
                          <div>
                              <label>ערך מקסימלי מותר:</label>
                              <input type="text" id="qb_maxval" placeholder="למשל: 500">
                          </div>
                      </div>
      
                      <div class="form-group checkbox-group">
                          <input type="checkbox" id="qb_askno">
                          <label>בטל בקשת אישור (AskNo - מעבר מיידי)</label>
                      </div>
                      <div class="form-group checkbox-group">
                          <input type="checkbox" id="qb_skip">
                          <label>אפשר דילוג על השאלה בהקשת *# (Next)</label>
                      </div>
                      <div class="form-group checkbox-group">
                          <input type="checkbox" id="qb_blockstar">
                          <label>חסום הקשת כוכבית (BlockStar)</label>
                      </div>
                      <div class="form-group checkbox-group">
                          <input type="checkbox" id="qb_blockzero">
                          <label>חסום הקשת אפס (BlockZero - לא ניתן להזין 0)</label>
                      </div>
      
                      <button type="button" class="add-btn" onclick="addDigitsQuestion()">+ הוסף שאלת נתונים לרשימה</button>
                  </div>
      
                  <!-- רשימת השאלות שנבנו -->
                  <div class="section">
                      <label>שאלות שהוגדרו מראש (ניתן לערוך ידנית את הטקסט):</label>
                      <div class="question-list" id="questions_list" contenteditable="true"></div>
                  </div>
      
                  <button type="button" onclick="generateINI()">יצר קוד הגדרות סופי</button>
              </form>
      
              <textarea id="result" readonly placeholder="הקוד הסופי יופיע כאן..."></textarea>
          </div>
      
          <script>
              function addRecordQuestion() {
                  let qNum = document.getElementById('qb_rec_num').value.trim() || '000';
                  let vals = new Array(8).fill('');
      
                  vals[0] = document.getElementById('qb_rec_silence').value;
                  vals[1] = document.getElementById('qb_rec_max').value;
                  if(document.getElementById('qb_rec_stt').checked) vals[2] = 'STT';
                  vals[3] = document.getElementById('qb_rec_tts').value;
                  if(document.getElementById('qb_rec_ask').checked) vals[4] = 'ask';
                  if(document.getElementById('qb_rec_skip').checked) vals[5] = 'Skip';
      
                  while(vals.length > 0 && vals[vals.length-1] === '') {
                      vals.pop();
                  }
      
                  let qString = qNum + "-option=" + vals.join('-');
      
                  let list = document.getElementById('questions_list');
                  list.innerText += (list.innerText ? "\n" : "") + qString;
      
                  let nextNum = parseInt(qNum, 10);
                  if(!isNaN(nextNum)) {
                      document.getElementById('qb_rec_num').value = String(nextNum + 1).padStart(3, '0');
                  }
              }
      
              function addDigitsQuestion() {
                  let qNum = document.getElementById('qb_num').value.trim() || '050';
                  let vals = new Array(17).fill('');
      
                  vals[0] = document.getElementById('qb_max').value;
                  vals[1] = document.getElementById('qb_min').value;
                  vals[2] = document.getElementById('qb_timeout').value;
      
                  let qType = document.getElementById('qb_type').value;
                  if(qType !== 'Number') vals[3] = qType;
      
                  if(document.getElementById('qb_askno').checked) vals[4] = 'AskNo';
                  vals[5] = document.getElementById('qb_allowed').value;
      
                  if(document.getElementById('qb_skip').checked) vals[7] = 'Next';
      
                  vals[10] = document.getElementById('qb_minval').value;
                  vals[11] = document.getElementById('qb_maxval').value;
      
                  if(document.getElementById('qb_blockstar').checked) vals[12] = 'BlockStar';
                  if(document.getElementById('qb_blockzero').checked) vals[13] = 'BlockZero';
      
                  while(vals.length > 0 && vals[vals.length-1] === '') {
                      vals.pop();
                  }
      
                  let qString = qNum + "-option=" + vals.join('-');
      
                  let list = document.getElementById('questions_list');
                  list.innerText += (list.innerText ? "\n" : "") + qString;
      
                  let nextNum = parseInt(qNum, 10);
                  if(!isNaN(nextNum)) {
                      document.getElementById('qb_num').value = String(nextNum + 1).padStart(3, '0');
                  }
              }
      
              function generateINI() {
                  let ini = "type=recording_and_entering_data\n";
                  const form = document.getElementById('generatorForm');
      
                  const inputs = form.querySelectorAll('input[type="text"][name], input[type="number"][name], select[name]');
                  inputs.forEach(el => {
                      if(el.value.trim() !== '') {
                          ini += el.name + "=" + el.value.trim() + "\n";
                      }
                  });
      
                  const checkboxes = form.querySelectorAll('input[type="checkbox"][name]');
                  checkboxes.forEach(el => {
                      if(el.checked) {
                          if (el.value === 'yes' || el.value === 'on') {
                              ini += el.name + "=yes\n";
                          } else {
                              ini += el.name + "=" + el.value + "\n";
                          }
                      }
                  });
      
                  const customQuestions = document.getElementById('questions_list').innerText.trim();
                  if (customQuestions) {
                      ini += "\n; הגדרות שאלות (הקלטות והקשות):\n" + customQuestions + "\n";
                  }
      
                  document.getElementById('result').value = ini;
              }
          </script>
      </body>
      </html>
      

      כמובן יש לשמור בקובץ בסיומת html אשמח להארות
      (יש לקחת את הנתונים בעירבון מוגבל) אם מישהו מוצא פשלה שיעדכן!

      א תגובה 1 תגובה אחרונה תגובה ציטוט 0
      • א מנותק
        אביי ורבא @הדיבל המעופף
        נערך לאחרונה על ידי

        @הדיבל-המעופף מבלי לגרוע ממה שעשית, אציין לתועלת המשתמשים שקיים כבר משהו כזה בקוסמוס כאן, והוא ממש משוכלל כולל המרת לשמע וכו'

        תגובה 1 תגובה אחרונה תגובה ציטוט 0

        שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.

        נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.

        בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

        הרשמה התחברות
        • פוסט ראשון
          פוסט אחרון