PageRenderTime 52ms CodeModel.GetById 8ms RepoModel.GetById 0ms app.codeStats 0ms

/xoops_trust_path/modules/d3diary/include/import_functions.php

http://xoopscube-modules.googlecode.com/
PHP | 328 lines | 249 code | 52 blank | 27 comment | 30 complexity | 1655dee99c160cb85a736ac95cd59a9b MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.1, AGPL-1.0
  1. <?php
  2. if ( ! function_exists('d3diary_import_from_d3diary') ) {
  3. function d3diary_import_from_d3diary( $mydirname , $import_mid )
  4. {
  5. include_once dirname(__FILE__).'/mytable.php' ;
  6. $db =& Database::getInstance() ;
  7. $import_mid = intval( $import_mid ) ;
  8. $module_handler = & xoops_gethandler( 'module' ) ;
  9. $from_module =& $module_handler->get( $import_mid ) ;
  10. $from_dirname = $from_module->getVar('dirname') ;
  11. foreach( $GLOBALS['d3diary_tables'] as $table_name => $columns ) {
  12. $from_table = $db->prefix( $from_dirname.'_'.$table_name ) ;
  13. $to_table = $db->prefix( $mydirname.'_'.$table_name ) ;
  14. $columns4sql = implode( ',' , $columns ) ;
  15. $db->query( "DELETE FROM `$to_table`" ) ;
  16. $irs = $db->query( "INSERT INTO `$to_table` ( $columns4sql ) SELECT $columns4sql FROM `$from_table`" ) ;
  17. if( ! $irs ) redirect_header( XOOPS_URL."/modules/$mydirname/admin/index.php?page=import" , 3 , $from_table._MD_IMPORTERROR ) ;
  18. }
  19. // deleted dayly cout up
  20. $db->queryF("DELETE FROM ".$db->prefix($mydirname."_cnt")." WHERE ymd<>'1111-11-11'");
  21. // trackback table
  22. d3diary_import_trackbacks($mydirname , $from_dirname );
  23. }
  24. }
  25. if ( ! function_exists('d3diary_import_from_minidiary') ) {
  26. function d3diary_import_from_minidiary( $mydirname , $import_mid )
  27. {
  28. $db =& Database::getInstance() ;
  29. $import_mid = intval( $import_mid ) ;
  30. // get name of `contents` table
  31. $module_handler =& xoops_gethandler( 'module' ) ;
  32. $module =& $module_handler->get( $import_mid ) ;
  33. $target_dirname = $module->getVar('dirname') ;
  34. // category
  35. $from_table = $db->prefix( 'yd_category' ) ;
  36. $to_table = $db->prefix( $mydirname.'_category' ) ;
  37. $db->query( "DELETE FROM `$to_table`" ) ;
  38. $irs = $db->query( "INSERT INTO `$to_table` (uid,cid,cname,corder,blogtype,blogurl,rss,openarea) SELECT uid,cid,cname,corder,'0','','','0' FROM `$from_table`" ) ;
  39. if( ! $irs ) redirect_header( XOOPS_URL."/modules/$mydirname/admin/index.php?page=import" , 3 , $from_table._MD_IMPORTERROR ) ;
  40. // cnt
  41. $from_table = $db->prefix( 'yd_cnt' ) ;
  42. $to_table = $db->prefix( $mydirname.'_cnt' ) ;
  43. $db->query( "DELETE FROM `$to_table`" ) ;
  44. $irs = $db->query( "INSERT INTO `$to_table` (uid,cnt,ymd) SELECT uid,cnt,ymd FROM `$from_table` WHERE ymd='1111-11-11'" ) ;
  45. if( ! $irs ) redirect_header( XOOPS_URL."/modules/$mydirname/admin/index.php?page=import" , 3 , $from_table._MD_IMPORTERROR ) ;
  46. // cnt_ip
  47. $from_table = $db->prefix( 'yd_cnt_ip' ) ;
  48. $to_table = $db->prefix( $mydirname.'_cnt_ip' ) ;
  49. $db->query( "DELETE FROM `$to_table`" ) ;
  50. $irs = $db->query( "INSERT INTO `$to_table` (uid,accip,acctime) SELECT uid,accip,acctime FROM `$from_table`" ) ;
  51. if( ! $irs ) redirect_header( XOOPS_URL."/modules/$mydirname/admin/index.php?page=import" , 3 , $from_table._MD_IMPORTERROR ) ;
  52. // config
  53. $from_table = $db->prefix( 'yd_config' ) ;
  54. $to_table = $db->prefix( $mydirname.'_config' ) ;
  55. $db->query( "DELETE FROM `$to_table`" ) ;
  56. $irs = $db->query( "INSERT INTO `$to_table` (uid,blogtype,blogurl,rss,openarea,mailpost,address,keep,uptime,updated) SELECT uid,blogtype,blogurl,rss,openarea,mailpost,address,keep,uptime,updated FROM `$from_table`" ) ;
  57. if( ! $irs ) redirect_header( XOOPS_URL."/modules/$mydirname/admin/index.php?page=import" , 3 , $from_table._MD_IMPORTERROR ) ;
  58. // diary
  59. $from_table = $db->prefix( 'yd_diary' ) ;
  60. $to_table = $db->prefix( $mydirname.'_diary' ) ;
  61. $db->query( "DELETE FROM `$to_table`" ) ;
  62. $irs = $db->query( "INSERT INTO `$to_table` (bid,cid,uid,title,diary,update_time,create_time,openarea) SELECT bid,cid,uid,title,diary,update_time,create_time,'0' FROM `$from_table`" ) ;
  63. if( ! $irs ) redirect_header( XOOPS_URL."/modules/$mydirname/admin/index.php?page=import" , 3 , $from_table._MD_IMPORTERROR ) ;
  64. // newentry
  65. $from_table = $db->prefix( 'yd_newentry' ) ;
  66. $to_table = $db->prefix( $mydirname.'_newentry' ) ;
  67. $db->query( "DELETE FROM `$to_table`" ) ;
  68. $irs = $db->query( "INSERT INTO `$to_table` (uid,cid,title,url,create_time,blogtype,diary) SELECT uid,'0',title,url,create_time,blogtype,diary FROM `$from_table`" ) ;
  69. if( ! $irs ) redirect_header( XOOPS_URL."/modules/$mydirname/admin/index.php?page=import" , 3 , $from_table._MD_IMPORTERROR ) ;
  70. // photo
  71. $from_table = $db->prefix( 'yd_photo' ) ;
  72. $to_table = $db->prefix( $mydirname.'_photo' ) ;
  73. $db->query( "DELETE FROM `$to_table`" ) ;
  74. $irs = $db->query( "INSERT INTO `$to_table` (uid,bid,pid,ptype,tstamp) SELECT uid,bid,pid,ptype,tstamp FROM `$from_table`" ) ;
  75. if( ! $irs ) redirect_header( XOOPS_URL."/modules/$mydirname/admin/index.php?page=import" , 3 , $from_table._MD_IMPORTERROR ) ;
  76. // deleted dayly cout up
  77. $db->queryF("DELETE FROM ".$db->prefix($mydirname."_cnt")." WHERE ymd<>'1111-11-11'");
  78. }
  79. }
  80. if ( ! function_exists('d3diary_import_from_d3blog') ) {
  81. function d3diary_import_from_d3blog( $mydirname , $import_mid )
  82. {
  83. $db =& Database::getInstance() ;
  84. $import_mid = intval( $import_mid ) ;
  85. // get name of `contents` table
  86. $module_handler =& xoops_gethandler( 'module' ) ;
  87. $from_module =& $module_handler->get( $import_mid ) ;
  88. $from_dirname = $from_module->getVar('dirname') ;
  89. // diary
  90. $gALL = 0;
  91. $gADM = (int)XOOPS_GROUP_ADMIN;
  92. $gUSR = (int)XOOPS_GROUP_USERS;
  93. $gANO = (int)XOOPS_GROUP_ANONYMOUS;
  94. // translate d3blog's group permission to d3diary's openarea entry
  95. $slct_openarea = "IF(`groups` LIKE '%|".$gALL."|%','', IF(`groups` LIKE '%|".$gANO."|%','',
  96. IF(`groups` LIKE '%|".$gUSR."|%','1','10'))) ";
  97. // erase d3blog's unneccesary group permission
  98. $slct_groups_sub = "TRIM(LEADING '|".$gANO."' FROM TRIM(LEADING '|".$gUSR."'
  99. FROM TRIM(LEADING '|".$gADM."' FROM TRIM(LEADING '|".$gALL."' FROM groups))))";
  100. $slct_groups = "IF(".$slct_openarea." LIKE '10',".$slct_groups_sub.",'')";
  101. $from_table = $db->prefix( $from_dirname.'_entry' ) ;
  102. $to_table = $db->prefix( $mydirname.'_diary' ) ;
  103. $db->query( "DELETE FROM `$to_table`" ) ;
  104. $irs = $db->query( "INSERT INTO `$to_table` (bid,cid,uid,title,diary,update_time,create_time,dohtml,openarea,vgids,view)
  105. SELECT bid,cid+10000,uid,title,TRIM(TRAILING '[pagebreak]\n' FROM concat(excerpt,'[pagebreak]\n',body)),
  106. FROM_UNIXTIME(modified),FROM_UNIXTIME(created),dohtml,".$slct_openarea.",".$slct_groups.",counter
  107. FROM `$from_table`" ) ;
  108. if( ! $irs ) redirect_header( XOOPS_URL."/modules/$mydirname/admin/index.php?page=import" , 3 , $from_table._MD_IMPORTERROR ) ;
  109. // category
  110. // process subcat
  111. $slct_subcat = "IF(`pid`>0,'1','0')";
  112. $from_table = $db->prefix( $from_dirname.'_category' ) ;
  113. $to_table = $db->prefix( $mydirname.'_category' ) ;
  114. $db->query( "DELETE FROM `$to_table`" ) ;
  115. $irs = $db->query( "INSERT INTO `$to_table` (uid,cid,cname,corder,subcat,blogtype,blogurl,rss,openarea,vpids) SELECT '0',cid+10000,name,weight,".$slct_subcat.",'0','','','0',pid+10000 FROM `$from_table`" ) ;
  116. if( ! $irs ) redirect_header( XOOPS_URL."/modules/$mydirname/admin/index.php?page=import" , 3 , $from_table._MD_IMPORTERROR ) ;
  117. $sql = "SELECT * FROM `$to_table` ORDER BY vpids, corder";
  118. $result = $db->query($sql);
  119. while ( $dbdat[] = $db->fetchArray($result) ) { }
  120. $i=0; $k=0;
  121. foreach ( $dbdat as $dbrow ) {
  122. $j=0;
  123. if($dbrow['subcat']==0){
  124. $dbdat[$i]['corder'] = $k+10000 ;
  125. $k++;
  126. foreach ( $dbdat as $dbrow2 ) {
  127. if( $dbrow['cid']==(int)$dbrow2['vpids'] ) {
  128. $dbdat[$j]['corder'] = $k+10000 ;
  129. $k++;
  130. }
  131. $j++;
  132. }
  133. }
  134. $i++;
  135. }
  136. foreach ( $dbdat as $dbrow ) {
  137. $sql = "UPDATE `$to_table` SET
  138. corder='".$dbrow['corder']."', vpids=''
  139. WHERE cid=".$dbrow['cid'];
  140. $irs = $db->query($sql);
  141. $i++;
  142. }
  143. // trackbacks
  144. d3diary_import_trackbacks($mydirname , $from_dirname );
  145. }
  146. }
  147. if ( ! function_exists('d3diary_import_trackbacks') ) {
  148. function d3diary_import_trackbacks($mydirname , $from_dirname )
  149. {
  150. $db =& Database::getInstance();
  151. $from_table = $db->prefix( $from_dirname.'_trackback' ) ;
  152. $to_table = $db->prefix( $mydirname.'_trackback' ) ;
  153. // trackbacks
  154. $check_sql = "SELECT tid FROM `$from_table` ";
  155. if( $db->query( $check_sql ) ) {
  156. $check_sql = "SELECT tid FROM `$to_table` ";
  157. if( ! $db->query( $check_sql ) ) {
  158. $db->queryF( "CREATE TABLE `$to_table` (
  159. tid int(8) NOT NULL auto_increment,
  160. bid int(8) NOT NULL,
  161. blog_name varchar(255) NOT NULL,
  162. title varchar(255) NOT NULL,
  163. excerpt text NOT NULL,
  164. url varchar(150) NOT NULL,
  165. trackback_url varchar(150) NOT NULL,
  166. direction int(1) NOT NULL default '0',
  167. `host` varchar(15) NOT NULL,
  168. tbkey varchar(12) NOT NULL,
  169. approved int(1) NOT NULL default '0',
  170. created int(10) NOT NULL default '0',
  171. PRIMARY KEY (tid),
  172. KEY bid (bid),
  173. KEY tbkey (tbkey),
  174. KEY trackback_url (trackback_url)
  175. ) ENGINE=MyISAM" );
  176. }
  177. $db->query( "DELETE FROM `$to_table`" ) ;
  178. $irs = $db->query( "INSERT INTO `$to_table`
  179. (tid,bid,blog_name,title,excerpt,url,trackback_url,direction,host,tbkey,approved,created)
  180. SELECT tid,bid,blog_name,title,excerpt,url,trackback_url,direction,host,tbkey,approved,created
  181. FROM `$from_table` " ) ;
  182. if( ! $irs ) redirect_header( XOOPS_URL."/modules/$mydirname/admin/index.php?page=import" , 3 , $from_table._MD_IMPORTERROR ) ;
  183. }
  184. }
  185. }
  186. if ( ! function_exists('d3diary_import_comments') ) {
  187. function d3diary_import_comments($to_mid , $from_mid )
  188. {
  189. $db =& Database::getInstance();
  190. $table = $db->prefix( 'xoopscomments' ) ;
  191. $sql = "UPDATE ".$table." SET com_modid=".intval($to_mid)." WHERE com_modid=".intval($from_mid);
  192. $irs = $db->query( $sql ) ;
  193. if(!$irs ) redirect_header( XOOPS_URL."/modules/$mydirname/admin/index.php?page=import" , 3 ,_MD_IMPORTERROR ) ;
  194. }
  195. }
  196. if ( ! function_exists('d3diary_import_notifications') ) {
  197. function d3diary_import_notifications($to_mid, $from_mid)
  198. {
  199. $db =& Database::getInstance();
  200. $table = $db->prefix( 'xoopsnotifications' ) ;
  201. $sql = "UPDATE ".$table." SET not_modid=".intval($to_mid)." WHERE not_modid=".intval($from_mid);
  202. $irs = $db->query( $sql ) ;
  203. if(!$irs ) redirect_header( XOOPS_URL."/modules/$mydirname/admin/index.php?page=import" , 3 ,_MD_IMPORTERROR ) ;
  204. }
  205. }
  206. if ( ! function_exists('d3diary_import_from_weblogD3') ) {
  207. function d3diary_import_from_weblogD3( $mydirname , $import_mid )
  208. {
  209. $db =& Database::getInstance() ;
  210. $import_mid = intval( $import_mid ) ;
  211. // get name of `contents` table
  212. $module_handler =& xoops_gethandler( 'module' ) ;
  213. $from_module =& $module_handler->get( $import_mid ) ;
  214. $from_dirname = $from_module->getVar('dirname') ;
  215. // diary
  216. $gALL = 'all';
  217. $gADM = (int)XOOPS_GROUP_ADMIN;
  218. $gUSR = (int)XOOPS_GROUP_USERS;
  219. $gANO = (int)XOOPS_GROUP_ANONYMOUS;
  220. // translate weblogD3's group permission to d3diary's openarea entry
  221. $slct_openarea = "IF(`private` LIKE 'Y',100, IF(`permission_group` LIKE '".$gALL."','',
  222. IF(`permission_group` LIKE '%|".$gANO."|%','',
  223. IF(`permission_group` LIKE '%|".$gUSR."|%','1','10')))) ";
  224. // erase d3blog's unneccesary group permission
  225. $slct_groups_sub = "TRIM(LEADING '|".$gANO."' FROM TRIM(LEADING '|".$gUSR."'
  226. FROM TRIM(LEADING '|".$gADM."' FROM TRIM(LEADING '".$gALL."' FROM permission_group))))";
  227. $slct_groups = "IF(".$slct_openarea." LIKE '10',".$slct_groups_sub.",'')";
  228. $weblog_pagebreak = "'---UnderThisSeparatorIsLatterHalf---'";
  229. $from_table = $db->prefix( $from_dirname.'_entry' ) ;
  230. $to_table = $db->prefix( $mydirname.'_diary' ) ;
  231. $db->query( "DELETE FROM `$to_table`" ) ;
  232. $sql = "INSERT INTO `$to_table` (bid,cid,uid,title,diary,update_time,create_time,dohtml,openarea,vgids,view)
  233. SELECT blog_id,cat_id+10000,user_id,title,REPLACE(contents, $weblog_pagebreak, '[pagebreak]\n'),
  234. FROM_UNIXTIME(created),FROM_UNIXTIME(created),dohtml,".$slct_openarea.",".$slct_groups.",`reads`
  235. FROM `$from_table`" ;
  236. $irs = $db->query( $sql ) ;
  237. if( ! $irs ) redirect_header( XOOPS_URL."/modules/$mydirname/admin/index.php?page=import" , 3 , $from_table._MD_IMPORTERROR ) ;
  238. // category
  239. // process subcat
  240. $slct_subcat = "IF(`cat_pid`>0,'1','0')";
  241. $from_table = $db->prefix( $from_dirname.'_category' ) ;
  242. $to_table = $db->prefix( $mydirname.'_category' ) ;
  243. $db->query( "DELETE FROM `$to_table`" ) ;
  244. $irs = $db->query( "INSERT INTO `$to_table` (uid,cid,cname,corder,subcat,blogtype,blogurl,rss,openarea,vpids) SELECT '0',cat_id+10000,cat_title,'0',".$slct_subcat.",'0','','','0',cat_pid+10000 FROM `$from_table`" ) ;
  245. if( ! $irs ) redirect_header( XOOPS_URL."/modules/$mydirname/admin/index.php?page=import" , 3 , $from_table._MD_IMPORTERROR ) ;
  246. $sql = "SELECT * FROM `$to_table` ORDER BY vpids, corder";
  247. $result = $db->query($sql);
  248. while ( $dbdat[] = $db->fetchArray($result) ) { }
  249. $i=0; $k=0;
  250. foreach ( $dbdat as $dbrow ) {
  251. $j=0;
  252. if($dbrow['subcat']==0){
  253. $dbdat[$i]['corder'] = $k+10000 ;
  254. $k++;
  255. foreach ( $dbdat as $dbrow2 ) {
  256. if( $dbrow['cid']==(int)$dbrow2['vpids'] ) {
  257. $dbdat[$j]['corder'] = $k+10000 ;
  258. $k++;
  259. }
  260. $j++;
  261. }
  262. }
  263. $i++;
  264. }
  265. foreach ( $dbdat as $dbrow ) {
  266. $sql = "UPDATE `$to_table` SET
  267. corder='".$dbrow['corder']."', vpids=''
  268. WHERE cid=".$dbrow['cid'];
  269. $irs = $db->query($sql);
  270. $i++;
  271. }
  272. // trackbacks
  273. //d3diary_import_trackbacks_weblogD3($mydirname , $from_dirname );
  274. }
  275. }
  276. ?>