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

Использование переменных в шаблоне

Recommended Posts

Возьмем для примера шаблон вывода VIP-объявлений (спец.предложений).

 

/template/frontend/ваш_шаблон/right_special.tpl

 

Ключевой цикл перебора вариантов находится тут

{section name=i loop=$special_items2}...{/section}

В процессе обхода этого цикла будет доступен следующий массив для каждой итерации

{$special_items2[i]}

Если нам нужно вытащить какие нибудь поля из него и вывести, например, площадь то мы можем сделать это так:

{$special_items2[i].square_all}

А вот можно увидеть весь массив и что в нем лежит, если в цикле вызовем это

<pre>        {$special_items2[i]|@print_r}</pre>

Мы увидим такое:

Array(    [currency_code] => RUR    [currency_name] => р.    [price_ue] => 0    [id] => 400896    [user_id] => 1    [type_id] => 0    [topic_id] => 6143    [country_id] => 0    [city_id] => 1    [metro_id] => 32    [district_id] => 0    [street] => ВАЛОВАЯ    [price] => 0    [text] => Русское описание    [contact] =>     [date_added] => 2014-01-29 13:13:54    [agent_tel] =>     [room_count] => 2    [elite] => 0    [session_id] =>     [active] => 1    [sub_id1] => 0    [sub_id2] => 0    [reviews_count] => 0    [hot] => 1    [floor] => 10    [floor_count] => 15    [walls] => Монолит    [balcony] =>     [square_all] => 74    [square_live] =>     [square_kitchen] =>     [bathroom] =>     [img1] =>     [img2] =>     [img3] =>     [img4] =>     [img5] =>     [img1_preview] =>     [img2_preview] =>     [img3_preview] =>     [img4_preview] =>     [img5_preview] =>     [is_telephone] => 1    [furniture] => 1    [plate] => нет    [agent_email] =>     [number] =>     [spec] => 0    [floor_cover] =>     [square_room] =>     [is_kitchen] => 0    [region_id] => 0    [street_id] => 139    [planning] =>     [dom] =>     [flat_number] =>     [owner] =>     [source] =>     [adv_date] =>     [more1] =>     [more2] =>     [more3] =>     [youtube] =>     [fio] =>     [phone] =>     [realty_type_id] => 0    [view_count] => 38    [best] => 0    [email] =>     [distance] =>     [tmp_password] =>     [ad_mobile_phone] =>     [ad_stacionary_phone] =>     [can_call_start] =>     [can_call_end] =>     [currency_id] => 1    [meta_title] => аренда квартир Москва Достоевская Парковая улица (пос. Новобратцевский)    [meta_description] => аренда квартир Москва Достоевская Парковая улица (пос. Новобратцевский)    [meta_keywords] => аренда квартир Москва Достоевская Парковая улица (пос. Новобратцевский)    [geo_lat] => 55.722469    [geo_lng] => 37.472991    [vip_status_end] => 0    [premium_status_end] => 0    [bold_status_end] => 0    [text_en] => English description    [optype] =>     [sdfsdfs] =>     [complex_id] => 1    [image] => Array        (            [0] => Array                (                    [preview] => prv533a69d43da5b_1396337108_1.jpg                    [normal] => img533a69d43da55_1396337108_1.jpg                    [type] => graphic                    [mime] => jpg                )            [1] => Array                (                    [preview] => prv533a69d467dea_1396337108_2.jpg                    [normal] => img533a69d467de2_1396337108_2.jpg                    [type] => graphic                    [mime] => jpg                )            [2] => Array                (                    [preview] => prv533a69d489eda_1396337108_3.jpg                    [normal] => img533a69d489ed3_1396337108_3.jpg                    [type] => graphic                    [mime] => jpg                )            [3] => Array                (                    [preview] => prv533a69d4bb78e_1396337108_4.jpg                    [normal] => img533a69d4bb787_1396337108_4.jpg                    [type] => graphic                    [mime] => jpg                )            [4] => Array                (                    [preview] => prv533a69d4df23d_1396337108_5.jpg                    [normal] => img533a69d4df233_1396337108_5.jpg                    [type] => graphic                    [mime] => jpg                )        )    [expire_date] => 0000-00-00 00:00:00    [payed_adv] => 0    [manually_added] => 0    [direction] =>     [time_on_transport] =>     [time_on_foot] =>     [railway_station] =>     [not_for_agents] => 0    [haggle] => 0    [mortgage] => 0    [prepayment] =>     [rent_pledge] => 0    [agent_fee] =>     [with_pets] => 0    [with_children] => 0    [renovation] =>     [lot_type] =>     [lot_area] =>     [new_flat] => 0    [rooms] => 0    [rooms_offered] => 0    [open_plan] => 0    [rooms_type] =>     [internet] => 0    [room_furniture] => 0    [kitchen_furniture] => 0    [television] => 0    [washing_machine] => 0    [refrigerator] => 0    [bathroom_unit] =>     [floor_covering] =>     [window_view] =>     [building_name] =>     [building_type] =>     [building_series] =>     [building_state] => не выбрано    [built_year] =>     [ready_quarter] =>     [lift] => 0    [rubbish_chute] => 0    [is_elite] => 0    [parking] => 0    [alarm] => 0    [ceiling_height] =>     [pmg] => 0    [kitchen] => 0    [pool] => 0    [billiard] => 0    [sauna] => 0    [heating_supply] => 0    [water_supply] => 0    [sewerage_supply] => 0    [electricity_supply] => 0    [gas_supply] => 0    [toilet] => не выбрано    [shower] => не выбрано    [cpos_id] => 0    [cuch_id] => 0    [type_sh] => arenda kvartir    [company] =>     [city] => Москва    [metro] => Достоевская     [user] => Кондин Дмитрий Валерьевич    [currency] => RUR    [path] => arenda kvartir    [date] => 29.01    [datetime] => 29.01 13:13    [topic_info] => Array        (            [id] => 6143            [name] => arenda kvartir            [name_en] =>             [active] => 0            [parent_id] => 0            [order] => 3            [sql_where] =>             [obj_type_id] => 0            [def_id1] => 0            [def_id2] => 0            [operation_type_id] => 0            [url] => arenda-kvartir            [description] =>             [meta_title] =>             [meta_keywords] =>             [meta_description] =>             [name_am] =>             [name_cn] =>             [name_ua] =>         )    [parent_category_url] => arenda-kvartir/    [href] => /arenda-kvartir/realty400896    [img] => Array        (            [0] => Array                (                    [preview] => prv533a69d43da5b_1396337108_1.jpg                    [normal] => img533a69d43da55_1396337108_1.jpg                    [type] => graphic                    [mime] => jpg                )            [1] => Array                (                    [preview] => prv533a69d467dea_1396337108_2.jpg                    [normal] => img533a69d467de2_1396337108_2.jpg                    [type] => graphic                    [mime] => jpg                )            [2] => Array                (                    [preview] => prv533a69d489eda_1396337108_3.jpg                    [normal] => img533a69d489ed3_1396337108_3.jpg                    [type] => graphic                    [mime] => jpg                )            [3] => Array                (                    [preview] => prv533a69d4bb78e_1396337108_4.jpg                    [normal] => img533a69d4bb787_1396337108_4.jpg                    [type] => graphic                    [mime] => jpg                )            [4] => Array                (                    [preview] => prv533a69d4df23d_1396337108_5.jpg                    [normal] => img533a69d4df233_1396337108_5.jpg                    [type] => graphic                    [mime] => jpg                )        ))

