正在加载...
2006-10
6
发表于: 未分类 | 作者: xurenlu
标签:

1.先建一个xoops块:
目录为proxy,以下有
index.php,header.php,footer.php,newblog.php,xoops_version.php
先看xoops_version.php

  1. <?php
  2.  
  3.  
  4.  
  5.  
  6. $modversion['name'] = "博客";
  7. $modversion['version'] = 1.00;
  8. $modversion['description'] = "与wpmu交互的模块";
  9. $modversion['author'] = "";
  10. $modversion['credits'] = "wpMu proxy";
  11. $modversion['help'] = "system.html";
  12. $modversion['license'] = "GPL see LICENSE";
  13. $modversion['official'] = 1;
  14. $modversion['image'] = "images/system_slogo.png";
  15. $modversion['dirname'] = "proxy";
  16.  
  17. $modversion['hasAdmin'] = 1;
  18. $modversion['adminindex'] = "admin.php";
  19. $modversion['adminmenu'] = "menu.php";
  20.  
  21.  
  22. // Templates
  23.  
  24. $modversion['templates'][1]['file'] = 'newblog.html';
  25. $modversion['templates'][1]['description'] = '';
  26.  
  27. $modversion['hasMain'] = 1;
  28.  
  29. ?>

2.思路:
用户在点击菜单时,系统会自动判断用户时否已经拥用了WordpressBlog.如果没有,则会显示设定Wordpress的表单。
文件index.php

  1. <?php
  2. require_once("header.php");
  3. $sql="select * from wp_users where user_login='".$xoopsUser->getVar("uname")."'";
  4. $rs=$xoopsDB->query($sql);
  5. $rows=$xoopsDB->getRowsNum($rs);
  6. if($rows)
  7. {
  8.     require_once("class/xoops_mu.php");
  9.     $xoops_mu=new xoops_mu();
  10.     $xoops_mu->userLogin($xoopsUser->getVar("uname"),md5($xoopsUser->getVar("pass")),time()+365*24*3600,"/wpmu/",".newag.com.cn");
  11.  
  12.     header ("location:http://".$xoopsUser->getVar("uname").".newag.com.cn/wpmu/");
  13. }
  14. else
  15. {
  16.     $xoopsOption["template_main"]="newblog.html";
  17.     $xoopsTpl -> assign("email", $xoopsUser->getVar("email"));
  18. }
  19.    
  20.     require_once("footer.php");
  21.     ?>

3.如果用户已经有了blog,那会自动转向到blog中。
如果没有,是调的一个模板,这个模板询问用户是否要创建一个Wordpress博客。用户选择开通后,会进入newblog.php
newblog.php代码:

  1. <?php
  2.     require_once("header.php");
  3.     if(file_exists("class/sqlgenerator.php"))
  4.         require_once("class/sqlgenerator.php");
  5.     require_once("class/fileoper.php");
  6.    
  7.     $blogtitle=$_POST["blogtitle"];
  8.     $blogdomain=$_POST["blogdomain"];
  9.     $email=$_POST["email"];
  10.  
  11.     require_once("class/xoops_mu.php");
  12.     $xoops_mu=new xoops_mu();
  13.     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")))
  14.     {
  15.         //echo "创建wp用户成功.<br/>";
  16.     }
  17.     if($xoops_mu->CreateBlog($xoopsUser->getVar("uname"),$xoopsUser->getVar("uname").".newag.com.cn",$xoopsUser->getVar("uname"),"/wpmu/"))
  18.     {
  19.         //echo "创建Blog成功.<br/>";
  20.     }
  21.    
  22.     //$xoopsOption["template_main"]="success.html";
  23. //    $xoopsTpl -> assign("uname", $xoopsUser->getVar("uname"));
  24.     header("location:http://".$xoopsUser->getVar("uname").".newag.com.cn/wpmu/");
  25.    
  26.     require_once("footer.php");
  27.     ?>

其实主要还是调用了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 好像也改动了一些文件。但改了文件版本号应该改一下。

: http://www.162cm.com/archives/273.html

本文相关评论 - 1条评论都没有呢

还没有评论。