doma

Участники
  • Публикации

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

  • Посещение

  • Days Won

    9

Изменения репутации

  1. Like
    doma изменил репутацию TopRaN в Текстовый редактор для поля описание объекта   
    ckeditor настраиваемый, вот описание по настройке либо тут . Самое главное смотрите какая стоит у вас версия
  2. Like
    doma изменил репутацию Дмитрий Кондин в Восстановить админ пароль   
    Админ тоже в re_user.
    Если админа нет, то зарегистрируйте нового пользователя.
    Поставьте через базу ему active = 1 и group_id = 1, теперь сможете войти в админку под этим пользователем.
  3. Like
    doma получил репутацию от Helenblondi в Выгрузка объявлений в группу Вконтакте   
    хм а почему у вас все приложения показываются по отдельности :))  а у нас только одна кнопка :)) и она обновляет всю систему сразу и все модули :))

    Дмитрий - или это зависит от шаблона?
  4. Like
    doma изменил репутацию Дмитрий Кондин в PageSpeed. Скорость загрузки сайта.   
    У нас появился чемпион по оптимизации скорости сайта - kvart.by
    Не знаю как, но они сделали 100!
     

  5. Like
    doma получил репутацию от Realtor в Разогнать сайт   
    а если у нас этого нет на главной ? что еще и где и как?
  6. Like
    doma получил репутацию от Realtor в Разогнать сайт   
    а что именно выкинули ? и как удалил - так чтобы не использовать, но на сайте было, мало ли что за что отвечает
  7. Like
    doma получил репутацию от Realtor в Разогнать сайт   
    По возможности тоже это делал - но результат не очень большой, да и многие моменты невозможно изменить без содействия разработчиков
     
  8. Like
    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>  
  9. Confused
    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">лучше подскажите где стили и какие именно редактируются по нашим темам на форумах   например по "пожаловаться"
     
  10. Like
    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;
  11. Like
    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}  
  12. Like
    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;
     
     
  13. Like
    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);
  14. Like
    doma получил репутацию от Realtor в Организовать прием ФИДа на сайте   
    а как то можно сделать , чтобы только наши параметры, города и улицы были ? чтобы не имеющиеся на нашем сайте параметры вообще не загружались к нам ?
    то есть чтобы не ломать логику нашего сайта . использовать только наши параметры и наши значения (улиц, материала дома, виды ремонта и т.д)
  15. Like
    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)); /*тут мы его передали в декоратор*/ В результате получаем

  16. Like
    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 ); }
  17. Like
    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">&times;</button> <h4 class="modal-title">Контакты</h4> </div> <div class="modal-body"> <p>{$grid_items[i].phone}</p> </div> </div> </div> </div>  
  18. Like
    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] }); Обычно, для маркеров у которых "ножка" по центру нижней грани картинки, это половина ширины картинки и высота картинки со знаками минус.
  19. Like
    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();
  20. Like
    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} <!-- Скрываем Кадастровый номер и квартиру --> Теперь кадастровый номер и номер квартиры виден только автору обьявления, а админу не виден. В панели управления видимость стоит для групп "Админ" и "Агенты". 
    Для чего это было сделано - Агенты не должны видеть чужие (других агентов) кадастровые номера.
  21. Like
    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
  22. Like
    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; }  
  23. Like
    doma изменил репутацию Дмитрий Кондин в Где находятся страницы биллинга   
    Форма баланса пользователя тут
    /apps/system/lib/system/user/account.php
    function main () { .... Файлы биллинга тут
    /apps/billing/
    Но при обновлении ваши изменения будут стерты.
  24. Like
    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, которые однотипны и имеют равную длину и числовую составляющую, работает на ура.
     
    Для прочих номеров возможно больше вариантов из-за необходимости очистки исходного номера от мусора и разной длины номеров из-за свободной формы записи.
  25. Like
    doma изменил репутацию TopRaN в Установка на denver   
    Выкинуть Денвер и поставить нормальный виртуальный сервер. OpenServer.