Користувальницькькі налаштування

Налаштування сайту


receipts

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версій Попередня ревізія
Наступна ревізія
Попередня ревізія
Наступна ревізія По сторонах наступні версії
receipts [2023/06/15 21:01]
bobr
receipts [2023/06/15 21:04]
bobr
Рядок 58: Рядок 58:
  
 ==== QR-коди спеціальні змінні та макроси ==== ==== QR-коди спеціальні змінні та макроси ====
----- +---- \\ 
-Для генерації QR-кодів передбачається використання JS-бібліотеки **jquery.qrcode** і відповідної мінімальної "обв'язки" для неї. У шаблоні-прикладі вже є всі мінімально необхідні для цього скрипти. +Для генерації QR-кодів передбачається використання JS-бібліотеки **jquery.qrcode** і відповідної мінімальної "обвязки" для неї. У шаблоні-прикладі вже є всі мінімально необхідні для цього скрипти.  
 +Для коректної генерації та розташування QR-кодів використовуються такі макроси:
  
 +**{QR_CODES_CNT}**** - кількість QR-кодів, яка, по суті, дорівнює кількості абонентів (документів, що генеруються). Використовується JS-скриптом для обходу елементів DOM з відповідними індексами. Розташовувати в **heading**-секції.
  
 +**{QR_CODE_CONTENT}** - дані, які потрібно "упакувати" в QR-код. Розташовувати в **body**-секції.
 +
 +**{QR_INDEX}** - індекс або порядковий номер QR-коду, за яким JS-скрипт знаходитиме елемент DOM, який міститиме сам QR-код або ж містить дані, що їх треба "упакувати" в QR-код. Розташовувати в **body**-секції.
 +
 +**{QR_EMBED}**** - наявність цього макросу вказує, що генерація QR-кодів повинна проводитися на стороні сервера і готовий QR-код вбудовується в документ у вигляді закодованого в Base64 зображення. Також **необхідно** не забути додати в секцію **heading** прихований інпут виду:
 +<code html>
 +<input id="qr_embedded" type="hidden" value="0" />
 +</code>
 +зі значенням //"value"=1//. Розташовувати в **heading**-секції.\\ Важливо відзначити, що, оскільки, робиться це засобами гуглоАПІ http://chart.apis.google.com/chart - така генерація займає доволі багато часу і не рекомендована для великої кількості документів (хоча на тестах до 100 штук - цілком собі прийнятно - пара хвилин очікування...).
 +
 +Якщо коротко - логіка процесу генерації QR-коду така: 
 +  У циклі від i == 1 до {QR_CODES_CNT} по черзі шукаємо DOM-елементи, наприклад, з id="qr_content_" + i, беремо їхній вміст, 
 +  "упаковуємо" в QR-код, а QR-код зі свого боку пхаємо в DOM-елементи з id="qr" + i. 
 +З чого випливає, що самі QR-коди ніде не зберігаються і генеруються на льоту під час відкриття сторінки в браузері (звісно, якщо ми не використовуємо //{QR_EMBED}//). Таким чином, зберігання зібраного модулем HTML-документа вимагає в рази менше дискового простору, а так само документ стає набагато легшим для пересилання.
 +----
 +\\
 +Окремо варто сказати про спеціальні макроси, які **повинні** розташовуватися виключно в єдиному екземплярі та виключно в **heading**-секції всередині HTML-коментаря (<!-- -->):
 +  * Блок даних, які потрібно "упакувати" в QR-код 
 +<code>
 +    {QR_EXT_START}
 +      here goes your info to pack into QR-code
 +      {MACRO_IS_ALLOWED_HERE}
 +    {QR_EXT_END}
 +</code>
 +  * Формат дати, який ми хочемо використовувати для наших квитанцій. За замовчуванням встановлено стандартний для наших широт \\
 +формат: **дд.мм.ммггг**. Але в цьому макросі ви можете вказати будь-який валідний формат для PHP функції [[https://www.php.net/manual/en/function.date.php|date()]].
 +<code>
 +    {DATES_FORMAT_START}Y-m-d{DATES_FORMAT_END}
 +</code>
 +  * Формат місяць-рік (так-так, для макроса {PAYTILLMONTHYEAR}). За замовчуванням так само встановлено стандартний для наших широт \\
 +формат: **мм.ггггг**. Але в цьому макросі ви можете вказати будь-який валідний формат для PHP функції [[https://www.php.net/manual/en/function.date.php|date()]].
 +<code>
 +    {MONTHYEAR_FORMAT_START}m-Y{MONTHYEAR_FORMAT_END}
 +</code>
 +  * Номери квитанцій будуть генеруватись за принципом {CURDATENODELIMS} + {CURDATETIMENODELIMS}, якщо ви додасте вказаний нижче макрос:
 +<code>
 +{INV_NUM_CURDATETIME}
 +</code>
receipts.txt · Востаннє змінено: 2023/06/15 21:17 повз bobr