Форма обратной связи - поле date
Стоит ли открыть форум? Напишите об этом по адресу admin@astracms.ru написав в теме "открыть форум". Я не автор движка и поэтому не могу консультировать так, как это делал бы он, но возможно у нас получится совместно находить решения.
Автор | Текст сообщения | |
---|---|---|
Maksim |
29.06.2010 12:31
Отредактировано: 29.06.2010 12:42
1. Подскажите пожалуйста, как можно ограничить в шаблоне диапазон вывод по годам поля "date"? Чтобы получить на выходе списки:
{число, Месяц, (2010-2011)} и {Число, Месяц, (1955-1996)} Не знаю как поменять название сообщения... чтобы добавить "списки"... 2. Еще не понятно как отдельно выводить значение из списка в форме обратной связи (Шаблон письма). Делаю $data.list (поле список строк и список данных), но мне приходит письмо не с текстом а с ID номером |
|
admin |
29.06.2010 14:54
Отредактировано: 29.06.2010 14:55
1. в html_select_date использовать параметры start_year и end_year
http://wiki.astracms.ru/smarty/smarty5#html_select_date
2. $fields.list.value |
|
Maksim |
29.06.2010 20:50
Отредактировано: 29.06.2010 21:02
Спасибо большое, все помогло.
Только непонятно, как можно сделать, если присутствует несколько полей с датами. Как я понимаю это все относится ко всем полям которые выводятся в цикле: ... {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} |
|
admin |
30.06.2010 00:14
Можно либо в цикле поставить условие по идентификатору поля. Вот как пробовали почти правильно, только $field.field=="date1" (т.к. $field в данном случае это массив).
Либо можно и без цикла обойтись, а сформировать нужную html форму целиком в шаблоне, главное чтобы имена полей совпадали с заданными в админке. |
|
Maksim |
30.06.2010 08:44
Тоже самое получается, не отображается поле
Пробовал и так: {if $field.field=="date1"} {elseif $field.type=="date"} ... {/if}и так: {elseif $field.field=="date1"} ...Мне к сожалению нужно сделать чтобы это было именно в цикле. чистый html это как крайний вариант. Каким вариантом еще можно решить данную задачу? |
|
admin |
30.06.2010 15:21
Фрагмент правильный, если поля называются соотв. date1 и date2.
Может не туда вставляете его. Полный текст формы приведите. |
|
Maksim |
30.06.2010 16:43
.... здесь идет стандартный код, который формируется при создании раздела... {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} ... и т.д.Единственно, что я делаю на собственном модуле "Анкета" (полная копия формы обратной связи). Проверял на стандартной форме обратной связи, такая же ситуация |
|
admin |
30.06.2010 16:52
Отредактировано: 30.06.2010 16:53
Перепутан порядок условий.
... {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} |
|
Вы не можете добавить сообщение. Вам необходимо авторизироваться на сайте под своим логином либо зарегистрироваться.