SMSC.ru хук
Всем привет, хотела запостить в modstore, но там уже есть похожие платные дополнения.
Хук для FormIt, который отправляет SMS.
Нужно добавить _smschook_ в _hooks_ вызова сниппета (перед mail). В системных настройках Formit указать ключи:
Хук для FormIt, который отправляет SMS.
Нужно добавить _smschook_ в _hooks_ вызова сниппета (перед mail). В системных настройках Formit указать ключи:
- Логин — [[++smschook_login]]
- Пароль — [[++smschook_password]]
- Телефоны — [[++smschook_phones]] в формате КОД СТРАНЫ + НОМЕР ТЕЛЕФОНА (без +), можно указать несколько через запятую
- smschook_tpl — чанк по аналогии чанка для писем
- smschook_phones — сюда можно передать телефоны
{'!AjaxForm' | snippet : [
'form' => 'tpl.AjaxForm.example',
'emailTpl' => 'contactEmailTpl',
'hooks' => 'smschook,email',
'emailFrom' => $_modx->config.emailsender,
'emailFromName' => $_modx->config.site_name,
'emailSubject' => 'Сообщение с сайта' ~ $_modx->config.site_name,
'emailTo' => $_modx->config.emailsender,
'validate' => 'name:equired',
'smschook_tpl' => 'smscTpl',
]}
Поблагодарить автора
Отправить деньги
Комментарии: 3
Яна, спасибо! Пользуемся уже и довольны :)
Какая умница. Благодарю
Попробовали использовать и
1 вешался модкс на строке
Вот переписанный smschook
1 вешался модкс на строке
$mes = $modx->getChunk($tpl, $scriptProperties);
2 не отправлял сообщения с пробелами.Вот переписанный smschook
<?php
$fields = $hook->getValues();
$phones = $scriptProperties['smschook_phones'];
if(empty($phones)){
$phones = $modx->getOption('smschook_phones', null, '');
}
$tpl = $scriptProperties['smschook_tpl'];
$mes = $modx->getChunk($tpl, $fields);
//return true;
$data = [
'login' => $modx->getOption('smschook_login', null, ''),
'psw' => $modx->getOption('smschook_password', null, ''),
'phones' => $phones,
'mes' => $mes
];
if (empty($data['login']) || empty($data['psw'])
|| empty($data['phones']) || empty($data['mes']) || empty($scriptProperties['smschook_tpl'])) {
$modx->log(modX::LOG_LEVEL_ERROR, '[smscHook] Error sending SMS: empty login, password, phones, message or tpl'.$data['login'].$data['psw'].$phones.$tpl );
return true;
}
$link = 'https://smsc.ru/sys/send.php?login=' . $data['login'] . '&psw=' . $data['psw'] . '&phones=' . $data['phones'] . '&mes=' . urlencode($data['mes']) . '&charset=utf-8';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $link);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($ch);
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == 200 && substr($res, 0, 2) == 'OK') {
curl_close($ch);
return true;
}
$modx->log(modX::LOG_LEVEL_ERROR, '[smscHook] Error sending SMS: ' . print_r(curl_getinfo($ch), true));
curl_close($ch);
return true;
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.