fields.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  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}</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} 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. <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>
  98. </div>
  99. <span class="msg-box n-right" for="c-{$item.name}"></span>
  100. </div>
  101. <ul class="row list-inline plupload-preview" id="p-{$item.name}"></ul>
  102. {/case}
  103. {case value="file" break="0"}{/case}
  104. {case value="files"}
  105. <div class="input-group">
  106. <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}">
  107. <div class="input-group-addon no-border no-padding">
  108. <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>
  109. <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>
  110. </div>
  111. <span class="msg-box n-right" for="c-{$item.name}"></span>
  112. </div>
  113. {/case}
  114. {case switch}
  115. <input id="c-{$item.name}" name="row[{$item.name}]" type="hidden" value="{:$item.value?1:0}">
  116. <a href="javascript:;" data-toggle="switcher" class="btn-switcher" data-input-id="c-{$item.name}" data-yes="1" data-no="0">
  117. <i class="fa fa-toggle-on text-success {if !$item.value}fa-flip-horizontal text-gray{/if} fa-2x"></i>
  118. </a>
  119. {/case}
  120. {case bool}
  121. <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>
  122. <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>
  123. {/case}
  124. {case city}
  125. <div style="position:relative">
  126. <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}" />
  127. </div>
  128. {/case}
  129. {case value="selectpage" break="0"}{/case}
  130. {case value="selectpages"}
  131. <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}&admin=1" 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}" />
  132. {/case}
  133. {case custom}
  134. {$item.extend_html}
  135. {/case}
  136. {/switch}
  137. </div>
  138. </div>
  139. {/foreach}
  140. <!--@formatter:on-->
  141. <script type="text/html" id="downloadurltpl">
  142. <dd class="form-inline">
  143. <input type="text" name="<%=name%>[<%=index%>][name]" class="form-control" value="<%=row.name%>" style="width:70px;"/>
  144. <input type="text" name="<%=name%>[<%=index%>][url]" id="c-downloadurl-<%=index%>" class="form-control" value="<%=row.url%>" style="width:170px;"/>
  145. <div class="btn-group">
  146. <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>
  147. <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>
  148. </div>
  149. <input type="text" name="<%=name%>[<%=index%>][password]" class="form-control" value="<%=row.password%>" style="width:70px;"/>
  150. <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>
  151. </dd>
  152. </script>