fields.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. <style>
  2. .font-bold {
  3. font-weight: bold;
  4. }
  5. .font-underline {
  6. font-weight: bold;
  7. }
  8. .radio-inline, .checkbox-inline {
  9. padding-left: 0;
  10. }
  11. </style>
  12. <!--@formatter:off-->
  13. {foreach $fields as $item}
  14. <div class="form-group">
  15. <div class="control-label col-xs-12 col-sm-2">{$item.title|htmlentities}</div>
  16. <div class="col-xs-12 col-sm-8">
  17. {switch $item.type}
  18. {case string}
  19. <input {$item.extend_html} type="text" name="row[{$item.name}]" id="c-{$item.name}" value="{$item.value|htmlentities}" class="form-control" data-rule="{$item.rule}" data-tip="{$item.tip}" />
  20. {/case}
  21. {case password}
  22. <input {$item.extend_html} type="password" name="row[{$item.name}]" id="c-{$item.name}" value="{$item.value|htmlentities}" class="form-control" data-rule="{$item.rule}" data-tip="{$item.tip}" />
  23. {/case}
  24. {case value="text" break="0"}{/case}
  25. {case editor}
  26. <textarea {$item.extend_html} name="row[{$item.name}]" id="c-{$item.name}" class="form-control {eq name='$item.type' value='editor'}editor{/eq}" data-rule="{$item.rule}" rows="5" data-tip="{$item.tip}">{$item.value|htmlentities}</textarea>
  27. {/case}
  28. {case array}
  29. {if $item.name=='downloadurl'}
  30. {php}$item['value']=isset($values[$item['name']])?$item['value']:$item['download_list'];{/php}
  31. <dl {$item.extend_html} class="fieldlist downloadlist" data-name="row[{$item.name}]" data-template="downloadurltpl">
  32. <dd>
  33. <ins style="width:70px;">来源</ins>
  34. <ins style="width:250px;">地址</ins>
  35. <ins>密码(可为空)</ins>
  36. </dd>
  37. <dd><a href="javascript:;" class="btn btn-sm btn-success btn-append"><i class="fa fa-plus"></i> {:__('Append')}</a></dd>
  38. <textarea name="row[{$item.name}]" class="form-control hide" cols="30" rows="5">{$item.value|htmlentities}</textarea>
  39. </dl>
  40. {else /}
  41. {php}$arrList=isset($values[$item['name']])?(array)json_decode($item['value'],true):$item['content_list'];{/php}
  42. <dl {$item.extend_html} class="fieldlist" data-name="row[{$item.name}]">
  43. <dd>
  44. <ins>{:isset($item["setting"]["key"])&&$item["setting"]["key"]?$item["setting"]["key"]:__('Array key')}</ins>
  45. <ins>{:isset($item["setting"]["value"])&&$item["setting"]["value"]?$item["setting"]["value"]:__('Array value')}</ins>
  46. </dd>
  47. <dd><a href="javascript:;" class="append btn btn-sm btn-success"><i class="fa fa-plus"></i> {:__('Append')}</a></dd>
  48. <textarea name="row[{$item.name}]" class="form-control hide" cols="30" rows="5">{$arrList|json_encode=###,JSON_UNESCAPED_UNICODE|htmlentities}</textarea>
  49. </dl>
  50. {/if}
  51. {/case}
  52. {case date}
  53. <input {$item.extend_html} type="text" name="row[{$item.name}]" id="c-{$item.name}" value="{$item.value|htmlentities}" class="form-control datetimepicker" data-date-format="YYYY-MM-DD" data-tip="{$item.tip}" data-rule="{$item.rule}" />
  54. {/case}
  55. {case time}
  56. <input {$item.extend_html} type="text" name="row[{$item.name}]" id="c-{$item.name}" value="{$item.value|htmlentities}" class="form-control datetimepicker" data-date-format="HH:mm:ss" data-tip="{$item.tip}" data-rule="{$item.rule}" />
  57. {/case}
  58. {case datetime}
  59. <input {$item.extend_html} type="text" name="row[{$item.name}]" id="c-{$item.name}" value="{$item.value|htmlentities}" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-tip="{$item.tip}" data-rule="{$item.rule}" />
  60. {/case}
  61. {case datetimerange}
  62. <input {$item.extend_html} type="text" name="row[{$item.name}]" id="c-{$item.name}" value="{$item.value|htmlentities}" class="form-control datetimerange" data-tip="{$item.tip}" data-rule="{$item.rule}"/>
  63. {/case}
  64. {case number}
  65. <input {$item.extend_html} type="number" name="row[{$item.name}]" id="c-{$item.name}" value="{$item.value|htmlentities}" class="form-control" data-tip="{$item.tip}" data-rule="{$item.rule}" />
  66. {/case}
  67. {case checkbox}
  68. {foreach name="item.content_list" item="vo"}
  69. <div class="checkbox checkbox-inline">
  70. <label for="row[{$item.name}][]-{$key}"><input id="row[{$item.name}][]-{$key}" name="row[{$item.name}][]" type="checkbox" value="{$key}" data-rule="{$item.rule}" data-tip="{$item.tip}" {in name="key" value="$item.value" }checked{/in} /> {$vo}</label>
  71. </div>
  72. {/foreach}
  73. <span class="msg-box n-right" for="c-{$item.name}"></span>
  74. {/case}
  75. {case radio}
  76. {foreach name="item.content_list" item="vo"}
  77. <div class="radio radio-inline">
  78. <label for="row[{$item.name}]-{$key}"><input id="row[{$item.name}]-{$key}" name="row[{$item.name}]" type="radio" value="{$key}" data-rule="{$item.rule}" data-tip="{$item.tip}" {in name="key" value="$item.value" }checked{/in} /> {$vo}</label>
  79. </div>
  80. {/foreach}
  81. <span class="msg-box n-right" for="c-{$item.name}"></span>
  82. {/case}
  83. {case value="select" break="0"}{/case}
  84. {case value="selects"}
  85. <select {$item.extend_html} id="c-{$item.name}" name="row[{$item.name}]{$item.type=='selects'?'[]':''}" class="form-control selectpicker" data-rule="{$item.rule}" data-tip="{$item.tip}" {$item.type=='selects'?'multiple':''}>
  86. {foreach name="item.content_list" item="vo"}
  87. <option value="{$key}" {in name="key" value="$item.value" }selected{/in}>{$vo}</option>
  88. {/foreach}
  89. </select>
  90. {/case}
  91. {case value="image" break="0"}{/case}
  92. {case value="images"}
  93. <div class="input-group">
  94. <input id="c-{$item.name}" class="form-control" name="row[{$item.name}]" type="text" value="{$item.value|htmlentities}" data-rule="{$item.rule}" data-tip="{$item.tip}">
  95. <div class="input-group-addon no-border no-padding">
  96. <span><button type="button" id="plupload-{$item.name}" class="btn btn-danger plupload" data-input-id="c-{$item.name}" data-preview-id="p-{$item.name}" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="{$item.type=='image'?'false':'true'}" {if $item.maximum}data-maxcount="{$item.maximum}" {/if}><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
  97. {if $user}
  98. <span><button type="button" id="fachoose-{$item.name}" class="btn btn-primary fachoose" data-input-id="c-{$item.name}" data-preview-id="p-{$item.name}" data-mimetype="image/*" data-multiple="{$item.type=='image'?'false':'true'}" {if $item.maximum}data-maxcount="{$item.maximum}" {/if}><i class="fa fa-list"></i> {:__('Choose')}</button></span>
  99. {/if}
  100. </div>
  101. <span class="msg-box n-right" for="c-{$item.name}"></span>
  102. </div>
  103. <ul class="row list-inline plupload-preview" id="p-{$item.name}"></ul>
  104. {/case}
  105. {case value="file" break="0"}{/case}
  106. {case value="files"}
  107. <div class="input-group">
  108. <input id="c-{$item.name}" class="form-control" name="row[{$item.name|htmlentities}]" type="text" value="{$item.value}" data-rule="{$item.rule}" data-tip="{$item.tip}">
  109. <div class="input-group-addon no-border no-padding">
  110. <span><button type="button" id="plupload-{$item.name}" class="btn btn-danger plupload" data-input-id="c-{$item.name}" data-multiple="{$item.type=='file'?'false':'true'}" {if $item.maximum}data-maxcount="{$item.maximum}" {/if}><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
  111. {if $user}
  112. <span><button type="button" id="fachoose-{$item.name}" class="btn btn-primary fachoose" data-input-id="c-{$item.name}" data-multiple="{$item.type=='file'?'false':'true'}" {if $item.maximum}data-maxcount="{$item.maximum}" {/if}><i class="fa fa-list"></i> {:__('Choose')}</button></span>
  113. {/if}
  114. </div>
  115. <span class="msg-box n-right" for="c-{$item.name}"></span>
  116. </div>
  117. {/case}
  118. {case switch}
  119. <input id="c-{$item.name}" name="row[{$item.name}]" type="hidden" value="{:$item.value?1:0}">
  120. <a href="javascript:;" data-toggle="switcher" class="btn-switcher" data-input-id="c-{$item.name}" data-yes="1" data-no="0">
  121. <i class="fa fa-toggle-on text-success {if !$item.value}fa-flip-horizontal text-gray{/if} fa-2x"></i>
  122. </a>
  123. {/case}
  124. {case bool}
  125. <label for="row[{$item.name}]-yes"><input id="row[{$item.name}]-yes" name="row[{$item.name}]" type="radio" value="1" {$item.value?'checked':''} data-tip="{$item.tip}" /> {:__('Yes')}</label>
  126. <label for="row[{$item.name}]-no"><input id="row[{$item.name}]-no" name="row[{$item.name}]" type="radio" value="0" {$item.value?'':'checked'} data-tip="{$item.tip}" /> {:__('No')}</label>
  127. {/case}
  128. {case city}
  129. <div style="position:relative">
  130. <input {$item.extend_html} type="text" name="row[{$item.name}]" id="c-{$item.name}" value="{$item.value|htmlentities}" class="form-control" data-toggle="city-picker" data-tip="{$item.tip}" data-rule="{$item.rule}" />
  131. </div>
  132. {/case}
  133. {case value="selectpage" break="0"}{/case}
  134. {case value="selectpages"}
  135. <input {$item.extend_html} type="text" name="row[{$item.name}]" id="c-{$item.name}" value="{$item.value|htmlentities}" class="form-control selectpage" data-source="{:addon_url('cms/ajax/selectpage')}?id={$item.id}" data-primary-key="{$item.setting.primarykey}" data-field="{$item.setting.field}" data-multiple="{$item.type=='selectpage'?'false':'true'}" data-tip="{$item.tip}" data-rule="{$item.rule}" />
  136. {/case}
  137. {case custom}
  138. {$item.extend_html}
  139. {/case}
  140. {/switch}
  141. </div>
  142. </div>
  143. {/foreach}
  144. <!--@formatter:on-->
  145. <script type="text/html" id="downloadurltpl">
  146. <dd class="form-inline">
  147. <input type="text" name="<%=name%>[<%=index%>][name]" class="form-control" value="<%=row.name%>" style="width:70px;"/>
  148. <input type="text" name="<%=name%>[<%=index%>][url]" id="c-downloadurl-<%=index%>" class="form-control" value="<%=row.url%>" style="width:170px;"/>
  149. <div class="btn-group">
  150. <button type="button" id="plupload-downloadurl-<%=index%>" class="btn btn-danger plupload" data-input-id="c-downloadurl-<%=index%>" data-mimetype="*" data-multiple="false"><i class="fa fa-upload"></i></button>
  151. <button type="button" id="fachoose-downloadurl-<%=index%>" class="btn btn-primary fachoose" data-input-id="c-downloadurl-<%=index%>" data-mimetype="*" data-multiple="false"><i class="fa fa-list"></i></button>
  152. </div>
  153. <input type="text" name="<%=name%>[<%=index%>][password]" class="form-control" value="<%=row.password%>" style="width:70px;"/>
  154. <span class="btn btn-sm btn-danger btn-remove"><i class="fa fa-times"></i></span> <span class="btn btn-sm btn-primary btn-dragsort"><i class="fa fa-arrows"></i></span>
  155. </dd>
  156. </script>