Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已解决] dv8.3转dzx1,用官方转换具,专题错位,如何解决?

[复制链接]
newliver00700 发表于 2010-11-24 09:46:06 | 显示全部楼层 |阅读模式
dv8.3转dzx1,用官方转换具,专题错位,如何解决?

是应该在转换前修改转换代码?还是在转换后可以在后台改变顺序!
幸福在右 发表于 2010-11-24 09:57:38 | 显示全部楼层
专题??
    默认没有专题吧?
回复

使用道具 举报

 楼主| newliver00700 发表于 2010-11-24 10:01:11 | 显示全部楼层
是的没有,但也能转至x1,我试了,就是都错了一位。
回复

使用道具 举报

mccad 发表于 2010-11-24 10:04:49 | 显示全部楼层
把step_11.php换成以下内容就行:
  1. <?php
  2. //pre_forum_threadclass

  3. if($start <= 1) {
  4.         truncatetable('forum_threadclass');
  5.         validid('boardid', 'board');
  6. }
  7. $query = $db['source']->query("SELECT boardid, board_setting FROM {$source_tablepre}board WHERE boardid BETWEEN $start AND $end");
  8. while($dvforum = $db['source']->fetch_assoc($query)) {
  9.         $dvforum        =        daddslashes($dvforum);

  10.         $fid                =        $dvforum['boardid'];
  11.         $ftemp                =        explode(',', $dvforum['board_setting']);
  12.         $ftmp                =        $ftemp[48];
  13.         $tmp                =        explode('$$', $ftmp);
  14.         $typearray = array();
  15.         $types = array();
  16.         foreach($tmp AS $k => $v) {
  17.                 if(!empty($v)) {
  18.                         $typearray[$k + 1] = $v;
  19.                 }
  20.         }

  21.         if(count($typearray)) {
  22.                 //mccad add
  23.                 $db['discuz']->query("UPDATE {$discuz_tablepre}forum_thread SET typeid=typeid + 10000 WHERE fid='$fid'");
  24.                 foreach($typearray AS $typeid => $typename) {
  25.                         $typename = trim($typename);
  26.                         if($typename) {
  27.                                 //mccad add "AND fid=$fid"
  28.                                 $threadtypeid = $db['discuz']->result($db['discuz']->query("SELECT typeid FROM {$discuz_tablepre}forum_threadclass WHERE name='$typename' AND fid=$fid LIMIT 1"), 0);
  29.                                 if(!$threadtypeid) {
  30.                                         //pre_forum_threadclass
  31.                                         $typearray['types'][]        =        $typename;
  32.                                         $typearray['icon'][]        =        '';
  33.                                         //$typeid        =        '';
  34.                                         //$fid        =        '';
  35.                                         $name        =        $typename;
  36.                                         $displayorder        =        0;
  37.                                         $icon        =        '';

  38.                                         $field1        =        array('fid','name','displayorder','icon');
  39.                                         $query1        =        getinsertsql("{$discuz_tablepre}forum_threadclass", $field1);
  40.                                         if($db['discuz']->query($query1)){
  41.                                                 $threadtypeid = $db['discuz']->insert_id();
  42.                                                 $convertedrows ++;
  43.                                         } else {
  44.                                                 reportlog("添加主题分类出错 name = $name ,SQL 语句如下 :<br><textarea rows="3" style="width: 100%;">".$query1."</textarea>");
  45.                                         }
  46.                                         $totalrows ++;
  47.                                 }
  48.                                 $types[$threadtypeid] = $typename;
  49.                                 $query2        =        "UPDATE {$discuz_tablepre}forum_thread SET typeid='$threadtypeid' WHERE fid='$fid' AND typeid= 10000 + '$typeid'";
  50.                                 if(!$db['discuz']->query($query2)){
  51.                                         reportlog("添加主题出错 typeid = $threadtypeid ,SQL 语句如下 :<br><textarea rows="3" style="width: 100%;">".$query2."</textarea>");
  52.                                 }
  53.                         }
  54.                 }
  55.                
  56.                 $typearray['required']        =        1;
  57.                 $typearray['listable']        =        1;
  58.                 $typearray['prefix']        =        1;
  59.                 $threadtypes         =        serialize($typearray);

  60.                 $query3        =        "UPDATE {$discuz_tablepre}forum_forumfield SET threadtypes='$threadtypes' WHERE fid='$fid'";
  61.                 if($db['discuz']->query($query3)) {
  62.                         reportlog("添加版块主题分类出错 fid = $fid ,SQL 语句如下 :<br><textarea rows="3" style="width: 100%;">".$query3."</textarea>");
  63.                 }
  64.         }
  65.         $converted = 1;
  66. }
  67. ?>
复制代码
回复

使用道具 举报

mccad 发表于 2010-11-24 10:05:59 | 显示全部楼层
转换后,后台对有专题的各版块,需要对各专题进行启用操作才行。
回复