Если проанализировать этот массив, то можно понять, что улица у нас доступна так

{$special_items2[i].street}

Если нам нужны данные, которые лежат внутри вложенного массива, например, название категории, то делаем так

{$special_items2[i].topic_info.name}

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


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

Еще бы сам список подобных переменных с кратким описанием ($special_items2 - спец. обЪявления, $grid_items - массив обычных обЪявлений и т.д.).

 

И еще, как добраться до значений таблицы re_columns ? Хочу в шаблоне вывести значения из select_box. Такое реально сделать?

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


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

Еще бы сам список подобных переменных с кратким описанием ($special_items2 - спец. обЪявления, $grid_items - массив обычных обЪявлений и т.д.).

 

И еще, как добраться до значений таблицы re_columns ? Хочу в шаблоне вывести значения из select_box. Такое реально сделать?

Попробуем добавить все это в вики в будущем.

По select_box подробнее, какой именно селект?

re_columns там системная информация - что именно из нее выводить хотите? 

Пример приведите.

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


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

По select_box подробнее, какой именно селект?

re_columns там системная информация - что именно из нее выводить хотите? 

Пример приведите.

 

Допустим, я добавил в модель data поле optype типа select_box со значениями {1~~Первое}{2~~Второе}{3~~Третье}.

Как мне в шаблоне получить эти значения, например, чтобы сформировать выпадающий список?

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


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

Должно быть так

{$data.optype.value} - тут будет 1 или 2 ...
{$data.optype.value_string} - тут будет "Первое" или "Второе" ...

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


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

Нет. Нужно получить именно весь массив значений {1~~Первое}{2~~Второе}{3~~Третье} из модели data (или точнее из таблицы re_columns), а не из конкретного объявления $data.

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


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

Прямой доступ там можно получить только при генерации форм.

При просмотре сейчас штатно никак.

Если знаете sql запросы, то можете результаты выборки поместить в шаблон.

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


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

При просмотре сейчас штатно никак.

