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

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

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

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

  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

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

Где то после

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


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

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

  1. 'phone'=>$phone,
  2. 'email'=>$email,
  3. 'skype'=>$skype,

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

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

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

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

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

  1. 'phone'=>$phone,
  2. 'email'=>$email,
  3. 'skype'=>$skype,

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


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

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

  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}


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


  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 в архиве
instantcms.ru/users/files/download5655.html
+4
asa asa 6 лет назад #
Никогда не отправляю СМС. Сразу же закрываю такие сайты.
0
asa asa 6 лет назад #
Но в общем решение классное.
0
Нил™ Нил™ 6 лет назад #
это не больно)
0
Def Def 6 лет назад #
да, очень полезная штуковина для специализированных сайтов с хорошим рейтингом доверия
0
Dorimen Dorimen 6 лет назад #
Это же для первой ветки решение?
+1
Нил™ Нил™ 6 лет назад #
Да
0
Dorimen Dorimen 6 лет назад #
А для второй будет?
0
Нил™ Нил™ 6 лет назад #
Нет
0
Ї Ђ&#227;&#238;&#311;&#8499;&#257;&#331; Ї Ї Ђãîķℳāŋ Ї 6 лет назад #
Вот всё очень хорошо! Но не плохо бы управлять этим делом с админ панели . popcorn

Еще от автора

Автопостинг с канала в Telegram в ленту активности сайта (Первая ветка)
В прошлом посте я демонстрировал схему автопостинга сообщений из ленты активности сайта на канале в Telegram.
Автопостинг из ленты активности сайта на канал в телеграм для первой ветки
Заметил на форуме вопрос про автопостинг в телеграм для второй ветки.
Изменения в компоненте «баннеры»: количество, внешний вид, формат ссылки
Немного изменил компонент баннеры. Вместо одного баннера, теперь выводится два подряд.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.