pwnz22

Вывод информации об объекте в realty_grid_list.tpl

Recommended Posts

Добрый день! 

Хочу выводить больше инфы в realty_grid_list.tpl а при выводе с некоторых значений выводить только ID  с БД. Как исправить чтобы вывел название(name) ?

Например вывожу материал стен: {$grid_items.walls}  

 

еще как сделать проверку на optype  в realty_grid_list.tpl (чтобы работало) ?

{if $grid_items.optype == 2} {/if}
 
 
и карту как убрать отсюда -> https://i.gyazo.com/4987ebf6587c2b5dc842d25ffb2dfbfc.png 
со страницы результатов поиска.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добрый день! 

Хочу выводить больше инфы в realty_grid_list.tpl а при выводе с некоторых значений выводить только ID  с БД. Как исправить чтобы вывел название(name) ?

Например вывожу материал стен: {$grid_items.walls}  

И что мешает, вставьте код...

 

еще как сделать проверку на optype  в realty_grid_list.tpl (чтобы работало) ?

{if $grid_items.optype == 2} {/if}

А по умолчанию продажа/аренда не выводится? 

 

и карту как убрать отсюда -> https://i.gyazo.com/4987ebf6587c2b5dc842d25ffb2dfbfc.png 

со страницы результатов поиска.

Тут варианты:

1. отключить карту в настройках

2. установить в Настройки -> вкладка template.realia другой вариант отображения главной (slider/carousel/search)

3. жестко убрать код карты из realty_grid.tpl , начало файла, перед переключателем отображения объявлений - list и thumbs. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Код вставляю, но вместо имен выводит ID, вот и спрашиваю как вывести названия а не ID )

и спасибо за др. ответы) помогли) ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

еще как сделать проверку на optype  в realty_grid_list.tpl (чтобы работало) ?

{if $grid_items.optype == 2} {/if}
 

 

{if $grid_items._optype_ == 2} {/if}

 

Это (окружения подчеркиваниями системного имени поля) применимо ко всем элементам типа select_box

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

{if $grid_items._optype_ == 2} {/if}

 

Это (окружения подчеркиваниями системного имени поля) применимо ко всем элементам типа select_box

Этот вопрос снят. Подскажите что делать с первым вопросом)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
/settings.ini.php открыть
добавить строки
[GridConstructor]path='/main/grid/local_grid_constructor.php'name='Local_Grid_Constructor'

В папку шаблона в /main/grid/ положить файл local_grid_constructor.php с содержимым

 

class Local_Grid_Constructor extends Grid_Constructor {  protected function transformGridData($ra, $_collect_user_info=false){    $ra=parent::transformGridData($ra, $_collect_user_info);    require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/model/model.php');    $data_model = new Data_Model();    foreach ( $ra as $item_id => $item_array ) {       if ( $item_array['системное имя переменной-справочника в модели data'] > 0 ) {         $ra[$item_id]['желаемое имя в котором будет значение текстовое из справочника латинницей'] = $data_model->get_string_value_by_id('таблица справочника без префикса re_', 'колонка ключ в тиаблице-справочнике', 'name', $item_array['системное имя переменной-справочника в модели data'], true);           }     }     return $ra;   } }

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А как из таблицы re_user вывести поля phone и mobile в realty_grid_list.tpl?

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

А почему данные нужны из re_user? почему их не взять из data, там-же заполняются контакты владельца. Допишите строку с телефоном по образцу метража или этажности.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

А почему данные нужны из re_user? почему их не взять из data, там-же заполняются контакты владельца. Допишите строку с телефоном по образцу метража или этажности.

Попросили вывести номер риелтора) я тут не причем) по мне так вы правы) с той таблицы тоже нужно в некоторых вывести)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если телефон брать из таблицы data, то добавьте после этажности:

<div class="area"><span class="key">{$L_PHONE}:</span><span class="value">{$grid_items[i].phone}, {$grid_items[i].mobile}</span></div>

Будет в одну строку с метражом и этажностью. Если класс переименовать, например в phone, то будет выглядеть отдельной строкой.

 

Если данные нужны из таблицы user, тут Константин лучше подскажет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

По умолчанию данные связанных пользователей в сетку не подхватываются. Но можно их заставить подхватится передав специальный параметр _collect_user_info со значением 1.

 

 

Сделать это можно так. В контроллере шаблона /main/main.php нужно сделать локальную функцию сборщика данных для списка

function grid_adv ($params=array()) {    $in_params=$params;    $in_params['_collect_user_info ']=1;    return parent::grid_adv($in_params);}

После этого в объектах списка будет присутствовать подмассив _user_info в котором будут лежать значения его phone, login, fio.

Получить к ним доступ можно будет

{$grid_items[i]._user_info.phone}

Что бы расширить список доступных полей, нужно локализовать Grid_Constructor и обусловить изменения в локальной функции его с именем transformGridData()

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

не подскажите как вывести принадлежность пользователя к группе например -в гридах? 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Здравствуйте.

