abushyk 694 Жалоба Опубликовано: May 4, 2014 Суть Разрешить просмотр контактных данных объявления для пользователей, которые подключили и оплатили некоторый список просмотра (СП). Список просмотра регламентирует количество дней на протяжении которых доступен просмотр контактов и стоимость данного периода.Подключение СП проходит через раздел Личного кабинета (ЛК), а оплата списка производится из ЛК посредством Робокассы.Намеренно исключаю возможность задания СП при регистрации, когда вместе с регистрационными данными пользователь должен выбрать конкретный вариант СП, что бы унифицировать процедуру пользования СП для обычных пользователей и пользователей регистрирующихся через соцсети.Пример будет приведен на базе шаблона 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(); 3 Александр Лубянский, tazam и Дмитрий Кондин reacted to this Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
tazam 2 Жалоба Опубликовано: May 4, 2014 вот это объяснили так объяснили Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
y116bk 0 Жалоба Опубликовано: April 24, 2015 сделал все по пунктам, контакты(телефон) закрывает, однако в личном кабинете не появилось "мои доступы". Подскажите? Шаблон realia, http://xn-----7kcbh1bjcnngdizbisfv5olc.xn--p1ai/ Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
xp2000 0 Жалоба Опубликовано: March 1, 2016 В файле realty_view.tpl мне нужно помочь сделать скрытие контактов, но чтобы выскакивали для неоплаченных пользователей(гостей) 2 номера телефонов и имена моих риелторов Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Дмитрий Кондин 690 Жалоба Опубликовано: March 4, 2016 В 01.03.2016в13:15, xp2000 сказал: В файле realty_view.tpl мне нужно помочь сделать скрытие контактов, но чтобы выскакивали для неоплаченных пользователей(гостей) 2 номера телефонов и имена моих риелторов Сделать такое условие нужно {if $smarty.session.viewOptions.mode=='opened'} <!--Тут собственно контактные данные--> {else} Оплатите доступ к данным или другая информация Телефоны ваших агентов 234-234-234, 123-123-123 {/if} Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
xp2000 0 Жалоба Опубликовано: March 4, 2016 4 часа назад, rumantic сказал: Сделать такое условие нужно {if $smarty.session.viewOptions.mode=='opened'} <!--Тут собственно контактные данные--> {else} Оплатите доступ к данным или другая информация Телефоны ваших агентов 234-234-234, 123-123-123 {/if} а где его нужно вставить? а то попробовал поставить, а он даже агентские номера закрыл. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Дмитрий Кондин 690 Жалоба Опубликовано: March 4, 2016 1 час назад, xp2000 сказал: а где его нужно вставить? а то попробовал поставить, а он даже агентские номера закрыл. Этот блок будет работать только если у вас есть Модуль магазин контактов У вас он есть? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
xp2000 0 Жалоба Опубликовано: March 4, 2016 13 минуты назад, rumantic сказал: Этот блок будет работать только если у вас есть Модуль магазин контактов У вас он есть? в ближайшем будущем Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Дмитрий Кондин 690 Жалоба Опубликовано: March 4, 2016 43 минуты назад, xp2000 сказал: в ближайшем будущем Ну когда будет, тогда этот код и заработает ) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: April 20, 2016 В целом, тема скорее устарела чем актуальна на сегодняшнее число. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах