Astra.CMS

 

 

Форум » Приемы конструирования и интеграции дизайна

Форма обратной связи - поле date

Стоит ли открыть форум? Напишите об этом по адресу admin@astracms.ru написав в теме "открыть форум". Я не автор движка и поэтому не могу консультировать так, как это делал бы он, но возможно у нас получится совместно находить решения.

Автор Текст сообщения

Maksim
Сообщений: 277

1. Подскажите пожалуйста, как можно ограничить в шаблоне диапазон вывод по годам поля "date"? Чтобы получить на выходе списки:
{число, Месяц, (2010-2011)} и {Число, Месяц, (1955-1996)}

Не знаю как поменять название сообщения... чтобы добавить "списки"...
2. Еще не понятно как отдельно выводить значение из списка в форме обратной связи (Шаблон письма).
Делаю $data.list (поле список строк и список данных), но мне приходит письмо не с текстом а с ID номером

 
aristoc

admin
Сообщений: 1159

1. в html_select_date использовать параметры start_year и end_year
http://wiki.astracms.ru/smarty/smarty5#html_select_date

Не знаю как поменять название сообщения... чтобы добавить "списки"...
не понятно о чем речь.

2. $fields.list.value
 

Maksim
Сообщений: 277

Спасибо большое, все помогло.

Только непонятно, как можно сделать, если присутствует несколько полей с датами.

Как я понимаю это все относится ко всем полям которые выводятся в цикле:
...
{elseif $field.type=="date"}
<p>{$field.name}:{if $field.fill=="Y"}<b>*</b>{/if}</p>
<p>{html_select_date prefix=$field.field time=$field.value field_order="DMY" start_year="-30" end_year="-10"}</p> ...
Подскажите пожалуйста, как сделать, чтобы можно было выводить несколько полей с датами, но при этом настройки (в можем случае start_year...) были разными и была сохранена сортировка полей?

Пробовал добавить конструкцию в виде, но поля дат не отображаются :
...
{if $field=="date1"}
{elseif $field.type=="date"}
<p>{$field.name}:{if $field.fill=="Y"}<b>*</b>{/if}</p>
<p>{html_select_date prefix=$field.field time=$field.value field_order="DMY" start_year="0" end_year="+1"}</p>
{/if}

{if $field=="date2"}
{elseif $field.type=="date"}
<p>{$field.name}:{if $field.fill=="Y"}<b>*</b>{/if}</p>
<p>{html_select_date prefix=$field.field time=$field.value field_order="DMY" start_year="0" end_year="+1"}</p>
{/if}
 
aristoc

admin
Сообщений: 1159

Можно либо в цикле поставить условие по идентификатору поля. Вот как пробовали почти правильно, только $field.field=="date1" (т.к. $field в данном случае это массив).

Либо можно и без цикла обойтись, а сформировать нужную html форму целиком в шаблоне, главное чтобы имена полей совпадали с заданными в админке.
 

Maksim
Сообщений: 277

Тоже самое получается, не отображается поле sad

Пробовал и так:
{if $field.field=="date1"}
{elseif $field.type=="date"}
...
{/if}
и так:
{elseif $field.field=="date1"}
...
Мне к сожалению нужно сделать чтобы это было именно в цикле. чистый html это как крайний вариант. Каким вариантом еще можно решить данную задачу?
 
aristoc

admin
Сообщений: 1159

Фрагмент правильный, если поля называются соотв. date1 и date2.
Может не туда вставляете его. Полный текст формы приведите.
 

Maksim
Сообщений: 277

.... здесь идет стандартный код, который формируется при создании раздела...
{elseif $field.type=="mselect"}
<p>{$field.name}:{if $field.fill=="Y"}<b>*</b>{/if}</p>
<p>{html_checkboxes name=$field.field options=$field.options checked=$field.value separator=", "}</p>

{if $field.field=="datarojdeniya"}
{elseif $field.type=="date"}
<p>{$field.name}:{if $field.fill=="Y"}<b>*</b>{/if}</p>
<p>{html_select_date prefix=$field.field time=$field.value field_order="DMY" start_year="-40" end_year="-9"}</p>
{/if}

{if $field.field=="datazapisi"}
{elseif $field.type=="date"}
<p>{$field.name}:{if $field.fill=="Y"}<b>*</b>{/if}</p>
<p>{html_select_date prefix=$field.field time=$field.value field_order="DMY" start_year="+0" end_year="+1"}</p>
{/if}

{elseif $field.type=="file"}
<p>{$field.name}:</p>
<p><input type="file" name="{$field.field}"></p>
{/if}
{/foreach}
... и т.д.
Единственно, что я делаю на собственном модуле "Анкета" (полная копия формы обратной связи). Проверял на стандартной форме обратной связи, такая же ситуация sad
 
aristoc

admin
Сообщений: 1159

Перепутан порядок условий.

...
{elseif $field.type=="mselect"}
<p>{$field.name}:{if $field.fill=="Y"}<b>*</b>{/if}</p>
<p>{html_checkboxes name=$field.field options=$field.options checked=$field.value separator=", "}</p>

{elseif $field.type=="date"} {* Если тип - Дата *}


{if $field.field=="datarojdeniya"} {* Если поле такое-то *}
<p>{$field.name}:{if $field.fill=="Y"}<b>*</b>{/if}</p>
<p>{html_select_date prefix=$field.field time=$field.value field_order="DMY" start_year="-40" end_year="-9"}</p>
{/if}

{if $field.field=="datazapisi"} {* Если поле такое-то *}
<p>{$field.name}:{if $field.fill=="Y"}<b>*</b>{/if}</p>
<p>{html_select_date prefix=$field.field time=$field.value field_order="DMY" start_year="+0" end_year="+1"}</p>
{/if}


{elseif $field.type=="file"}
<p>{$field.name}:</p>
<p><input type="file" name="{$field.field}"></p>
{/if}
{/foreach}

 

Вы не можете добавить сообщение. Вам необходимо авторизироваться на сайте под своим логином либо зарегистрироваться.