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

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

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

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

Еще от автора

Капча на сайт или разделы сайта
Если нужно, закрыть весь сайт или некоторые его разделы каптчей.
Пинг поисковых систем для первой ветки
Небольшая интеграция инструментов для пингования, чтобы сделать его чуть удобнее
Генератор карты сайта в формате txt на лету без крона
Вообще то где то тут уже есть вполне рабочие генераторы карты для первой ветки, но этот вариант тоже имеет право быть.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.