Дмитрий Кондин

Администраторы
  • Публикации

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

  • Посещение

  • Days Won

    362

Все публикации пользователя Дмитрий Кондин

  1. Запилил промо-ролик на 13 секунд, так чтобы донести за это время основную суть CMS Sitebill. Как вы думаете удалось ли это?
  2. http://vk.com/video25182601_171034631
  3. Точно, много раз сталкивались с этой проблемой. Когда фтп-клиенты некоторые вообще все файлы к маленьким буквам приводят. Проблема в том, что мы используем плагины сторонних разработчиков - поэтому все в нижнем регистре не сможем сделать. Надеюсь люди будут пользоваться правильными клиентами для закачки файлов )
  4. Спасибо за отзыв! Будет! )
  5. В этом случае вот такой рецепт 1. Поле контакт_собственника(например) в Приложение - Редактор форм делаем видимым только для групп Риэлторы и Администраторы 2. Удаляем в realty_view.tpl вывод этого поля контак_собственника - делаем видимым только владельцу и админу. Для этого в realty_view.tpl находим такую строчку {if $data_item.type eq "primary_key" or $data_item.value eq "0" or $data_item.value eq "" or $data_item.name eq "currency_id" or $data_item.name eq "export_cian" or $data_item.name eq "user_id" or $data_item.name eq "price" or $data_item.name eq "youtube" or $data_item.type eq "hidden" or $data_item.name eq "text" or $data_item.type eq "geodata" or $data_item.name eq "meta_keywords" or $data_item.name eq "meta_description" or $data_item.name eq "meta_title" or $data_item.name eq "number"}добавляем сразу под ней вот такую {elseif $data_item.name eq "kontakt_sobstvennika" and $data.user_id.value ne $smarty.session.user_id}Соответственно, kontakt_sobstvennika - это системное название поля, которое хотим скрыть.
  6. Приложение - Редактор форм - добавляем новые элементы, лучше safe_string и указываем Активность в категориях - Земельные участки.
  7. Может быть вам тогда вообще сделать тип операции отдельным полем?
  8. Эта ошибка говорит о том, что вы при редактировании категорий вложили родительский в дочерний пункт, получилась петля. Если скажете доступ в phpmyadmin починую вам.
  9. Рекомендую http://www.etown.ru/s/user/58-abushyk/
  10. По выгрузке почитайте - тут объяснено про страну http://wiki.sitebill.ru/index.php?title=%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%22%D0%92%D1%8B%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0_Yandex.Realty%22 Тогда областные районы выносите на уровень города, т.е. в город пишите эти районы.
  11. 1. По /add/ - зайдите в админку Контент - Меню - Верхнее меню и удалите пункт Добавить объявление. Согласен не идеально у нас построено, есть два варианта подачи объявления /add/ - это без регистрации, а из лк с регистрацией. Но проблема в том, что наверху /add/ всегда светится, и его надо убирать руками, если вы не хотите добавления без регистрации. Надеюсь яснее стало? 2. Вы написали что вам не нравится пустое country - я вам скинул инструкцию с описание того, как добавить поле Страна и Регион в форму объявления. И после этого добавляйте страну и регион в свои объявления.
  12. Вижу такое решение, берем отсюда метод генерации похожих /apps/system/lib/frontend/view/kvartira_view.php И переносим в исполняемый файл шаблона main.php $simparams=array( 'id'=>(int)$form_data['id']['value'], 'topic_id'=>(int)$form_data['topic_id']['value'], 'city_id'=>(int)$form_data['city_id']['value'], 'district_id'=>(int)$form_data['district_id']['value'], 'street_id'=>(int)$form_data['street_id']['value'], ); $this->template->assign('similar_data', $this->getSimilar($category_structure, $simparams));............ protected function getSimilar($categories, $params=array()){ $similar_items_count=(0==(int)$this->getConfigValue('similar_items_count') ? 5 : (int)$this->getConfigValue('similar_items_count')); require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/admin/structure/structure_manager.php'); $Structure_Manager = new Structure_Manager(); $category_structure = $Structure_Manager->loadCategoryStructure(); $DBC=DBC::getInstance(); $ret=array(); $datas=array(); $where=array(); if(!empty($params)){ $ids[]=$params['id']; $where['active']='active=1'; if($params['street_id']!=0){ $where['street_id']='street_id='.$params['street_id']; } if($params['topic_id']!=0){ $where['topic_id']='topic_id='.$params['topic_id']; } if($params['city_id']!=0){ $where['city_id']='city_id='.$params['city_id']; } if($params['district_id']!=0){ $where['district_id']='district_id='.$params['district_id']; } if($params['id']!=0){ $where['id']='id NOT IN ('.implode(',',$ids).')'; } $q='SELECT id FROM '.DB_PREFIX.'_data'.(!empty($where) ? ' WHERE '.implode(' AND ',$where) : '').' LIMIT '.$similar_items_count; $stmt=$DBC->query($q); if($stmt){ while($ar=$DBC->fetch($stmt)){ $ret[]=$ar['id']; $ids[]=$ar['id']; } } if(count($ret)<$similar_items_count){ unset($where['district_id']); unset($where['street_id']); $where['id']='id NOT IN ('.implode(',',$ids).')'; $q='SELECT id FROM '.DB_PREFIX.'_data'.(!empty($where) ? ' WHERE '.implode(' AND ',$where) : '').' LIMIT '.$similar_items_count; $stmt=$DBC->query($q); if($stmt){ while($ar=$DBC->fetch($stmt)){ $ret[]=$ar['id']; $ids[]=$ar['id']; } } } if(count($ret)<$similar_items_count){ unset($where['city_id']); //unset($where['street_id']); $where['id']='id NOT IN ('.implode(',',$ids).')'; $q='SELECT id FROM '.DB_PREFIX.'_data'.(!empty($where) ? ' WHERE '.implode(' AND ',$where) : '').' LIMIT '.$similar_items_count; $stmt=$DBC->query($q); if($stmt){ while($ar=$DBC->fetch($stmt)){ $ret[]=$ar['id']; $ids[]=$ar['id']; } } } if(count($ret)<$similar_items_count){ $last=$similar_items_count-count($ret); unset($where['topic_id']); $where['id']='id NOT IN ('.implode(',',$ids).')'; $q='SELECT id FROM '.DB_PREFIX.'_data'.(!empty($where) ? ' WHERE '.implode(' AND ',$where) : '').' LIMIT '.$last; $stmt=$DBC->query($q); if($stmt){ while($ar=$DBC->fetch($stmt)){ $ret[]=$ar['id']; $ids[]=$ar['id']; } } } } require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/model/model.php'); $data_model = new Data_Model(); $form_data = $data_model->get_kvartira_model(false, false); $hasTlocation=false; foreach($form_data['data'] as $key=>$val){ if($val['type']=='tlocation'){ $hasTlocation=true; $tlocationElement=$key; break; } } $i=0; foreach($ret as $r){ $form_data = $data_model->get_kvartira_model(false, false); $form_data = $data_model->init_model_data_from_db ( 'data', 'id', $r, $form_data['data'], true ); //print_r($form_data); $form_data['topic_id']['value_string']=$categories['catalog'][$form_data['topic_id']['value']]['name']; if(1==$this->getConfigValue('apps.seo.level_enable')){ if($category_structure['catalog'][$form_data['topic_id']['value']]['url']!=''){ $form_data['parent_category_url']=$category_structure['catalog'][$form_data['topic_id']['value']]['url'].'/'; }else{ $form_data['parent_category_url']=''; } }else{ $form_data['parent_category_url']=''; } if(1==$this->getConfigValue('apps.seo.data_alias_enable') && $form_data['translit_alias']['value']!=''){ $form_data['href']=SITEBILL_MAIN_URL.'/'.$form_data['parent_category_url'].$form_data['translit_alias']['value']; //$ra[$item_id]['href']=SITEBILL_MAIN_URL.'/'.$ra[$item_id]['parent_category_url'].$this->getTranslitAlias($ra[$item_id]['city'],$ra[$item_id]['street'],$ra[$item_id]['number']); }elseif(1==$this->getConfigValue('apps.seo.html_prefix_enable')){ $form_data['href']=SITEBILL_MAIN_URL.'/'.$form_data['parent_category_url'].'realty'.$form_data['id']['value'].'.html'; }else{ $form_data['href']=SITEBILL_MAIN_URL.'/'.$form_data['parent_category_url'].'realty'.$form_data['id']['value']; } if($hasTlocation){ $form_data['country_id']['value_string']=$form_data[$tlocationElement]['value_string']['country_id']; $form_data['region_id']['value_string']=$form_data[$tlocationElement]['value_string']['region_id']; $form_data['city_id']['value_string']=$form_data[$tlocationElement]['value_string']['city_id']; $form_data['district_id']['value_string']=$form_data[$tlocationElement]['value_string']['district_id']; $form_data['street_id']['value_string']=$form_data[$tlocationElement]['value_string']['street_id']; } $datas[]=$form_data; $i++; if($i==5){ break; } } /*echo '<pre>'; print_r($datas); echo '</pre>';*/ return $datas; }Затем для каждой новой выборки создаем копию метода, но с другим именем, например protected function getSimilar2($categories, $params=array()){Внутри метода придумываем свою логику. В принципе можно таких функций накопировать сколько угодно, не затрагивая логику работы /apps/
  13. Значит подаете объявления из формы /add/, а нужно из формы /account/data/?do=new , можно форму /add/ вообще убрать если у вас будут только зарегистрированные подавать. Включите поля Страна и Регион
  14. Зашел в админку 1. У вас было выключено приложение apps.client 2. apps.client было не обновлено Исправил эти два пункта, попробовал отправку заявок из всех форм, все пришло.
  15. Если сделали все по инструкции http://www.etown.ru/s/topic/1540-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2-%D0%B2-cms-sitebill/ То в справочник новый будут добавляться через Пользовательские сущности. Чтобы все это добавить в поиск, читаем тут http://www.etown.ru/s/topic/241-%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%BD%D0%BE%D0%B2%D1%8B%D0%B5-%D0%BF%D0%BE%D0%BB%D1%8F-%D0%B2-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA/
  16. Вот еще по формам сделали http://www.etown.ru/s/topic/1602-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BB%D1%8E%D0%B1%D1%8B%D1%85-%D1%84%D0%BE%D1%80%D0%BC-%D0%BD%D0%B0-%D1%81%D0%B0%D0%B9%D1%82%D0%B5/
  17. Владельцам сайтов недвижимости по сути нужно получить контакт посетителя, который заинтересован продать или купить дом, квартиру, дачу. Вот мы и сделали инструмент для того, чтобы админы сайта сами могли создавать разные формы для связи с посетителями.
  18. Наши агенты http://www.etown.ru/s/topic/396-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD-realia/page-4#entry4356
  19. Все исправили, можете обновляться.