abushyk

Монетизация с помощью списков просмотров

Recommended Posts

Суть

 

Разрешить просмотр контактных данных объявления для пользователей, которые подключили и оплатили некоторый список просмотра (СП). Список просмотра регламентирует количество дней на протяжении которых доступен просмотр контактов и стоимость данного периода.

Подключение СП проходит через раздел Личного кабинета (ЛК), а оплата списка производится из ЛК посредством Робокассы.

Намеренно исключаю возможность задания СП при регистрации, когда вместе с регистрационными данными пользователь должен выбрать конкретный вариант СП, что бы унифицировать процедуру пользования СП для обычных пользователей и пользователей регистрирующихся через соцсети.

Пример будет приведен на базе шаблона realia, но для любого другого шаблона принцип будет аналогичен.

 

Приницип работы

 

При загрузке страницы происходит извлечение СП для текущего пользователя. Если есть в наличии хоть один активный для данного момента времени СП в переменную сессии сохраняется состояние "открыто". Этот параметр проверяется в местах, где необходим вывод контактны данных и средствами шаблона принимается решение - выводить или скрыть блок с контактными данными.

 

Задействованные приложения

 

registersms - приложение используется формально. Находится в выключенном состоянии и служит для хранения настроки соотношения периода СП и цены за этот период. В принципе не критично и может быть реализовано отдельной настройкой

watchlistmanager - приложение-хранилище функционала для работы СП. Должно быть, быть включенным и установленным.

настройки Робокассы - must have

 

Необходимые файлы

 

Набор вспомогательных файлов можно скачать тут

Файлы в архиве расфасованы согласно структуре шаблона. Т.е. то, что находится в папке main должно лечь в папку main вашего шаблона etc.

 

Изменения

 

В файле main.php

 

Внутри class frontend_main extends SiteBill_Krascap {...} добавляем функцию getViewOptions, которая загружает СП для пользователя. Код функции копируем из http://pastebin.com/8rMZNU4U

 

В функции main() производим вызов вставленной выше функции и загрузку цен на СП из конфигурации. Общий код изменений тут

Блок А вставляем после строк

$work_subcontroller='';$has_result=false;$undetected_url=false;

Блоком Б заменяем блок

if ( !$has_result && preg_match('/\/robox/', $_SERVER['REQUEST_URI']) ) {...}

Блоком В дополняем ветвистость 

if ( preg_match('/^account\/profile/', $REQUESTURIPATH) ) {

перед последним }else{

 

В файле header.tpl

 

Добавляем кусочек, заносящий цены в переменные скриптов

{literal}<script type="text/javascript">var _costs={/literal}{if $_costs ne ''}{$_costs}{else}[]{/if}{literal};</script>{/literal}

Блок ставится в любом месте между тегами <head> и </head>

 

В файле realty_view.tpl

 

Фактически основные функциональные изменения, которые скрывают контактные данные.

Находим блок, отображающий контактные данные и обрамляем его конструкцией 

{if $smarty.session.viewOptions.mode=='opened'}<!--Тут собственно контактные данные-->{else}Оплатите доступ к данным или другая информация{/if}

Настройка

 

Руководящими настройками для работы СП являются настройка цен. Соответствие цен и длительности периодов указывается в переменной Настройки - Регистрация через SMS - Стоимость категорий (apps.registersms.costs_array). Значения задаются в виде строки

{N1:P1}{N2:P2}{N3:P3}{N4:P4}{N5:P5} - где N- длительность периода. По-умолчанию в днях. Р- стоимость этого периода.

Например:

{1:70}{2:100}{3:150}

мы предусматриваем открытие просмотров контактов в вариантах на 1, 2 или 3 дня с соответствующими стоимостями 70, 100 и 150 рублей.

 

Кроме этого места необходимо еще указать допустимые периоды (продублировать) в обработчике СП - /template/frontend/шаблон/main/local_watchlistmanager.php. В этом файле необходимо найти функцию getWLModel() и в ней изменить строку 

$form_data['period']['grade_values'] = array('1', '2', '3', '7', '31');

где указать наш перечень периодов

$form_data['period']['grade_values'] = array('1', '2', '3');

Замечание

 

Шаблон realia оборудован плагином-украшателем ezMark, который, не смотря на свою красивость, доказал несостоятельность при работе с элементами типа radio - кружочки с точечками в форме. Поскольку форма добавления СП использует именно такие элементы, а в остальных формах мы практически не используем их, то рекомендую сузить область работы этого плагина только элементами типа checkbox.

Для этого в файле /template/frontend/realia/js/realia.js в функции InitEzmark() следует закомментировать строку

$('input[type="radio"]').ezMark();

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

сделал все по пунктам,  контакты(телефон) закрывает, однако в личном кабинете  не появилось "мои доступы". Подскажите? Шаблон realia, http://xn-----7kcbh1bjcnngdizbisfv5olc.xn--p1ai/

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В файле realty_view.tpl мне нужно помочь сделать скрытие контактов, но чтобы выскакивали для неоплаченных пользователей(гостей) 2 номера телефонов и имена моих риелторов

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 01.03.2016в13:15, xp2000 сказал:

В файле realty_view.tpl мне нужно помочь сделать скрытие контактов, но чтобы выскакивали для неоплаченных пользователей(гостей) 2 номера телефонов и имена моих риелторов

Сделать такое условие нужно

{if $smarty.session.viewOptions.mode=='opened'}
<!--Тут собственно контактные данные-->
{else}
Оплатите доступ к данным или другая информация
Телефоны ваших агентов 234-234-234, 123-123-123
{/if}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, rumantic сказал:

Сделать такое условие нужно


{if $smarty.session.viewOptions.mode=='opened'}
<!--Тут собственно контактные данные-->
{else}
Оплатите доступ к данным или другая информация
Телефоны ваших агентов 234-234-234, 123-123-123
{/if}

 

а где его нужно вставить? а то попробовал поставить, а он даже агентские номера закрыл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, xp2000 сказал:

а где его нужно вставить? а то попробовал поставить, а он даже агентские номера закрыл.

Этот блок будет работать только если у вас есть Модуль магазин контактов

У вас он есть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
13 минуты назад, rumantic сказал:

Этот блок будет работать только если у вас есть Модуль магазин контактов

У вас он есть?

в ближайшем будущем

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
43 минуты назад, xp2000 сказал:

в ближайшем будущем

Ну когда будет, тогда этот код и заработает )

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас