Ограничение на просмотр контактов в объявлениях и отправка их в ответ на смс

2146
Решение позволяющее скрывать контакты в объявлениях и выдавать их заинтересованному посетителю в ответ на смс сообщение, которое посетитель должен отправить на короткий номер.

Для начала нужно выделить номера телефонов в объявлениях в специальное поле.

В базе данных в таблице cmc_board_items добавим поля: телефон, емэйл, скайп

Код PHP:
  1. ALTER TABLE `cms_board_items` ADD `phone` VARCHAR( 100 ) NOT NULL AFTER `content` ,
  2. ADD `email` VARCHAR( 100 ) NOT NULL AFTER `phone` ,
  3. ADD `skype` VARCHAR( 100 ) NOT NULL AFTER `email`;
Затем эти поля нужно добавить в файлы компонента.


В файле fronted.php

В блоке «входные данные»

Где то после

Код PHP:
  1. $content = cmsCore::request('content', 'str', '');
Добавляем


Код PHP:
  1. $phone = cmsCore::request('phone', 'str', '');
  2. $email = cmsCore::request('email', 'str', '');
  3. $skype = cmsCore::request('skype', 'str', '');
В том же файле в блоке

Код PHP:
  1. $item_id = $model->addRecord(array(
Добавляем

Код PHP:
  1. 'phone'=>$phone,
  2. 'email'=>$email,
  3. 'skype'=>$skype,

В том же файле в блоке

Код PHP:
  1. if (cmsCore::inRequest('submit')){
Добавляем

Код PHP:
  1. $phone = cmsCore::request('phone', 'str', '');
  2. $email = cmsCore::request('email', 'str', '');
  3. $skype = cmsCore::request('skype', 'str', '');

В том же файле в блоке

Код PHP:
  1. $model->updateRecord($item['id'], array(
Добавляем

Код PHP:
  1. 'phone'=>$phone,
  2. 'email'=>$email,
  3. 'skype'=>$skype,

В файле шаблона com_board_item.tpl


Если вы хотите что бы зарегистрированные пользователи видели номера открытыми а гости видели приглашение отправить смс сообщение добавляем

Где то после {$item.content}

Код PHP:
  1. {if $item.phone}
  2. <p>Телефон:</p> <p> {if $user_id}{$item.phone}{else}<a class=”cboxElement” href="/boardinfo.php?boardid={$item.id}">Открыть</a> {/if}</p> {/if}
  3. {if $item.email}
  4. <p>Email:</p> <p> {if $user_id}{$item.email}{else}<a class=”cboxElement” href="/boardinfo.php?boardid={$item.id}">Открыть</a> {/if}</p> {/if}
  5.  
  6. {if $item.skype}
  7. <p>Skype:</p> <p> {if $user_id}{$item.skype}{else}<a class=”cboxElement” href="/boardinfo.php?boardid={$item.id}">Открыть</a> {/if}</p> {/if}


Если вы хотите что бы приглашение отправить смс видели все, в том числе зарегистрированные, то вот так:


Код PHP:
  1. {if $item.phone}
  2. <p>Телефон:</p> <p> <a class=”cboxElement” href="/boardinfo.php?boardid={$item.id}" >Открыть</a> {/if}</p>
  3. {if $item.email}
  4. <p>Email:</p> <p> <a class=”cboxElement” href="/boardinfo.php?boardid={$item.id}">Открыть</a> </p> {/if}
  5.  
  6. {if $item.skype}
  7. <p>Skype:</p> <p> <a class=”cboxElement” href="/boardinfo.php?boardid={$item.id}">Открыть</a> </p> {/if}

В данном примере подразумевается, что файл boardinfo.php лежит в корне сайта.


При клике на «Открыть» у пользователя будет открываться всплывающее окно с информацией о том что для получения контактов из этого объявления необходимо отправить смс на такой то номер с таким то кодом по такой то цене.





Если у вас не подключен Colorbox можете заменить в ссылках class=”cboxElement” на target=”_blank”
и страница с информацией boardinfo.php будет просто открываться в новой вкладке.

В принципе можно поместить файл boardinfo.php в папку /includes/myphp/

Затем создать статью например info.html и вставить файл boardinfo.php с помощью опции в редакторе.
Все ссылки на /boardinfo.php?boardid={$item.id} заменить на эту статью /info.html?boardid={$item.id}

Пример файла boardinfo.php в архиве.

В данном примере:
NNN – короткий номер который вы определите сами после похода в смс биллинг
XXX – префикс, который будет присвоен вашему проекту в смс биллинге.
$idcode – номер объявления.

Не забудьте указать стоимость смс и другую информацию)

Итак, получается, если на смс биллинге вашему проекту присвоен префикс ohoho а номер объявления 123 для получения контактов из этого объявления посетитель должен будет отправить на короткий номер объявление с текстом: ohoho 123

Сходите на сайт смс биллинга x-bill.ru скажите, что от Нила), создайте проект.
В графе «тип обработчика» выбирайте «динамический обработчик». Скрипт обработчика лежит в архиве.
В настройках проекта укажите полный путь к файлу обработчику на вашем хосте.

В самом обработчике припишите секретное слово, которое вы указали на биллинге в настройках проекта, а также параметры подключения к базе данных: имя пользователя, название БД и пароль от нее.

В настройках проекта на смс биллинге используйте опцию тестировать обработчик.

Вроде ничего не упустил, если что, дополню.
Делал для себя, так как программистом не являюсь - "как есть". Нужно - пользуйтесь на свой риск)
Перед изменением файлов делайте копии)

Скрипт обработчик смс сообщений, файл boardinfo.php и пример измененных файлов fronted.php, com_board_item.tpl, com_board_edit.tpl в архиве
/users/files/download5655.html
Генератор пользователей по крону | Показываем пользователю во время регистрации адрес его будущей страницы
Комментарии (9)
asa 17 декабря 2015 в 17:03 +4
Никогда не отправляю СМС. Сразу же закрываю такие сайты.
asa 17 декабря 2015 в 17:04 0
Но в общем решение классное.
Нил™ 18 декабря 2015 в 13:01 0
это не больно)
Def 17 декабря 2015 в 21:18 0
да, очень полезная штуковина для специализированных сайтов с хорошим рейтингом доверия
Dorimen 18 декабря 2015 в 13:06 0
Это же для первой ветки решение?
Нил™ 18 декабря 2015 в 13:33 +1
Да
Dorimen 9 января 2016 в 23:00 0
А для второй будет?
Нил™ 9 января 2016 в 23:57 0
Нет
Ї Ђãîķℳāŋ Ї 9 января 2016 в 21:22 0
Вот всё очень хорошо! Но не плохо бы управлять этим делом с админ панели . popcorn