Я хотел взять номера телефонов, которые указаны на картинке, с right_sidebar_realtyview.tpl под кнокой показать телефон и поместить номера в листовый вид realty_grid_list.tpl под этажностью в форме кнопки для модала (также показанно на второй картинке). Вышеперечисленные способы вызывают номера хозяев, а не риелторов, которые добавили объявление. Как вызвать номер риелтора?

Вторая проблема, когда я добавил {$grid_items.phone}, {$grid_items.mobile} в модал то во всех модалах объявлений выдается номер первого объявления, тогда как если добавлять номера под этажностью (не в модале) то все номера отображаются нормально.

Сним2ок.JPG

Снимок.JPG

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
14 часа назад, Realtor сказал:

Здравствуйте.

Я хотел взять номера телефонов, которые указаны на картинке, с right_sidebar_realtyview.tpl под кнокой показать телефон и поместить номера в листовый вид realty_grid_list.tpl под этажностью в форме кнопки для модала (также показанно на второй картинке). Вышеперечисленные способы вызывают номера хозяев, а не риелторов, которые добавили объявление. Как вызвать номер риелтора?

Вторая проблема, когда я добавил {$grid_items.phone}, {$grid_items.mobile} в модал то во всех модалах объявлений выдается номер первого объявления, тогда как если добавлять номера под этажностью (не в модале) то все номера отображаются нормально.

Полный листинг кода прикрепляйте, чтобы можно было разобраться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
22 часа назад, Realtor сказал:

Здравствуйте.

Я хотел взять номера телефонов, которые указаны на картинке, с right_sidebar_realtyview.tpl под кнокой показать телефон и поместить номера в листовый вид realty_grid_list.tpl под этажностью в форме кнопки для модала (также показанно на второй картинке). Вышеперечисленные способы вызывают номера хозяев, а не риелторов, которые добавили объявление. Как вызвать номер риелтора?

Вторая проблема, когда я добавил {$grid_items.phone}, {$grid_items.mobile} в модал то во всех модалах объявлений выдается номер первого объявления, тогда как если добавлять номера под этажностью (не в модале) то все номера отображаются нормально.

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>

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
7 часов назад, TopRaN сказал:

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>

 

в итоге получается если в сетке будет 10 объявлений то 10 модалок будет. получается код будет больше, так же как и размер страницы для загрузки - что не очень хорошо, но как решение -имеет место быть. а как то иначе можно реализовать чтобы не увеличивать  код? в том числе размер страницы - чтобы страница грузилась быстрее, но при этом нажать на кнопку и открывалось окно с дополнительной информацией  которая содержится в {$grid_items}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, doma сказал:

в итоге получается если в сетке будет 10 объявлений то 10 модалок будет. получается код будет больше, так же как и размер страницы для загрузки - что не очень хорошо, но как решение -имеет место быть. а как то иначе можно реализовать чтобы не увеличивать  код? в том числе размер страницы - чтобы страница грузилась быстрее, но при этом нажать на кнопку и открывалось окно с дополнительной информацией  которая содержится в {$grid_items}

Можно, через ajax. Но это другая тема.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо! Забыл, что надо и ID поменять)) Решил не использовать модал, а просто вписывать номера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 26.10.2018 в 16:56, TopRaN сказал:

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>

 

{$grid_items.phone} это выводит телефоны из таблицы data, а мне надо из таблицы user

Подскажите?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 29.10.2015 в 21:13, abushyk сказал:

По умолчанию данные связанных пользователей в сетку не подхватываются. Но можно их заставить подхватится передав специальный параметр _collect_user_info со значением 1.

 

 

Сделать это можно так. В контроллере шаблона /main/main.php нужно сделать локальную функцию сборщика данных для списка


function grid_adv ($params=array()) {    $in_params=$params;    $in_params['_collect_user_info ']=1;    return parent::grid_adv($in_params);}

После этого в объектах списка будет присутствовать подмассив _user_info в котором будут лежать значения его phone, login, fio.

Получить к ним доступ можно будет


{$grid_items[i]._user_info.phone}

Что бы расширить список доступных полей, нужно локализовать Grid_Constructor и обусловить изменения в локальной функции его с именем transformGridData()

 

Данный метод не сработал, просто ничего не выдаёт. Попробовал {$grid_items.phone}, {$grid_items.mobile}, выдает номера хозяев, тогда-как мне нужны номера риелторов, которые добавляли объявление.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
21 час назад, Realtor сказал:

 

Данный метод не сработал, просто ничего не выдаёт. Попробовал {$grid_items.phone}, {$grid_items.mobile}, выдает номера хозяев, тогда-как мне нужны номера риелторов, которые добавляли объявление.

Вы сделали то что тут описано?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
9 часов назад, rumantic сказал:

Вы сделали то что тут описано?

 

Да, добавил эту фунцию в /main/main.php

function grid_adv ($params=array()) {    $in_params=$params;    $in_params['_collect_user_info ']=1;    return parent::grid_adv($in_params);}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас