#macro input name extend index value='' type='form' safe=true>
<#local inputName=name+'['+index+'].value'/>
<#switch extend.inputType>
<#case 'number'>
<#if 'view'=type>
${(value)!}
<#else>
class="number<#if extend.required> required#if>" #if>type="number"<#if extend.maxlength?has_content> maxlength="${extend.maxlength}"#if> value="${(value)!}"/>
#if>
<#break>
<#case 'file'>
<#if 'view'=type>
${(value)!}
<#else>
class="<#if extend.required>required#if>" type="text" <#else>type="file" #if>value="${(value)!}"/>
<#if 'customform'!=type><@t.page 'attach'/>#if>
#if>
<#break>
<#case 'image'>
<#if 'view'=type>
${(value)!}
<#else>
class="<#if extend.required>required#if>" type="text" <#else>type="file" accept="image/*" #if>value="${(value)!}"/>
<#if 'customform'!=type>
<@t.page 'image'/>
<#if !preview?has_content>
<#include "../include_page/preview.html"/>
#if>
<@preview extend.id.code 'input[name="${inputName}"]' ''/>
#if>
#if>
<#break>
<#case 'video'>
<#if 'view'=type>
${(value)!}
<#else>
class="<#if extend.required>required#if>" type="text" <#else>type="file" accept="video/*"#if>value="${(value)!}"/>
<#if 'customform'!=type>
<@t.page 'video'/>
#if>
#if>
<#break>
<#case 'password'>
<#if 'view'=type>
${(value)!}
<#else>
size="${extend.maxlength}" maxlength="${extend.maxlength}"<#else> size="30"#if> <#if 'customform'!=type>class="<#if extend.required> required#if>" #if>type="password" value="${(value)!}"/>
#if>
<#break>
<#case 'textarea'>
<#if 'view'=type>
${(value)!}
<#else>
#if>
<#break>
<#case 'editor'>
<#if 'view'=type>
<#if safe>${(value?no_esc)!}<#else>${value!}#if>
<#else>
#if>
<#break>
<#case 'ckeditor'>
<#if 'view'=type>
<#if safe>${(value?no_esc)!}<#else>${value!}#if>
<#else>
#if>
<#break>
<#case 'kindeditor'>
<#if 'view'=type>
<#if safe>${(value?no_esc)!}<#else>${value!}#if>
<#else>
#if>
<#break>
<#case 'template'>
<#if 'view'=type>
${(value)!}
<#else>
maxlength="${extend.maxlength}"#if> type="text" maxlength="255" size="40" value="${(value)!}"<#if 'customform'!=type> class="<#if extend.required> required#if>"#if>/>
<@t.page 'template.select'/>
#if>
<#break>
<#case 'boolean'>
<#if 'view'=type>
<#if value?has_content>${('true'=value)?then(t.pageMessage('yes'),t.pageMessage('no'))}#if>
<#else>
#if>
<#break>
<#case 'user'>
<@_sysUser id=value><#local u=object/>@_sysUser>
<#if 'view'=type>
${(value)!}:${(u.nickName)!}
<#else>
class="<#if extend.required> required#if>"#if>/>
<@t.page 'user.select'/>
#if>
<#break>
<#case 'content'>
<@_content id=value><#local content=object/>@_content>
<#if 'view'=type>
${(value)!}:${(content.title)!}
<#else>
class="<#if extend.required> required#if>"#if>/>
<@t.page 'content.select'/>
#if>
<#break>
<#case 'category'>
<@_category id=value><#local category=object/>@_category>
<#if 'view'=type>
${(value)!}:${(category.name)!}
<#else>
class="<#if extend.required> required#if>"#if>/>
<@t.page 'category.select'/>
#if>
<#break>
<#case 'categoryType'>
<@_categoryType id=value><#local categoryType=object/>@_categoryType>
<#if 'view'=type>
${(value)!}:${(categoryType.name)!}
<#else>
class="<#if extend.required> required#if>"#if>/>
<@t.page 'select'/>
#if>
<#break>
<#case 'tagType'>
<@_tagType id=value><#local tagType=object/>@_tagType>
<#if 'view'=type>
${(value)!}:${(tagType.name)!}
<#else>
class="<#if extend.required> required#if>"#if>/>
<@t.page 'select'/>
#if>
<#break>
<#case 'tag'>
<@_tag id=value><#local tag=object/>@_tag>
<#if 'view'=type>
${(value)!}:${(tag.name)!}
<#else>
class="<#if extend.required> required#if>"#if>/>
<@t.page 'select'/>
#if>
<#break>
<#case 'vote'>
<@_vote id=value><#local vote=object/>@_vote>
<#if 'view'=type>
${(value)!}:${(vote.title)!}
<#else>
class="<#if extend.required> required#if>"#if>/>
<@t.page 'select'/>
#if>
<#break>
<#case 'dictionary'>
<@_dictionary id=extend.dictionaryId><#local dictionary=object/>@_dictionary>
<#if site.parentId?has_content&&!dictionary?has_content><@_dictionary id=extend.dictionaryId siteId=site.parentId><#assign dictionary=object/>@_dictionary>#if>
<#if dictionary?has_content>
<#if 'view'=type>
<#if dictionary.multiple><@_dictionaryData dictionaryId=extend.dictionaryId values=value><#list map as k,data>${data.text}<#sep>,#list>@_dictionaryData><#else><@_dictionaryData dictionaryId=extend.dictionaryId value=value>${object.text}@_dictionaryData>#if>
<#else>
<#if dictionary.multiple>
<#if value?has_content>
<#local values=value?split(',')/>
#if>
<@_dictionaryDataList dictionaryId=extend.dictionaryId>
<#list list as d>
#list>
@_dictionaryDataList>
<#else>
#if>
#if>
#if>
<#break>
<#case 'date'>
<#if 'view'=type>
${(value)!}
<#else>
class="date<#if extend.required> required#if>" autocomplete="off" dateFmt="yyyy-MM-dd" #if>type="text" size="10" value="${(value)!}"/>
#if>
<#break>
<#case 'datetime'>
<#if 'view'=type>
${(value)!}
<#else>
class="date<#if extend.required> required#if>" autocomplete="off" dateFmt="yyyy-MM-dd HH:mm:ss" #if>type="text" size="20" value="${(value)!}"/>
#if>
<#break>
<#default>
<#if 'view'=type>
${(value)!}
<#else>
size="${extend.maxlength}" maxlength="${extend.maxlength}"<#else> size="50"#if> <#if 'customform'!=type>class="<#if extend.required> required#if>" #if>type="text" value="${(value)!}"/>
#if>
#switch>
#macro>
<#macro extendData name extendList extendValues type='form' fromIndex=0 htmlSafe=false>
<#list extendList as e>
<#local value=extendValues[e.id.code]!e.defaultValue!''/>
<#if 'customform'=type>
<@input name e e?index+fromIndex value type/>
<#else>