common.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <?php
  2. use app\admin\library\Auth;
  3. use app\common\model\Configvalue;
  4. use fast\Form;
  5. use think\Db;
  6. function get_upload_multipart($savekey = '', $mimetype = '', $maxsize = '')
  7. {
  8. // 加载配置
  9. $configvalue = new Configvalue;
  10. // 上传参数配置配置
  11. $uploadcfg = $configvalue->upload($savekey, $mimetype, $maxsize);
  12. return json_encode(['policy' => $uploadcfg['policy'], 'signature' => $uploadcfg['signature']]);
  13. }
  14. function get_flag_list()
  15. {
  16. return [
  17. 'h' => __('Hot'),
  18. 'i' => __('Index'),
  19. 'r' => __('Recommend'),
  20. ];
  21. }
  22. /**
  23. * 生成下拉列表
  24. * @param string $name
  25. * @param mixed $options
  26. * @param mixed $selected
  27. * @param mixed $attr
  28. * @return string
  29. */
  30. function build_select($name, $options, $selected = [], $attr = [])
  31. {
  32. $options = is_array($options) ? $options : explode(',', $options);
  33. $selected = is_array($selected) ? $selected : explode(',', $selected);
  34. return Form::select($name, $options, $selected, $attr);
  35. }
  36. /**
  37. * 生成单选按钮组
  38. * @param string $name
  39. * @param array $list
  40. * @param mixed $selected
  41. * @return string
  42. */
  43. function build_radios($name, $list = [], $selected = null)
  44. {
  45. $html = [];
  46. $selected = is_null($selected) ? key($list) : $selected;
  47. foreach ($list as $k => $v)
  48. {
  49. $html[] = sprintf(Form::label("{$name}-{$k}", "%s {$v}"), Form::radio($name, $k, $k == $selected, ['id' => "{$name}-{$k}"]));
  50. }
  51. return implode(' ', $html);
  52. }
  53. /**
  54. * 生成复选按钮组
  55. * @param string $name
  56. * @param array $list
  57. * @param mixed $selected
  58. * @return string
  59. */
  60. function build_checkboxs($name, $list = [], $selected = null)
  61. {
  62. $html = [];
  63. $selected = is_null($selected) ? [] : $selected;
  64. foreach ($list as $k => $v)
  65. {
  66. $html[] = sprintf(Form::label("{$name}-{$k}", "%s {$v}"), Form::checkbox($name, $k, $k == $selected, ['id' => "{$name}-{$k}"]));
  67. }
  68. return implode(' ', $html);
  69. }
  70. /**
  71. * 生成表格操作按钮栏
  72. * @param array $btns
  73. * @return string
  74. */
  75. function build_toolbar($btns = NULL)
  76. {
  77. $btns = $btns ? $btns : ['refresh', 'add', 'edit', 'delete'];
  78. $btns = is_array($btns) ? $btns : explode(',', $btns);
  79. $addbtn = __('Add');
  80. $editbtn = __('Edit');
  81. $deletebtn = __('Delete');
  82. $html = [];
  83. if (in_array('refresh', $btns))
  84. {
  85. $html[] = '<a class="btn btn-primary btn-refresh" ><i class="fa fa-refresh"></i></a>';
  86. }
  87. if (in_array('add', $btns))
  88. {
  89. $html[] = '<a class="btn btn-success btn-add" ><i class="fa fa-plus"></i> ' . $addbtn . '</a>';
  90. }
  91. if (in_array('edit', $btns))
  92. {
  93. $html[] = '<a class="btn btn-success btn-edit btn-disabled disabled" ><i class="fa fa-pencil"></i> ' . $editbtn . '</a>';
  94. }
  95. if (in_array('delete', $btns))
  96. {
  97. $html[] = '<a class="btn btn-danger btn-del btn-disabled disabled" ><i class="fa fa-trash"></i> ' . $deletebtn . '</a>';
  98. }
  99. return implode(' ', $html);
  100. }
  101. /**
  102. * 生成页面Heading
  103. *
  104. * @param string $title
  105. * @param string $content
  106. * @return string
  107. */
  108. function build_heading($title = NULL, $content = NULL)
  109. {
  110. if (is_null($title) && is_null($content))
  111. {
  112. // 根据当前的URI自动匹配父节点的标题和备注
  113. $path = Auth::instance()->getRequestUri();
  114. $data = Db::name('auth_rule')->where('id', 'IN', function($query) use($path)
  115. {
  116. $query->name('auth_rule')->where('name', $path)->field('pid');
  117. })->find();
  118. if ($data)
  119. {
  120. $title = $data['title'];
  121. $content = $data['remark'];
  122. }
  123. }
  124. if (!$content)
  125. return '';
  126. return '<div class="panel-heading"><div class="panel-lead"><em>' . $title . '</em>' . $content . '</div></div>';
  127. }