fields.html 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. {foreach $fields as $item}
  2. <div class="form-group">
  3. <div class="control-label col-xs-12 col-sm-2">{$item.title}</div>
  4. <div class="col-xs-12 col-sm-8">
  5. {switch $item.type}
  6. {case string}
  7. <input 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}" {$item.extend} />
  8. {/case}
  9. {case value="text" break="0"}{/case}
  10. {case editor}
  11. <textarea 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.extend}>{$item.value|htmlentities}</textarea>
  12. {/case}
  13. {case array}
  14. {php}$arrList=isset($values[$item['name']])?(array)json_decode($item['value'],true):$item['content_list'];{/php}
  15. <dl class="fieldlist" rel="{$arrList|count}" data-name="row[{$item.name}]">
  16. <dd>
  17. <ins>{:__('Array key')}</ins>
  18. <ins>{:__('Array value')}</ins>
  19. </dd>
  20. {foreach $arrList as $key => $vo}
  21. <dd class="form-inline">
  22. <input type="text" name="row[{$item.name}][field][{$key}]" class="form-control" value="{$key}" size="10" />
  23. <input type="text" name="row[{$item.name}][value][{$key}]" class="form-control" value="{$vo}" />
  24. <span class="btn btn-sm btn-danger btn-remove"><i class="fa fa-times"></i></span>
  25. <span class="btn btn-sm btn-primary btn-dragsort"><i class="fa fa-arrows"></i></span>
  26. </dd>
  27. {/foreach}
  28. <dd><a href="javascript:;" class="append btn btn-sm btn-success"><i class="fa fa-plus"></i> {:__('Append')}</a></dd>
  29. </dl>
  30. {/case}
  31. {case date}
  32. <input type="text" name="row[{$item.name}]" id="c-{$item.name}" value="{$item.value}" class="form-control datetimepicker" data-date-format="YYYY-MM-DD" data-tip="{$item.tip}" data-rule="{$item.rule}" {$item.extend} />
  33. {/case}
  34. {case time}
  35. <input type="text" name="row[{$item.name}]" id="c-{$item.name}" value="{$item.value}" class="form-control datetimepicker" data-date-format="HH:mm:ss" data-tip="{$item.tip}" data-rule="{$item.rule}" {$item.extend} />
  36. {/case}
  37. {case datetime}
  38. <input type="text" name="row[{$item.name}]" id="c-{$item.name}" value="{$item.value}" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-tip="{$item.tip}" data-rule="{$item.rule}" {$item.extend} />
  39. {/case}
  40. {case number}
  41. <input type="number" name="row[{$item.name}]" id="c-{$item.name}" value="{$item.value}" class="form-control" data-tip="{$item.tip}" data-rule="{$item.rule}" {$item.extend} />
  42. {/case}
  43. {case checkbox}
  44. {foreach name="item.content_list" item="vo"}
  45. <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>
  46. {/foreach}
  47. {/case}
  48. {case radio}
  49. {foreach name="item.content_list" item="vo"}
  50. <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>
  51. {/foreach}
  52. {/case}
  53. {case value="select" break="0"}{/case}
  54. {case value="selects"}
  55. <select name="row[{$item.name}]{$item.type=='selects'?'[]':''}" class="form-control selectpicker" data-rule="{$item.rule}" data-tip="{$item.tip}" {$item.extend} {$item.type=='selects'?'multiple':''}>
  56. {foreach name="item.content_list" item="vo"}
  57. <option value="{$key}" {in name="key" value="$item.value"}selected{/in}>{$vo}</option>
  58. {/foreach}
  59. </select>
  60. {/case}
  61. {case value="image" break="0"}{/case}
  62. {case value="images"}
  63. <div class="input-group">
  64. <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}">
  65. <div class="input-group-addon no-border no-padding">
  66. <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>
  67. <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>
  68. </div>
  69. <span class="msg-box n-right" for="c-{$item.name}"></span>
  70. </div>
  71. <ul class="row list-inline plupload-preview" id="p-{$item.name}"></ul>
  72. {/case}
  73. {case value="file" break="0"}{/case}
  74. {case value="files"}
  75. <div class="input-group">
  76. <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}">
  77. <div class="input-group-addon no-border no-padding">
  78. <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>
  79. <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>
  80. </div>
  81. <span class="msg-box n-right" for="c-{$item.name}"></span>
  82. </div>
  83. {/case}
  84. {case switch}
  85. <input id="c-{$item.name}" name="row[{$item.name}]" type="hidden" value="{:$item.value?1:0}">
  86. <a href="javascript:;" data-toggle="switcher" class="btn-switcher" data-input-id="c-{$item.name}" data-yes="1" data-no="0" >
  87. <i class="fa fa-toggle-on text-success {if !$item.value}fa-flip-horizontal text-gray{/if} fa-2x"></i>
  88. </a>
  89. {/case}
  90. {case bool}
  91. <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>
  92. <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>
  93. {/case}
  94. {case custom}
  95. {$item.content}
  96. {/case}
  97. {/switch}
  98. </div>
  99. </div>
  100. {/foreach}