Печально :(

 

Если знаете sql запросы, то можете результаты выборки поместить в шаблон.

Знаю, но, как понимаю, придется лезть в недры движка, так?

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


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

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


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

Вопрос (Рис А)
Как добавить строчку с Ценой и отображением валюты в Краткое описание на странице объекта в верхнюю часть списка.

 

post-2465-0-33152600-1420442724_thumb.jp

 

 

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


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

Вопрос (Рис А)

Как добавить строчку с Ценой и отображением валюты в Краткое описание на странице объекта в верхнюю часть списка.

 

attachicon.gifРис А.jpg

Добавить переменную с ценой в начало формирования таблицы в режиме карточки объекта

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


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

Добавить переменную с ценой в начало формирования таблицы в режиме карточки объекта

 

Можно уточнить:

Где находится Переменная с ценой,

Как попасть в режим карточки объекта

Как определить начало формирования таблицы.

 

И вот ещё вопрос по ходу:

Как в форме: «Заполните, пожалуйста, заявку», при внесении нового объекта пользователем в форме внесения данных в строке «Улица» заменить выпадающий список улиц на пустое окошко, типа как «Материал стен», чтоб пользователь сам вписал название улицы.

Ссылка на форму: http://bookingto.ru/add/

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


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

Добрый день.

 

1)На главной странице в поле Регионы – названия регионов не выпадают (Рис2а).

 

2)Как сделать ввод улицы пользователем при подаче объявления в ручную – разобрались, вот только текст выпадающий при вводе хотелось бы сделать на Русском. Где это поправить? (Рис1а).

 

3)И с этим вопросом: Вопрос: Как добавить строчку с Ценой и отображением валюты в Краткое описание на странице объекта в верхнюю часть списка., который задавали выше, так ничего и не понятно.

post-2465-0-97353700-1420467480_thumb.jp

post-2465-0-42214400-1420467490_thumb.jp

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


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

Ответ на 3 вопрос в первом посте выше! и еще тут http://www.etown.ru/s/topic/1516-использование-переменных-в-шаблоне/?p=16438

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


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

1)На главной странице в поле Регионы – названия регионов не выпадают (Рис2а).

 

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

 

2)

 

Потеряли файлик /template/frontend/realia/libraries/jquery-ui/css/ui-lightness/jquery-ui-1.10.2.custom.min.css

 

 

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

 

 

Именно вписал текстовое значение как "для общей информации" или все-таки то, что вы сделали сейчас?

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


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

Добрый день.

 

1)На главной странице в поле Регионы – названия регионов не выпадают (Рис2а).

 

2)Как сделать ввод улицы пользователем при подаче объявления в ручную – разобрались, вот только текст выпадающий при вводе хотелось бы сделать на Русском. Где это поправить? (Рис1а).

 

3)И с этим вопросом: Вопрос: Как добавить строчку с Ценой и отображением валюты в Краткое описание на странице объекта в верхнюю часть списка., который задавали выше, так ничего и не понятно.

1. Поправил вам.

2. Проблема с недоступностью файла /template/frontend/realia/libraries/jquery-ui/css/ui-lightness/jquery-ui-1.10.2.custom.min.css (проверьте права на чтение для него)

3. Строчку с ценой добавляем в файл

/template/frontend/realia/realty_view.tpl

Вставить код в нужное место

{$data.price.value}

Если с заморочками валюты, то так:

		{if (int)$data.price.value!=0 && $data.currency_id.value!=0 && isset($_courses[$data.currency_id.value])}		<ul class="price_block">		{foreach from=$_courses item=courseone}			{assign var=price_converted value=$data.price.value*$_courses[$data.currency_id.value].course/$courseone.course}			<li>{$price_converted}{$courseone.code}</li>		{/foreach}		</div>		{/if}		{/if}

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


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

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

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

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

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

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

Войти

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

Войти сейчас

  • Похожие публикации

    • Автор: Realtor
      Подскажите у кого получилось сформировать Title для сетки объявлений Grid в зависимости от поискового запроса например optype topic_id city_id region_id district_id ...
    • Автор: Chernetskiy
      В раздел Файлы добавил обновленный список филиалов/отделов/отделений ГУП МО БТИ Московской области, может кому-то будет нужно для загрузки на сайт.
      На их официальном сайте еще старая информация.
    • Автор: metrpro
      В таблицу STREET, содержащую список улиц и по умолчанию имеющую поля STREET_ID, CITY_ID и NAME, добавлено поле DISTRICT_ID (типа select_by_query), которое позволяет четко каждой улице определить район, к которому она относится, из таблицы DISTRICT_ID.
      Внимание, вопрос №1: как передать текстовое значение поля district_id в шаблоны realty_view и realty_grid (realia)?

      В таблице DISTRICT добавлено поле OKRUG типа safe_string. Вопрос №2 - как его значение тоже передать в те же шаблоны?

      И, наконец, вопрос №3 - как организовать поиск всех объявлений определенного типа в рамках улиц, расположенных в определенном районе или определенном округе?
    • Автор: VKrimu24
      Как исправить глюк в разделе спецпредложения? На главной странице в кратком описании под фотографией объявления не правильно указывается этаж. Вернее, он переходит от объявления к объявлению при подаче нового объявления. В самом же объявлении, при его просмотре,  этаж указан верно.  http://vkrimu24.ru/
       
    • Автор: saitavr
      Как сделать, чтобы спецпредложения в поиске (если они попадают под условия поиска) выходили первыми?
      и выделялись другим фоном
        Где-то MySQL запрос поправить? )) типа ORDER BY ... ?