abushyk

Модераторы
  • Публикации

    4036
  • Зарегистрирован

  • Посещение

  • Days Won

    269

Все публикации пользователя abushyk

  1. Вот тут пропущен имхо один важный пункт действий - Вышел из админки кнопкой Выйти.
  2. Насколько я могу судить по обобщенному опыту работы с разными слейдерами, классы типа jp-disable не могу находиться в шаблоне и проставляются скриптом. Так что вряд ли они там.
  3. Делаем userfriendly-переключатель отображения валют. Исходным материалом будет http://www.etown.ru/s/topic/1742-отображение-валют/?p=18682. 1. Что нам понадобится. - заготовки из указанной статьи - jquery библиотека https://github.com/carhartl/jquery-cookie. Без нее можно обойтись, но с ней быстрее 2. Модернизируем код контроллера (main.php) В контроллере мы готовили массив курсов валют. Изменим его немного if(!isset($_SESSION['site_cache']['courses'])){ $DBC=DBC::getInstance(); $query='SELECT * FROM '.DB_PREFIX.'_currency'; $stmt=$DBC->query($query); if($stmt){ while($ar=$DBC->fetch($stmt)){ $ar['code_id']=strtolower(trim($ar['code'])); $courses[$ar['currency_id']]=$ar; } } $_SESSION['site_cache']['courses']=$courses;}$this->template->assign('_courses', $_SESSION['site_cache']['courses']);if(isset($_COOKIE['current_view_currency']) && $_COOKIE['current_view_currency']!=''){ $this->template->assign('_current_view_currency', $_COOKIE['current_view_currency']);}else{ setcookie('current_view_currency', 'eur'); $this->template->assign('_current_view_currency', 'eur');}В чем отличие? В данные курсов мы добавили переменную code_id - это приведенный к нижнему регистру код валюты, что бы мы этим не занимались в шаблоне. Так же мы проверяем куки на наличие значения current_view_currency и если его нет, то заполняем его "eur" либо другой дефолтной валютой (кодом валюты приведенным к нижнему регистру). И отправляем эту переменную в шаблон. Вот и все в контроллере. Идем в шаблон. 3. Модернизация шаблона (realty_grid.tpl - либо какой-то из его подчиненных типа табличного или плиточного видов) В этом шаблоне у нас должно быть два момента: а) некий чекер с именами\кодами валют, куда бы мы кликали, что бы выбрать валюту. б) некий блок цен с ценами в разных валютах на строке или блоке объявления. Начнем с чекера-переключателя. Поставим его, в области над списком. {foreach from=$_courses item=_course} <div class="show_valute{if $_course.code_id==$_current_view_currency} active{/if}" data-codeid="{$_course.code_id}">{$_course.code}</div>{/foreach}тут не сложно. прокручиваем массив валют из контроллера мы выводим их в виде <div class="show_valute" data-codeid="rur">RUR</div><div class="show_valute active" data-codeid="usd">USD</div><div class="show_valute" data-codeid="eur">EUR</div>Класс show_valute указывает управляющую кнопку, а active - активное состояние переключателя. Код вывода разновалютных цен в блоке объявления <div class="valutes">{foreach from=$_courses item=_course} <div class="course_price {$_course.code_id}" style="{if $_course.code_id!=$_current_view_currency}display: none;{/if}">{$_course.code}: {(($grid_items[i].price*$_courses[$grid_items[i].currency_id].course)/($_course.course))|number_format:0:",":" "}</div>{/foreach}</div>Главное отличие - мы выводим цены в общий блок с классом valutes и, кроме этого, каждую цену внутри своего блока с класами course_price и тем кодом валюты(названием кода валюты приведенным к нижнему регистру). Вместе с этим мы проверяем текущую "отображаемую" валюту, которую ищем в куках и те блок, которые соответствуют другим валютам обозначаем стилем display: none; иными словами прячем. В результате у нас в блоках объявлений всегда будет показана только одна цена в той валюте, которая лежала в куках, либо дефолтной, если ее там не было. А общий виду будет такой <div class="valutes"> <div class="course_price rur" style="display: none;">RUR: 13 774 091</div> <div class="course_price usd" style="">USD: 568 181</div> <div class="course_price eur" style="display: none;">EUR: 454 545</div></div>3. Добавляем красоту и интерактив. Включаем библиотеку jquery.cookie.js У меня она лежит в /third/jquery.cookie/ поэтому в шаблоне сетки я ее подключаю как <script type="text/javascript" src="{$estate_folder}/third/jquery.cookie/jquery.cookie.js"></script>На стилях не останавливаюсь. {literal}<style>.show_valute.active {font-weight: bold;cursor: auto;}.show_valute {cursor: pointer;}</style>{/literal}А вот и сам скрипт {literal}<script>$(document).ready(function(){$('.show_valute').click(function(){var _this=$(this);var codeid=_this.data('codeid');_this.addClass('active').siblings().removeClass('active');$('.valutes .course_price').hide();$('.valutes .'+codeid).fadeIn();$.cookie('current_view_currency', codeid);});});</script>{/literal}Кратко: кликая по элементу с классом show_valute мы берем у этого элемента значение из аттрибута data-codeid, запоминаем его, прячем все разновалютные курсы и показываем только те блоки, которые имеют класс аналогичный запрошенному коду валюты. И пакуем этот код в куки, что бы при рефреше страницы у нас уже показались нужные валюты.
  4. Стрелки тоже есть. Просто они исходно стоят в дизаблед состоянии, поэтому спрятаны. Выглядит так, что какая-то настроечка в инициализации слайдера не сплясала.
  5. Для отдельного ведения типа сделки (contract type) в сайтбилле предусмотрено системное поле optype. Правда мы не делаем его отдельной таблицей (ради двух значений нет смысла в запросах тянуть его), а делаем select_box со значениями {0~~не указано}{1~~аренда}{2~~продажа}. В результате мы получаем матрицу свойств topic_id x optype и избегаем ненужного дублирования в Структуре. В большинстве выгрузок (там где была возможность) я уже предусмотрел возможность настройкой указать что у нас есть свое отдельное поле под тип контракта и указать значения, которые соотвествуют продаже или аренде.
  6. Давайте сделаем иначе. Вы можете сделать полный дамп сайта - файлы+текущее состояние БД и скинуть мне архивом? Я бы развернул его локально или на хостинге и посмотрел бы не удаленно.
  7. Суть вывода в том, что, если в данных объявления не указано мыло, то оно берется из профиля пользователя к которому привязано объявление. Даже анонимные объявления привязаны к Незарегистрированному пользователю (название условное). Решений есть несколько. 1. Пропишите в данных Незарегистрированного пользователя корпоративную почту. Это если вы намерены не терять клиентов только потому, что владелец не указал данные. Да и выглядеть будет красиво и серьезно. 2. Погасить вывод этой почты. {if isset($data.email.value) && $data.email.value!=''} <span><a href="mailto:{$data.email.value}">{$data.email.value}</a></span><br> {elseif $user_data.email.value != '' && $data_shared.user_id.value!=N} <span><a href="mailto:{$user_data.email.value}">{$user_data.email.value}</a></span><br> {/if}т.е. мы проверям ид владельца, а вместо N нужно подставить идешку того самого Незарегистрированого. Если это он, то не выводим почту или пишем что-то иное, а если это не он, например зарегистрированный реальный пользователь сайта, тогда пишем почту.
  8. Вот за такое да клавиатурой да по пальцам)))) Если речь о сетке, то никаких ид на выводе цен, только классы. Остальное завтра постараюсь расписать. Иногда путь к готовому решение значительно интереснее и познавательнее самого решения)))
  9. Я бы сделал скриптом. Выше сетки вынес бы значки всех валют. В сетке бы сделал вывод цен в валютах по "кармашкам" с идешками. На значки валют повесил бы онклик который бы открывал нужные кармашки и скрывал остальные без релоадов, просто явой. Текущую выбранную валюту скриптом закладывал бы в куки, что бы по ней определялось какую валюту показать при загрузке страницы. если я правильно понял о чем речь.
  10. Это же комбобокс раритетный. Выключите его. В Настройки - Общее - Использовать combobox в элементах select
  11. Этот шаблон не поддерживает смену лого в шапке через редактор шаблонов. Можете просто заменить файл /template/frontend/realty/images/logo.png своим с таким же именем и все.
  12. /template/frontend/шаблон/main/main.php найти и удалить блок if ( !$has_result && preg_match('/^add(\/?)$/', $REQUESTURIPATH) ) {if($_SESSION['user_id']>0){header('location: '.SITEBILL_MAIN_URL.'/account/data/?do=new');exit();}require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/admin/object_manager.php');require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/frontend/form/add.php');$user_add = new User_Add();$this->template->assert('main', $user_add->main());$work_subcontroller='add';$has_result=true;}
  13. Таблица re_uploadify Поле `element` должно быть varchar(255) NOT NULL DEFAULT '' Если нет, то измените его, там может быть значение NULL DEFAULT NULL либо удалите только эту таблицу и создайте ее наново запросом CREATE TABLE IF NOT EXISTS `re_uploadify` ( `uploadify_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `session_code` varchar(255) NOT NULL DEFAULT '', `file_name` varchar(255) NOT NULL DEFAULT '', `element` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`uploadify_id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;это если вы обрели этот глюк после обновления.
  14. От фтп. Доступы к этим функция определяются разными параметрами.
  15. Не заметил предыдущего сообщения. /template/frontend/agency/css/style.css В данный момент мне тоже сложно что-то сказать по такому неопределенному требованию
  16. Да. http://inostrannik.ru/r-estate/ Вот на этом сайте как раз сделан вывод цены во всех валютах, которые зарегистрированы в Менеджере валют. Чуть изменить код и можно будет выводить только в одной.
  17. Может глупый вопрос, но логин и пароль случайно не от админки сайта вводите?
  18. у вас не демо-сайт? для них вроде Дмитрий не дает доступа к фтп.
  19. Не) в смысле карта на главной, карта с сеткой или что-то другое. по функционалу, а не по провайдеру.
  20. Я делаю следующим образом. 1. внедряю в шаблон контейнер с абсолютным позиционированием и left: -100000px и размерами в размер места, в котором она должна бы быть 2. ставлю на него однозначный id 3. далее отслеживаю момент открытия скрытого дива, либо методами апи, если это искаропочные табы, либо в своем методе, если открывашку пишу сам. 4. по событию проверяю есть ли внутри раскрываемого блока элемент с идешкой блока карты. если есть, то открываю его и все. если нет, то ловлю этот блок из-за края экрана, меняю позиционирование на relative и перемещаю его в мой открываемый блок. и после этого разрешаю открыть блок. В целом нужно сформировать два набора данных под них. а дальше просто два раза вызвать рисовальщик на двух разных контейнерах. Либо скриптом сначала разобрать общие данные на предмет принадлежности к аренде-продачже и потом опять нарисовать две карты. Но тут нужно иметь этот признак в данных. Напомните, что это за карта?