sudya12345 Опубліковано: 20 квітня 2021 Share Опубліковано: 20 квітня 2021 Приветствую, подскажите по логике запроса в twig Есть переменные с номерами телефонов, надо проверить код оператора из списка и уже на основании определенного кода назначить класс со своим лого оператора мой временный костыль работает: {% for contact_telephone in contact_telephones %} {% if contact_telephone starts with '+38(050)' %} <li><a href="tel:{{ contact_telephone|replace({" " : "", "-" : "", "(" : "", ")" : ""}) }}" class="phoneclick"><i class="us-vf"></i> {{ contact_telephone }}</a></li> {% elseif contact_telephone starts with '+38(067)' %} <li><a href="tel:{{ contact_telephone|replace({" " : "", "-" : "", "(" : "", ")" : ""}) }}" class="phoneclick"><i class="us-ks"></i> {{ contact_telephone }}</a></li> {% elseif contact_telephone starts with '+38(063)' %} <li><a href="tel:{{ contact_telephone|replace({" " : "", "-" : "", "(" : "", ")" : ""}) }}" class="phoneclick"><i class="us-lc"></i> {{ contact_telephone }}</a></li> {% else %} <li><a href="tel:{{ contact_telephone|replace({" " : "", "-" : "", "(" : "", ")" : ""}) }}" class="phoneclick"><i class="fas fa-phone-volume"></i> {{ contact_telephone }}</a></li> {% endif %} {% endfor %} как мне упростить код перебирая коды операторов телефонов (050) or (066) or (095) or (099) ??? Надіслати Поділитися на інших сайтах More sharing options...
ocdev_pro Опубліковано: 20 квітня 2021 Share Опубліковано: 20 квітня 2021 1 час назад, sudya12345 сказал: Приветствую, подскажите по логике запроса в twig Есть переменные с номерами телефонов, надо проверить код оператора из списка и уже на основании определенного кода назначить класс со своим лого оператора мой временный костыль работает: {% for contact_telephone in contact_telephones %} {% if contact_telephone starts with '+38(050)' %} <li><a href="tel:{{ contact_telephone|replace({" " : "", "-" : "", "(" : "", ")" : ""}) }}" class="phoneclick"><i class="us-vf"></i> {{ contact_telephone }}</a></li> {% elseif contact_telephone starts with '+38(067)' %} <li><a href="tel:{{ contact_telephone|replace({" " : "", "-" : "", "(" : "", ")" : ""}) }}" class="phoneclick"><i class="us-ks"></i> {{ contact_telephone }}</a></li> {% elseif contact_telephone starts with '+38(063)' %} <li><a href="tel:{{ contact_telephone|replace({" " : "", "-" : "", "(" : "", ")" : ""}) }}" class="phoneclick"><i class="us-lc"></i> {{ contact_telephone }}</a></li> {% else %} <li><a href="tel:{{ contact_telephone|replace({" " : "", "-" : "", "(" : "", ")" : ""}) }}" class="phoneclick"><i class="fas fa-phone-volume"></i> {{ contact_telephone }}</a></li> {% endif %} {% endfor %} как мне упростить код перебирая коды операторов телефонов (050) or (066) or (095) or (099) ??? ну как минимум перестать использовать логику в шаблонах. по рукам надо бить за такое. Пишите проверку через контроллер, strpos и switch case учите php Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 097 073 etc коды городов? Не? не надо? Вам надо отформатировать номер перед выводом проверить количество цифр (удалив все не цифры Проверить длину Проверить наличие тройки восьмерки нуля в начала апд Ой.. невнимательно прочитал первый пост Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 Вы можете создать массив {% set array_code = [ '+3097: 'код иконки', ] %} {% code = contact_tlefone|slice(0,7) %} {% if array_code.code is defined %} {% else %} {% endif %} Надіслати Поділитися на інших сайтах More sharing options... sudya12345 Опубліковано: 21 квітня 2021 Автор Share Опубліковано: 21 квітня 2021 Писал в попых и уставший в поисках решения))) Некоторое уточнение В Украине 3 мобильных оператора и у каждого несколько кодов Водафон (050, 095, 066, 099) Киевстар (067, 097, 096, 068, 098) Лайфселл (063, 073, 093) и вот клиент вводит несколько номеров например Водафона и у всех этих номеров с разным кодом должно быть лого Водафона, ну и если другого оператора соответственно лого другого оператора. К каждому номеру свой лого. Как по мне, самое идеальное было бы использовать операторы или (or ||) 13 часов назад, ocdev_pro сказал: ну как минимум перестать использовать логику в шаблонах. по рукам надо бить за такое. Пишите проверку через контроллер, strpos и switch case учите php учим) работы надо провести в готовом модуле, который вносит свои исправления в контроллер, а разбираться в них нет желания. Ну и если использовать case как мне перебрать несколько кодов одного оператора или под каждый код свой case? Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 8 минут назад, sudya12345 сказал: В Украине 3 мобильных оператора Да вы шо? PeopleNet, Интертелеком Я вам показал приблизительное решение Ваш случай - частный, потому можно и накостылять. Надіслати Поділитися на інших сайтах More sharing options... ocdev_pro Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 14 минут назад, chukcha сказал: Ваш случай - частный, потому можно и накостылять Так если случай частый, может уже пора научиться нормально писать, а не костыли? Советчик 99 лвл Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 1 минуту назад, ocdev_pro сказал: Так если случай частый, может уже пора научиться нормально писать, а не костыли? Советчик 99 лвл ой-ой-ой Вывести три иконки - жестко привязанных к щаблону..ШАБЛОНУ.. А не к логике сайта.. Где вы увидели здесь логику? Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 7 минут назад, chukcha сказал: Где вы увидели здесь логику? Ну вообще меня учили что логика это как раз if, else, or и т.д. )) Может у меня уроки логики какие то неправильные были) Ну а так тоже считаю что это лучше в контроллер всё засунуть. Создать массивы кодов для каждого оператора, и искать в них. Выводя в шаблон уже только картинку привязанную к каждому из массивов с кодами оператора. 1 Надіслати Поділитися на інших сайтах More sharing options... sudya12345 Опубліковано: 21 квітня 2021 Автор Share Опубліковано: 21 квітня 2021 27 минут назад, chukcha сказал: Да вы шо? PeopleNet, Интертелеком этими операторами не воспользоваться обычным мобильным телефоном. С таким успехом можно сказать и про все коды областей укртелекома Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 6 минут назад, iglin сказал: Ну вообще меня учили что логика это как раз if, else, or и т.д. )) Может у меня уроки логики какие то неправильные были) Ну а так тоже считаю что это лучше в контроллер всё засунуть. Создать массивы кодов для каждого оператора, и искать в них. Выводя в шаблон уже только картинку привязанную к каждому из массивов с кодами оператора. т.е. ни в одном шаблоне нет if else Т.е. нет ни какакой логики? Здесь логика выбора иконки .. 7 минут назад, sudya12345 сказал: не воспользоваться обычным мобильным телефоном. хм. что из этого следуете? Если вам нужен универсальный метод, с управлением кодами, иконками - есть смысл делать в контроллере В частном случае(ваш) - костыль - решение Надіслати Поділитися на інших сайтах More sharing options... ocdev_pro Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 1 час назад, sudya12345 сказал: этими операторами не воспользоваться обычным мобильным телефоном. С таким успехом можно сказать и про все коды областей укртелекома Еще как воспользуются, но не все. Много есть у кого код 089 Интертелеком или 091 LycaMobile, которая на базе ТриМоб (Укртелеком). Если я правильно понял, Вы пытаетесь сделать универсальное решение, что бы контактные номера выводились сразу с иконкой оператора где-то на странице. Тогда данные в контроллере которые вы получаете из настроек допустимВот рабочий пример реализации: В контроллере создаете метод для проверки номера и определения ему иконки private function checkPhone($phone) { $result = []; $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); switch ($part_0) { case '38': $phone = substr_replace($phone, '', 0, 2); break; case '80': $phone = substr_replace($phone, '0', 0, 2); break; } $phone_code = substr($phone, 0, 3); switch ($phone_code) { case '050': case '066': case '095': case '099': $result['icon'] = DIR_IMAGE . 'icon/vodafon.png'; //Путь к иконке break; case '063': case '073': case '093': $result['icon'] = DIR_IMAGE . 'icon/lifecell.png'; break; case '067': case '068': case '096': case '097': case '098': $result['icon'] = DIR_IMAGE . 'icon/kievstar.png'; break; default: $result['icon'] = DIR_IMAGE . 'icon/other_code.png'; } $result['tel'] = '38' . $phone; return $result; } Допустим Вы получаете номера из настроек в виде строки $config_phones = '+380501234567,0934538411,38097155354'; //Превращаем строку с разделителем ',' в массив $phones = explode(',', $config_phones); //Обьявляем пустой массив для обработанных данных $data['contact_telephone'] = []; //Церез цикл отправляем номера на обработку foreach ($phones as $number) { $data['contact_telephone'][] = [ 'number' => $number, 'icon' => $this->checkPhone($number); ]; } И затем в twig шаблоне выводите {% for contact_telephone in contact_telephones %} <li><a href="tel:{{ contact_telephone.tel }}" class="phoneclick"><img src="{{ contact_telephone.icon }}" /> {{ contact_telephone.tel }}</a></li> {% endfor %} @chukcha Дальше можно в отпуске сидеть и не засорять бесполезными сообщениями форум 1 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 19 минут назад, ocdev_pro сказал: Еще как воспользуются, но не все. Много есть у кого код 089 Интертелеком или 091 LycaMobile, которая на базе ТриМоб (Укртелеком). Если я правильно понял, Вы пытаетесь сделать универсальное решение, что бы контактные номера выводились сразу с иконкой оператора где-то на странице. Тогда данные в контроллере которые вы получаете из настроек допустимВот рабочий пример реализации: В контроллере создаете метод для проверки номера и определения ему иконки private function checkPhone($phone) { $result = []; $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); switch ($part_0) { case '38': $phone = substr_replace($phone, '', 0, 2); break; case '80': $phone = substr_replace($phone, '0', 0, 2); break; } $phone_code = substr($phone, 0, 3); switch ($phone_code) { case '050': case '066': case '095': case '099': $result['icon'] = DIR_IMAGE . 'icon/vodafon.png'; //Путь к иконке break; case '063': case '073': case '093': $result['icon'] = DIR_IMAGE . 'icon/lifecell.png'; break; case '067': case '068': case '096': case '097': case '098': $result['icon'] = DIR_IMAGE . 'icon/kievstar.png'; break; default: $result['icon'] = DIR_IMAGE . 'icon/other_code.png'; } $result['tel'] = '38' . $phone; return $result; } Допустим Вы получаете номера из настроек в виде строки $config_phones = '+380501234567,0934538411,38097155354'; //Превращаем строку с разделителем ',' в массив $phones = explode(',', $config_phones); //Обьявляем пустой массив для обработанных данных $data['contact_telephone'] = []; //Церез цикл отправляем номера на обработку foreach ($phones as $number) { $data['contact_telephone'][] = [ 'number' => $number, 'icon' => $this->checkPhone($number); ]; } И затем в twig шаблоне выводите {% for contact_telephone in contact_telephones %} <li><a href="tel:{{ contact_telephone.tel }}" class="phoneclick"><img src="{{ contact_telephone.icon }}" /> {{ contact_telephone.tel }}</a></li> {% endfor %} @chukcha Дальше можно в отпуске сидеть и не засорять бесполезными сообщениями форум Я так понимаю, что твоя полезность выше крыше А теперь внимательно смотрим мой код (да, показан в синтаксисе твига) ой.. бида!!! и мой пост 7 часов назад, chukcha сказал: Вам надо отформатировать номер перед выводом проверить количество цифр (удалив все не цифры Проверить длину Проверить наличие тройки восьмерки нуля в начала Что показано у тебя в коде.. $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); йошкин код... Где проверка на количество? Есть еще желчь? Надіслати Поділитися на інших сайтах More sharing options... ocdev_pro Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 14 минут назад, chukcha сказал: Я так понимаю, что твоя полезность выше крыше Ну вероятно да, если даю рабочее правильное решение, вместо заведомо кривого кода. 14 минут назад, chukcha сказал: йошкин код... Где проверка на количество? Не проверка на количество, а выдергивание подстроки для проверки в каком формате номер, т.к в примере я показал, что номер может быть указан +380б 380, 050 итд.. Чукча иди проспись и почитай php и как им пользоваться. В шаблоне такое не пишут, если следовать ООП, то для всего есть своя область ответственности и описанное решение тобой это откровенный говнокод. Никакой желчи, только факты и здравый смысл. Если ты так относишься к своему коду, к клиентским проектам.. то могу им и программистам после тебя только посочувствовать. Т.к дед не понимает, что такое чистота кода и ООП Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Загальні питання Twig Логика проверки наличия нескольких наборов символов в переменной номера телефона Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 097 073 etc коды городов? Не? не надо? Вам надо отформатировать номер перед выводом проверить количество цифр (удалив все не цифры Проверить длину Проверить наличие тройки восьмерки нуля в начала апд Ой.. невнимательно прочитал первый пост Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 Вы можете создать массив {% set array_code = [ '+3097: 'код иконки', ] %} {% code = contact_tlefone|slice(0,7) %} {% if array_code.code is defined %} {% else %} {% endif %} Надіслати Поділитися на інших сайтах More sharing options... sudya12345 Опубліковано: 21 квітня 2021 Автор Share Опубліковано: 21 квітня 2021 Писал в попых и уставший в поисках решения))) Некоторое уточнение В Украине 3 мобильных оператора и у каждого несколько кодов Водафон (050, 095, 066, 099) Киевстар (067, 097, 096, 068, 098) Лайфселл (063, 073, 093) и вот клиент вводит несколько номеров например Водафона и у всех этих номеров с разным кодом должно быть лого Водафона, ну и если другого оператора соответственно лого другого оператора. К каждому номеру свой лого. Как по мне, самое идеальное было бы использовать операторы или (or ||) 13 часов назад, ocdev_pro сказал: ну как минимум перестать использовать логику в шаблонах. по рукам надо бить за такое. Пишите проверку через контроллер, strpos и switch case учите php учим) работы надо провести в готовом модуле, который вносит свои исправления в контроллер, а разбираться в них нет желания. Ну и если использовать case как мне перебрать несколько кодов одного оператора или под каждый код свой case? Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 8 минут назад, sudya12345 сказал: В Украине 3 мобильных оператора Да вы шо? PeopleNet, Интертелеком Я вам показал приблизительное решение Ваш случай - частный, потому можно и накостылять. Надіслати Поділитися на інших сайтах More sharing options... ocdev_pro Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 14 минут назад, chukcha сказал: Ваш случай - частный, потому можно и накостылять Так если случай частый, может уже пора научиться нормально писать, а не костыли? Советчик 99 лвл Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 1 минуту назад, ocdev_pro сказал: Так если случай частый, может уже пора научиться нормально писать, а не костыли? Советчик 99 лвл ой-ой-ой Вывести три иконки - жестко привязанных к щаблону..ШАБЛОНУ.. А не к логике сайта.. Где вы увидели здесь логику? Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 7 минут назад, chukcha сказал: Где вы увидели здесь логику? Ну вообще меня учили что логика это как раз if, else, or и т.д. )) Может у меня уроки логики какие то неправильные были) Ну а так тоже считаю что это лучше в контроллер всё засунуть. Создать массивы кодов для каждого оператора, и искать в них. Выводя в шаблон уже только картинку привязанную к каждому из массивов с кодами оператора. 1 Надіслати Поділитися на інших сайтах More sharing options... sudya12345 Опубліковано: 21 квітня 2021 Автор Share Опубліковано: 21 квітня 2021 27 минут назад, chukcha сказал: Да вы шо? PeopleNet, Интертелеком этими операторами не воспользоваться обычным мобильным телефоном. С таким успехом можно сказать и про все коды областей укртелекома Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 6 минут назад, iglin сказал: Ну вообще меня учили что логика это как раз if, else, or и т.д. )) Может у меня уроки логики какие то неправильные были) Ну а так тоже считаю что это лучше в контроллер всё засунуть. Создать массивы кодов для каждого оператора, и искать в них. Выводя в шаблон уже только картинку привязанную к каждому из массивов с кодами оператора. т.е. ни в одном шаблоне нет if else Т.е. нет ни какакой логики? Здесь логика выбора иконки .. 7 минут назад, sudya12345 сказал: не воспользоваться обычным мобильным телефоном. хм. что из этого следуете? Если вам нужен универсальный метод, с управлением кодами, иконками - есть смысл делать в контроллере В частном случае(ваш) - костыль - решение Надіслати Поділитися на інших сайтах More sharing options... ocdev_pro Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 1 час назад, sudya12345 сказал: этими операторами не воспользоваться обычным мобильным телефоном. С таким успехом можно сказать и про все коды областей укртелекома Еще как воспользуются, но не все. Много есть у кого код 089 Интертелеком или 091 LycaMobile, которая на базе ТриМоб (Укртелеком). Если я правильно понял, Вы пытаетесь сделать универсальное решение, что бы контактные номера выводились сразу с иконкой оператора где-то на странице. Тогда данные в контроллере которые вы получаете из настроек допустимВот рабочий пример реализации: В контроллере создаете метод для проверки номера и определения ему иконки private function checkPhone($phone) { $result = []; $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); switch ($part_0) { case '38': $phone = substr_replace($phone, '', 0, 2); break; case '80': $phone = substr_replace($phone, '0', 0, 2); break; } $phone_code = substr($phone, 0, 3); switch ($phone_code) { case '050': case '066': case '095': case '099': $result['icon'] = DIR_IMAGE . 'icon/vodafon.png'; //Путь к иконке break; case '063': case '073': case '093': $result['icon'] = DIR_IMAGE . 'icon/lifecell.png'; break; case '067': case '068': case '096': case '097': case '098': $result['icon'] = DIR_IMAGE . 'icon/kievstar.png'; break; default: $result['icon'] = DIR_IMAGE . 'icon/other_code.png'; } $result['tel'] = '38' . $phone; return $result; } Допустим Вы получаете номера из настроек в виде строки $config_phones = '+380501234567,0934538411,38097155354'; //Превращаем строку с разделителем ',' в массив $phones = explode(',', $config_phones); //Обьявляем пустой массив для обработанных данных $data['contact_telephone'] = []; //Церез цикл отправляем номера на обработку foreach ($phones as $number) { $data['contact_telephone'][] = [ 'number' => $number, 'icon' => $this->checkPhone($number); ]; } И затем в twig шаблоне выводите {% for contact_telephone in contact_telephones %} <li><a href="tel:{{ contact_telephone.tel }}" class="phoneclick"><img src="{{ contact_telephone.icon }}" /> {{ contact_telephone.tel }}</a></li> {% endfor %} @chukcha Дальше можно в отпуске сидеть и не засорять бесполезными сообщениями форум 1 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 19 минут назад, ocdev_pro сказал: Еще как воспользуются, но не все. Много есть у кого код 089 Интертелеком или 091 LycaMobile, которая на базе ТриМоб (Укртелеком). Если я правильно понял, Вы пытаетесь сделать универсальное решение, что бы контактные номера выводились сразу с иконкой оператора где-то на странице. Тогда данные в контроллере которые вы получаете из настроек допустимВот рабочий пример реализации: В контроллере создаете метод для проверки номера и определения ему иконки private function checkPhone($phone) { $result = []; $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); switch ($part_0) { case '38': $phone = substr_replace($phone, '', 0, 2); break; case '80': $phone = substr_replace($phone, '0', 0, 2); break; } $phone_code = substr($phone, 0, 3); switch ($phone_code) { case '050': case '066': case '095': case '099': $result['icon'] = DIR_IMAGE . 'icon/vodafon.png'; //Путь к иконке break; case '063': case '073': case '093': $result['icon'] = DIR_IMAGE . 'icon/lifecell.png'; break; case '067': case '068': case '096': case '097': case '098': $result['icon'] = DIR_IMAGE . 'icon/kievstar.png'; break; default: $result['icon'] = DIR_IMAGE . 'icon/other_code.png'; } $result['tel'] = '38' . $phone; return $result; } Допустим Вы получаете номера из настроек в виде строки $config_phones = '+380501234567,0934538411,38097155354'; //Превращаем строку с разделителем ',' в массив $phones = explode(',', $config_phones); //Обьявляем пустой массив для обработанных данных $data['contact_telephone'] = []; //Церез цикл отправляем номера на обработку foreach ($phones as $number) { $data['contact_telephone'][] = [ 'number' => $number, 'icon' => $this->checkPhone($number); ]; } И затем в twig шаблоне выводите {% for contact_telephone in contact_telephones %} <li><a href="tel:{{ contact_telephone.tel }}" class="phoneclick"><img src="{{ contact_telephone.icon }}" /> {{ contact_telephone.tel }}</a></li> {% endfor %} @chukcha Дальше можно в отпуске сидеть и не засорять бесполезными сообщениями форум Я так понимаю, что твоя полезность выше крыше А теперь внимательно смотрим мой код (да, показан в синтаксисе твига) ой.. бида!!! и мой пост 7 часов назад, chukcha сказал: Вам надо отформатировать номер перед выводом проверить количество цифр (удалив все не цифры Проверить длину Проверить наличие тройки восьмерки нуля в начала Что показано у тебя в коде.. $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); йошкин код... Где проверка на количество? Есть еще желчь? Надіслати Поділитися на інших сайтах More sharing options... ocdev_pro Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 14 минут назад, chukcha сказал: Я так понимаю, что твоя полезность выше крыше Ну вероятно да, если даю рабочее правильное решение, вместо заведомо кривого кода. 14 минут назад, chukcha сказал: йошкин код... Где проверка на количество? Не проверка на количество, а выдергивание подстроки для проверки в каком формате номер, т.к в примере я показал, что номер может быть указан +380б 380, 050 итд.. Чукча иди проспись и почитай php и как им пользоваться. В шаблоне такое не пишут, если следовать ООП, то для всего есть своя область ответственности и описанное решение тобой это откровенный говнокод. Никакой желчи, только факты и здравый смысл. Если ты так относишься к своему коду, к клиентским проектам.. то могу им и программистам после тебя только посочувствовать. Т.к дед не понимает, что такое чистота кода и ООП Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Загальні питання Twig Логика проверки наличия нескольких наборов символов в переменной номера телефона Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 Вы можете создать массив {% set array_code = [ '+3097: 'код иконки', ] %} {% code = contact_tlefone|slice(0,7) %} {% if array_code.code is defined %} {% else %} {% endif %} Надіслати Поділитися на інших сайтах More sharing options... sudya12345 Опубліковано: 21 квітня 2021 Автор Share Опубліковано: 21 квітня 2021 Писал в попых и уставший в поисках решения))) Некоторое уточнение В Украине 3 мобильных оператора и у каждого несколько кодов Водафон (050, 095, 066, 099) Киевстар (067, 097, 096, 068, 098) Лайфселл (063, 073, 093) и вот клиент вводит несколько номеров например Водафона и у всех этих номеров с разным кодом должно быть лого Водафона, ну и если другого оператора соответственно лого другого оператора. К каждому номеру свой лого. Как по мне, самое идеальное было бы использовать операторы или (or ||) 13 часов назад, ocdev_pro сказал: ну как минимум перестать использовать логику в шаблонах. по рукам надо бить за такое. Пишите проверку через контроллер, strpos и switch case учите php учим) работы надо провести в готовом модуле, который вносит свои исправления в контроллер, а разбираться в них нет желания. Ну и если использовать case как мне перебрать несколько кодов одного оператора или под каждый код свой case? Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 8 минут назад, sudya12345 сказал: В Украине 3 мобильных оператора Да вы шо? PeopleNet, Интертелеком Я вам показал приблизительное решение Ваш случай - частный, потому можно и накостылять. Надіслати Поділитися на інших сайтах More sharing options... ocdev_pro Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 14 минут назад, chukcha сказал: Ваш случай - частный, потому можно и накостылять Так если случай частый, может уже пора научиться нормально писать, а не костыли? Советчик 99 лвл Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 1 минуту назад, ocdev_pro сказал: Так если случай частый, может уже пора научиться нормально писать, а не костыли? Советчик 99 лвл ой-ой-ой Вывести три иконки - жестко привязанных к щаблону..ШАБЛОНУ.. А не к логике сайта.. Где вы увидели здесь логику? Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 7 минут назад, chukcha сказал: Где вы увидели здесь логику? Ну вообще меня учили что логика это как раз if, else, or и т.д. )) Может у меня уроки логики какие то неправильные были) Ну а так тоже считаю что это лучше в контроллер всё засунуть. Создать массивы кодов для каждого оператора, и искать в них. Выводя в шаблон уже только картинку привязанную к каждому из массивов с кодами оператора. 1 Надіслати Поділитися на інших сайтах More sharing options... sudya12345 Опубліковано: 21 квітня 2021 Автор Share Опубліковано: 21 квітня 2021 27 минут назад, chukcha сказал: Да вы шо? PeopleNet, Интертелеком этими операторами не воспользоваться обычным мобильным телефоном. С таким успехом можно сказать и про все коды областей укртелекома Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 6 минут назад, iglin сказал: Ну вообще меня учили что логика это как раз if, else, or и т.д. )) Может у меня уроки логики какие то неправильные были) Ну а так тоже считаю что это лучше в контроллер всё засунуть. Создать массивы кодов для каждого оператора, и искать в них. Выводя в шаблон уже только картинку привязанную к каждому из массивов с кодами оператора. т.е. ни в одном шаблоне нет if else Т.е. нет ни какакой логики? Здесь логика выбора иконки .. 7 минут назад, sudya12345 сказал: не воспользоваться обычным мобильным телефоном. хм. что из этого следуете? Если вам нужен универсальный метод, с управлением кодами, иконками - есть смысл делать в контроллере В частном случае(ваш) - костыль - решение Надіслати Поділитися на інших сайтах More sharing options... ocdev_pro Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 1 час назад, sudya12345 сказал: этими операторами не воспользоваться обычным мобильным телефоном. С таким успехом можно сказать и про все коды областей укртелекома Еще как воспользуются, но не все. Много есть у кого код 089 Интертелеком или 091 LycaMobile, которая на базе ТриМоб (Укртелеком). Если я правильно понял, Вы пытаетесь сделать универсальное решение, что бы контактные номера выводились сразу с иконкой оператора где-то на странице. Тогда данные в контроллере которые вы получаете из настроек допустимВот рабочий пример реализации: В контроллере создаете метод для проверки номера и определения ему иконки private function checkPhone($phone) { $result = []; $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); switch ($part_0) { case '38': $phone = substr_replace($phone, '', 0, 2); break; case '80': $phone = substr_replace($phone, '0', 0, 2); break; } $phone_code = substr($phone, 0, 3); switch ($phone_code) { case '050': case '066': case '095': case '099': $result['icon'] = DIR_IMAGE . 'icon/vodafon.png'; //Путь к иконке break; case '063': case '073': case '093': $result['icon'] = DIR_IMAGE . 'icon/lifecell.png'; break; case '067': case '068': case '096': case '097': case '098': $result['icon'] = DIR_IMAGE . 'icon/kievstar.png'; break; default: $result['icon'] = DIR_IMAGE . 'icon/other_code.png'; } $result['tel'] = '38' . $phone; return $result; } Допустим Вы получаете номера из настроек в виде строки $config_phones = '+380501234567,0934538411,38097155354'; //Превращаем строку с разделителем ',' в массив $phones = explode(',', $config_phones); //Обьявляем пустой массив для обработанных данных $data['contact_telephone'] = []; //Церез цикл отправляем номера на обработку foreach ($phones as $number) { $data['contact_telephone'][] = [ 'number' => $number, 'icon' => $this->checkPhone($number); ]; } И затем в twig шаблоне выводите {% for contact_telephone in contact_telephones %} <li><a href="tel:{{ contact_telephone.tel }}" class="phoneclick"><img src="{{ contact_telephone.icon }}" /> {{ contact_telephone.tel }}</a></li> {% endfor %} @chukcha Дальше можно в отпуске сидеть и не засорять бесполезными сообщениями форум 1 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 19 минут назад, ocdev_pro сказал: Еще как воспользуются, но не все. Много есть у кого код 089 Интертелеком или 091 LycaMobile, которая на базе ТриМоб (Укртелеком). Если я правильно понял, Вы пытаетесь сделать универсальное решение, что бы контактные номера выводились сразу с иконкой оператора где-то на странице. Тогда данные в контроллере которые вы получаете из настроек допустимВот рабочий пример реализации: В контроллере создаете метод для проверки номера и определения ему иконки private function checkPhone($phone) { $result = []; $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); switch ($part_0) { case '38': $phone = substr_replace($phone, '', 0, 2); break; case '80': $phone = substr_replace($phone, '0', 0, 2); break; } $phone_code = substr($phone, 0, 3); switch ($phone_code) { case '050': case '066': case '095': case '099': $result['icon'] = DIR_IMAGE . 'icon/vodafon.png'; //Путь к иконке break; case '063': case '073': case '093': $result['icon'] = DIR_IMAGE . 'icon/lifecell.png'; break; case '067': case '068': case '096': case '097': case '098': $result['icon'] = DIR_IMAGE . 'icon/kievstar.png'; break; default: $result['icon'] = DIR_IMAGE . 'icon/other_code.png'; } $result['tel'] = '38' . $phone; return $result; } Допустим Вы получаете номера из настроек в виде строки $config_phones = '+380501234567,0934538411,38097155354'; //Превращаем строку с разделителем ',' в массив $phones = explode(',', $config_phones); //Обьявляем пустой массив для обработанных данных $data['contact_telephone'] = []; //Церез цикл отправляем номера на обработку foreach ($phones as $number) { $data['contact_telephone'][] = [ 'number' => $number, 'icon' => $this->checkPhone($number); ]; } И затем в twig шаблоне выводите {% for contact_telephone in contact_telephones %} <li><a href="tel:{{ contact_telephone.tel }}" class="phoneclick"><img src="{{ contact_telephone.icon }}" /> {{ contact_telephone.tel }}</a></li> {% endfor %} @chukcha Дальше можно в отпуске сидеть и не засорять бесполезными сообщениями форум Я так понимаю, что твоя полезность выше крыше А теперь внимательно смотрим мой код (да, показан в синтаксисе твига) ой.. бида!!! и мой пост 7 часов назад, chukcha сказал: Вам надо отформатировать номер перед выводом проверить количество цифр (удалив все не цифры Проверить длину Проверить наличие тройки восьмерки нуля в начала Что показано у тебя в коде.. $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); йошкин код... Где проверка на количество? Есть еще желчь? Надіслати Поділитися на інших сайтах More sharing options... ocdev_pro Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 14 минут назад, chukcha сказал: Я так понимаю, что твоя полезность выше крыше Ну вероятно да, если даю рабочее правильное решение, вместо заведомо кривого кода. 14 минут назад, chukcha сказал: йошкин код... Где проверка на количество? Не проверка на количество, а выдергивание подстроки для проверки в каком формате номер, т.к в примере я показал, что номер может быть указан +380б 380, 050 итд.. Чукча иди проспись и почитай php и как им пользоваться. В шаблоне такое не пишут, если следовать ООП, то для всего есть своя область ответственности и описанное решение тобой это откровенный говнокод. Никакой желчи, только факты и здравый смысл. Если ты так относишься к своему коду, к клиентским проектам.. то могу им и программистам после тебя только посочувствовать. Т.к дед не понимает, что такое чистота кода и ООП Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Загальні питання Twig Логика проверки наличия нескольких наборов символов в переменной номера телефона Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
sudya12345 Опубліковано: 21 квітня 2021 Автор Share Опубліковано: 21 квітня 2021 Писал в попых и уставший в поисках решения))) Некоторое уточнение В Украине 3 мобильных оператора и у каждого несколько кодов Водафон (050, 095, 066, 099) Киевстар (067, 097, 096, 068, 098) Лайфселл (063, 073, 093) и вот клиент вводит несколько номеров например Водафона и у всех этих номеров с разным кодом должно быть лого Водафона, ну и если другого оператора соответственно лого другого оператора. К каждому номеру свой лого. Как по мне, самое идеальное было бы использовать операторы или (or ||) 13 часов назад, ocdev_pro сказал: ну как минимум перестать использовать логику в шаблонах. по рукам надо бить за такое. Пишите проверку через контроллер, strpos и switch case учите php учим) работы надо провести в готовом модуле, который вносит свои исправления в контроллер, а разбираться в них нет желания. Ну и если использовать case как мне перебрать несколько кодов одного оператора или под каждый код свой case? Надіслати Поділитися на інших сайтах More sharing options...
chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 8 минут назад, sudya12345 сказал: В Украине 3 мобильных оператора Да вы шо? PeopleNet, Интертелеком Я вам показал приблизительное решение Ваш случай - частный, потому можно и накостылять. Надіслати Поділитися на інших сайтах More sharing options... ocdev_pro Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 14 минут назад, chukcha сказал: Ваш случай - частный, потому можно и накостылять Так если случай частый, может уже пора научиться нормально писать, а не костыли? Советчик 99 лвл Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 1 минуту назад, ocdev_pro сказал: Так если случай частый, может уже пора научиться нормально писать, а не костыли? Советчик 99 лвл ой-ой-ой Вывести три иконки - жестко привязанных к щаблону..ШАБЛОНУ.. А не к логике сайта.. Где вы увидели здесь логику? Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 7 минут назад, chukcha сказал: Где вы увидели здесь логику? Ну вообще меня учили что логика это как раз if, else, or и т.д. )) Может у меня уроки логики какие то неправильные были) Ну а так тоже считаю что это лучше в контроллер всё засунуть. Создать массивы кодов для каждого оператора, и искать в них. Выводя в шаблон уже только картинку привязанную к каждому из массивов с кодами оператора. 1 Надіслати Поділитися на інших сайтах More sharing options... sudya12345 Опубліковано: 21 квітня 2021 Автор Share Опубліковано: 21 квітня 2021 27 минут назад, chukcha сказал: Да вы шо? PeopleNet, Интертелеком этими операторами не воспользоваться обычным мобильным телефоном. С таким успехом можно сказать и про все коды областей укртелекома Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 6 минут назад, iglin сказал: Ну вообще меня учили что логика это как раз if, else, or и т.д. )) Может у меня уроки логики какие то неправильные были) Ну а так тоже считаю что это лучше в контроллер всё засунуть. Создать массивы кодов для каждого оператора, и искать в них. Выводя в шаблон уже только картинку привязанную к каждому из массивов с кодами оператора. т.е. ни в одном шаблоне нет if else Т.е. нет ни какакой логики? Здесь логика выбора иконки .. 7 минут назад, sudya12345 сказал: не воспользоваться обычным мобильным телефоном. хм. что из этого следуете? Если вам нужен универсальный метод, с управлением кодами, иконками - есть смысл делать в контроллере В частном случае(ваш) - костыль - решение Надіслати Поділитися на інших сайтах More sharing options... ocdev_pro Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 1 час назад, sudya12345 сказал: этими операторами не воспользоваться обычным мобильным телефоном. С таким успехом можно сказать и про все коды областей укртелекома Еще как воспользуются, но не все. Много есть у кого код 089 Интертелеком или 091 LycaMobile, которая на базе ТриМоб (Укртелеком). Если я правильно понял, Вы пытаетесь сделать универсальное решение, что бы контактные номера выводились сразу с иконкой оператора где-то на странице. Тогда данные в контроллере которые вы получаете из настроек допустимВот рабочий пример реализации: В контроллере создаете метод для проверки номера и определения ему иконки private function checkPhone($phone) { $result = []; $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); switch ($part_0) { case '38': $phone = substr_replace($phone, '', 0, 2); break; case '80': $phone = substr_replace($phone, '0', 0, 2); break; } $phone_code = substr($phone, 0, 3); switch ($phone_code) { case '050': case '066': case '095': case '099': $result['icon'] = DIR_IMAGE . 'icon/vodafon.png'; //Путь к иконке break; case '063': case '073': case '093': $result['icon'] = DIR_IMAGE . 'icon/lifecell.png'; break; case '067': case '068': case '096': case '097': case '098': $result['icon'] = DIR_IMAGE . 'icon/kievstar.png'; break; default: $result['icon'] = DIR_IMAGE . 'icon/other_code.png'; } $result['tel'] = '38' . $phone; return $result; } Допустим Вы получаете номера из настроек в виде строки $config_phones = '+380501234567,0934538411,38097155354'; //Превращаем строку с разделителем ',' в массив $phones = explode(',', $config_phones); //Обьявляем пустой массив для обработанных данных $data['contact_telephone'] = []; //Церез цикл отправляем номера на обработку foreach ($phones as $number) { $data['contact_telephone'][] = [ 'number' => $number, 'icon' => $this->checkPhone($number); ]; } И затем в twig шаблоне выводите {% for contact_telephone in contact_telephones %} <li><a href="tel:{{ contact_telephone.tel }}" class="phoneclick"><img src="{{ contact_telephone.icon }}" /> {{ contact_telephone.tel }}</a></li> {% endfor %} @chukcha Дальше можно в отпуске сидеть и не засорять бесполезными сообщениями форум 1 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 19 минут назад, ocdev_pro сказал: Еще как воспользуются, но не все. Много есть у кого код 089 Интертелеком или 091 LycaMobile, которая на базе ТриМоб (Укртелеком). Если я правильно понял, Вы пытаетесь сделать универсальное решение, что бы контактные номера выводились сразу с иконкой оператора где-то на странице. Тогда данные в контроллере которые вы получаете из настроек допустимВот рабочий пример реализации: В контроллере создаете метод для проверки номера и определения ему иконки private function checkPhone($phone) { $result = []; $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); switch ($part_0) { case '38': $phone = substr_replace($phone, '', 0, 2); break; case '80': $phone = substr_replace($phone, '0', 0, 2); break; } $phone_code = substr($phone, 0, 3); switch ($phone_code) { case '050': case '066': case '095': case '099': $result['icon'] = DIR_IMAGE . 'icon/vodafon.png'; //Путь к иконке break; case '063': case '073': case '093': $result['icon'] = DIR_IMAGE . 'icon/lifecell.png'; break; case '067': case '068': case '096': case '097': case '098': $result['icon'] = DIR_IMAGE . 'icon/kievstar.png'; break; default: $result['icon'] = DIR_IMAGE . 'icon/other_code.png'; } $result['tel'] = '38' . $phone; return $result; } Допустим Вы получаете номера из настроек в виде строки $config_phones = '+380501234567,0934538411,38097155354'; //Превращаем строку с разделителем ',' в массив $phones = explode(',', $config_phones); //Обьявляем пустой массив для обработанных данных $data['contact_telephone'] = []; //Церез цикл отправляем номера на обработку foreach ($phones as $number) { $data['contact_telephone'][] = [ 'number' => $number, 'icon' => $this->checkPhone($number); ]; } И затем в twig шаблоне выводите {% for contact_telephone in contact_telephones %} <li><a href="tel:{{ contact_telephone.tel }}" class="phoneclick"><img src="{{ contact_telephone.icon }}" /> {{ contact_telephone.tel }}</a></li> {% endfor %} @chukcha Дальше можно в отпуске сидеть и не засорять бесполезными сообщениями форум Я так понимаю, что твоя полезность выше крыше А теперь внимательно смотрим мой код (да, показан в синтаксисе твига) ой.. бида!!! и мой пост 7 часов назад, chukcha сказал: Вам надо отформатировать номер перед выводом проверить количество цифр (удалив все не цифры Проверить длину Проверить наличие тройки восьмерки нуля в начала Что показано у тебя в коде.. $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); йошкин код... Где проверка на количество? Есть еще желчь? Надіслати Поділитися на інших сайтах More sharing options... ocdev_pro Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 14 минут назад, chukcha сказал: Я так понимаю, что твоя полезность выше крыше Ну вероятно да, если даю рабочее правильное решение, вместо заведомо кривого кода. 14 минут назад, chukcha сказал: йошкин код... Где проверка на количество? Не проверка на количество, а выдергивание подстроки для проверки в каком формате номер, т.к в примере я показал, что номер может быть указан +380б 380, 050 итд.. Чукча иди проспись и почитай php и как им пользоваться. В шаблоне такое не пишут, если следовать ООП, то для всего есть своя область ответственности и описанное решение тобой это откровенный говнокод. Никакой желчи, только факты и здравый смысл. Если ты так относишься к своему коду, к клиентским проектам.. то могу им и программистам после тебя только посочувствовать. Т.к дед не понимает, что такое чистота кода и ООП Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Загальні питання Twig Логика проверки наличия нескольких наборов символов в переменной номера телефона Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
ocdev_pro Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 14 минут назад, chukcha сказал: Ваш случай - частный, потому можно и накостылять Так если случай частый, может уже пора научиться нормально писать, а не костыли? Советчик 99 лвл Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 1 минуту назад, ocdev_pro сказал: Так если случай частый, может уже пора научиться нормально писать, а не костыли? Советчик 99 лвл ой-ой-ой Вывести три иконки - жестко привязанных к щаблону..ШАБЛОНУ.. А не к логике сайта.. Где вы увидели здесь логику? Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 7 минут назад, chukcha сказал: Где вы увидели здесь логику? Ну вообще меня учили что логика это как раз if, else, or и т.д. )) Может у меня уроки логики какие то неправильные были) Ну а так тоже считаю что это лучше в контроллер всё засунуть. Создать массивы кодов для каждого оператора, и искать в них. Выводя в шаблон уже только картинку привязанную к каждому из массивов с кодами оператора. 1 Надіслати Поділитися на інших сайтах More sharing options... sudya12345 Опубліковано: 21 квітня 2021 Автор Share Опубліковано: 21 квітня 2021 27 минут назад, chukcha сказал: Да вы шо? PeopleNet, Интертелеком этими операторами не воспользоваться обычным мобильным телефоном. С таким успехом можно сказать и про все коды областей укртелекома Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 6 минут назад, iglin сказал: Ну вообще меня учили что логика это как раз if, else, or и т.д. )) Может у меня уроки логики какие то неправильные были) Ну а так тоже считаю что это лучше в контроллер всё засунуть. Создать массивы кодов для каждого оператора, и искать в них. Выводя в шаблон уже только картинку привязанную к каждому из массивов с кодами оператора. т.е. ни в одном шаблоне нет if else Т.е. нет ни какакой логики? Здесь логика выбора иконки .. 7 минут назад, sudya12345 сказал: не воспользоваться обычным мобильным телефоном. хм. что из этого следуете? Если вам нужен универсальный метод, с управлением кодами, иконками - есть смысл делать в контроллере В частном случае(ваш) - костыль - решение Надіслати Поділитися на інших сайтах More sharing options... ocdev_pro Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 1 час назад, sudya12345 сказал: этими операторами не воспользоваться обычным мобильным телефоном. С таким успехом можно сказать и про все коды областей укртелекома Еще как воспользуются, но не все. Много есть у кого код 089 Интертелеком или 091 LycaMobile, которая на базе ТриМоб (Укртелеком). Если я правильно понял, Вы пытаетесь сделать универсальное решение, что бы контактные номера выводились сразу с иконкой оператора где-то на странице. Тогда данные в контроллере которые вы получаете из настроек допустимВот рабочий пример реализации: В контроллере создаете метод для проверки номера и определения ему иконки private function checkPhone($phone) { $result = []; $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); switch ($part_0) { case '38': $phone = substr_replace($phone, '', 0, 2); break; case '80': $phone = substr_replace($phone, '0', 0, 2); break; } $phone_code = substr($phone, 0, 3); switch ($phone_code) { case '050': case '066': case '095': case '099': $result['icon'] = DIR_IMAGE . 'icon/vodafon.png'; //Путь к иконке break; case '063': case '073': case '093': $result['icon'] = DIR_IMAGE . 'icon/lifecell.png'; break; case '067': case '068': case '096': case '097': case '098': $result['icon'] = DIR_IMAGE . 'icon/kievstar.png'; break; default: $result['icon'] = DIR_IMAGE . 'icon/other_code.png'; } $result['tel'] = '38' . $phone; return $result; } Допустим Вы получаете номера из настроек в виде строки $config_phones = '+380501234567,0934538411,38097155354'; //Превращаем строку с разделителем ',' в массив $phones = explode(',', $config_phones); //Обьявляем пустой массив для обработанных данных $data['contact_telephone'] = []; //Церез цикл отправляем номера на обработку foreach ($phones as $number) { $data['contact_telephone'][] = [ 'number' => $number, 'icon' => $this->checkPhone($number); ]; } И затем в twig шаблоне выводите {% for contact_telephone in contact_telephones %} <li><a href="tel:{{ contact_telephone.tel }}" class="phoneclick"><img src="{{ contact_telephone.icon }}" /> {{ contact_telephone.tel }}</a></li> {% endfor %} @chukcha Дальше можно в отпуске сидеть и не засорять бесполезными сообщениями форум 1 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 19 минут назад, ocdev_pro сказал: Еще как воспользуются, но не все. Много есть у кого код 089 Интертелеком или 091 LycaMobile, которая на базе ТриМоб (Укртелеком). Если я правильно понял, Вы пытаетесь сделать универсальное решение, что бы контактные номера выводились сразу с иконкой оператора где-то на странице. Тогда данные в контроллере которые вы получаете из настроек допустимВот рабочий пример реализации: В контроллере создаете метод для проверки номера и определения ему иконки private function checkPhone($phone) { $result = []; $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); switch ($part_0) { case '38': $phone = substr_replace($phone, '', 0, 2); break; case '80': $phone = substr_replace($phone, '0', 0, 2); break; } $phone_code = substr($phone, 0, 3); switch ($phone_code) { case '050': case '066': case '095': case '099': $result['icon'] = DIR_IMAGE . 'icon/vodafon.png'; //Путь к иконке break; case '063': case '073': case '093': $result['icon'] = DIR_IMAGE . 'icon/lifecell.png'; break; case '067': case '068': case '096': case '097': case '098': $result['icon'] = DIR_IMAGE . 'icon/kievstar.png'; break; default: $result['icon'] = DIR_IMAGE . 'icon/other_code.png'; } $result['tel'] = '38' . $phone; return $result; } Допустим Вы получаете номера из настроек в виде строки $config_phones = '+380501234567,0934538411,38097155354'; //Превращаем строку с разделителем ',' в массив $phones = explode(',', $config_phones); //Обьявляем пустой массив для обработанных данных $data['contact_telephone'] = []; //Церез цикл отправляем номера на обработку foreach ($phones as $number) { $data['contact_telephone'][] = [ 'number' => $number, 'icon' => $this->checkPhone($number); ]; } И затем в twig шаблоне выводите {% for contact_telephone in contact_telephones %} <li><a href="tel:{{ contact_telephone.tel }}" class="phoneclick"><img src="{{ contact_telephone.icon }}" /> {{ contact_telephone.tel }}</a></li> {% endfor %} @chukcha Дальше можно в отпуске сидеть и не засорять бесполезными сообщениями форум Я так понимаю, что твоя полезность выше крыше А теперь внимательно смотрим мой код (да, показан в синтаксисе твига) ой.. бида!!! и мой пост 7 часов назад, chukcha сказал: Вам надо отформатировать номер перед выводом проверить количество цифр (удалив все не цифры Проверить длину Проверить наличие тройки восьмерки нуля в начала Что показано у тебя в коде.. $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); йошкин код... Где проверка на количество? Есть еще желчь? Надіслати Поділитися на інших сайтах More sharing options... ocdev_pro Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 14 минут назад, chukcha сказал: Я так понимаю, что твоя полезность выше крыше Ну вероятно да, если даю рабочее правильное решение, вместо заведомо кривого кода. 14 минут назад, chukcha сказал: йошкин код... Где проверка на количество? Не проверка на количество, а выдергивание подстроки для проверки в каком формате номер, т.к в примере я показал, что номер может быть указан +380б 380, 050 итд.. Чукча иди проспись и почитай php и как им пользоваться. В шаблоне такое не пишут, если следовать ООП, то для всего есть своя область ответственности и описанное решение тобой это откровенный говнокод. Никакой желчи, только факты и здравый смысл. Если ты так относишься к своему коду, к клиентским проектам.. то могу им и программистам после тебя только посочувствовать. Т.к дед не понимает, что такое чистота кода и ООП Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Загальні питання Twig Логика проверки наличия нескольких наборов символов в переменной номера телефона Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 1 минуту назад, ocdev_pro сказал: Так если случай частый, может уже пора научиться нормально писать, а не костыли? Советчик 99 лвл ой-ой-ой Вывести три иконки - жестко привязанных к щаблону..ШАБЛОНУ.. А не к логике сайта.. Где вы увидели здесь логику? Надіслати Поділитися на інших сайтах More sharing options... iglin Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 7 минут назад, chukcha сказал: Где вы увидели здесь логику? Ну вообще меня учили что логика это как раз if, else, or и т.д. )) Может у меня уроки логики какие то неправильные были) Ну а так тоже считаю что это лучше в контроллер всё засунуть. Создать массивы кодов для каждого оператора, и искать в них. Выводя в шаблон уже только картинку привязанную к каждому из массивов с кодами оператора. 1 Надіслати Поділитися на інших сайтах More sharing options... sudya12345 Опубліковано: 21 квітня 2021 Автор Share Опубліковано: 21 квітня 2021 27 минут назад, chukcha сказал: Да вы шо? PeopleNet, Интертелеком этими операторами не воспользоваться обычным мобильным телефоном. С таким успехом можно сказать и про все коды областей укртелекома Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 6 минут назад, iglin сказал: Ну вообще меня учили что логика это как раз if, else, or и т.д. )) Может у меня уроки логики какие то неправильные были) Ну а так тоже считаю что это лучше в контроллер всё засунуть. Создать массивы кодов для каждого оператора, и искать в них. Выводя в шаблон уже только картинку привязанную к каждому из массивов с кодами оператора. т.е. ни в одном шаблоне нет if else Т.е. нет ни какакой логики? Здесь логика выбора иконки .. 7 минут назад, sudya12345 сказал: не воспользоваться обычным мобильным телефоном. хм. что из этого следуете? Если вам нужен универсальный метод, с управлением кодами, иконками - есть смысл делать в контроллере В частном случае(ваш) - костыль - решение Надіслати Поділитися на інших сайтах More sharing options... ocdev_pro Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 1 час назад, sudya12345 сказал: этими операторами не воспользоваться обычным мобильным телефоном. С таким успехом можно сказать и про все коды областей укртелекома Еще как воспользуются, но не все. Много есть у кого код 089 Интертелеком или 091 LycaMobile, которая на базе ТриМоб (Укртелеком). Если я правильно понял, Вы пытаетесь сделать универсальное решение, что бы контактные номера выводились сразу с иконкой оператора где-то на странице. Тогда данные в контроллере которые вы получаете из настроек допустимВот рабочий пример реализации: В контроллере создаете метод для проверки номера и определения ему иконки private function checkPhone($phone) { $result = []; $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); switch ($part_0) { case '38': $phone = substr_replace($phone, '', 0, 2); break; case '80': $phone = substr_replace($phone, '0', 0, 2); break; } $phone_code = substr($phone, 0, 3); switch ($phone_code) { case '050': case '066': case '095': case '099': $result['icon'] = DIR_IMAGE . 'icon/vodafon.png'; //Путь к иконке break; case '063': case '073': case '093': $result['icon'] = DIR_IMAGE . 'icon/lifecell.png'; break; case '067': case '068': case '096': case '097': case '098': $result['icon'] = DIR_IMAGE . 'icon/kievstar.png'; break; default: $result['icon'] = DIR_IMAGE . 'icon/other_code.png'; } $result['tel'] = '38' . $phone; return $result; } Допустим Вы получаете номера из настроек в виде строки $config_phones = '+380501234567,0934538411,38097155354'; //Превращаем строку с разделителем ',' в массив $phones = explode(',', $config_phones); //Обьявляем пустой массив для обработанных данных $data['contact_telephone'] = []; //Церез цикл отправляем номера на обработку foreach ($phones as $number) { $data['contact_telephone'][] = [ 'number' => $number, 'icon' => $this->checkPhone($number); ]; } И затем в twig шаблоне выводите {% for contact_telephone in contact_telephones %} <li><a href="tel:{{ contact_telephone.tel }}" class="phoneclick"><img src="{{ contact_telephone.icon }}" /> {{ contact_telephone.tel }}</a></li> {% endfor %} @chukcha Дальше можно в отпуске сидеть и не засорять бесполезными сообщениями форум 1 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 19 минут назад, ocdev_pro сказал: Еще как воспользуются, но не все. Много есть у кого код 089 Интертелеком или 091 LycaMobile, которая на базе ТриМоб (Укртелеком). Если я правильно понял, Вы пытаетесь сделать универсальное решение, что бы контактные номера выводились сразу с иконкой оператора где-то на странице. Тогда данные в контроллере которые вы получаете из настроек допустимВот рабочий пример реализации: В контроллере создаете метод для проверки номера и определения ему иконки private function checkPhone($phone) { $result = []; $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); switch ($part_0) { case '38': $phone = substr_replace($phone, '', 0, 2); break; case '80': $phone = substr_replace($phone, '0', 0, 2); break; } $phone_code = substr($phone, 0, 3); switch ($phone_code) { case '050': case '066': case '095': case '099': $result['icon'] = DIR_IMAGE . 'icon/vodafon.png'; //Путь к иконке break; case '063': case '073': case '093': $result['icon'] = DIR_IMAGE . 'icon/lifecell.png'; break; case '067': case '068': case '096': case '097': case '098': $result['icon'] = DIR_IMAGE . 'icon/kievstar.png'; break; default: $result['icon'] = DIR_IMAGE . 'icon/other_code.png'; } $result['tel'] = '38' . $phone; return $result; } Допустим Вы получаете номера из настроек в виде строки $config_phones = '+380501234567,0934538411,38097155354'; //Превращаем строку с разделителем ',' в массив $phones = explode(',', $config_phones); //Обьявляем пустой массив для обработанных данных $data['contact_telephone'] = []; //Церез цикл отправляем номера на обработку foreach ($phones as $number) { $data['contact_telephone'][] = [ 'number' => $number, 'icon' => $this->checkPhone($number); ]; } И затем в twig шаблоне выводите {% for contact_telephone in contact_telephones %} <li><a href="tel:{{ contact_telephone.tel }}" class="phoneclick"><img src="{{ contact_telephone.icon }}" /> {{ contact_telephone.tel }}</a></li> {% endfor %} @chukcha Дальше можно в отпуске сидеть и не засорять бесполезными сообщениями форум Я так понимаю, что твоя полезность выше крыше А теперь внимательно смотрим мой код (да, показан в синтаксисе твига) ой.. бида!!! и мой пост 7 часов назад, chukcha сказал: Вам надо отформатировать номер перед выводом проверить количество цифр (удалив все не цифры Проверить длину Проверить наличие тройки восьмерки нуля в начала Что показано у тебя в коде.. $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); йошкин код... Где проверка на количество? Есть еще желчь? Надіслати Поділитися на інших сайтах More sharing options... ocdev_pro Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 14 минут назад, chukcha сказал: Я так понимаю, что твоя полезность выше крыше Ну вероятно да, если даю рабочее правильное решение, вместо заведомо кривого кода. 14 минут назад, chukcha сказал: йошкин код... Где проверка на количество? Не проверка на количество, а выдергивание подстроки для проверки в каком формате номер, т.к в примере я показал, что номер может быть указан +380б 380, 050 итд.. Чукча иди проспись и почитай php и как им пользоваться. В шаблоне такое не пишут, если следовать ООП, то для всего есть своя область ответственности и описанное решение тобой это откровенный говнокод. Никакой желчи, только факты и здравый смысл. Если ты так относишься к своему коду, к клиентским проектам.. то могу им и программистам после тебя только посочувствовать. Т.к дед не понимает, что такое чистота кода и ООП Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Загальні питання Twig Логика проверки наличия нескольких наборов символов в переменной номера телефона Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
iglin Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 7 минут назад, chukcha сказал: Где вы увидели здесь логику? Ну вообще меня учили что логика это как раз if, else, or и т.д. )) Может у меня уроки логики какие то неправильные были) Ну а так тоже считаю что это лучше в контроллер всё засунуть. Создать массивы кодов для каждого оператора, и искать в них. Выводя в шаблон уже только картинку привязанную к каждому из массивов с кодами оператора. 1 Надіслати Поділитися на інших сайтах More sharing options... sudya12345 Опубліковано: 21 квітня 2021 Автор Share Опубліковано: 21 квітня 2021 27 минут назад, chukcha сказал: Да вы шо? PeopleNet, Интертелеком этими операторами не воспользоваться обычным мобильным телефоном. С таким успехом можно сказать и про все коды областей укртелекома Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 6 минут назад, iglin сказал: Ну вообще меня учили что логика это как раз if, else, or и т.д. )) Может у меня уроки логики какие то неправильные были) Ну а так тоже считаю что это лучше в контроллер всё засунуть. Создать массивы кодов для каждого оператора, и искать в них. Выводя в шаблон уже только картинку привязанную к каждому из массивов с кодами оператора. т.е. ни в одном шаблоне нет if else Т.е. нет ни какакой логики? Здесь логика выбора иконки .. 7 минут назад, sudya12345 сказал: не воспользоваться обычным мобильным телефоном. хм. что из этого следуете? Если вам нужен универсальный метод, с управлением кодами, иконками - есть смысл делать в контроллере В частном случае(ваш) - костыль - решение Надіслати Поділитися на інших сайтах More sharing options... ocdev_pro Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 1 час назад, sudya12345 сказал: этими операторами не воспользоваться обычным мобильным телефоном. С таким успехом можно сказать и про все коды областей укртелекома Еще как воспользуются, но не все. Много есть у кого код 089 Интертелеком или 091 LycaMobile, которая на базе ТриМоб (Укртелеком). Если я правильно понял, Вы пытаетесь сделать универсальное решение, что бы контактные номера выводились сразу с иконкой оператора где-то на странице. Тогда данные в контроллере которые вы получаете из настроек допустимВот рабочий пример реализации: В контроллере создаете метод для проверки номера и определения ему иконки private function checkPhone($phone) { $result = []; $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); switch ($part_0) { case '38': $phone = substr_replace($phone, '', 0, 2); break; case '80': $phone = substr_replace($phone, '0', 0, 2); break; } $phone_code = substr($phone, 0, 3); switch ($phone_code) { case '050': case '066': case '095': case '099': $result['icon'] = DIR_IMAGE . 'icon/vodafon.png'; //Путь к иконке break; case '063': case '073': case '093': $result['icon'] = DIR_IMAGE . 'icon/lifecell.png'; break; case '067': case '068': case '096': case '097': case '098': $result['icon'] = DIR_IMAGE . 'icon/kievstar.png'; break; default: $result['icon'] = DIR_IMAGE . 'icon/other_code.png'; } $result['tel'] = '38' . $phone; return $result; } Допустим Вы получаете номера из настроек в виде строки $config_phones = '+380501234567,0934538411,38097155354'; //Превращаем строку с разделителем ',' в массив $phones = explode(',', $config_phones); //Обьявляем пустой массив для обработанных данных $data['contact_telephone'] = []; //Церез цикл отправляем номера на обработку foreach ($phones as $number) { $data['contact_telephone'][] = [ 'number' => $number, 'icon' => $this->checkPhone($number); ]; } И затем в twig шаблоне выводите {% for contact_telephone in contact_telephones %} <li><a href="tel:{{ contact_telephone.tel }}" class="phoneclick"><img src="{{ contact_telephone.icon }}" /> {{ contact_telephone.tel }}</a></li> {% endfor %} @chukcha Дальше можно в отпуске сидеть и не засорять бесполезными сообщениями форум 1 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 19 минут назад, ocdev_pro сказал: Еще как воспользуются, но не все. Много есть у кого код 089 Интертелеком или 091 LycaMobile, которая на базе ТриМоб (Укртелеком). Если я правильно понял, Вы пытаетесь сделать универсальное решение, что бы контактные номера выводились сразу с иконкой оператора где-то на странице. Тогда данные в контроллере которые вы получаете из настроек допустимВот рабочий пример реализации: В контроллере создаете метод для проверки номера и определения ему иконки private function checkPhone($phone) { $result = []; $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); switch ($part_0) { case '38': $phone = substr_replace($phone, '', 0, 2); break; case '80': $phone = substr_replace($phone, '0', 0, 2); break; } $phone_code = substr($phone, 0, 3); switch ($phone_code) { case '050': case '066': case '095': case '099': $result['icon'] = DIR_IMAGE . 'icon/vodafon.png'; //Путь к иконке break; case '063': case '073': case '093': $result['icon'] = DIR_IMAGE . 'icon/lifecell.png'; break; case '067': case '068': case '096': case '097': case '098': $result['icon'] = DIR_IMAGE . 'icon/kievstar.png'; break; default: $result['icon'] = DIR_IMAGE . 'icon/other_code.png'; } $result['tel'] = '38' . $phone; return $result; } Допустим Вы получаете номера из настроек в виде строки $config_phones = '+380501234567,0934538411,38097155354'; //Превращаем строку с разделителем ',' в массив $phones = explode(',', $config_phones); //Обьявляем пустой массив для обработанных данных $data['contact_telephone'] = []; //Церез цикл отправляем номера на обработку foreach ($phones as $number) { $data['contact_telephone'][] = [ 'number' => $number, 'icon' => $this->checkPhone($number); ]; } И затем в twig шаблоне выводите {% for contact_telephone in contact_telephones %} <li><a href="tel:{{ contact_telephone.tel }}" class="phoneclick"><img src="{{ contact_telephone.icon }}" /> {{ contact_telephone.tel }}</a></li> {% endfor %} @chukcha Дальше можно в отпуске сидеть и не засорять бесполезными сообщениями форум Я так понимаю, что твоя полезность выше крыше А теперь внимательно смотрим мой код (да, показан в синтаксисе твига) ой.. бида!!! и мой пост 7 часов назад, chukcha сказал: Вам надо отформатировать номер перед выводом проверить количество цифр (удалив все не цифры Проверить длину Проверить наличие тройки восьмерки нуля в начала Что показано у тебя в коде.. $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); йошкин код... Где проверка на количество? Есть еще желчь? Надіслати Поділитися на інших сайтах More sharing options... ocdev_pro Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 14 минут назад, chukcha сказал: Я так понимаю, что твоя полезность выше крыше Ну вероятно да, если даю рабочее правильное решение, вместо заведомо кривого кода. 14 минут назад, chukcha сказал: йошкин код... Где проверка на количество? Не проверка на количество, а выдергивание подстроки для проверки в каком формате номер, т.к в примере я показал, что номер может быть указан +380б 380, 050 итд.. Чукча иди проспись и почитай php и как им пользоваться. В шаблоне такое не пишут, если следовать ООП, то для всего есть своя область ответственности и описанное решение тобой это откровенный говнокод. Никакой желчи, только факты и здравый смысл. Если ты так относишься к своему коду, к клиентским проектам.. то могу им и программистам после тебя только посочувствовать. Т.к дед не понимает, что такое чистота кода и ООП Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Загальні питання Twig Логика проверки наличия нескольких наборов символов в переменной номера телефона Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
sudya12345 Опубліковано: 21 квітня 2021 Автор Share Опубліковано: 21 квітня 2021 27 минут назад, chukcha сказал: Да вы шо? PeopleNet, Интертелеком этими операторами не воспользоваться обычным мобильным телефоном. С таким успехом можно сказать и про все коды областей укртелекома Надіслати Поділитися на інших сайтах More sharing options...
chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 6 минут назад, iglin сказал: Ну вообще меня учили что логика это как раз if, else, or и т.д. )) Может у меня уроки логики какие то неправильные были) Ну а так тоже считаю что это лучше в контроллер всё засунуть. Создать массивы кодов для каждого оператора, и искать в них. Выводя в шаблон уже только картинку привязанную к каждому из массивов с кодами оператора. т.е. ни в одном шаблоне нет if else Т.е. нет ни какакой логики? Здесь логика выбора иконки .. 7 минут назад, sudya12345 сказал: не воспользоваться обычным мобильным телефоном. хм. что из этого следуете? Если вам нужен универсальный метод, с управлением кодами, иконками - есть смысл делать в контроллере В частном случае(ваш) - костыль - решение Надіслати Поділитися на інших сайтах More sharing options... ocdev_pro Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 1 час назад, sudya12345 сказал: этими операторами не воспользоваться обычным мобильным телефоном. С таким успехом можно сказать и про все коды областей укртелекома Еще как воспользуются, но не все. Много есть у кого код 089 Интертелеком или 091 LycaMobile, которая на базе ТриМоб (Укртелеком). Если я правильно понял, Вы пытаетесь сделать универсальное решение, что бы контактные номера выводились сразу с иконкой оператора где-то на странице. Тогда данные в контроллере которые вы получаете из настроек допустимВот рабочий пример реализации: В контроллере создаете метод для проверки номера и определения ему иконки private function checkPhone($phone) { $result = []; $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); switch ($part_0) { case '38': $phone = substr_replace($phone, '', 0, 2); break; case '80': $phone = substr_replace($phone, '0', 0, 2); break; } $phone_code = substr($phone, 0, 3); switch ($phone_code) { case '050': case '066': case '095': case '099': $result['icon'] = DIR_IMAGE . 'icon/vodafon.png'; //Путь к иконке break; case '063': case '073': case '093': $result['icon'] = DIR_IMAGE . 'icon/lifecell.png'; break; case '067': case '068': case '096': case '097': case '098': $result['icon'] = DIR_IMAGE . 'icon/kievstar.png'; break; default: $result['icon'] = DIR_IMAGE . 'icon/other_code.png'; } $result['tel'] = '38' . $phone; return $result; } Допустим Вы получаете номера из настроек в виде строки $config_phones = '+380501234567,0934538411,38097155354'; //Превращаем строку с разделителем ',' в массив $phones = explode(',', $config_phones); //Обьявляем пустой массив для обработанных данных $data['contact_telephone'] = []; //Церез цикл отправляем номера на обработку foreach ($phones as $number) { $data['contact_telephone'][] = [ 'number' => $number, 'icon' => $this->checkPhone($number); ]; } И затем в twig шаблоне выводите {% for contact_telephone in contact_telephones %} <li><a href="tel:{{ contact_telephone.tel }}" class="phoneclick"><img src="{{ contact_telephone.icon }}" /> {{ contact_telephone.tel }}</a></li> {% endfor %} @chukcha Дальше можно в отпуске сидеть и не засорять бесполезными сообщениями форум 1 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 19 минут назад, ocdev_pro сказал: Еще как воспользуются, но не все. Много есть у кого код 089 Интертелеком или 091 LycaMobile, которая на базе ТриМоб (Укртелеком). Если я правильно понял, Вы пытаетесь сделать универсальное решение, что бы контактные номера выводились сразу с иконкой оператора где-то на странице. Тогда данные в контроллере которые вы получаете из настроек допустимВот рабочий пример реализации: В контроллере создаете метод для проверки номера и определения ему иконки private function checkPhone($phone) { $result = []; $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); switch ($part_0) { case '38': $phone = substr_replace($phone, '', 0, 2); break; case '80': $phone = substr_replace($phone, '0', 0, 2); break; } $phone_code = substr($phone, 0, 3); switch ($phone_code) { case '050': case '066': case '095': case '099': $result['icon'] = DIR_IMAGE . 'icon/vodafon.png'; //Путь к иконке break; case '063': case '073': case '093': $result['icon'] = DIR_IMAGE . 'icon/lifecell.png'; break; case '067': case '068': case '096': case '097': case '098': $result['icon'] = DIR_IMAGE . 'icon/kievstar.png'; break; default: $result['icon'] = DIR_IMAGE . 'icon/other_code.png'; } $result['tel'] = '38' . $phone; return $result; } Допустим Вы получаете номера из настроек в виде строки $config_phones = '+380501234567,0934538411,38097155354'; //Превращаем строку с разделителем ',' в массив $phones = explode(',', $config_phones); //Обьявляем пустой массив для обработанных данных $data['contact_telephone'] = []; //Церез цикл отправляем номера на обработку foreach ($phones as $number) { $data['contact_telephone'][] = [ 'number' => $number, 'icon' => $this->checkPhone($number); ]; } И затем в twig шаблоне выводите {% for contact_telephone in contact_telephones %} <li><a href="tel:{{ contact_telephone.tel }}" class="phoneclick"><img src="{{ contact_telephone.icon }}" /> {{ contact_telephone.tel }}</a></li> {% endfor %} @chukcha Дальше можно в отпуске сидеть и не засорять бесполезными сообщениями форум Я так понимаю, что твоя полезность выше крыше А теперь внимательно смотрим мой код (да, показан в синтаксисе твига) ой.. бида!!! и мой пост 7 часов назад, chukcha сказал: Вам надо отформатировать номер перед выводом проверить количество цифр (удалив все не цифры Проверить длину Проверить наличие тройки восьмерки нуля в начала Что показано у тебя в коде.. $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); йошкин код... Где проверка на количество? Есть еще желчь? Надіслати Поділитися на інших сайтах More sharing options... ocdev_pro Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 14 минут назад, chukcha сказал: Я так понимаю, что твоя полезность выше крыше Ну вероятно да, если даю рабочее правильное решение, вместо заведомо кривого кода. 14 минут назад, chukcha сказал: йошкин код... Где проверка на количество? Не проверка на количество, а выдергивание подстроки для проверки в каком формате номер, т.к в примере я показал, что номер может быть указан +380б 380, 050 итд.. Чукча иди проспись и почитай php и как им пользоваться. В шаблоне такое не пишут, если следовать ООП, то для всего есть своя область ответственности и описанное решение тобой это откровенный говнокод. Никакой желчи, только факты и здравый смысл. Если ты так относишься к своему коду, к клиентским проектам.. то могу им и программистам после тебя только посочувствовать. Т.к дед не понимает, что такое чистота кода и ООП Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Загальні питання Twig Логика проверки наличия нескольких наборов символов в переменной номера телефона Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich
ocdev_pro Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 1 час назад, sudya12345 сказал: этими операторами не воспользоваться обычным мобильным телефоном. С таким успехом можно сказать и про все коды областей укртелекома Еще как воспользуются, но не все. Много есть у кого код 089 Интертелеком или 091 LycaMobile, которая на базе ТриМоб (Укртелеком). Если я правильно понял, Вы пытаетесь сделать универсальное решение, что бы контактные номера выводились сразу с иконкой оператора где-то на странице. Тогда данные в контроллере которые вы получаете из настроек допустимВот рабочий пример реализации: В контроллере создаете метод для проверки номера и определения ему иконки private function checkPhone($phone) { $result = []; $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); switch ($part_0) { case '38': $phone = substr_replace($phone, '', 0, 2); break; case '80': $phone = substr_replace($phone, '0', 0, 2); break; } $phone_code = substr($phone, 0, 3); switch ($phone_code) { case '050': case '066': case '095': case '099': $result['icon'] = DIR_IMAGE . 'icon/vodafon.png'; //Путь к иконке break; case '063': case '073': case '093': $result['icon'] = DIR_IMAGE . 'icon/lifecell.png'; break; case '067': case '068': case '096': case '097': case '098': $result['icon'] = DIR_IMAGE . 'icon/kievstar.png'; break; default: $result['icon'] = DIR_IMAGE . 'icon/other_code.png'; } $result['tel'] = '38' . $phone; return $result; } Допустим Вы получаете номера из настроек в виде строки $config_phones = '+380501234567,0934538411,38097155354'; //Превращаем строку с разделителем ',' в массив $phones = explode(',', $config_phones); //Обьявляем пустой массив для обработанных данных $data['contact_telephone'] = []; //Церез цикл отправляем номера на обработку foreach ($phones as $number) { $data['contact_telephone'][] = [ 'number' => $number, 'icon' => $this->checkPhone($number); ]; } И затем в twig шаблоне выводите {% for contact_telephone in contact_telephones %} <li><a href="tel:{{ contact_telephone.tel }}" class="phoneclick"><img src="{{ contact_telephone.icon }}" /> {{ contact_telephone.tel }}</a></li> {% endfor %} @chukcha Дальше можно в отпуске сидеть и не засорять бесполезными сообщениями форум 1 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 19 минут назад, ocdev_pro сказал: Еще как воспользуются, но не все. Много есть у кого код 089 Интертелеком или 091 LycaMobile, которая на базе ТриМоб (Укртелеком). Если я правильно понял, Вы пытаетесь сделать универсальное решение, что бы контактные номера выводились сразу с иконкой оператора где-то на странице. Тогда данные в контроллере которые вы получаете из настроек допустимВот рабочий пример реализации: В контроллере создаете метод для проверки номера и определения ему иконки private function checkPhone($phone) { $result = []; $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); switch ($part_0) { case '38': $phone = substr_replace($phone, '', 0, 2); break; case '80': $phone = substr_replace($phone, '0', 0, 2); break; } $phone_code = substr($phone, 0, 3); switch ($phone_code) { case '050': case '066': case '095': case '099': $result['icon'] = DIR_IMAGE . 'icon/vodafon.png'; //Путь к иконке break; case '063': case '073': case '093': $result['icon'] = DIR_IMAGE . 'icon/lifecell.png'; break; case '067': case '068': case '096': case '097': case '098': $result['icon'] = DIR_IMAGE . 'icon/kievstar.png'; break; default: $result['icon'] = DIR_IMAGE . 'icon/other_code.png'; } $result['tel'] = '38' . $phone; return $result; } Допустим Вы получаете номера из настроек в виде строки $config_phones = '+380501234567,0934538411,38097155354'; //Превращаем строку с разделителем ',' в массив $phones = explode(',', $config_phones); //Обьявляем пустой массив для обработанных данных $data['contact_telephone'] = []; //Церез цикл отправляем номера на обработку foreach ($phones as $number) { $data['contact_telephone'][] = [ 'number' => $number, 'icon' => $this->checkPhone($number); ]; } И затем в twig шаблоне выводите {% for contact_telephone in contact_telephones %} <li><a href="tel:{{ contact_telephone.tel }}" class="phoneclick"><img src="{{ contact_telephone.icon }}" /> {{ contact_telephone.tel }}</a></li> {% endfor %} @chukcha Дальше можно в отпуске сидеть и не засорять бесполезными сообщениями форум Я так понимаю, что твоя полезность выше крыше А теперь внимательно смотрим мой код (да, показан в синтаксисе твига) ой.. бида!!! и мой пост 7 часов назад, chukcha сказал: Вам надо отформатировать номер перед выводом проверить количество цифр (удалив все не цифры Проверить длину Проверить наличие тройки восьмерки нуля в начала Что показано у тебя в коде.. $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); йошкин код... Где проверка на количество? Есть еще желчь? Надіслати Поділитися на інших сайтах More sharing options... ocdev_pro Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 14 минут назад, chukcha сказал: Я так понимаю, что твоя полезность выше крыше Ну вероятно да, если даю рабочее правильное решение, вместо заведомо кривого кода. 14 минут назад, chukcha сказал: йошкин код... Где проверка на количество? Не проверка на количество, а выдергивание подстроки для проверки в каком формате номер, т.к в примере я показал, что номер может быть указан +380б 380, 050 итд.. Чукча иди проспись и почитай php и как им пользоваться. В шаблоне такое не пишут, если следовать ООП, то для всего есть своя область ответственности и описанное решение тобой это откровенный говнокод. Никакой желчи, только факты и здравый смысл. Если ты так относишься к своему коду, к клиентским проектам.. то могу им и программистам после тебя только посочувствовать. Т.к дед не понимает, что такое чистота кода и ООП Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Загальні питання Twig Логика проверки наличия нескольких наборов символов в переменной номера телефона
chukcha Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 19 минут назад, ocdev_pro сказал: Еще как воспользуются, но не все. Много есть у кого код 089 Интертелеком или 091 LycaMobile, которая на базе ТриМоб (Укртелеком). Если я правильно понял, Вы пытаетесь сделать универсальное решение, что бы контактные номера выводились сразу с иконкой оператора где-то на странице. Тогда данные в контроллере которые вы получаете из настроек допустимВот рабочий пример реализации: В контроллере создаете метод для проверки номера и определения ему иконки private function checkPhone($phone) { $result = []; $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); switch ($part_0) { case '38': $phone = substr_replace($phone, '', 0, 2); break; case '80': $phone = substr_replace($phone, '0', 0, 2); break; } $phone_code = substr($phone, 0, 3); switch ($phone_code) { case '050': case '066': case '095': case '099': $result['icon'] = DIR_IMAGE . 'icon/vodafon.png'; //Путь к иконке break; case '063': case '073': case '093': $result['icon'] = DIR_IMAGE . 'icon/lifecell.png'; break; case '067': case '068': case '096': case '097': case '098': $result['icon'] = DIR_IMAGE . 'icon/kievstar.png'; break; default: $result['icon'] = DIR_IMAGE . 'icon/other_code.png'; } $result['tel'] = '38' . $phone; return $result; } Допустим Вы получаете номера из настроек в виде строки $config_phones = '+380501234567,0934538411,38097155354'; //Превращаем строку с разделителем ',' в массив $phones = explode(',', $config_phones); //Обьявляем пустой массив для обработанных данных $data['contact_telephone'] = []; //Церез цикл отправляем номера на обработку foreach ($phones as $number) { $data['contact_telephone'][] = [ 'number' => $number, 'icon' => $this->checkPhone($number); ]; } И затем в twig шаблоне выводите {% for contact_telephone in contact_telephones %} <li><a href="tel:{{ contact_telephone.tel }}" class="phoneclick"><img src="{{ contact_telephone.icon }}" /> {{ contact_telephone.tel }}</a></li> {% endfor %} @chukcha Дальше можно в отпуске сидеть и не засорять бесполезными сообщениями форум Я так понимаю, что твоя полезность выше крыше А теперь внимательно смотрим мой код (да, показан в синтаксисе твига) ой.. бида!!! и мой пост 7 часов назад, chukcha сказал: Вам надо отформатировать номер перед выводом проверить количество цифр (удалив все не цифры Проверить длину Проверить наличие тройки восьмерки нуля в начала Что показано у тебя в коде.. $phone = preg_replace("/[^0-9]/", '', $phone); $part_0 = substr($phone, 0, 2); йошкин код... Где проверка на количество? Есть еще желчь? Надіслати Поділитися на інших сайтах More sharing options... ocdev_pro Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 14 минут назад, chukcha сказал: Я так понимаю, что твоя полезность выше крыше Ну вероятно да, если даю рабочее правильное решение, вместо заведомо кривого кода. 14 минут назад, chukcha сказал: йошкин код... Где проверка на количество? Не проверка на количество, а выдергивание подстроки для проверки в каком формате номер, т.к в примере я показал, что номер может быть указан +380б 380, 050 итд.. Чукча иди проспись и почитай php и как им пользоваться. В шаблоне такое не пишут, если следовать ООП, то для всего есть своя область ответственности и описанное решение тобой это откровенный говнокод. Никакой желчи, только факты и здравый смысл. Если ты так относишься к своему коду, к клиентским проектам.. то могу им и программистам после тебя только посочувствовать. Т.к дед не понимает, что такое чистота кода и ООП Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
ocdev_pro Опубліковано: 21 квітня 2021 Share Опубліковано: 21 квітня 2021 14 минут назад, chukcha сказал: Я так понимаю, что твоя полезность выше крыше Ну вероятно да, если даю рабочее правильное решение, вместо заведомо кривого кода. 14 минут назад, chukcha сказал: йошкин код... Где проверка на количество? Не проверка на количество, а выдергивание подстроки для проверки в каком формате номер, т.к в примере я показал, что номер может быть указан +380б 380, 050 итд.. Чукча иди проспись и почитай php и как им пользоваться. В шаблоне такое не пишут, если следовать ООП, то для всего есть своя область ответственности и описанное решение тобой это откровенный говнокод. Никакой желчи, только факты и здравый смысл. Если ты так относишься к своему коду, к клиентским проектам.. то могу им и программистам после тебя только посочувствовать. Т.к дед не понимает, что такое чистота кода и ООП Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 2
Recommended Posts