fields.html 10 KB

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