Андрей Шевяков

Андрей Шевяков

С нами с 28 сентября 2016; Место в рейтинге пользователей: #108

[FetchIt] - Форма с валидацией номера телефона и выбором страны

Привет форум!

Решил раскрыть такой кейс, как форма с полем ввода номера телефона, ведь с такой задачей разработчик сталкивается частенько. Она далеко непростая и имеет подводные камни. Так давайте же нырнём и первое, что нужно сделать — это разбить её на подзадачи.

  • Валидация: Тут пока всё понятно, нам по хорошему нужно валидировать номер телефона.
  • Форматирование: А с этим пунктом веселее, т.к. пользователи могут писать номер телефона в разных форматах: 8 *** *** ** **, +7 ***-***-**-** +7 (***) *******, 8 (***) *** **-** и еще 100500 вариантов.
  • Разные страны: А теперь всё серьезнее, дело в том, что разные страны это разное форматирование и соответственно разная валидация.
Вы скажете — это очень просто, человечество бороздит космос, электрифицировало города и сёла, придумало интернет и в частности Viber. И вы будете правы, хотя, если бы все люди были похожи на меня, то мы остались бы в первобытном обществе с палками и камнями… но с Viber-ом😀.

Баха Волков
03 марта 2023, 13:10
modx.pro
6
2 838
+18

[СДЕЛАЙ САМ] SendIt и MiniShop2 - заказ в 1 клик - быстро, просто и бесплатно.

Приветствую, решил зафиксировать для себя и поделится с сообществом, прежде всего с новичками, актуальным способом быстро и без боли добавить в интернет-магазин на базе MiniShop2 функцию «Заказать в 1 клик.»
Артур Шевченко
09 февраля 2023, 12:03
modx.pro
11
1 576
+13

Одновременно разбивка по страницам(пагинация) и ajax подгрузка по кнопке "Загрузить еще" в PDO PAGE.

Добрый день! Подскажите пожалуйста возможно ли сделать одновременно пагинацию с разбивкой по страницам и кнопку для ajax загрузки ресурсов при помощи PDO PAGE из коробки?
Алексей
03 февраля 2023, 10:08
modx.pro
5
647
+2

Hook Formit. enKod + MODX

Всем привет!

Поступила задача на интеграцию форм с enkod.io/. Меньше слов — делаем.

У нас есть:
— Ссылка на документацию: openapi.enkod.io/
— API ключ от клиента
— API POST запрос для передачи/обновления данных о контакте в enKod — api.enkod.ru/v1/person/

Иван Бочкарев
03 февраля 2023, 06:57
modx.pro
2
578
+14

Прикручивам migxdb к пользователю в админке

В админке данным пользователя понадобилось прикрутить допполе-таблицу в отдельный таб. Можно было написать таб на extJs, прикрутить Migx или прикрутить getTables. Каждый раз писать на extJs меня напрягает, а getTables не популярный. Так что решил прикрутить Migx. На удивление все получилось. Описание по катом.


Александр Туниеков
03 февраля 2023, 05:23
modx.pro
4
817
+15

Почему в Диспетчере файлов не отображаются SVG файлы?

