1.先建一个xoops块:
目录为proxy,以下有
index.php,header.php,footer.php,newblog.php,xoops_version.php
先看xoops_version.php
- <?php
- $modversion['name'] = "博客";
- $modversion['version'] = 1.00;
- $modversion['description'] = "与wpmu交互的模块";
- $modversion['author'] = "";
- $modversion['credits'] = "wpMu proxy";
- $modversion['help'] = "system.html";
- $modversion['license'] = "GPL see LICENSE";
- $modversion['official'] = 1;
- $modversion['image'] = "images/system_slogo.png";
- $modversion['dirname'] = "proxy";
- $modversion['hasAdmin'] = 1;
- $modversion['adminindex'] = "admin.php";
- $modversion['adminmenu'] = "menu.php";
- // Templates
- $modversion['templates'][1]['file'] = 'newblog.html';
- $modversion['templates'][1]['description'] = '';
- $modversion['hasMain'] = 1;
- ?>
2.思路:
用户在点击菜单时,系统会自动判断用户时否已经拥用了WordpressBlog.如果没有,则会显示设定Wordpress的表单。
文件index.php
- <?php
- require_once("header.php");
- $sql="select * from wp_users where user_login='".$xoopsUser->getVar("uname")."'";
- $rs=$xoopsDB->query($sql);
- $rows=$xoopsDB->getRowsNum($rs);
- if($rows)
- {
- require_once("class/xoops_mu.php");
- $xoops_mu=new xoops_mu();
- $xoops_mu->userLogin($xoopsUser->getVar("uname"),md5($xoopsUser->getVar("pass")),time()+365*24*3600,"/wpmu/",".newag.com.cn");
- header ("location:http://".$xoopsUser->getVar("uname").".newag.com.cn/wpmu/");
- }
- else
- {
- $xoopsOption["template_main"]="newblog.html";
- $xoopsTpl -> assign("email", $xoopsUser->getVar("email"));
- }
- require_once("footer.php");
- ?>
3.如果用户已经有了blog,那会自动转向到blog中。
如果没有,是调的一个模板,这个模板询问用户是否要创建一个Wordpress博客。用户选择开通后,会进入newblog.php
newblog.php代码:
- <?php
- require_once("header.php");
- if(file_exists("class/sqlgenerator.php"))
- require_once("class/sqlgenerator.php");
- require_once("class/fileoper.php");
- $blogtitle=$_POST["blogtitle"];
- $blogdomain=$_POST["blogdomain"];
- $email=$_POST["email"];
- require_once("class/xoops_mu.php");
- $xoops_mu=new xoops_mu();
- if($xoops_mu->addNewWPUser($xoopsUser->getVar("uname"),$xoopsUser->getVar("pass"),$xoopsUser->getVar("email"),$xoopsUser->getVar("uname").".newag.com.cn","wpmu","http://".$xoopsUser->getVar("uname").".newag.com.cn/wpmu/",$xoopsUser->getVar("uname")))
- {
- //echo "创建wp用户成功.<br/>";
- }
- if($xoops_mu->CreateBlog($xoopsUser->getVar("uname"),$xoopsUser->getVar("uname").".newag.com.cn",$xoopsUser->getVar("uname"),"/wpmu/"))
- {
- //echo "创建Blog成功.<br/>";
- }
- //$xoopsOption["template_main"]="success.html";
- // $xoopsTpl -> assign("uname", $xoopsUser->getVar("uname"));
- header("location:http://".$xoopsUser->getVar("uname").".newag.com.cn/wpmu/");
- require_once("footer.php");
- ?>
其实主要还是调用了xoops_mu这个类来进行新博客的创建工作。
经过我的分析,进行了这样一系统工作:
在wp_site,wp_user,wp_signups三个表中插入了相应的行(感觉有点数据冗余,域名都插入了好几次),在wp_usermeta中插入了5行数据.然后建了wp_数字_****这样形式的8个表(前一阵看还是7个,记得当时没有wp_*_options这个表,现在又多了一个表).这一系列工作我就没有去细看,直接用phpmyadmin把sql导出了,然后做了相应一些处理后,直接执行了。
在前面一篇blog的xoops_mu类里。不过注意那个类是没法直接运行的,毕竟只是交流,示例一下WP整合是怎么一个思路。
有兴趣的话,等我完全搞完后发一个资料内传阅一下。
PS:个人感觉mu.wordpress.org上的那个版本有点乱,我开始下了一个nightly版本,不过developer太马虎了,居然出来巨搞笑的BUG,用***.com就可以,用***.com.cn,居然图片,js文件的地址就成了com.cn/***了,所以我放弃了,再下的wordpress.mu.1.0Rc4 好像也改动了一些文件。但改了文件版本号应该改一下。
还没有评论。