X1正如某位会员所总结评价的,论单一功能,比如单单拿商城或论坛跟外面的比,确实不如外面的论坛或商城系统,但仅仅是目前而已。
但论系统的整体灵活性,可扩展性,远远甩开外面任何系统几条街!!
首先是标签,完全可以不用写程序就可以实现异步加载及前台更新,其次是频道插件可复制,再次是刚刚发布的基于AI智能权重算法的积分体系,当然还有变形金刚圈子系统。
现在我们又可以很自豪的跟大家说,除了之前一直沿用TP的钩子体系,现在我们又首创了一套自己的钩子体系。
对于这套新的钩子体系的设计,我们即不是重复造轮子,也不是炫技术,而是为满足大家的个性需求。
之前我们提过了,互联网发展太快,每个人的需求都完全不一样,今天跟昨天的需求都有可能不一样,如果一直往一个系统里边塞东西,虽然表面上看这个系统会越来越强大,同时也就越来越臃肿。
大家可能没经历过臃肿,可能一下子体会不了臃肿的弊端,有些人现在后台插件中心如果装了一大堆东西的,现在回头看,是不是有点不喜欢? 也就是说,如果我们一开始不按频道、插件设计,全部一起塞进去的话,那东西多得更可怕。
每个人有不同的频道需求,同一个频道,比如商城或论坛,不同的人又会有不同的需求。现在积分体系出来了,就有人提出来,能不能在回贴的时候,即扣积分,又同时奖励另一种形式的金币,比如活跃度呢?
对于这个需求,其实并不是每个人都需要的,可以通过插件的形式实现。一提到插件,大家就怕了。
因为在大家的潜意识里,一个小功能,就要安装一个插件,那么后台又会增加一个菜单。就比如之前孟卫开发了一个申请认证圈子的功能,也是通过插件实现的。包括 torylf 的神盾工具箱 里边的很多小功能,也是通过插件实现的。这后台都不可避免的要加菜单。所以大家一提到要用插件实现,就怕功能、文件、菜单太多。(即然大家都怕东西多,那回头再想想,如果不用我们的X1,而用市面上其它系统的话,不同的系统就是不同的后台,搞多几个系统,就会出现一大堆不同的后台,并且会员还不一定能统一。)
就是因为怕系统臃肿,所以我们才没有一直往一个系统里边塞东西,所以表面看来,我们的单一系统是没有外面的强大。
即然我们怕系统臃肿,那之前的插件钩子体系,我们就要继续深度优化!!
所以我们才首创了这套自己的钩子体系。
也就是说,之前有部分人提到的,想要实现发贴同时有两种积分变化,或同时增加,或其中一种增加,而另一种却扣除。可以不加菜单的前提下就可以轻松实现。大家可以看下面的截图
hook_listen 是沿用TP的钩子体系,大家也基本熟悉了。
$this->get_hook('reply_end_add',$data,$topic,['id'=>$id]);
这个就是我们独创的钩子体系。类似之前的钩子那么使用,在需要的地方插入即可,但不会全站预加载,访问到该页面才会用到。第一个变量就是标志符,相应的钩子文件就放在对应模块的ext目录下,这个目录是新增加的。
钩子详细教程
http://help.php168.com/1010065
大家可以这么简单的理解,本质就是把钩子文件里边的内容包含进来。所以你就可以想像为就在当前方法里边写程序,可以使用当前方法里边的类的所有属性。并且可以直接 return 跳出当前方法。比如用户提交信息的时候,你可以做权限终止判断的友好提示。而不需要像以前的钩子那样,只能用 die 来暴力终止!
大家可以进后台升级,然后在钩子市场安装这个应用体验.也可以下载这个代码研究学习
https://x1.php168.com/appstore/content/show/id/297.html
放一个对比就知道怎么在程序预制了。
原来的钩子:
hook_listen( 'cms_add_end',$this->model->id,[ 'data' => $data,'module' => $this->request->module() ] );
换算为现在的:
$this->get_hook('cms_add_end',$this->model->id,[ 'data' => $data,'module' => $this->request->module() ] );
他们的区别:
hook_listen 是全局加载 程序启动就加载
get_hook 是惰性加载 使用到了再加载
看明白了,这玩意强大啊,使用方法和预制hook_listen(xxx )一样 但是比hook的强大
先回复 再查看 感觉很厉害
没教程,哪句是什么意思都不懂。
官方最近更新很迅速,感觉有点跟不上节奏了
我想说的是发贴而不是回复时的积分,回贴与发贴机制是不一样的,不过多个回复也好。