使用道具 举报

 楼主| newliver00700 发表于 2010-11-24 10:14:46 | 显示全部楼层
我的是access版本。。。。不是你的sql,一直想咨询你,但看你写的帖子,你针对sql的,所以没请教你。

但你写的,俺看不懂,菜鸟!
回复

使用道具 举报

mccad 发表于 2010-11-24 11:24:29 | 显示全部楼层
好,我对比一下ACCESS版,看看有什么不同
回复

使用道具 举报

mccad 发表于 2010-11-24 11:34:49 | 显示全部楼层
对照改了一下ACCESS版,你用下试试,step_11.php 替换掉里面的内容,然后重新执行转换程序,单选专题进行转换:
  1. <?php
  2. /*
  3. pre_forum_threadclass
  4. */
  5. truncatetable('forum_threadclass');

  6. $query = "SELECT boardid, board_setting FROM {$source_tablepre}board ORDER BY boardid";
  7. $rs = $db['source']->execute($query);
  8. $fieldarray = array('boardid', 'board_setting');
  9. while(!$rs->EOF) {
  10.         foreach($fieldarray AS $field) {
  11.                 $dvforum[$field] = daddslashes($rs->fields[$field]->value);
  12.         }
  13.         $fid                =        $dvforum['boardid'];
  14.         $ftemp                =        explode(',', $dvforum['board_setting']);
  15.         $ftmp                =        $ftemp[48];
  16.         $tmp                =        explode('$$', $ftmp);
  17.         $typearray        =        $types        =        array();
  18.         foreach($tmp AS $k => $v) {
  19.                 if(!empty($v)) {
  20.                         $typearray[$k + 1] = $v;
  21.                 }
  22.         }

  23.         if(count($typearray)) {
  24.                 //mccad add
  25.                 $db['discuz']->query("UPDATE {$discuz_tablepre}forum_thread SET typeid=typeid + 10000 WHERE fid='$fid'");
  26.                 foreach($typearray AS $typeid => $typename) {
  27.                         $typename = trim($typename);
  28.                         if($typename) {
  29.                                 //mccad add "AND fid=$fid"
  30.                                 $threadtypeid = $db['discuz']->result($db['discuz']->query("SELECT typeid FROM {$discuz_tablepre}forum_threadclass WHERE name='$typename' AND fid=$fid LIMIT 1"), 0);
  31.                                 if(!$threadtypeid) {
  32.                                         //pre_forum_threadclass
  33.                                         $typearray['types'][] = $typename;
  34.                                         $typearray['icons'][] = '';
  35.                                         //$typeid        =        '';
  36.                                         //$fid        =        '';
  37.                                         $name        =        $typename;
  38.                                         $displayorder =        0;
  39.                                         $icon        =        '';

  40.                                         $field1        = array('fid','name','displayorder','icon');
  41.                                         $query1        = getinsertsql("{$discuz_tablepre}forum_threadclass", $field1);
  42.                                         if($db['discuz']->query($query1)) {
  43.                                                 $threadtypeid = $db['discuz']->insert_id();
  44.                                                 $convertedrows ++;
  45.                                         } else {
  46.                                                 reportlog("添加主题分类出错 name = $name ,SQL 语句如下 :<br><textarea rows="3" style="width: 100%;">".$query1."</textarea>");
  47.                                         }
  48.                                         $totalrows ++;
  49.                                 }
  50.                                 $types[$threadtypeid] = $typename;
  51.                                 $query2        =        "UPDATE {$discuz_tablepre}forum_thread SET typeid='$threadtypeid' WHERE fid='$fid' AND typeid= 10000 + '$typeid'";
  52.                                 if(!$db['discuz']->query($query2)){
  53.                                         reportlog("添加主题出错 typeid = $threadtypeid ,SQL 语句如下 :<br><textarea rows="3" style="width: 100%;">".$query2."</textarea>");
  54.                                 }
  55.                         }
  56.                 }

  57.                 $typearray['required']         =        1;
  58.                 $typearray['listable']        =        1;
  59.                 $typearray['prefix']         =        1;
  60.                 $threadtypes         =        serialize($typearray);
  61.                 $query3        =        "UPDATE {$discuz_tablepre}forum_forumfield SET threadtypes='$threadtypes' WHERE fid='$fid'";
  62.                 if(!$db['discuz']->query($query3)) {
  63.                         reportlog("添加版块主题分类出错 fid = $fid ,SQL 语句如下 :<br><textarea rows="3" style="width: 100%;">".$query3."</textarea>");
  64.                 }
  65.         }
  66.         $rs->Movenext();
  67. }
  68. $rs->close();
  69. ?>
复制代码
回复

使用道具 举报

 楼主| newliver00700 发表于 2010-11-24 13:17:04 | 显示全部楼层
我找了个好方法,直接可以在X1的后台通过修改顺序就可以解决了,谢谢朋友!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-10-2 14:32 , Processed in 0.287212 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表