wefunkpz

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

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

  • Посещение

Сообщения, опубликованные пользователем wefunkpz


  1. В 03.05.2017 в 12:22, rumantic сказал:

    Могу вам сделать ручную платную доработку, пишите в личку, скидывайте доступы.

    Пожалуйста, 

    разместите инструкцию по установке Akismet без глобального обновления Sitebill

    Проведено много изменений в файлах движка, "трогать" не очень хочется. Желательно поставить только антиспам-фильтр.


  2. Нет. Не совсем так. Установив галочку сохранения без вотермарка вы создаете условия для сохранения "чистых" картинок вместе с теми, на которые нанесен вотермарк. А вот это уже дает возможность немного сменить условие вывода картинок и отдавать в фид картинки без водяного знака.

     

    Окей, как изменить это условие? Где поправить код?


  3. не-не. не то.

    Нужны 2 условия

    1. Свежее приложение яндекс выгрузки

    2. Вы использовали настройку Сохранять картинки без вотермарка с самого начала.

     

    Если первое поправимо, то без второго, грубо говоря, никак.

     

    ПС. Так же таким требованием, кажется, страдает еще авито.

     

    правильно ли я понимаю, что установив "Сохранять картинки без вотермарка", новые изображения в фиде будут без вотермарков, а на сайте с ними? 

    спасибо за оперативный ответ


  4. Здравствуйте, уважаемые разработчики

     

    Есть необходимость в фиде выгружать не изображения с водяными знаками, а их копии без обработки или превью (на котором отсутстует вотермарк).

    Что изменить или добавить в коде ?

    $image_field=trim($this->getConfigValue('apps.yandexrealty.images_field'));		 		$uploadsField=false;		$hasUploadify=false;		 		if($image_field!='' && isset($this->form_data_shared[$image_field]) && in_array($this->form_data_shared[$image_field]['type'], array('uploads', 'uploadify_image'))){			if($this->form_data_shared[$image_field]['type']=='uploadify_image'){				$hasUploadify=true;			}else{				$uploadsField=$image_field;			}		}else{			foreach($this->form_data_shared as $model_item){				if($model_item['type']=='uploadify_image'){					$hasUploadify=true;					$uploadsField=false;					break;				}elseif($uploadsField===false && $model_item['type']=='uploads'){					$uploadsField=$model_item['name'];				}			}		}

  5. По таким обрывочным данным могу только сказать, что где-то есть вывод чего-то вне структуры xml данных.

    Например какой-то отладочный вывод в процессе генерации выгрузки либо, при незаглушенном выводе ошибок, вывод ошибки или предупреждения.

    Какое приложение хоть?)))

    yandexrealty


  6. Если optype является типа select_box, то при выборе данных для сетки для этих элементов выполняется приведение - значение ключа заменяется соответсвующим текстовым.

    Если набор значений таков - {1~~продажа}{2~~аренда} то в $grid_items[i].optype вы уже имеете либо продажа, либо аренда, в зависимости от того, что было установлено для этого объявления.

    спасибо большое! А как это значение при выгрузке в Яндекс.Недвижимость будет работать? (как 0 и 1, или текстовым значением?)


  7. В данный момент для колонки можно использовать конструкцию

    {if $news_list_column[i].img_preview_src!=''}<img class="previewi" src="{$news_list_column[i].img_preview_src}"/>{/if}

    $news_list_column.img_preview_src всегда содержит первую картинку из поля типа uploadify_image (при наличии), либо первую картинку из первого встреченного в модели новости поля типа uploads (опять же таки при наличии).

     

    Ссылка на картинку в нем содержится уже с полным путем. Т.е. доставлять перед ней {$estate_folder}/img/data не нужно.

     

    ПС. Вариант не очевидный, но в данный момент рабочий. В дальнейшем мы приведем и это место к единому формату.

     

    $news_list_column.img_preview_src у меня ничего не возвращает


  8. Добрый день!

     

    Возникла необходимость прикреплять к новостям превью и выводить в блоке.

    Воспользовался новым типом загрузчика, зовел поле image типа uploads в таблице news. Изображение в редакторе новостей прикрепляю, сохраняю.

     

    Вывод в блоке организовал таким образом

    {if $news_list_column[i].image != '' }			<div class="image">			<img class="previewi" src="{$estate_folder}/img/data/{$news_list_column[i].image}"/> 			</div>{/if}

    Изображение не вывыодит, т.к. вместо ссылки на фото в колонке значение в виде

    a:1:{i:0;a:4:{s:7:"preview";s:33:"prv53d7380e2a9e5_1406613518_1.png";s:6:"normal";s:33:"img53d7380e2a9e0_1406613518_1.png";s:4:"type";s:7:"graphic";s:4:"mime";s:3:"png";}}

    wtf?


  9. Добрый день, уважаемые разработчики и пользователи!

     

    Подскажите как реализовать в форме добавления объявления наборы полей формы в зависимости от значения в одном из полей (например, селект-бокс).

     

    Если на моём примере: завёл поле optype (со значениями 0-Продажа, 1-Аренда), теперь при выборе необходимо подгрузить только те поля, что нужны (убрать - такие как "готовность документов" и т.д., добавить - "оплата вперед" и т.д..

     

    Спасибо


  10. Включить SEO-режим с расширенными ссылками объявлений. (apps.seo.data_alias_enable)При активации этой опции URL объявлений будет формироваться на основании поля data.translit_alias, которое должно содержать URL объявления в виде строки без слешей.Например, если объявление с ИД=17 имеет поле translit_alias = 'otlichnaya_kvartira_v_egipte', то при включении этой опции ссылка на это объявление будет иметь вид.../otlichnaya_kvartira_v_egipteЕсли же опция отключена, то.../realty17[.html] 

    алиасы уже можно использовать кириллические


  11. Яндекс говорит не нашел 100 валидных вариантов. А найдено объявлении 0. На сайте 105 объявлении

    т.е. он их видит а почему не валидный. 

    Разве никто с этим не сталкивался, разве я один

    То же самое, я предполагаю это связано с отключением в форме подачи объявления таких полей как "Страна", "Регион", "Метро". Конечно, хотелось услышать мнение разработчиков.


  12. Код рабочий.

    Если не работает:

    1. Проверьте есть и все эти поля в модели пользователя - user_id, fio, phone, imgfile

    2. Посмотрите КУДА вы вставляете {include file='agents_listing.tpl'}. Не все файлы шаблона срабатывают на одной и той же странице. Есть разные условия. Не все части страницы могут быть отображаемыми при разных условиях. Уточните какой шаблон и куда именно вставляется {include file='agents_listing.tpl'}.

    Еще раз проверил, да, действительно! Все работает. Нужно было почистить кэш на сервере.


  13. Сегодня вернулся к вопросу, решил повторно попробовать, результат - даже блок с агентами не выводится

     

    main.php

    <?phpclass frontend_main extends SiteBill_Krascap {		private function getAgentsListing(){	if(isset($_SESSION['user_list'])){	return $_SESSION['user_list'];	}	$ret=array();	$DBC=DBC::getInstance();	$query='SELECT COUNT( d.id ) AS _cnt, u.user_id, u.fio, u.phone, u.imgfile FROM  `re_data` d LEFT JOIN re_user u USING ( user_id ) WHERE u.group_id IN ( 2, 3 ) GROUP BY d.user_id ORDER BY _cnt DESC';	$stmt=$DBC->query($query);	if($stmt){	while($ar=$DBC->fetch($stmt)){	$ret[]=$ar;	}	}	$_SESSION['user_list']=$ret;	return $ret;	}			function check_local_config () {		require_once (SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/admin/object_manager.php');		require_once (SITEBILL_DOCUMENT_ROOT.'/apps/config/admin/admin.php');		$config_admin = new config_admin();			if ( !$config_admin->check_config_item('grid_type') ) {			$config_admin->addParamToConfig('grid_type','list','Тип списка объявлений (list - обычная таблица, thumbs - div-блоки');		}				if ( !$config_admin->check_config_item('template.realia.homepagetype') ) {			$config_admin->addParamToConfig('template.realia.homepagetype','classic','Тип главной страницы (classic|slider|carousel|search)');		}				if ( !$config_admin->check_config_item('vip_cost') ) {			$config_admin->addParamToConfig('vip_cost','100','Цена VIP-объявления за 1 день');			$query = "alter table ".DB_PREFIX."_data add column vip_status_end int(11) not null default 0";			$this->db->exec($query);			if ( !$this->db->success ) {				echo $this->db->error.'<br>';			}		}				if ( !$config_admin->check_config_item('premium_cost') ) {			$config_admin->addParamToConfig('premium_cost','100','Цена Премиум-объявления за 1 день');			$query = "alter table ".DB_PREFIX."_data add column premium_status_end int(11) not null default 0";			$this->db->exec($query);			if ( !$this->db->success ) {				echo $this->db->error.'<br>';			}				}				if ( !$config_admin->check_config_item('bold_cost') ) {			$config_admin->addParamToConfig('bold_cost','100','Цена выделения объявления за 1 день');			$query = "alter table ".DB_PREFIX."_data add column bold_status_end int(11) not null default 0";			$this->db->exec($query);			if ( !$this->db->success ) {				echo $this->db->error.'<br>';			}				}				if ( !$config_admin->check_config_item('vip_rotator_number') ) {			$config_admin->addParamToConfig('vip_rotator_number','5','Количество VIP-объявлений в колонке');		}				if ( !$config_admin->check_config_item('ups_price') ) {			$config_admin->addParamToConfig('ups_price','400','(Цена одного поднятия');		}	}		/**	 * Main	 * @param void	 * @return string	 */	function main () {							$layouts=array(			'_default'=>'layout_basic.tpl',			'home'=>'layout_home.tpl',			'apps'=>'layout_basic.tpl',			'realtygrid'=>'layout_full.tpl',			'realtyview'=>'layout_full.tpl',				'account'=>'layout_account.tpl',		);				$this->check_local_config();		/*require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/system/sitebill_includer.php');			$Sitebill_Includer=Sitebill_Includer::getInstance();			$Sitebill_Includer->addCss('/template/frontend/agency/css/style.css');			$Sitebill_Includer->addCss('/template/frontend/agency/css/style3.css');			*/		/*if(!preg_match('/\/login/', $_SERVER['REQUEST_URI']) && (int)$_SESSION['user_id']==0){			header('location:'.SITEBILL_MAIN_URL.'/login/');		}*/				$work_subcontroller='';		$has_result=false;		$undetected_url=false;								global $__site_title, $folder, $smarty;			$REQUESTURIPATH=Sitebill::getClearRequestURI();						$this->template->assign('agents_list', $this->getAgentsListing());									if($this->getConfigValue('use_google_map')){				$this->template->assign('map_type', 'google');			}else{				$this->template->assign('map_type', 'yandex');			}						$this->getNewest();			$this->getAgents();						require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/admin/object_manager.php');			require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/system/apps/apps_processor.php');			$apps_processor = new Apps_Processor();			$apps_processor->run_preload();				require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/admin/structure/structure_manager.php');			$Structure_Manager = new Structure_Manager();				if ( $_SESSION['theme'] != '' ) {				$theme = $_SESSION['theme'];			} else {				$theme = $this->getConfigValue('theme');			}							$this->template->assert('template_vars_logo', $this->getConfigValue('template.'.$theme.'.logo'));						$this->template->assert('current_theme_name', $theme);			$this->template->assert('allow_register_account', $this->getConfigValue('allow_register_account'));						$result=$this->_detectUrlParams($_SERVER['REQUEST_URI']);						if($result['topic_id'] && !is_array($result['topic_id'])){				$this->setRequestValue('topic_id', $result['topic_id']);			}			if($result['city_id']){				$this->setRequestValue('city_id', $result['city_id']);			}						$this->template->assert('navmenu', $this->getTemplateMenu());				require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/frontend/search/kvartira_search.php');			$kvartira_search_form = new Kvartira_Search_Form();			$kvartira_search_form->main();			$this->template->assert('search_form_template', 'search_form.tpl');			//$this->template->assert('available_langs', Multilanguage::availableLanguages());			if ( file_exists(SITEBILL_DOCUMENT_ROOT.'/apps/upper/upper.xml') ) {			    $this->template->assert('show_upper', 'true');			}							/*				require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/system/plugin/plugin_processor.php');			$Plugin_Processor = new Plugin_Processor();			$Plugin_Processor->main();		*/			$extendedSearchFormParams=$this->getExtendedSearchFormParams();			$this->template->assert('max_floor_count', $extendedSearchFormParams['max_floor_count']);			$this->template->assert('max_price', $extendedSearchFormParams['max_price']);						if(file_exists(SITEBILL_DOCUMENT_ROOT.'/apps/billing/lib/billing.php') && $this->getConfigValue('apps.billing.enable')==1){				$this->template->assert('apps_billing', 'on');				$this->template->assert('per_day_price', $this->getConfigValue('vip_cost'));				$this->template->assert('per_day_price_premium', $this->getConfigValue('premium_cost'));				$this->template->assert('ups_price', $this->getConfigValue('ups_price'));				$this->template->assert('per_day_price_bold', $this->getConfigValue('bold_cost'));				$this->template->assert('now', time());				$this->grid_vip_right();			}else{				$this->template->assert('apps_billing', 'off');				$this->grid_special_right();			}									//$this->template->assert('type_list', $this->getTypeString());			//set default value			$this->template->assert('base', SITEBILL_MAIN_URL);			$this->template->assert('show_demo_banners', $this->getConfigValue('show_demo_banners'));			$this->template->assert('REQUEST_URI', $_SERVER['REQUEST_URI']);			$this->template->assert('type_list2', '');			$this->template->assert('type_list3', '');			$this->template->assert('title', $this->getConfigValue('site_title'));			$this->template->assert('city_by_default', $this->getConfigValue('city'));			$this->template->assert('estate_folder', $folder);			$this->template->assert('right_column', 1);				$this->template->assert('structure_box', $Structure_Manager->getCategorySelectBoxWithName('topic_id', $this->getRequestValue('topic_id') ));			//print_r($_SESSION);				require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/system/user/login.php');			$Login = new Login();				if ( preg_match('/\/logout/', $_SERVER['REQUEST_URI']) ) {				require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/system/user/logout.php');				$Logout = new Logout;				$Logout->main();			}									if(1==$this->getConfigValue('apps.company.enable')){				$this->template->assign('app_company_namespace',$this->getConfigValue('apps.company.namespace'));			}							$this->template->assert('user_id', $Login->getSessionUserId());			//$this->template->assert('auth_menu', $Login->getAuthMenu());			$this->template->assert('user_menu', $Login->getUserMenu());																			if ( $this->getConfigValue('allow_register_account') ) {				require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/admin/users/user_object_manager.php');				require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/system/user/register_using_model.php');				$Register = new Register_Using_Model();				//$smarty->assign->assert('main', $Register->main());				$rs1 = $Register->getRegisterFormElements();				$this->template->assert('register_form_elements', $rs1);											}				/*			if ( $_SERVER['REQUEST_URI'] == '/' ) {				$this->grid_special();			}	*/			//$this->grid_special_right();			/*			 if ( $_SERVER['REQUEST_URI'] == '/' and ($page_array = $this->getPageByURI('/index.html')) ) {				} else {			$page_array = $this->getPageByURI($_SERVER['REQUEST_URI']);			}			if ( $page_array ) {			$this->template->assert('main', $page_array['body']);			$this->template->assert('title', $page_array['title']);			$this->template->assert('meta_keywords', $page_array['meta_keywords']);			$this->template->assert('meta_description', $page_array['meta_description']);			$this->template->render();			$rs = $this->template->toHTML();			return $rs;			}			*/							if($this->getConfigValue('apps.freeorder.enable')==1){				require_once SITEBILL_DOCUMENT_ROOT.'/apps/freeorder/admin/admin.php';				require_once SITEBILL_DOCUMENT_ROOT.'/apps/freeorder/site/site.php';				$FreeOrder=new freeorder_site();				$this->template->assert('freeorder_form', $FreeOrder->getForm());				$this->template->assert('freeorder_on', 'yes');			}else{				$this->template->assert('freeorder_on', 'no');			}				$this->template->assert('meta_keywords', '');			$this->template->assert('meta_description', '');																					if ( preg_match('/^myfavorites/', $REQUESTURIPATH) ) {	        	$this->template->assert('main', '<p><br></p>'.$this->grid_adv_favorites());	        		        	$work_subcontroller='realtygrid';	        	$has_result=true;	       }					if ( !$has_result && preg_match('/\/robox/', $_SERVER['REQUEST_URI']) ) {				require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/system/robokassa/robokassa.php');				$robokassa = new Robox();				$rs = $robokassa->main();				if ( preg_match('/result/', $_SERVER['REQUEST_URI']) ) {					echo $rs;					exit;				}				$this->template->assert('main', $rs);								$work_subcontroller='robox';				$has_result=true;								/*$this->template->render();				$rs = $this->template->toHTML();				return $rs;*/			}						if ( !$has_result && preg_match('/^map(\/(\?.*)?)?$/', $REQUESTURIPATH) ) {				$this->template->assert('main', '<p><br></p>'.$this->map());				$work_subcontroller='realtygrid';				$has_result=true;				//$this->map();				//return true;			}			if ( !$has_result && preg_match('/^map_full_screen(\/(\?.*)?)?$/', $REQUESTURIPATH) ) {			    echo ' ';			    $this->template->assert('data', $this->map(true));			    $work_subcontroller='realtygrid';			    $has_result=true;				//return true;			}			//echo $REQUESTURIPATH;							if ( $this->getConfigValue('apps.geodata.on_home') && $REQUESTURIPATH == '' ) {			    $this->template->assert('geodata_on_home', 1);			    $this->template->assert('_geo_data', $this->map(true));			}						if ( !$has_result && preg_match('/^goroda\//', $REQUESTURIPATH) ) {				$city=$this->getCityListTr();				$topic=$this->getTopicListTr();				if(count($city)>0 && count($topic)>0){					foreach($city as $c){						foreach($topic as $t){							$rs.='<a href="/'.$c['translit_name'].'-'.$t['translit_name'].'.html">'.$c['name'].' ('.$t['name'].')</a><br />';						}					}				}				$this->template->assert('main', $rs);				/*$this->template->assert('search_form', $land_front->getSearchForm());				*/								$work_subcontroller='goroda';				$has_result=true;			}					if ( !$has_result && preg_match('/^register/', $REQUESTURIPATH) ) {				if ( !$this->getConfigValue('allow_register_account') ) {					$this->template->assert('main', 'Функция регистрации отключена администратором');				} else {					require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/admin/users/user_object_manager.php');					require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/system/user/register_using_model.php');					$Register = new Register_Using_Model();					//$smarty->assign->assert('main', $Register->main());					$rs1 = $Register->main();					$this->template->assert('main', $rs1);				}								$work_subcontroller='register';				$has_result=true;			}				if ( !$has_result && preg_match('/^remind/', $REQUESTURIPATH) ) {				if ( !$this->getConfigValue('allow_remind_password') ) {					$this->template->assert('main', 'Функция напоминания пароля отключена администратором');				} else {					require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/system/user/user.php');					require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/system/user/remind.php');					$remind = new Remind;					//$smarty->assign('main', $remind->main());					$this->template->assert('main', $remind->main());				}				$work_subcontroller='register';				$has_result=true;			}				if ( !$has_result && preg_match('/^login/', $REQUESTURIPATH) ) {				$this->template->assert('main', $Login->main());				if ( $Login->getSessionUserId() > 0 ) {					$this->template->assert('auth_menu', $Login->getAuthMenu());				}				$this->template->render();				$rs = $this->template->toHTML();				return $rs;				//$resultString .= $this->getHomePageString();				//return $resultString;			}				if ( !$has_result && preg_match('/^add(\/?)$/', $REQUESTURIPATH) ) {				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;								/*				$this->template->render();				$rs = $this->template->toHTML();				return $rs;*/			}								if ( !$has_result && preg_match('/^ipotekaorder/', $REQUESTURIPATH) ) {				require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/admin/object_manager.php');				require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/frontend/form/ipoteka.php');				$ipoteka_order = new Ipoteka_Order_Form();					$this->template->assert('main', $ipoteka_order->main());								$work_subcontroller='ipotekaorder';				$has_result=true;			}				if ( !$has_result && preg_match('/^contactus/', $REQUESTURIPATH) ) {				require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/admin/object_manager.php');				require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/frontend/form/contactus.php');				$contactus_form = new contactus_Form();					$this->template->assert('main', $contactus_form->main());								$work_subcontroller='contactus';				$has_result=true;								/*$this->template->render();				$rs = $this->template->toHTML();				return $rs;*/			}					if ( !$has_result && preg_match('/^land\//', $REQUESTURIPATH) ) {				require_once('lib/admin/land/land_manager.php');				require_once('lib/frontend/land/land_front.php');				$land_front = new Land_Front();				 				$this->template->assert('main', $land_front->main());				$this->template->assert('search_form', $land_front->getSearchForm());					$this->template->render();				$rs = $this->template->toHTML();				return $rs;			}								if(!$has_result){				$apps_processor->run_frontend();				if ( count($apps_processor->get_executed_apps()) > 0 ) {					$work_subcontroller='apps';					$has_result=true;									/*$this->template->render();					 $rs = $this->template->toHTML();					return $rs;*/				}			}									if ( !$has_result && preg_match('/^account/', $REQUESTURIPATH) ) {				$this->template->assert('right_column', '');				$this->template->assert('is_account', '1');				$this->template->assert('search_form_template', '');					//return;				require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/system/user/account.php');				$Account = new Account;					if ( $Account->get_user_id() > 0 ) {					$company_profile = $Account->get_company_profile($Account->get_user_id());					$this->template->assert('company', $company_profile);				}						$this->template->assert('breadcrumbs',						$this->get_breadcrumbs(								array(										'<a href="'.$folder.'/">'.Multilanguage::_('L_HOME').'</a>',										'<a href="'.$folder.'/account/">Личный кабинет</a>'								)));					if ( preg_match('/^account\/profile/', $REQUESTURIPATH) ) {					require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/system/user/profile.php');					require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/system/user/profile_using_model.php');					$profile = new User_Profile_Model();					$this->template->assert('breadcrumbs',							$this->get_breadcrumbs(									array(											'<a href="'.$folder.'/">'.Multilanguage::_('L_HOME').'</a>',											'<a href="'.$folder.'/account/">Личный кабинет</a>',											'<a href="'.$folder.'/account/profile/">Профиль</a>'									)));										$this->template->assert('main', $profile->main());				} elseif ( preg_match('/^account\/balance/', $REQUESTURIPATH) ) {						$this->template->assert('breadcrumbs',							$this->get_breadcrumbs(									array(											'<a href="'.$folder.'/">'.Multilanguage::_('L_HOME').'</a>',											'<a href="'.$folder.'/account/">Личный кабинет</a>',											'<a href="'.$folder.'/account/balance/">Баланс</a>'									)));						$this->template->assert('main', $Account->main());				} elseif ( preg_match('/^account\/user/', $REQUESTURIPATH) ) {					if ( $this->getConfigValue('apps.company.enable') ) {						$this->template->assert('breadcrumbs',								$this->get_breadcrumbs(										array(												'<a href="'.$folder.'/">'.Multilanguage::_('L_HOME').'</a>',												'<a href="'.$folder.'/account/">Личный кабинет</a>',												'<a href="'.$folder.'/account/user/">Риелторы</a>'										)));							require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/admin/users/user_object_manager.php');						require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/frontend/user/user_company_manager.php');						$user_company_manager = new User_Company_Manager();						$this->template->assert('main', $user_company_manager->frontend_main());					}					} else {						$this->template->assert('breadcrumbs',							$this->get_breadcrumbs(									array(											'<a href="'.$folder.'/">'.Multilanguage::_('L_HOME').'</a>',											'<a href="'.$folder.'/account/">Личный кабинет</a>',											'<a href="'.$folder.'/account/data/">Мои объявления</a>'									)));						if(preg_match('/add/', $REQUESTURIPATH)){						require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/admin/sitebill_krascap_admin.php');						require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/admin/sitebill_krascap_editor.php');						require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/system/user/data/user_data.php');						$user_data_manager = new User_Data_Manager();						$this->template->assert('main', $user_data_manager->add());					}else{						require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/admin/sitebill_krascap_admin.php');						require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/admin/sitebill_krascap_editor.php');						require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/system/user/data/user_data.php');						$user_data_manager = new User_Data_Manager();						$this->template->assert('main', $user_data_manager->main());					}					} 								$work_subcontroller='account';				$has_result=true;				/*				$this->template->render();				$rs = $this->template->toHTML();				return $rs;*/			}						if(!$has_result && $this->isRealtyDetected($REQUESTURIPATH)){				$work_subcontroller='realtyview';				$has_result=true;			}											if(preg_match('/^user(\d+).html/', $REQUESTURIPATH, $matches)){			$this->setRequestValue('user_id', (int)$matches[1]);			$this->template->assert('main', '<p><br></p>'.$this->grid_adv());			$work_subcontroller='realtygrid';			$has_result=true;		} elseif( $this->getRequestValue('do') == 'news' ) {			$this->template->assert('main', $this->viewNews( $this->getRequestValue('news_id') ));		} elseif( $this->getRequestValue('do') == 'buy' ) {			$this->template->assert('main', $this->processAdvancedForm('buy'));		} elseif( $this->getRequestValue('do') == 'rent' ) {			$this->template->assert('main', $this->processAdvancedForm('rent'));		} elseif ( $this->getRequestValue('view') != '' ) {			$this->template->assert('main', $this->getPage($this->getRequestValue('view')));		} else {			if($this->getConfigValue('apps.realtypro.enable')!=1){				//$this->template->assert('_layout', 'layout_full.tpl');				if(!$has_result){					if($REQUESTURIPATH=='' && empty($_GET)){						$work_subcontroller='home';						if('classic'==$this->getConfigValue('template.realia.homepagetype')){							$work_subcontroller='realtygrid';						}					}else{						$work_subcontroller='realtygrid';					}										$this->template->assert('main', '<p><br></p>'.$this->grid_adv());				}							}			}				if('slider'==$this->getConfigValue('template.realia.homepagetype')){			$this->template->assert('homepage_type', 'slider');		}elseif('carousel'==$this->getConfigValue('template.realia.homepagetype')){			$this->template->assert('homepage_type', 'carousel');		}elseif('search'==$this->getConfigValue('template.realia.homepagetype')){			$this->template->assert('homepage_type', 'search');		}else{			$this->template->assert('homepage_type', 'slider');		}						//echo $work_subcontroller;		//var_dump($work_subcontroller);		if($work_subcontroller!=='' && isset($layouts[$work_subcontroller])){			$this->template->assert('_layout', $layouts[$work_subcontroller]);		}else{			$this->template->assert('_layout', $layouts['_default']);		}				$this->template->render();		$rs = $this->template->toHTML();		return $rs;					}		function grid_vip_right () {		require_once SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/frontend/grid/grid_constructor.php';		$grid_constructor = new Grid_Constructor();		$params['vip'] = '1';		$url_params=$this->_detectUrlParams($server_request_uri);		$params['topic_id'] = $url_params['topic_id'];				$grid_constructor->vip_right($params);			}		private function getTemplateMenu(){		$DBC=DBC::getInstance();			$additional_menu=array();		$stmt=$DBC->query('SELECT name, url FROM '.DB_PREFIX.'_menu_structure WHERE menu_id=(SELECT menu_id FROM '.DB_PREFIX.'_menu WHERE tag=? LIMIT 1) ORDER BY sort_order ASC', array('navigation_menu'));		if($stmt){			while($ar=$DBC->fetch($stmt)){				$additional_menu[]=$ar;			}		}		require_once(SITEBILL_DOCUMENT_ROOT.'/template/frontend/realia/main/realia_menu_decorator.php');		require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/admin/structure/structure_implements.php');		require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/admin/structure/structure_manager.php');		$SM=new Structure_Manager();		$structure=$SM->loadCategoryStructure();		/*		$structure['catalog'][]=array('url'=>'#', 'name'=>"О нас");		$indexes=array_keys($structure['catalog']);		$last_index=$indexes[count($indexes)-1];		$structure['childs'][0][]=$last_index;		*/		return Realia_Menu_Decorator::getMenu($structure);				}		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']=10;		$params['page']=1;		$res = $grid_constructor->get_sitebill_adv_ext( $params, false, false );		//echo count($res);		//print_r($res);		$this->template->assign('new_grid_items', $res);	}		private function getAgents(){		$ret=array();		$DBC=DBC::getInstance();		$query='SELECT * FROM '.DB_PREFIX.'_user WHERE group_id<>4 AND login<>\'_unregistered\' ORDER BY RAND() LIMIT 3';		$stmt=$DBC->query($query);				if($stmt){			while($ar=$DBC->fetch($stmt)){				$ret[]=$ar;			}		}		$this->template->assign('agentslist_items', $ret);	}		function isRealtyDetected($requesturi){		$result=false;		$unknown_address=false;				if(!$result && 1==$this->getConfigValue('apps.seo.data_alias_enable')){			$url_string_parts=explode('/',$requesturi);			if(count($url_string_parts)>0){				$possible_alias=$url_string_parts[count($url_string_parts)-1];						$possible_alias=preg_replace('/[^A-Za-z0-9_-]/','',urldecode($possible_alias));				if($possible_alias!=''){					$q="SELECT id FROM ".DB_PREFIX."_data WHERE translit_alias='".$possible_alias."'";					$this->db->exec($q);					if($this->db->success){						$this->db->fetch_assoc();						if((int)$this->db->row['id']>0){							$realty_id=(int)$this->db->row['id'];							$this->growCounter('data', 'id', $realty_id, $this->getSessionUserId());							/*require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/frontend/view/kvartira_view.php');							require_once(SITEBILL_DOCUMENT_ROOT.'/template/frontend/'.$this->getConfigValue('theme').'/main/view/local_kvartira_view.php');							$kvartira_view = new Local_Kvartira_View();							*/							require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/frontend/view/kvartira_view.php');							$kvartira_view = new Kvartira_View();														if($html=$kvartira_view->main($realty_id)){								$this->template->assert('main', $kvartira_view->main($realty_id));								$result=true;							}						}					}				}			}		}								if ( !$result && preg_match('/realty/', $requesturi) ) {						if(1==$this->getConfigValue('apps.seo.level_enable') && preg_match('/^realty/', $requesturi)){								$realty_id = $this->getIDfromURI($requesturi);				//echo 'realty_id = '.$realty_id;				if($realty_id){					$query='SELECT topic_id FROM '.DB_PREFIX.'_data WHERE id='.$realty_id;					$this->db->exec($query);					$this->db->fetch_assoc();					$topic_id=$this->db->row['topic_id'];					//echo $topic_id;					require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/admin/structure/structure_manager.php');					$Structure_Manager = new Structure_Manager();					$category_structure = $Structure_Manager->loadCategoryStructure();											if($category_structure['catalog'][$topic_id]['url']!=''){						$parent_category_url=$category_structure['catalog'][$topic_id]['url'].'/';					}else{						$parent_category_url='';					}											if(1==$this->getConfigValue('apps.seo.html_prefix_enable')){						$new_location=SITEBILL_MAIN_URL.'/'.$parent_category_url.'realty'.$realty_id.'.html';					}else{						$new_location=SITEBILL_MAIN_URL.'/'.$parent_category_url.'realty'.$realty_id;					}					header('HTTP/1.1 301 Moved Permanently');					header('Location: '.$new_location);				}/*else{					$unknown_address=true;					header("Status: 404 Not Found");					$this->template->assign('title', Multilanguage::_('L_MESSAGE_PAGE_NOT_FOUND'));					$this->template->assign('meta_title', Multilanguage::_('L_MESSAGE_PAGE_NOT_FOUND'));					$this->template->assign('error_message', '<h1>'.Multilanguage::_('L_MESSAGE_PAGE_NOT_FOUND').'</h1>');					$this->template->assign('main_file_tpl', 'error_message.tpl');				}*/					}elseif(1==$this->getConfigValue('apps.seo.level_enable') && !preg_match('/^realty/', $requesturi)){								$realty_id = $this->getIDfromURI($requesturi);								/*require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/frontend/view/kvartira_view.php');				require_once(SITEBILL_DOCUMENT_ROOT.'/template/frontend/'.$this->getConfigValue('theme').'/main/view/local_kvartira_view.php');				$kvartira_view = new Local_Kvartira_View();				*/				require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/frontend/view/kvartira_view.php');				$kvartira_view = new Kvartira_View();				$html=$kvartira_view->main($realty_id);				if($html){					$this->growCounter('data', 'id', $realty_id, $this->getSessionUserId());					$this->template->assert('main', $html);					$result=true;				}			} elseif(0==$this->getConfigValue('apps.seo.level_enable') && preg_match('/^realty/', $requesturi)){				$realty_id = $this->getIDfromURI($_SERVER['REQUEST_URI']);								/*require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/frontend/view/kvartira_view.php');				require_once(SITEBILL_DOCUMENT_ROOT.'/template/frontend/'.$this->getConfigValue('theme').'/main/view/local_kvartira_view.php');				$kvartira_view = new Local_Kvartira_View();				*/				require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/frontend/view/kvartira_view.php');				$kvartira_view = new Kvartira_View();								$html=$kvartira_view->main($realty_id);				if($html){					$this->growCounter('data', 'id', $realty_id, $this->getSessionUserId());					$this->template->assert('main', $html);					$result=true;				}			}/*else {				$unknown_address=true;				header("Status: 404 Not Found");				$this->template->assign('title', Multilanguage::_('L_MESSAGE_PAGE_NOT_FOUND'));				$this->template->assign('meta_title', Multilanguage::_('L_MESSAGE_PAGE_NOT_FOUND'));				$this->template->assign('error_message', '<h1>'.Multilanguage::_('L_MESSAGE_PAGE_NOT_FOUND').'</h1>');				$this->template->assign('main_file_tpl', 'error_message.tpl');			}*/		}		return $result;	}		}?>

    agents_listing.tpl

    {if $agents_list|count>0}			<div class="widget our-agents">			    <div class="title">			        <h2>{$L_OURAGENTS}</h2>			    </div>							    <div class="content">			    {foreach from=$agents_list item=oneagent}			        <div class="agent">			            <div class="image">			            {if $oneagent.imgfile!=''}			                <img src="{$estate_folder}/img/data/user/{$oneagent.imgfile}">			            {else}			            	<img src="{$estate_folder}/template/frontend/{$current_theme_name}/img/userplaceholder.png">			            {/if}			            </div>			            <div class="name"><a href="{$estate_folder}/user{$oneagent.user_id}.html">{$oneagent.fio}</a></div>			            <div class="phone">{$oneagent.phone}</div>			            <div class="email">Всего объявлений: {$oneagent._cnt}</div>			        </div>				{/foreach}			    </div>			</div>		{/if}

    внедряю в шаб 

    {include file='agents_listing.tpl'}


  14. Для того, что бы вывести, их сначала придется выбрать и БД. В исходном коде выбираются ИД, имя, телефон и файл аватарки. Просто расширьте вот эту часть

    SELECT COUNT( d.id ) AS _cnt, u.user_id, u.fio, u.phone, u.imgfile

    добавив необходимые поля и их можно будет получить уже в шаблоне. Тут правда зависит о каких именно дополнимтельных полях идет речь.

    Делал, поэтому и спрашиваю. Внимательно все перепроверил.

     

    У меня одно из полей company

    $query='SELECT COUNT( d.id ) AS _cnt, u.user_id, u.fio, u.phone, u.imgfile, u.company FROM  `re_data` d LEFT JOIN re_user u USING ( user_id ) WHERE u.group_id IN (2, 3) GROUP BY d.user_id ORDER BY _cnt DESC';

    а выводил вот так (кста, у Вас в выводе тоже тэг закрывающий есть, а открытия нет)

    <div class="name">{$oneagent.company}</a></div>

  15. Отлично! Все работает.

     

    Вопрос. Как в листинге вывести дополнительные поля у пользователя? Насколько я понял, в теле функции листинга использованы массивы re_data и re_user, в них данные о новых полях отсутствуют