Приветсвтую, всегда мучался с этим вопросом, может кто подскажет решение. В Файловом менеджере MODx или как его назвать правильно, диспетчер файлов, в нем не отображаются превью SVG файлов. Почему? Везде SVG прописан как разрешенный формат и в источниках файлов везде, но нет, но если выбрать в TV например этот файл отображается нормально, но блин я не вижу что выбрать в диспечере файлов :(( это просто кошмар. Что за хрень? Кто знает как лечить?
Все другие форматы отображаются хорошо.



Роман
09 января 2023, 16:02
modx.pro
1
755
0

Как создать новый метод оплаты для minishop2?

Можете поделиться статьями как добавить свой метод оплаты, суть в оплате такая, получаем объект авторизации передав нужные поля, а так же номер заказа и сумму, и потом передать весь ответ от запроса на фронт, где с помощью js, будет создан объект оплаты, а так же уникальная ссылка, и перенаправит тоже через js. Сам метод оплаты вот epayment.kz/ru/docs/platezhnaya-stranica

Как можно это интегрировать с минишопом?

Сам код вроде есть, но можно ли его отправлять на сам сайт, не будут ли уязвимости.
Пока что код идёт через core, хотя это нигде прикреплено к минишопу, да и получается 403 ошибка, так как пытается подключить к core.

<?php
define('MODX_API_MODE', true);
require $_SERVER['DOCUMENT_ROOT'].'/index.php';

$params = [
    'grant_type' => 'client_credentials',
    'scope' => 'webapi usermanagement email_send verification statement statistics payment',
    'client_id' => $modx->getOption('epay_client_id'),
    'client_secret' => $modx->getOption('epay_client_secret'),
    'invoiceID' => $_POST['invoiceId'],
    'amount' => $_POST['amount'],
    'currency' => 'KZT',
    'terminal' => $modx->getOption('epay_terminal_id'),
    'postLink' => 'https://'.$_SERVER['HTTP_HOST'].'/core/components/epay/succsess.php',
    'failurePostLink' => 'https://'.$_SERVER['HTTP_HOST'].'/core/components/epay/error.php'
];


$debug = $modx->getOption('epay_debug');

$myCurl = curl_init();
curl_setopt_array($myCurl, array(
    CURLOPT_URL => $debug == 1 ? 'https://testoauth.homebank.kz/epay2/oauth2/token' : 'https://epay-oauth.homebank.kz/oauth2/token',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => http_build_query($params)
));
$response = curl_exec($myCurl);
curl_close($myCurl);

header('Content-type: application/json');
echo $response;
Как вариант этот код запихнуть в плагин и поставить обработчик и проверку, но это ведь тоже не правильно. Что лучше сделать в данной ситуации?
Vladimir
09 января 2023, 15:14
modx.pro
1
494
0

Разные цены для разных групп покупателей

Есть несколько групп пользователей, им нужно в товарах отдавать разную цену
наткнулся на этот вопрос,
но там обсуждается подмена цены при добавлении в корзину
другие цены, допустим, будут находится в тв поле (или в опции, не знаю как лучше)
подскажите, как в итоге делать полную подмену цены для отдельной группы пользователей?
alexandr.skyrda
12 декабря 2022, 14:15
modx.pro
1
570
0

msTools - Напоминание о брошенной корзине

Покупал компонент msTools, куда-то пропал из репозитория на modstore.pro
Мне надо было реализовать напоминание пользователю, но выборка mstUnfOrder не работала.

Итак, чтобы заработала выборка выполнить
// MODX Revolution 2.8.3-pl
$modx->addPackage('mstools', $modx->getOption('core_path').'components/mstools/model/', 'modx_mstools_');
$modx->addExtensionPackage('mstools', '[[++core_path]]components/mstools/model/mstools');

Для удобства я ещё добавил поле в бд и схему (Необязательно)
// modx_mstools_unformed_orders
ALTER TABLE `modx_mstools_unformed_orders` ADD `id` INT(10) NOT NULL AUTO_INCREMENT FIRST, ADD UNIQUE `id` (`id`);
// core/components/mstools/model/schema/mstools.mysql.schema.xml
<field key="id" dbtype="int" precision="10" phptype="integer" attributes="unsigned" null="false" default="" index="id" />

Отлично. Выборка заработала
if ($unf = $modx->getObject('mstUnfOrder', ['id' => 1])) {
    echo $unf->email;
}

// $orders = $modx->getCollection('mstUnfOrder', ['email:!=' => '']);
// print_r($orders);

Удачи!
R2m0x94 (Vasily)
24 ноября 2022, 12:41
modx.pro
1
484
0

pdoPage + Easycomm: вывод комментариев на 1 странице с разбивкой кнопкой показать еще

Здравствуйте, друзья!
Столкнулась с задачей вывести комментарии Easycomm на одной странице. Необходимо собрать все комментарии которые находятся под ресурсом с id 5. Комментарии оставлены к дочерним ресурсам ресурса 5. То есть, комментарии оставлены не к ресурсу с id 5, а к дочерним ресурсам родителя с id 5. Мне необх+одимо эти комментарии вывести в новом ресурсе так чтобы на странице отображались по 10 комментариев и была кнопка Показать еще. Поэтому подумала можете pdoPage сможет это сделать.
Вот какой запрос написать с pdoPage, пока не знаю. Не нашла примеры.
Кстати, в комментариях, мне необходимо также вывести pagetitle и дополнительные поля ресурсов (не комментариев). Например, tv.logo, tv.lic.

Может вы сталкивались с подобной задачей? Пожалуйста, поделитесь опытом! Спасибо!
Zulya
18 октября 2022, 07:18
modx.pro
3
572
0