Efendy
|
|
« Ответ #15 : 11 Июня 2014, 22:58:39 » |
|
Чтобы уходила СМС о скором окончании услуги, в каком из форматов надо вводить номер телефона в личном кабинете, +38093..., 38093... или 093... ?
любом из этих трех
|
|
|
Записан
|
|
|
|
poxy.
NoDeny
Спец
Карма: 10
Offline
Сообщений: 844
|
|
« Ответ #16 : 15 Июня 2014, 07:56:12 » |
|
Нужно сделать отправку на +38 и +7. В файлах patch.ajUserMenu.pl, create.nod.turbosms.pm закомментировал : sub phone_extract { my($phone) = @_; # ' +38(067)-123-44-55, 7888080' $phone =~ s/^\s*//; # удаляем стартовые пробелы '+38(067)-123-44-55, 7888080' $phone =~ s/^\+//; # удаляем стартовый + '38(067)-123-44-55, 7888080' $phone =~ s/[^\d\-\(\)].*$//; # удаляем 2й телефон '38(067)-123-44-55' $phone =~ s/\D//g; # удаляем не цифры '380671234455' # $phone =~ s/^3?8//g; # удаляем 3 или 38 '0671234455' # length($phone) == 10 or return ''; # $phone =~ /^0/ or return ''; # если начинается не с 0, скорее всего телефон некорректен # return '+38'.$phone; # возвращаем 380671234455 } Стало отправлять, но я так понимаю что данные проверки сделаны не просто так, поправьте код модуля для работы и с +38 и с +7. Спасибо.
|
|
« Последнее редактирование: 15 Июня 2014, 08:58:38 от stimels7 »
|
Записан
|
|
|
|
ser970
NoDeny
Спец
Карма: 70
Offline
Сообщений: 1323
|
|
« Ответ #17 : 15 Июня 2014, 15:27:27 » |
|
ну где-то так наверное... sub phone_extract { my($phone) = @_; # ' +38(067)-123-44-55, 7888080' $phone =~ s/^\s*//; # удаляем стартовые пробелы '+38(067)-123-44-55, 7888080' $phone =~ s/^\+//; # удаляем стартовый + '38(067)-123-44-55, 7888080' $phone =~ s/[^\d\-\(\)].*$//; # удаляем 2й телефон '38(067)-123-44-55' $phone =~ s/\D//g; # удаляем не цифры '380671234455' if ($phone =~ /^7/) { $phone =~ s/^7//g; #' +7(903)-797-44-55, 7888080' условие что телефон для россии начинается или 7 или +7 length($phone) == 10 or return ''; return '+7'.$phone; }else{ $phone =~ s/^3?8//g; # удаляем 3 или 38 '0671234455' length($phone) == 10 or return ''; $phone =~ /^0/ or return ''; # если начинается не с 0, скорее всего телефон некорректен return '+38'.$phone; # возвращаем 380671234455 } }
|
|
|
Записан
|
|
|
|
poxy.
NoDeny
Спец
Карма: 10
Offline
Сообщений: 844
|
|
« Ответ #18 : 15 Июня 2014, 15:53:48 » |
|
ну где-то так наверное... sub phone_extract { my($phone) = @_; # ' +38(067)-123-44-55, 7888080' $phone =~ s/^\s*//; # удаляем стартовые пробелы '+38(067)-123-44-55, 7888080' $phone =~ s/^\+//; # удаляем стартовый + '38(067)-123-44-55, 7888080' $phone =~ s/[^\d\-\(\)].*$//; # удаляем 2й телефон '38(067)-123-44-55' $phone =~ s/\D//g; # удаляем не цифры '380671234455' if ($phone =~ /^7/) { $phone =~ s/^7//g; #' +7(903)-797-44-55, 7888080' условие что телефон для россии начинается или 7 или +7 length($phone) == 10 or return ''; return '+7'.$phone; }else{ $phone =~ s/^3?8//g; # удаляем 3 или 38 '0671234455' length($phone) == 10 or return ''; $phone =~ /^0/ or return ''; # если начинается не с 0, скорее всего телефон некорректен return '+38'.$phone; # возвращаем 380671234455 } }
Спасибо, а тут как поправить : #<ACTION> file=>'web/ajUserMenu.pl',hook=>'finish'
{ # --- sms с логином/паролем --- Adm->chk_privil('Admin') or last; my %p = Db->line("SELECT name, AES_DECRYPT(passwd,?) AS pass FROM users WHERE id=?", $cfg::Passwd_Key, $uid); %p or last; my $message = "login: $p{name} pass: $p{pass}"; my $phone = $info->{dopdata}{_adr_telefon} or last; $phone = $phone->show; $phone =~ s/^\s*//; $phone =~ s/^\+//; # удаляем стартовый + $phone =~ s/[^\d\-\(\)].*$//; # удаляем 2й телефон $phone =~ s/\D//g; # удаляем не цифры $phone =~ s/^3?8//g; # удаляем 3 или 38 length($phone) == 10 or last; $phone =~ /^0/ or last; # если начинается не с 0, скорее всего телефон некорректен $phone = '+38'.$phone; $menu[1] .= ' '.$url->a('sms с паролем', a=>'ajTurboSms', its_pass=>$uid, message=>$message, phone=>$phone, -ajax=>1); }
|
|
|
Записан
|
|
|
|
ser970
NoDeny
Спец
Карма: 70
Offline
Сообщений: 1323
|
|
« Ответ #19 : 15 Июня 2014, 16:25:15 » |
|
по аналогии.... #<ACTION> file=>'web/ajUserMenu.pl',hook=>'finish'
{ # --- sms с логином/паролем --- Adm->chk_privil('Admin') or last; my %p = Db->line("SELECT name, AES_DECRYPT(passwd,?) AS pass FROM users WHERE id=?", $cfg::Passwd_Key, $uid); %p or last; my $message = "login: $p{name} pass: $p{pass}"; my $phone = $info->{dopdata}{_adr_telefon} or last; $phone = $phone->show; $phone =~ s/^\s*//; $phone =~ s/^\+//; # удаляем стартовый + $phone =~ s/[^\d\-\(\)].*$//; # удаляем 2й телефон $phone =~ s/\D//g; # удаляем не цифры if ($phone =~ /^7/) { $phone =~ s/^7//g; #' +7(903)-797-44-55, 7888080' условие что телефон для россии начинается или 7 или +7 length($phone) == 10 or last ''; return '+7'.$phone; }else{ $phone =~ s/^3?8//g; # удаляем 3 или 38 length($phone) == 10 or last; $phone =~ /^0/ or last; # если начинается не с 0, скорее всего телефон некорректен $phone = '+38'.$phone; }
$menu[1] .= ' '.$url->a('sms с паролем', a=>'ajTurboSms', its_pass=>$uid, message=>$message, phone=>$phone, -ajax=>1); }
|
|
|
Записан
|
|
|
|
poxy.
NoDeny
Спец
Карма: 10
Offline
Сообщений: 844
|
|
« Ответ #20 : 15 Июня 2014, 16:57:30 » |
|
Вообщем получается - при нажатии правой кнопкой на инфо если номер +38 то норм (выдает меню с кнопкой отправить), если номер +7 то вместо меню выдает только номер, и при нажатии "операции" тоже выдает только номер...
|
|
|
Записан
|
|
|
|
ser970
NoDeny
Спец
Карма: 70
Offline
Сообщений: 1323
|
|
« Ответ #21 : 15 Июня 2014, 17:00:09 » |
|
Вообщем получается - при нажатии правой кнопкой на инфо если номер +38 то норм (выдает меню с кнопкой отправить), если номер +7 то вместо меню выдает только номер, и при нажатии "операции" тоже выдает только номер...
может в аську и доступ ? ну или ли дебаг покаж зы и тут ошибка length($phone) == 10 or last ''; на length($phone) == 10 or last ; тоесть так дожно быть if ($phone =~ /^7/) { $phone =~ s/^7//g; #' +7(903)-797-44-55, 7888080' условие что телефон для россии начинается или 7 или +7 length($phone) == 10 or last; $phone = '+7'.$phone; }else{.... $phone =~ s/^3?8//g; # удаляем 3 или 38 length($phone) == 10 or last; $phone =~ /^0/ or last; # если начинается не с 0, скорее всего телефон некорректен $phone = '+38'.$phone; }
вот эти строки проверь length($phone) == 10 or last; $phone = '+7'.$phone;
|
|
|
Записан
|
|
|
|
poxy.
NoDeny
Спец
Карма: 10
Offline
Сообщений: 844
|
|
« Ответ #22 : 15 Июня 2014, 19:25:02 » |
|
Спасибо ser970, + в карму Стас обнови пожалуйста код модуля как будет минутка cat create.nod.turbosms.pm #<ACTION> file=>'nod/turbosms.pm',hook=>'new' package nod::turbosms;
# Извлечение телефона из текстовой строки, которая может содержать несколько телефонов, не цифры и т.д. # Например, на вход может быть подано: 8067-7778899 / 0501234567 / +38(063)5544332
sub phone_extract { my($phone) = @_; # ' +38(067)-123-44-55, 7888080' $phone =~ s/^\s*//; # удаляем стартовые пробелы '+38(067)-123-44-55, 7888080' $phone =~ s/^\+//; # удаляем стартовый + '38(067)-123-44-55, 7888080' $phone =~ s/[^\d\-\(\)].*$//; # удаляем 2й телефон '38(067)-123-44-55' $phone =~ s/\D//g; # удаляем не цифры '380671234455' if ($phone =~ /^7/) { $phone =~ s/^7//g; #' +7(907)-797-44-55, 7888080' условие что телефон для россии начинается или 7 или +7 length($phone) == 10 or return; $phone = '+7'.$phone; }else{ $phone =~ s/^3?8//g; # удаляем 3 или 38 '0671234455' length($phone) == 10 or return; $phone =~ /^0/ or return; # если начинается не с 0, скорее всего телефон некорректен return '+38'.$phone; # возвращаем 380671234455 } }
cat patch.ajUserMenu.pl #<ACTION> file=>'web/ajUserMenu.pl',hook=>'finish'
{ # --- sms с логином/паролем ---
Adm->chk_privil('Admin') or last; my %p = Db->line("SELECT name, AES_DECRYPT(passwd,?) AS pass FROM users WHERE id=?", $cfg::Passwd_Key, $uid); %p or last; my $message = "login: $p{name} pass: $p{pass}"; my $phone = $info->{dopdata}{_adr_telefon} or last; $phone = $phone->show; $phone =~ s/^\s*//; $phone =~ s/^\+//; # удаляем стартовый + $phone =~ s/[^\d\-\(\)].*$//; # удаляем 2й телефон $phone =~ s/\D//g; # удаляем не цифры if ($phone =~ /^7/) { $phone =~ s/^7//g; #' +7(903)-797-44-55, 7888080' условие что телефон для россии начинается или 7 или +7 length($phone) == 10 or last; $phone = '+7'.$phone; }else{ $phone =~ s/^3?8//g; # удаляем 3 или 38 length($phone) == 10 or last; $phone =~ /^0/ or last; # если начинается не с 0, скорее всего телефон некорректен $phone = '+38'.$phone; }
$menu[1] .= ' '.$url->a('sms с паролем', a=>'ajTurboSms', its_pass=>$uid, message=>$message, phone=>$phone, -ajax=>1); }
|
|
|
Записан
|
|
|
|
k291
|
|
« Ответ #23 : 08 Августа 2014, 20:39:26 » |
|
Часто появляется потребность, пересмотреть все отправленные СМС одному конкретному клиенту, но приходится искать через Ctrl+F и листая список отправленных СМС. Совсем не удобно Также, на странице клиента, хочется видеть текст отправленного СМС, а не "отослана sms с паролем".
|
|
|
Записан
|
|
|
|
k291
|
|
« Ответ #24 : 25 Августа 2014, 20:43:42 » |
|
Часто появляется потребность, пересмотреть все отправленные СМС одному конкретному клиенту, но приходится искать через Ctrl+F и листая список отправленных СМС. Совсем не удобно Также, на странице клиента, хочется видеть текст отправленного СМС, а не "отослана sms с паролем". Теперь при отправке СМС в "Платежи" отображается "Замечание клиенту", а ниже где должен быть текст СМС, пусто. debug-режим ошибок не выдает. Видимо текст СМС не пишется в нужную ячейку БД
|
|
|
Записан
|
|
|
|
SerjioMati
NoDeny
Старожил
Карма: -4
Offline
Сообщений: 282
|
|
« Ответ #25 : 06 Сентября 2014, 22:46:19 » |
|
після оновлення ip шлюза змінилися 2 кода. якщо у вас не виводиться остаток кредитів і статус код то завантажте файл і обновіть на сервері. до після Стас після перевірки добав в модуль щоб обновляли модуль працездатний
|
|
|
Записан
|
|
|
|
SerjioMati
NoDeny
Старожил
Карма: -4
Offline
Сообщений: 282
|
|
« Ответ #26 : 11 Сентября 2014, 13:09:44 » |
|
може хтось допомогти щоб користувач міг змінювати свій номер телефона для получення sms, так як було на nodeny 50.а то клієнти які давно в мережі можливо уже поміняли номери мобільних телефонів і тд.
|
|
|
Записан
|
|
|
|
poxy.
NoDeny
Спец
Карма: 10
Offline
Сообщений: 844
|
|
« Ответ #27 : 29 Сентября 2014, 15:21:17 » |
|
Перестало появляться меню "операции" в инфе клиента, дебаг: Global symbol "%p" requires explicit package name at /usr/local/nodeny/web/_ajUserMenu.pl line 85. Global symbol "%p" requires explicit package name at /usr/local/nodeny/web/_ajUserMenu.pl line 86. Global symbol "%p" requires explicit package name at /usr/local/nodeny/web/_ajUserMenu.pl line 86. Compilation failed in require at /usr/local/nodeny/web/calls.pm line 1224. Compilation failed in require at /usr/local/nodeny/web/calls.pm line 1224. код этих строк: #Adm->chk_privil('Admin') or last; my %p = Db->line("SELECT name, AES_DECRYPT(passwd,?) AS pass FROM users WHERE id=?", $cfg::Passwd_Key, $uid); %p or last; my $message = "login: $p{name} pass: $p{pass}"; my $phone = $info->{dopdata}{_adr_telefon} or last; $phone = $phone->show; $phone =~ s/^\s*//;
rev 286
|
|
|
Записан
|
|
|
|
poxy.
NoDeny
Спец
Карма: 10
Offline
Сообщений: 844
|
|
« Ответ #28 : 30 Сентября 2014, 10:43:00 » |
|
Перестало появляться меню "операции" в инфе клиента, дебаг: Global symbol "%p" requires explicit package name at /usr/local/nodeny/web/_ajUserMenu.pl line 85. Global symbol "%p" requires explicit package name at /usr/local/nodeny/web/_ajUserMenu.pl line 86. Global symbol "%p" requires explicit package name at /usr/local/nodeny/web/_ajUserMenu.pl line 86. Compilation failed in require at /usr/local/nodeny/web/calls.pm line 1224. Compilation failed in require at /usr/local/nodeny/web/calls.pm line 1224. код этих строк: #Adm->chk_privil('Admin') or last; my %p = Db->line("SELECT name, AES_DECRYPT(passwd,?) AS pass FROM users WHERE id=?", $cfg::Passwd_Key, $uid); %p or last; my $message = "login: $p{name} pass: $p{pass}"; my $phone = $info->{dopdata}{_adr_telefon} or last; $phone = $phone->show; $phone =~ s/^\s*//;
rev 286 Только у меня не работает в 286й ревизии?
|
|
|
Записан
|
|
|
|
ivanmfan
|
|
« Ответ #29 : 30 Сентября 2014, 18:38:37 » |
|
Перестало появляться меню "операции" в инфе клиента, дебаг: Global symbol "%p" requires explicit package name at /usr/local/nodeny/web/_ajUserMenu.pl line 85. Global symbol "%p" requires explicit package name at /usr/local/nodeny/web/_ajUserMenu.pl line 86. Global symbol "%p" requires explicit package name at /usr/local/nodeny/web/_ajUserMenu.pl line 86. Compilation failed in require at /usr/local/nodeny/web/calls.pm line 1224. Compilation failed in require at /usr/local/nodeny/web/calls.pm line 1224. код этих строк: #Adm->chk_privil('Admin') or last; my %p = Db->line("SELECT name, AES_DECRYPT(passwd,?) AS pass FROM users WHERE id=?", $cfg::Passwd_Key, $uid); %p or last; my $message = "login: $p{name} pass: $p{pass}"; my $phone = $info->{dopdata}{_adr_telefon} or last; $phone = $phone->show; $phone =~ s/^\s*//;
rev 286 Только у меня не работает в 286й ревизии? Привет, похоже на то что это патчем ломает, посмотри там где у тебя есть в патче #Adm->chk_privil('Admin') or last; поставь энтер в конце этой строки, и сделай install
|
|
|
Записан
|
|
|
|
|