formTopicTrait.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. namespace App\Admin\Controllers\Traits\WxRealtimeTraits;
  3. use App\Wen\Utils\Settings;
  4. use App\Wen\Utils\SiteUtils;
  5. use Dcat\Admin\Layout\Content;
  6. use Dcat\Admin\Widgets\Form;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Support\Facades\Cache;
  9. trait formTopicTrait{
  10. public function index_topic(Content $content)
  11. {
  12. return $content->title('话题热度榜')
  13. // ->body($this->buildPreviewButton())
  14. // ->body($this->newline())
  15. ->body(
  16. <<<HTML
  17. <div class="card">{$this->form_topic()->render()}</div>
  18. HTML
  19. );
  20. }
  21. protected function form_topic(){
  22. $form = new Form();
  23. $form->confirm('您确定要提交表单吗?', 'content');
  24. $form->disableResetButton();
  25. $form->html(function () {
  26. return '';
  27. }, '<b>一、话题榜</b>');
  28. $form->html(function () {
  29. return '<div style="background-color: powderblue;color: #414750;padding: 10px;border-radius: 5px;">说明一下:默认按照所有话题10天之内的热度增量和进行排序,增长最快的x个话题会进入榜单,如果你的产生内容较少,可以设置更长的时间。</div>';
  30. }, '');
  31. $form->number('realtime_topic_degree_increment_keep_days', '增量保持天数')->help('默认保存10天话题的热度增量数据,如果站内活跃较少,也可以设置更长的时间。不是实时生效,15分钟系统系统响应一次')->default(Settings::get('realtime_topic_degree_increment_keep_days', 10));
  32. $form->number('realtime_topic_degree_increment_hot_num', '热标识最大个数')->help('热标识是根据当前3个小时增速最快的几个')->default(Settings::get('realtime_topic_degree_increment_hot_num', 3));
  33. $form->number('realtime_topic_degree_increment_hot_num_in_hours', '热标识时间范围/小时')->help('上面举例是3个小时,这里可以配置其他时长,如果你的社区活跃,就配置更短的时间')->default(Settings::get('realtime_topic_degree_increment_hot_num_in_hours', 3));
  34. $form->action('realtime/action/topic');
  35. return $form;
  36. }
  37. public function topic(Request $request){
  38. SiteUtils::forget_config_data();
  39. Settings::set('realtime_topic_degree_increment_keep_days', $request->input('realtime_topic_degree_increment_keep_days'), true);
  40. Settings::set('realtime_topic_degree_increment_hot_num', $request->input('realtime_topic_degree_increment_hot_num'), true);
  41. Settings::set('realtime_topic_degree_increment_hot_num_in_hours', $request->input('realtime_topic_degree_increment_hot_num_in_hours'), true);
  42. return $this->response()->success('成功!');
  43. }
  44. }