doma
-
Публикации
1233 -
Зарегистрирован
-
Посещение
-
Days Won
9
Изменения репутации
-
doma изменил репутацию TopRaN в Текстовый редактор для поля описание объекта
ckeditor настраиваемый, вот описание по настройке либо тут . Самое главное смотрите какая стоит у вас версия
-
doma изменил репутацию Дмитрий Кондин в Восстановить админ пароль
Админ тоже в re_user.
Если админа нет, то зарегистрируйте нового пользователя.
Поставьте через базу ему active = 1 и group_id = 1, теперь сможете войти в админку под этим пользователем.
-
doma получил репутацию от Helenblondi в Выгрузка объявлений в группу Вконтакте
хм а почему у вас все приложения показываются по отдельности :)) а у нас только одна кнопка :)) и она обновляет всю систему сразу и все модули :))
Дмитрий - или это зависит от шаблона?
-
doma изменил репутацию Дмитрий Кондин в PageSpeed. Скорость загрузки сайта.
У нас появился чемпион по оптимизации скорости сайта - kvart.by
Не знаю как, но они сделали 100!
-
doma получил репутацию от Realtor в Разогнать сайт
а если у нас этого нет на главной ? что еще и где и как?
-
doma получил репутацию от Realtor в Разогнать сайт
а что именно выкинули ? и как удалил - так чтобы не использовать, но на сайте было, мало ли что за что отвечает
-
doma получил репутацию от Realtor в Разогнать сайт
По возможности тоже это делал - но результат не очень большой, да и многие моменты невозможно изменить без содействия разработчиков
-
doma изменил репутацию Дмитрий Кондин в Как добавить должность и информацию?
Допустим у нас в таблице user мы добавили поле Должность и системное название этого поля jobtitle
1. Открываем файл /template/frontend/ipotekus/main/main.php
Находим там функцию
private function getAgents() { $ret = array(); $DBC = DBC::getInstance(); $query = 'SELECT COUNT( d.id ) AS _cnt, u.user_id, u.fio, u.phone, u.imgfile, u.mobile, u.email, g.name AS group_name FROM `' . DB_PREFIX . '_data` d LEFT JOIN re_user u USING ( user_id ) LEFT JOIN ' . DB_PREFIX . '_group g USING ( group_id ) WHERE u.group_id<>4 GROUP BY d.user_id ORDER BY _cnt DESC'; $stmt = $DBC->query($query); if ($stmt) { while ($ar = $DBC->fetch($stmt)) { $ret[] = $ar; } } return $ret; } Тут нам нужно поменять строчку запроса на такую (добавляем выборку jobtitle из таблицы)
$query = 'SELECT COUNT( d.id ) AS _cnt, u.user_id, u.fio, u.phone, u.imgfile, u.mobile, u.email, u.jobtitle, g.name AS group_name FROM `' . DB_PREFIX . '_data` d LEFT JOIN re_user u USING ( user_id ) LEFT JOIN ' . DB_PREFIX . '_group g USING ( group_id ) WHERE u.group_id<>4 GROUP BY d.user_id ORDER BY _cnt DESC'; Теперь в шаблоне agents_list_on_main.tpl у нас будет доступна такая переменная внутри foreach цикла
{$agentslist_item.jobtitle} Вы можете вписать эту переменную для вывода jobtitle
Например, меняем эту строчку
<p class="team-designation"><a href="#">Должность</a></p> На такую
<p class="team-designation"><a href="#">{$agentslist_item.jobtitle}</a></p>
-
doma получил репутацию от ANDREW в shema.org - кто использует структурированные данные?
это ни кто не опровергает -но вы уверены что ниже описанное будет корректно отображаться и не нужны будут стили ? или они к примеру будут выводиться на странице именно так как тут написано?
<div class="col">
<h2><span class="cont">Контакты</span></h2>
<span class="line"></span>
<div itemscope="" itemtype="http://schema.org/LocalBusiness" class="t-content">
<p itemprop="name">ООО "Афина Паллада" - агентство недвижимости</p>
<p itemprop="telephone">+7 992-404-99-02</p>
<p itemprop="telephone">+7 (3499) 53-20-87</p>
<p itemprop="address" itemscope="" itemtype="http://schema.org/PostalAddress">г.
<span itemprop="addressLocality">Надым</span>,
<span itemprop="streetAddress">ул.Набережная им.Оруджева д.5, офис 1</span></p>
<p itemprop="email">office@afina-pallada89.ru</p>
</div>
</div>
даже в header_contact_add.tpl
написано так
<div class="info">
<div class="site-email">
<a href="mailto:info@sait.ru">info@sait.RU</a>
</div><!-- /.site-email -->
<div class="site-phone">
<span>8 (495) 123-45-67</span>
</div><!-- /.site-phone -->
</div><!-- /.info -->
разве это не важно? <div class="info"> а это ? div class="site-email"> а это ? <div class="site-phone">лучше подскажите где стили и какие именно редактируются по нашим темам на форумах например по "пожаловаться"
-
doma изменил репутацию Дмитрий Кондин в Отобразить больше объявлений на главной - Novosel
На главной в новоселе выводится определенное количество новых объектов.
в /template/frontend/novosel/main/main.php
private function getNewest(){ require_once SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/frontend/grid/grid_constructor.php'; $grid_constructor = new Grid_Constructor(); $params['order'] = 'date_added'; $params['asc'] = 'desc'; $params['page_limit']=6; $params['page']=1; $res = $grid_constructor->get_sitebill_adv_ext( $params, false, false ); $this->template->assign('new_grid_items', $res); } Поправьте
$params['page_limit']=6; -
doma изменил репутацию Дмитрий Кондин в Удалить карту с главной
В шаблоне realty_grid.tpl
Находим это
<div id="map" style="margin: 10px 0;"> <iframe src="{$estate_folder}/js/ajax.php?action=iframe_map&{$QUERY_STRING}" style="border: 0px;" border="0" width="100%" height="100%"></iframe> </div> И меняем на это
{if $REQUESTURIPATH != '' } <div id="map" style="margin: 10px 0;"> <iframe src="{$estate_folder}/js/ajax.php?action=iframe_map&{$QUERY_STRING}" style="border: 0px;" border="0" width="100%" height="100%"></iframe> </div> {/if}
-
doma изменил репутацию metrpro в Делаем уведомление об использовании cookie
Следуя тенденциям времени, решил поставить себе на сайт уведомление об использовании cookie. Пока это требование установлено законодательством Евросоюза, но, говорят, добавляет кармы сайту в глазах поисков (посмотрим).
Решение состоит из двух частей - внешнего javascript-файла, который с завидной периодичностью (раз в 365 дней) уведомляет пользователя о том, что на сайте куки, и вызова этого скрипта.
1. Скрипт, ставится во внешний файл - у меня он лежит по адресу: /js/ck.js. Вот его текст:
(function (window, undefined){ "use strict"; var document = window.document; function log() { if (window.console && window.console.log) { for (var x in arguments) { if (arguments.hasOwnProperty(x)) { window.console.log(arguments[x]); } } } } function AcceptCookie() { if (!(this instanceof AcceptCookie)) { return new AcceptCookie(); } this.init.call(this); return this; } AcceptCookie.prototype = { init: function () { var self = this; if(self.readCookie('pjAcceptCookie') == null) { self.appendCss(); self.addCookieBar(); } var clear_cookie_arr = self.getElementsByClass("pjClearCookie", null, "a"); if(clear_cookie_arr.length > 0) { self.addEvent(clear_cookie_arr[0], "click", function (e) { if (e.preventDefault) { e.preventDefault(); } self.eraseCookie('pjAcceptCookie'); document.location.reload(); return false; }); } }, getElementsByClass: function (searchClass, node, tag) { var classElements = new Array(); if (node == null) { node = document; } if (tag == null) { tag = '*'; } var els = node.getElementsByTagName(tag); var elsLen = els.length; var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)"); for (var i = 0, j = 0; i < elsLen; i++) { if (pattern.test(els[i].className)) { classElements[j] = els[i]; j++; } } return classElements; }, addEvent: function (obj, type, fn) { if (obj.addEventListener) { obj.addEventListener(type, fn, false); } else if (obj.attachEvent) { obj["e" + type + fn] = fn; obj[type + fn] = function() { obj["e" + type + fn](window.event); }; obj.attachEvent("on" + type, obj[type + fn]); } else { obj["on" + type] = obj["e" + type + fn]; } }, createCookie: function (name, value, days){ var expires; if (days) { var date = new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)); expires = "; expires="+date.toGMTString(); } else { expires = ""; } document.cookie = name+"="+value+expires+"; path=/"; }, readCookie: function (name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0) === ' ') { c = c.substring(1,c.length); } if (c.indexOf(nameEQ) === 0) { return c.substring(nameEQ.length,c.length); } } return null; }, eraseCookie: function (name) { var self = this; self.createCookie(name,"",-1); }, appendCss: function() { var self = this; var cssId = 'pjAcceptCookieCss'; if (!document.getElementById(cssId)) { var head = document.getElementsByTagName('head')[0]; var link = document.createElement('link'); link.id = cssId; link.rel = 'stylesheet'; link.type = 'text/css'; link.href = 'https://fonts.googleapis.com/css?family=Open+Sans'; link.media = 'all'; head.appendChild(link); } var cssCode = ""; cssCode += "#pjAcceptCookieBar .pjAcceptCookieBarBtn,"; cssCode += "#pjAcceptCookieBar .pjAcceptCookieBarBtn:after { -webkit-transition: all .5s ease-in-out; -moz-transition: all .5s ease-in-out; -ms-transition: all .5s ease-in-out; -o-transition: all .5s ease-in-out; transition: all .5s ease-in-out; }"; cssCode += "#pjAcceptCookieBar { position: fixed; bottom: 0; left: 0; z-index: 9999; overflow-x: hidden; overflow-y: auto; width: 100%; max-height: 100%; padding: 10px 0; background: #3b3988; opacity: 0.8; font-family: 'Open Sans', sans-serif; text-align: center;}"; cssCode += "#pjAcceptCookieBar * { padding: 0; margin: 0; outline: 0; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }"; cssCode += "#pjAcceptCookieBar .pjAcceptCookieBarShell { width: 90%; margin: 0 auto; }"; cssCode += "#pjAcceptCookieBar a[href^=tel] { color: inherit; }"; cssCode += "#pjAcceptCookieBar a:focus,"; cssCode += "#pjAcceptCookieBar button:focus { outline: unset; outline: none; }"; cssCode += "#pjAcceptCookieBar p { font-size: 14px; line-height: 1.4; color: #fff; font-weight: 400; }"; cssCode += "#pjAcceptCookieBar .pjAcceptCookieBarActions { padding-top: 10px; }"; cssCode += "#pjAcceptCookieBar .pjAcceptCookieBarBtn { position: relative; display: inline-block; height: 20px; padding: 0 30px; border: 0; background: #4285f4; opacity: 0.9; font-size: 14px; line-height: 14px; color: #fff; text-decoration: none; vertical-align: middle; cursor: pointer; border-radius: 0; -webkit-appearance: none; -webkit-border-radius: 0; -webkit-transform: translateZ(0); transform: translateZ(0); -webkit-backface-visibility: hidden; backface-visibility: hidden; -moz-osx-font-smoothing: grayscale; }"; cssCode += "#pjAcceptCookieBar .pjAcceptCookieBarBtn:hover,"; cssCode += "#pjAcceptCookieBar .pjAcceptCookieBarBtn:focus { text-decoration: none; }"; cssCode += "#pjAcceptCookieBar .pjAcceptCookieBarBtn:after { position: absolute; top: 0; right: 52%; bottom: 0; left: 52%; z-index: -1; border-bottom: 4px solid #14428d; background: rgba(20, 66, 141, .3); content: ''; }"; cssCode += "#pjAcceptCookieBar .pjAcceptCookieBarBtn:hover:after,"; cssCode += "#pjAcceptCookieBar .pjAcceptCookieBarBtn:focus:after { right: 0; left: 0; }"; cssCode += "@media only screen and (max-width: 767px) {"; cssCode += "#pjAcceptCookieBar { padding: 15px 0; }"; cssCode += "#pjAcceptCookieBar .pjAcceptCookieBarShell { width: 96%; }"; cssCode += "#pjAcceptCookieBar p { font-size: 14px; }"; cssCode += "}"; var styleElement = document.createElement("style"); styleElement.type = "text/css"; if (styleElement.styleSheet) { styleElement.styleSheet.cssText = cssCode; } else { styleElement.appendChild(document.createTextNode(cssCode)); } document.getElementsByTagName("head")[0].appendChild(styleElement); }, addCookieBar: function(){ var self = this; var htmlBar = ''; htmlBar += '<div class="pjAcceptCookieBarShell"><form action="#" method="post">'; htmlBar += '<p>Для улучшения работы сайта и его взаимодействия с пользователями мы используем файлы cookie. Продолжая работу с сайтом, Вы разрешаете использование cookie-файлов. Вы всегда можете отключить файлы cookie в настройках Вашего браузера.</p>'; htmlBar += '<div class="pjAcceptCookieBarActions"><button type="button" class="pjAcceptCookieBarBtn">ОК</button></div></form></div>'; var barDiv = document.createElement('div'); barDiv.id = "pjAcceptCookieBar"; document.body.appendChild(barDiv); barDiv.innerHTML = htmlBar; self.bindCookieBar(); }, bindCookieBar: function(){ var self = this; var btn_arr = self.getElementsByClass("pjAcceptCookieBarBtn", null, "button"); if(btn_arr.length > 0) { self.addEvent(btn_arr[0], "click", function (e) { if (e.preventDefault) { e.preventDefault(); } self.createCookie('pjAcceptCookie', 'YES', 365); document.getElementById("pjAcceptCookieBar").remove(); return false; }); } } }; window.AcceptCookie = AcceptCookie; })(window); window.onload = function() {AcceptCookie = AcceptCookie();} 2. В своем шаблоне (у меня Реалия) ищем файл main.tpl, лежит по адресу /template/frontend/realia/. Перед закрывающим тегом </body> вызываем внешний скрипт:
<script src="/js/ck.js"></script> 3. Получаем решение:
Все. Каждый пользователь ежегодно будет уведомляться о куках.
PS: данное решение найдено на просторах интернета и немного адаптировано. Сам скрипт может быть ужат, но я не стал этого делать, т.к. работать с ним легче в таком форматировании.
PPS: кому не нравится полупрозрачность фона уведомления, уберите параметр opacity: 0.8;
-
doma изменил репутацию banzai72 в Как вывести группу публикующего в полную новость объявления?
В standart_search_form.tpl
{$users_users_list}
<!--select name="user_id"><option value="">Не важно</option><option value="175">Аксёнова Ольга Владимировна</option><option value="153">Бадьянова Виктория Валерьевна</option><option value="173">Быков Сергей Николаевич</option><option value="156">Горячкина Светлана Александровна</option><option value="7">Гранкина Ирина Николаевна</option><option value="61">Даниленко Елена Александровна</option><option value="64">Иванова Ирина Ивановна</option><option value="168">Князева Валентина Евгеньевна</option><option value="21">Копасова Екатерина Анатольевна</option><option value="154">Лебедева Елена Михайловна</option><option value="55">Митрофанова Александра Алексеевна</option><option value="36">Старцева Юлия Михайловна</option><option value="20">Стейскал Наталья Витальевна</option><option value="1">Харламов Алексей Юрьевич</option><option value="150">Шатилова Ирина Николаевна</option></select-->
В /home/uqirahbm/public_html/template/frontend/ВАШ ШАБЛОН/main/main.php
$users=array();
$DBC=DBC::getInstance();
$query='SELECT user_id, fio FROM '.DB_PREFIX.'_user WHERE group_id NOT IN (1,4,18,19,26,27,32,38) ORDER BY fio';
$stmt=$DBC->query($query);
$select='<option value="">Сотрудник</option>';
if($stmt){
while($ar=$DBC->fetch($stmt)){
$users[$ar['user_id']]=$ar['fio'];
$select.='<option value="'.$ar['user_id'].'"'.(intval($_GET['user_id'])==$ar['user_id'] ? ' selected="selected"' : '').'>'.$ar['fio'].'</option>';
}
}
$this->template->assign('users_users_list', '<select name="user_id">'.$select.'</select>');
$this->template->assign('users_users', $users);
-
doma получил репутацию от Realtor в Организовать прием ФИДа на сайте
а как то можно сделать , чтобы только наши параметры, города и улицы были ? чтобы не имеющиеся на нашем сайте параметры вообще не загружались к нам ?
то есть чтобы не ломать логику нашего сайта . использовать только наши параметры и наши значения (улиц, материала дома, виды ремонта и т.д)
-
doma изменил репутацию abushyk в Шаблон realia - пожалуйста, помогите с меню категорий [Решено]
Итак, если у нас осталось место в навигаторе где изначально выводятся разделы структуры, у нас может возникнуть желание добавить туда что-то от себя.
Для формирования этого блока служит функция шаблона реалия getTemplateMenu, которая пользуется услугами декоратора меню. Логи этого декоратора довольно сложна, именно поэтому мы не стали выдавать его в виде шаблона, а свели до $navmenu.
Суть задачи - позволить нехитрым набором опций сообщать декоратору меню, что у куда вставить нам в нашу менюху. Я предусмотрел вставку двух типов:
1) вставка простой ссылки
2) вставка блока с выпадающими подпунктами, которые формируются на базе одного из меню из раздела Контент - Меню.
А) Для начала улучшим функцию getTemplateMenu.
Находим ее в /template/frontend/realia/main/main.php и заменяем на http://pastebin.com/NpibVwer
Главное отличие, что она теперь умеет понимать переданные нами параметры и пытается кешировать в сессию некоторые данные. Т.е. если вы укажете ей строить дополнительный пункт на базе какой-то менюшки, то она не будет на всех переходах требовать его от бд, а возьмет один раз и запомнит на всю вашу сессию.
Б) Параметры функции.
Что бы указать чем и где дополнить нам меню нужно указать функции параметры. Параметры указываются в виде массива
$menues=array( array( 'id'=>25, /*ID меню из Контент - Меню. Если указать ID не существующего в данный момент Меню, то получится просто пункт с меню, без выпадающего блока, тогда данный пункт даже не буде. Если нужно навставлять ссылок, то просто ставьте там 10000 и дальше*/ 'title'=>'О нас', /*Выводимая надпись на пункте*/ 'position'=>'behind',/*Расположение относительно пунктов Структуры. Если не указано или не behind, то after - в конце*/ 'href'=>'/somelink/'/*Ccылка на корневом пункте. Если не указать, то будет якорь (#), те неактивная ссылка чисто для группировки*/ ), array('id'=>23,'title'=>'О вас','position'=>'after','href'=>'http://dadada.ru')); Например, нам нужно поставить в верхнее меню следующее:
- в самом начале ссылку на главную
- после нее ссылку на отзывы /review
- в конце подключить выпадающий список из Меню - Полезная информация с ид в БД 215.
Сотв. наша конфигурация буде иметь вид
$menues=array(array('id'=>0, /*0-хитрое значение. Оно может быть только в одном пунке и на него автоматом ставится ссылка на корень сайта*/ 'title'=>'Главная','position'=>'behind'),array('id'=>1000, /*поставили 1000 так как такого пункта у нас в меню нет*/ 'title'=>'Отзывы','position'=>'behind','href'=>'review'),array('id'=>215, /*а такое меню есть и мы его запросили*/ 'title'=>'Полезно','position'=>'after')); В) Как это все включить.
В файле /template/frontend/realia/main/main.php находим вызов
$this->template->assert('navmenu', $this->getTemplateMenu());
И меняем его на
$menues=array(array('id'=>0,'title'=>'Главная','position'=>'behind'), array('id'=>1000,'title'=>'Отзывы','position'=>'behind','href'=>'review'), array('id'=>215,'title'=>'Полезно','position'=>'after')); /*наш набор пунктов*/ $this->template->assert('navmenu', $this->getTemplateMenu($menues)); /*тут мы его передали в декоратор*/ В результате получаем
-
doma изменил репутацию Дмитрий Кондин в Вопрос по title у странице товара(квартиры)
Код генерации title тут
/apps/system/lib/frontend/view/kvartira_view.php protected function getMetaData($form_data, $hasTlocation=false, $tlocationElement=''){ require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/admin/structure/structure_manager.php'); $Structure_Manager = new Structure_Manager(); $category_structure = $Structure_Manager->loadCategoryStructure(); $title=''; $meta_title=''; $meta_description=''; $meta_keywords=''; $params['topic_id']= $form_data['topic_id']['value']; $title_parts=array(); if($hasTlocation){ $title_parts[]=$this->get_category_breadcrumbs_string( $params, $category_structure, SITEBILL_MAIN_URL.'/' ); if($form_data[$tlocationElement]['tlocation_string']!=''){ $title_parts[]=$form_data[$tlocationElement]['tlocation_string']; } if(0!=(int)$form_data['price']['value']){ $title_parts[]=number_format($form_data['price']['value'],0,',',' '); } if(!empty($title_parts)){ $title=implode(', ', $title_parts); } }else{ $title_parts[]=$this->get_category_breadcrumbs_string( $params, $category_structure, SITEBILL_MAIN_URL.'/' ); if($form_data['city_id']['value_string']!=''){ $title_parts[]=$form_data['city_id']['value_string']; } if($form_data['street_id']['value_string']!=''){ $title_parts[]=$form_data['street_id']['value_string']; } if(0!=(int)$form_data['price']['value']){ $title_parts[]=number_format($form_data['price']['value'],0,',',' '); } if(!empty($title_parts)){ $title=implode(', ', $title_parts); } } if($form_data['meta_title']['value']==''){ $meta_title=$title; }else{ $meta_title=$form_data['meta_title']['value']; } if($form_data['meta_description']['value']!=''){ $meta_description=$form_data['meta_description']['value']; } if($form_data['meta_keywords']['value']!=''){ $meta_keywords=$form_data['meta_keywords']['value']; } return array( 'title'=>$title, 'meta_title'=>$meta_title, 'meta_description'=>$meta_description, 'meta_keywords'=>$meta_keywords ); } -
doma изменил репутацию TopRaN в Вывод информации об объекте в realty_grid_list.tpl
1. Вы используете модальное окно у которого имеется id="myModal". Дело в том что этот id присваевается одному элементу - первому, а для остальных нет. Id должно иметь уникальное значение и оно должно быть в единственном экземпляре.
свой код замените на этот
<button type="button" class="btn btn-default btn-lg" data-toggle="modal" data-target="#myModal{$grid_items[i].id}">Контакты</button> <!-- Modal --> <div class="modal fade" id="myModal{$grid_items[i].id}" role="dialog"> <div class="modal-dialog"> <!-- Modal content--> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal">×</button> <h4 class="modal-title">Контакты</h4> </div> <div class="modal-body"> <p>{$grid_items[i].phone}</p> </div> </div> </div> </div>
-
doma изменил репутацию abushyk в маяки на карте
/apps/system/js/realtymap.js
1. Находим
this.setDefaultIconSize=function(size){ this.markersVariants._default.size=size; }; добавляем после нее
this.setDefaultIconOffset=function(offset){ this.markersVariants._default.offset=offset; };
2. Далее находим
initJSON: function(el, datalisting, type, options){ ... if(options.marker_size !== undefined){ self.setDefaultIconSize(options.marker_size); } ...} После if(options.marker_size !== undefined){...}
добавляем
if(options.marker_offset !== undefined){self.setDefaultIconOffset(options.marker_offset);} 3. Там где мы передавали параметры кастомного маркера
RM.initJSON('map', loc_objects, map_type, {marker_icon: estate_folder+'/template/frontend/realia/img/my_marker.png', marker_size: [15, 20], yandexMapType: 'yandex#map' }); добавляем еще один параметр - оффсет нашего маркера marker_offset: [-7, -20] (смещение "ножки" или точки указания маркера относительно верхнего левого угла картинки).
RM.initJSON('map', loc_objects, map_type, {marker_icon: estate_folder+'/template/frontend/realia/img/my_marker.png', marker_size: [15, 20], yandexMapType: 'yandex#map', marker_offset: [-7, -20] }); Обычно, для маркеров у которых "ножка" по центру нижней грани картинки, это половина ширины картинки и высота картинки со знаками минус.
-
doma изменил репутацию abushyk в маяки на карте
В realty_grid.tpl есть кусочек запуска карты
$(document).ready(function(){var RM=new RealtyMap();RM.initJSON('map', loc_objects, map_type);}); Рисуем свою иконку в нужный размер. Грузим ее в шаблон в папку с картинками, например в /template/frontend/realia/img/my_marker.png
Делаем загрузку маркера дополнив существующую строку
RM.initJSON('map', loc_objects, map_type, {marker_icon: estate_folder+'/template/frontend/realia/img/my_marker.png', marker_size: [42, 57]}); вместо [42, 57] указываем размеры нового маркера в пикселях [ширина, высота]
Аналогично можно поступить в любом шаблоне, где есть запуск карты через интерфейс var RM=new RealtyMap();
-
doma изменил репутацию Sitnik в Срыть кадастровый номер от других агентов
Дело в другом, в этой теме мне TopRaN помог разобраться с моей проблемой таким кодом:
<!-- Скрываем Кадастровый номер и квартиру --> {elseif $data_item.name eq "apartment" && $data_shared.user_id.value!=$smarty.session.user_id} {elseif $data_item.name eq "cadastral_number" && $data_shared.user_id.value!=$smarty.session.user_id} <!-- Скрываем Кадастровый номер и квартиру --> Теперь кадастровый номер и номер квартиры виден только автору обьявления, а админу не виден. В панели управления видимость стоит для групп "Админ" и "Агенты".
Для чего это было сделано - Агенты не должны видеть чужие (других агентов) кадастровые номера.
-
doma изменил репутацию banzai72 в Как вывести группу публикующего в полную новость объявления?
В фильтр:
<div class="col-md-2">
<label>Поиск по группе</label>
{$users_groups_list}
{if $country_list ne ''}
{$country_list}
{/if}
</div>
А в /home/uqirahbm/public_html/template/frontend/ВАШ ШАБЛОН/main/main.php
$this->getNewest();
$groups=array();
$DBC=DBC::getInstance();
$query='SELECT group_id, name FROM '.DB_PREFIX.'_group WHERE group_id NOT IN (1,4,19,26,27,28,33) ORDER BY name';
$stmt=$DBC->query($query);
$select='<option value="">Не важно</option>';
if($stmt){
while($ar=$DBC->fetch($stmt)){
$groups[$ar['group_id']]=$ar['name'];
$select.='<option value="'.$ar['group_id'].'"'.(intval($_GET['group_id'])==$ar['group_id'] ? ' selected="selected"' : '').'>'.$ar['name'].'</option>';
}
}
$this->template->assign('users_groups_list', '<select name="group_id">'.$select.'</select>');
$this->template->assign('users_groups', $groups);
(В скобках запрещенные к показу группы)
А если поиск по пользователям то в фильтре:
<div class="col-md-2">
<label>Поиск по сотруднику</label>
{$users_users_list}
<!--select name="user_id"><option value="">Не важно</option></select-->
</div>
А в main.php^
$users=array();
$DBC=DBC::getInstance();
$query='SELECT user_id, fio FROM '.DB_PREFIX.'_user WHERE group_id NOT IN (1,4,18,19,26,27,32,38) ORDER BY fio';
$stmt=$DBC->query($query);
$select='<option value="">Не важно</option>';
if($stmt){
while($ar=$DBC->fetch($stmt)){
$users[$ar['user_id']]=$ar['fio'];
$select.='<option value="'.$ar['user_id'].'"'.(intval($_GET['user_id'])==$ar['user_id'] ? ' selected="selected"' : '').'>'.$ar['fio'].'</option>';
}
}
$this->template->assign('users_users_list', '<select name="user_id">'.$select.'</select>');
$this->template->assign('users_users', $users);
Вот мой файл:
main.php
-
doma изменил репутацию Дмитрий Кондин в Где находятся страницы биллинга
\apps\system\lib\system\user\account.php
function getTopMenu () { $rs = '<br><a href="'.SITEBILL_MAIN_URL.'/account/balance/?do=add_bill">Пополнить счет</a><br>'; $rs .= '<br><i>* '.sprintf(Multilanguage::_('AD_PLACEMENT_COST','system'),$this->getConfigValue('advert_cost'), $this->getConfigValue('ue_name')).'</i>'; return $rs; }
-
doma изменил репутацию Дмитрий Кондин в Где находятся страницы биллинга
Форма баланса пользователя тут
/apps/system/lib/system/user/account.php
function main () { .... Файлы биллинга тут
/apps/billing/
Но при обновлении ваши изменения будут стерты.
-
doma изменил репутацию abushyk в Выгрузка Yandex.Realty
Если брать смый общий случай, то я иногда делаю в шаблоне вот так: {if $some_phone_number != '' && $some_phone_number|strlen==12}{$some_phone_number|regex_replace:'/(\d{3,3})(\d{2,2})(\d{3,3})(\d{2,2})(\d{2,2})$/':'+${1} (${2}) ${3}-${4}-${5}'}{/if} Самая примитивная регулярка которая раздирает исходных набор цифр на куски и форматирует из кусочков нужное отображение.
Для mobilephone, которые однотипны и имеют равную длину и числовую составляющую, работает на ура.
Для прочих номеров возможно больше вариантов из-за необходимости очистки исходного номера от мусора и разной длины номеров из-за свободной формы записи.
-
doma изменил репутацию TopRaN в Установка на denver
Выкинуть Денвер и поставить нормальный виртуальный сервер. OpenServer.