title('热帖榜') // ->body($this->buildPreviewButton()) // ->body($this->newline()) ->body( <<{$this->form_post()->render()} HTML ); } protected function form_post(){ $form = new Form(); $form->confirm('您确定要提交表单吗?', 'content'); $form->disableResetButton(); $form->html(function () { return ''; }, '一、计算公式调整'); $form->html(function () { return '
H:是一个内容的热度
W:是一个文章的评论数,喜欢数加权求和的数值
I:文章作者的影响因子。这个影响因子与作者本身的历史发表有关
G:一个衰减的重力参数
T:文章发布以来的时长浮点数(小时)
'; }, ''); $form->html(function () { return '
说明一下:如果你发现热门的内容时间比较早,则可以加大该参数,每一次改变该参数,都会引起一定的计算,别太频繁就行。
'; }, ''); $res12 = __system__paycode__tip__(12); Tooltip::make('.mini_global_admin_open_not_support_tip') ->bottom() ->title($res12['tip']); $form->decimal('realtime_post_para_g', '衰减参数G')->help($res12['text'].'注意:因为是指数,所以应该是零点几的去调为好,默认1.2,数值越大,就越会衰减旧内容热度,让新发表的升上来')->default(Settings::get('realtime_post_para_g', 1.2)); $form->html(function () { return ''; }, '二、热帖榜'); $form->html(function () { return '
说明一下:默认5天之内的热度增量之和进行排序,前10名作为10大热帖,如果你的产生内容较少,可以设置更长的时间。
'; }, ''); $form->number('realtime_post_degree_increment_keep_days', '增量保持天数')->help('默认笔记热度增量数据保存5天,你可以设置更长的时间,以便有足够多的数据。不是实时生效,15分钟系统系统响应一次')->default(Settings::get('realtime_post_degree_increment_keep_days', 5)); $form->number('realtime_post_degree_increment_hot_num', '热标识最大个数')->help('热标识是根据当前3个小时增速最快的几个')->default(Settings::get('realtime_post_degree_increment_hot_num', 3)); $form->number('realtime_post_degree_increment_hot_num_in_hours', '热标识时间范围/小时')->help('上面举例是5个小时,这里可以配置其他时长,如果你的社区活跃,就配置更短的时间')->default(Settings::get('realtime_post_degree_increment_hot_num_in_hours', 3)); $form->html(function () { return ''; }, '三、其他应用'); $form->number('realtime_post_list_shows_top', '列表页排名最低提示名次')->help('就是比如首页提示:热帖榜排第x名,最大值50,0代表不显示')->default(Settings::get('realtime_post_list_shows_top', 10)); $form->action('realtime/action/post'); return $form; } public function post(Request $request){ SiteUtils::forget_config_data(); $old_g = Settings::get('realtime_post_para_g'); $new_g = $request->realtime_post_para_g; if(_empty_($old_g) || $old_g != $new_g){ RealtimePostsDegreeJob::dispatch(1000); } Settings::set('realtime_post_para_g', $request->input('realtime_post_para_g'), true); Settings::set('realtime_post_degree_increment_keep_days', $request->input('realtime_post_degree_increment_keep_days'), true); Settings::set('realtime_post_degree_increment_hot_num', $request->input('realtime_post_degree_increment_hot_num'), true); Settings::set('realtime_post_degree_increment_hot_num_in_hours', $request->input('realtime_post_degree_increment_hot_num_in_hours'), true); Settings::set('realtime_post_list_shows_top', _between_($request->input('realtime_post_list_shows_top'), 0, 50), true); return $this->response()->success('成功!'); } }