接触建站以来,总想了解多一些建站程序,所以,很早就知道了mediawiki和hdwiki,也一直想弄个百科站,不过每次都是安装好就停手。
最近因为想建个团队wiki,于是多弄了几天wiki程序。算是了解多了一些吧,发现wiki不仅仅是百科而已,拿来作为文档库也很合适,比如discuz技术文库就是用mediawiki搭建的。还有作为开源电子书也是不错的。而且不仅仅是团队wiki,个人知识管理使用wiki程序也是一种很好的选择,于是就打算在建一个个人wiki。
Contents
mediawiki还是hdwiki?
这个挺纠结的,很多大站用的mediawiki,于是也想用mediawiki,不过安装之后实在是不习惯,没有后台,编辑词条时也没发现上传图片的地方。所以最终还是选择了hdwiki。
hdwiki和ucenter整合
不得不说,hdwiki这个整合搞的真心蛋疼。我第一次装hdwiki的时候,大概是几个月前,提示uc_client目录不存在,于是那次试验就以失败告终了,直到这一次,我才知道原来是hdwiki 5.1打包时把uc_client给遗漏了。这次下载的今年5月更新的软件包到是没这个问题了,但是新问题更加恼火。眼看着整合成功了吧,uc通信也正常,从discuz过去的用户也登录了,不过要你激活,可是,无论你怎么弄,就是激活不了。
用phpmyadmin看一下,才发现只有用户名写入了数据库,用户的密码和邮箱都是空的。
求助百度和google大神,不过资料比之discuz实在太少,找到的都是千篇一律的整合方式,而且他们貌似都成功了。难道他们真的成功了吗?
无奈之下逼自己去看源码,还没写过php程序的人看uc接口代码真的是头疼,找到了同步登录的函数:
function synlogin($get, $post) {
!API_SYNLOGIN && exit(API_RETURN_FORBIDDEN);
$cookietime = 2592000;
$timestamp=$get['time'];
$discuz_auth_key = md5($_DCACHE['settings']['authkey'].$_SERVER['HTTP_USER_AGENT']);
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
$username=$get['username'];
$password=$get['password'];
$email=$member['email'];
$uid=$get['uid'];
$user = $this->db->fetch_first("select * from ".DB_TABLEPRE."user where username='$username'");
if(!is_array($user)){
if($usernum=$this->db->result_first("select count(*) from ".DB_TABLEPRE."user where uid= $uid")){
$maxuid=$this->db->result_first("select max(uid) from ".DB_TABLEPRE."user");
$maxuid+=1;
$this->db->query("update ".DB_TABLEPRE."user set uid=$maxuid where uid=$uid");
update_field($uid,$maxuid);
}
//$password=$email="";
$ip = $_SERVER['REMOTE_ADDR'];
$groupid = 2;
$this->db->query("replace into ".DB_TABLEPRE."user (uid,username,`password`,email,regip,regtime,groupid) values ($uid,'$username','$password','$email','$ip',$timestamp,$groupid)");
$user = $this->db->fetch_first("select * from ".DB_TABLEPRE."user u where u.uid=$uid and u.username='$username'");
}
注意看被我注释掉的那一行:$password=$email=""; 让密码和邮箱都为空。难道是这里出了问题?
注释掉之后,在去实验,先是兴奋了一下,因为discuz的用户到hdwiki直接登录了,不用去激活,用phpmyadmin看,密码也写入hdwiki的user表里了。不过这兴奋没有持续多久,因为又发现虽然同步登录了,但写入hdwiki user表里的用户密码是ucenter中的用户密码,而ucenter和discuz中保存的用户密码的加密方式貌似是不一样的,这就意味着用户无法在hdwiki端通过discuz的用户名密码登录。可能还是uc接口文件出了问题。
还有其他一些问题:
- 不能同步退出。从discuz退出,hdwiki也会退出,但是从hdwiki退出,discuz不会退出。
- discuz新注册用户必须先退出,在登录一次才可以自动登录hdwiki,这对用户体验很不好。
算了,没有技术,修改不了uc接口文件,就先放弃吧,或者,把hdwiki的注册登录全部关了,只用discuz的注册和登录,不过还是有用户体验的问题。而且,后患比较多。
hdwiki做个人wiki
还是弄个人wiki吧,无需整合ucenter。不过还是有不尽如人意的地方。做个人wiki,很不喜欢hdwiki那个首页。而mediawiki已某个可以编辑的页面作为首页我感觉很好。但是没有找到hdwiki编辑首页的方法,只好直接改模版的index.htm文件。不过这个比较麻烦,还不能用后台的模版编辑,因为那个不支持中文。所以每次在本地编辑好才能上传。
我改好的如下:
{template header}
AnnHe's Personal Wiki
欢迎来到我的个人Wiki
欢迎来到我的个人Wiki。本Wiki目前由我个人维护。
Wiki不仅适合团队协作管理团队知识,还是一个很好的个人知识管理工具,本Wiki打算记录我建站的经验总结及专业学习上面的一些总结,大致包括Linux服务器运维,Discuz,PHP以及C语言等内容。
建设网站的一般方法
本章总结搭建一个网站的基本流程,包括申请域名,购买虚拟主机或服务器,上传网站程序,安装网站程序,维护网站等等。
进入文档:建设网站的一般方法
加入我一起编写文档
虽然这是一个个人Wiki,但并不排斥多人协作。如果你和我有相似的兴趣并且希望和我共同维护此Wiki,欢迎联系我,点此查看我的联系方式
如果你不了解Wiki,请先阅读:
什么是Wiki。
如果你不了解如何编辑Wiki,请先阅读:我是新手,怎样编写文档。
{$advlist[2][code]}
{block:right/}
{block:bottom/}
{template footer}
效果如图:
百度吧,很久没弄hdwiki了
你好,能不能把dokuwiki的模板发我共享下,多谢
邮箱 wy-fang316@163.com
我用的默认模板
我是湖南的邹志斌,刚玩博客,来这里拜码头!恳请前辈多多指点:www.zouzhibin.cn
不敢当。。你博客做的挺好的