Leaderboard


Popular Content

Showing content with the highest reputation on 05/04/14 in all areas

  1. 2 points
    Суть Разрешить просмотр контактных данных объявления для пользователей, которые подключили и оплатили некоторый список просмотра (СП). Список просмотра регламентирует количество дней на протяжении которых доступен просмотр контактов и стоимость данного периода. Подключение СП проходит через раздел Личного кабинета (ЛК), а оплата списка производится из ЛК посредством Робокассы. Намеренно исключаю возможность задания СП при регистрации, когда вместе с регистрационными данными пользователь должен выбрать конкретный вариант СП, что бы унифицировать процедуру пользования СП для обычных пользователей и пользователей регистрирующихся через соцсети. Пример будет приведен на базе шаблона 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();
  2. 1 point
    abushyk

    Видеоблог

    Суслики - это класс) Живенькое такое)
  3. 1 point
  4. 1 point
    abushyk

    Улица прописью

    В редакторе форм в таблице data выберите поле street_id, откройте его на редактирование и в разделе параметры добавьте пераметр autocomplete=1 и посмотрите в форме это ли имелось в виду.
  5. 1 point
    tazam

    Улица прописью

    РЕДАКТОР ФОРМ > DATA > STREET_ID > Тип записи > textarea Вроде так , если что , меня исправят !