其实我对说说这东西一直都有偏见,我觉得QQ空间也够用了,干嘛用博客写说说呢!所以长久以来从来没弄过说说功能!不过看着越来越多的主题都在搞说说,为了增加卖点,所以我也开搞了,搞了后发现说说也挺香的,因为开放所有人可以看见,但又可以过滤掉QQ上的熟人,这种特点真的挺好的。
说说的方案
主流有三种方案:分类改说说、评论改说说、对接第三方。
- 分类改说说:就是新建立个博客分类,这个分类的文章内容就是说说,针对这个分类页面写说说的样式。优点就是每个说说都是独立的文章,说说内容长了还可以截断点击详情可阅读完整内容,可以说既可以是说说也可以写文章,具有文章所有特性;缺点就是有人订阅了你的博客后你这个说说也会被订阅到,导致对方看到了很多无效的短文章,需要自己针对这个说说分类不输出rss。
- 评论改说说:可以建立独立页面模板,然后将这个独立页面的评论改成说说的样式,一级评论作为说说,二级三级等评论作为说说的评论。优点就是小巧,只利用一个独立页面即可建立说说页面,缺点就是开发适配难度有点大,比如需要限制一级评论仅限站长可发布(也就是说说只有站长能发),再比如上传图片功能需要自行实现。
- 对接第三方:一般是对接公众号啥的,博客这边弄个独立的数据表,或者对接文章表亦或是评论表,公众号上发布说说,博客这边接受展示说说,优点是可以展示的东西比较多,比如语音说说,图片说说什么的,缺点是感觉比评论改说说更麻烦。

评论改说说
考虑到自己技术水平,我选择了评论改说说的方式,本来想着如果做的不理想就弃坑,结果还是满顺利的,虽然耗费了好几天。
拦截一级评论
首先是让一级评论只能文章作者发布,因为用到了之前《ajax提交评论》里面的函数,那个函数接收评论的,所以可以在ajax评论函数里面直接做拦截
$user = Typecho_Widget::widget('Widget_User');//获取用户组件
$parentId = $archive->request->filter('int')->get('parent');//获取评论父级,为0则为一级评论
$shenfen=0;//定义个身份变量
if($user->uid>0){if($user->uid == $archive->authorId){$shenfen=1;}}//如果当前用户为文章作者则身份变量改为1
if($archive->template=='say.php'){//如果是说说模板启用以下判断
if($shenfen==0&&$parentId==0){//如果身份不是文章作者同时评论又是一级评论,返回提示信息
$archive->response->throwJson(array('status'=>0,'msg'=>_t('非管理员无法发布说说!')));
}
}
图片上传
我在评论框下面加了个图片上传的按钮,对接的是说说对应的文章附件系统,接口也是参考后台文章附件上传的源码
\Widget\Security::alloc()->to($security);
$security->index('/action/upload?cid=' . $this->cid);//上传接口地址
使用post请求,文件参数为file
附件列表
附件列表输出详见《Typecho根据文章cid输出所有附件并倒序》,插入附件的功能比较简单,就是给图片地址拼点字符串类似这样
然后插入到评论框里即可,删除图片附件的接口如下
\Widget\Security::alloc()->to($security);
$security->index('/action/contents-attachment-edit');//删除附件的接口地址
使用post请求,参数为do=delete,cid=附件的cid
前台管理说说
前台删除说说
\Widget\Security::alloc()->to($security);
$security->index('/action/comments-edit?do=delete&coid=当前评论coid');
请求这个地址即可删除评论也就是说说,使用ajax请求体验最佳。
前台编辑说说
这个比较复杂,建议参考后台manage-comments.php
文件
成果展示
![]() | ![]() | ![]() |
前台可以上传/插入/删除图片 | 发布过的说说在前台可以二次编辑 | 发布好的说说以及评论支持前台删除 |
总结:就是说说前台页面已经实现了所有管理功能,无需进入后台管理
版权属于:泽泽社长
本文链接:https://blog.zezeshe.com/archives/typecho-say.html
本站未注明转载的文章均为原创,并采用
CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!
路过路过,看看大佬
你的邮箱没有设置Gravatar头像,不会弄Gravatar头像,可以将邮箱改为qq号@qq.com即可读取qq头像
说说上传可以加外链吗
外链建议手写markdown语法
,我这个说说就是用的文章附件接口实现的
会写代码太爽了,想折腾就折腾,
写的时候也头大,掉头发
我现在是自己做了公众号对接,参考了网上很多现有系统的教程,不过大多代码似乎都多有缺陷,修修补补后,打算等高考假好好水一番
对于公众号我不太熟哈,所以直接拿评论改
泽泽大佬的教程太详细了
就是简单分享下心得,第一次搞这玩意,搞的头昏脑胀的
这页面我早实现了。
真不错的教程,又白嫖了几个技能点。
没事看看源码啥的,看看后台怎么实现的,对自己都很有启发
之前做说说页面时,曾想过作为一个页面模板,然后说说内容新建一个表,关联页面的cid,但是后台管理不会做,还是评论改简单qaq
对新建表也挺麻烦的,有能力不如直接写个说说程序,然后提供api对接近博客,我这没啥能力的还是用评论改比较方便
突然醒悟,如果说说也推RSS是比较繁琐,我也去把这个给屏蔽掉~
对一般订阅的人都是想看长文章的,能屏蔽说说最好屏蔽