fields.html 11 KB

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