Добрый день всем! Подскажите, пожалуйста, если кто-то знает, где мне искать файл в котором к полям с номером телефона добавляется атрибут data-enable-custom-mask=“true” .
Столкнулся с проблемой что указываю в настройках маску, а она не добавляется в том виде в котором я ее вписываю в настройках модуля “обратный звонок” ни к одному полю ввода телефона. Начал разбираться и понял что в условиях скрипта прописано что должен быть атрибут data-enable-custom-mask=“true” чтобы применилась моя маска, но его нет. И нигде не могу найти где и как он добавляется. Может кто-то подсказать ?
Поиск по файлам дает только один файл
design/themes/responsive/templates/addons/call_requests/views/call_requests/components/call_requests_content.tpl
у меня в этом файле нет ничего… Можете подсказать более конкретно где оно у вас есть, на каких элементах ?
И если не сложно, посмотрите может у вас где-то в js встречается enableCustomMask кроме условий в js/tygh/phone_mask.js
Да, в последней версии нет.
Только phone_mask.js
Можете сделать свой собственную функцию и привязать в шаблон
Пример:
function formatPhoneNumber($phoneNumber) {
// Удаление всех символов, кроме цифр
$cleanedPhoneNumber = preg_replace('/[^0-9]/', '', $phoneNumber);
// Определение длины номера телефона
$length = strlen($cleanedPhoneNumber);
// Проверка наличия номера телефона
if ($length === 0) {
return ''; // Возвращаем пустую строку, если номер отсутствует
}
// Определение формата маски в зависимости от длины номера
$mask = ($length === 11) ? '+X (XXX) XXX-XXXX' : '(XXX) XXX-XXXX';
// Форматирование номера телефона с использованием маски
$formattedPhoneNumber = '';
$position = 0;
for ($i = 0; $i < strlen($mask); $i++) {
if ($mask[$i] === 'X') {
$formattedPhoneNumber .= $cleanedPhoneNumber[$position];
$position++;
} else {
$formattedPhoneNumber .= $mask[$i];
}
}
return $formattedPhoneNumber;
}
Шаблон:
{$phone|formatPhoneNumber}
Мне проще добавить этот атрибут и менять маску в настройках в админке, я не лезть в код каждый раз когда захочется что-то изменить.
document.addEventListener(‘DOMContentLoaded’, function () {
var elements = document.getElementsByClassName(‘cm-mask-phone’);
for (var i = 0; i < elements.length; i++) {
elements[i].setAttribute('data-enable-custom-mask', 'true');
}
});
Получается есть условия на проверку наличия этого атрибута, но нигде нет момента где бы он добавлялся к полям с номером телефона ?
Ну в старой версии же я нашел. Видимо, выпилили, но не полностью