楼主: freshcn

[转 换] DEDECMS 5.6 转换 PHPCMS V9

    [复制链接]
发表于 2010-12-29 12:35:55 | 显示全部楼层
同楼上问
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-12-29 13:18:43 | 显示全部楼层
回复 15# liuxu977


   请稍候,我查一下问题。
回复 支持 反对

使用道具 举报

发表于 2010-12-29 13:29:48 | 显示全部楼层
我大概是自定义模块、600个自定义字段的文章。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-12-29 13:32:10 | 显示全部楼层
回复 19# zhuz


   你这个应用有一些极端呀! 你下载一下新版本的转换程序。一定要对应正确的版本如GBK、UTF8。然后再试试。  600个字段真的很难想像呀。如果可以的话,请站内把你的QQ号给我。然后把你的数据库发给我。我这边试试看看问题出现在什么地方。
回复 支持 反对

使用道具 举报

发表于 2010-12-29 13:46:42 | 显示全部楼层
不是,一个自定义模块,5个自定义字段。文章一共600篇。
回复 支持 反对

使用道具 举报

发表于 2010-12-29 13:47:50 | 显示全部楼层
试验下新的转换程序
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-12-29 13:48:53 | 显示全部楼层
回复 21# zhuz


   如果可以的话,把你的数据库数据导出一份给我看。我拿到我的本地来测试一下你数据的转换。请站内短信给我你的QQ。
然后需要您确定的一个问题就是你的DEDECMS是5.6版本的吧!因为他的不同的版本的数据库的结构还是有很大的差别的。
回复 支持 反对

使用道具 举报

发表于 2010-12-29 14:04:48 | 显示全部楼层
恩,DEDECMS5.6
回复 支持 反对

使用道具 举报

发表于 2010-12-29 14:05:09 | 显示全部楼层
新版本转换程序也是如此。

开始创建内容模型到PHPCMS V9。
分析DEDECMS 5.6 内容模型完成。

请等待,程序正在转换中...
回复 支持 反对

使用道具 举报

发表于 2010-12-29 14:53:18 | 显示全部楼层
已经转换成功,正处于测试中。感谢杨争管理。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-12-29 15:51:41 | 显示全部楼层
回复 26# zhuz


   新版本的转换程序已经下载了。请下载新版本的转换程序。
回复 支持 反对

使用道具 举报

发表于 2010-12-29 17:04:12 | 显示全部楼层
经典,这个是我想要的。不知道 5.5的转换怎么样。。。
回复 支持 反对

使用道具 举报

发表于 2010-12-29 17:48:52 | 显示全部楼层
我的转换成功。停在那 的原因是pc后台登录在那里的。你退出登录清下IE,然后试下应该可以的,我刚开始也是那样子。后来退出再试了下是成功的。
这个很强大。
回复 支持 反对

使用道具 举报

发表于 2010-12-30 12:14:36 | 显示全部楼层
content_import.php
修改

ext_go('导入表:'.$dede_model['v9_tablename'].' 正在导入'.$dede_models[$now_modelid]['typename'].'('.($offset < $total ? ($offset >= 0 ? (($pagesize*$page)>=$total ? $total : ($pagesize*$page)) : $pagesize) : 0).'/'.$total.')', 'filename=content_import&now_modelid='.$now_modelid.'&total='.$total.'&page='.($page+1));

显示对那个表在操作


$sql = "SELECT * FROM phpcms_archives as a, $tablename as c WHERE a.id = c.aid LIMIT $offset,$pagesize";
$r = $db->query($sql);
while ($s = $db->fetch_next()) {
        $data = content_format_data($s, $s['channel']);
        if(!empty($data['main_table']) || !empty($data['model_table'])) {
        //echo $dede_model['v9_tablename'];
           if (false === strpos($dede_model['v9_tablename'],'dede_article'))          
            {            
                   $content_db->query("INSERT INTO phpcms_".$dede_model['v9_tablename'].' SET '.to_sqls($data['main_table'], ','));
                   $id = $content_db->insert_id();
            }else{//如果是文章表,使用dede id
            
                   $content_db->query("INSERT INTO phpcms_".$dede_model['v9_tablename'].' SET id='.$s['id'].','.to_sqls($data['main_table'], ','));
                   $id = $s['id'];            
           }
            
            
                $data['model_table']['id'] = $id;
                $content_db->query("INSERT INTO phpcms_".$dede_model['v9_tablename_data'].' SET '.to_sqls($data['model_table'], ','));
        }
}

如果是文章表.使用dede的id,而不是重新生成id这样可以使用dedecms中的东西.

global.php
修改

/**
*
* DEDEcms内容数据转换为PHPCMS V9数据
* @param $data     数据
* @param $modelid  模型ID
*/
function content_format_data($data, $modelid) {
        global $dede_models;
        $main_table = $model_table = array();
        if (!$catid = format_catid($data['typeid'])) return false;
        $main_table  = array('catid'=>$catid, 'title'=>$data['title'], 'style'=>$data['color'].';', 'thumb'=>$data['litpic'], 'inputtime'=>$data['pubdate'], 'keywords'=>$data['keywords'], 'description'=>$data['description'], 'status'=>99);
        if (empty($dede_models)) {
                $dede_models = getcache('dede_model', 'conversion');
        }
        $model = $dede_models[$modelid];
        if (isset($data['source'])) $model_table['copyfrom'] = $data['source'].'|0';
       
        foreach ($model['fields'] as $k=>$v) {
                if (!isset($data[$k])) continue;
                if ($k == 'body' && $v['type'] = 'htmltext') {
                        $model_table['paginationtype'] = 0;
                        $for_i = 2;
                       
                        while (strpos($data[$k],'#p#副标题#e#') || strpos($data[$k],'#p#分页标题#e#'))
                        {
                           $model_table['paginationtype'] = 2;
         $data[$k] = preg_replace('/#p#(.*)#e#/i', "".$data['title'].'('.$for_i++.")[/page]", $data[$k],1);
                        }


                        if ($data[$k] = str_replace('#p#', '', $data[$k])) {
                                $model_table['paginationtype'] = 2;
                        }
                        $model_table['content'] = $data[$k];
                        continue;
                } elseif ($k=='softlinks') {
                        preg_match_all('/\{dede:link[^text]*text=[\'|"]?([^\'"]*)[\'|"]?\}([^\{\}]*)\{\/dede:link\}/i', $data[$k], $out);
                        $urls = array();
                        foreach ($out[1] as $ke=>$v) {
                                if (isset($out[2][$ke])) {
                                        $urls[$ke] = array('filename'=>$v, 'fileurl'=>$out[2][$ke]);
                                } else {
                                        continue;
                                }
                        }
                        $model_table[$k] = var_export($urls, true);
                } elseif ($k=='needmoney' && $model['addtable'] == 'dede_addonsoft') {
                        $model_table['readpoint'] = $data[$k];
                        $model_table['paytype'] = 1;
                } elseif ($v['type']=='img') {
                        preg_match_all('/\{dede:img.*\}([^\{\}]*)\{\/dede:img\}/i', $data[$k], $out);
                        $urls = array();
                        foreach ($out[1] as $ke=> $v) {
                                $urls[$ke] = array('url'=>$v, 'alt'=>'');
                        }
                        $model_table[$k] = var_export($urls, true);
                } else {
                        $model_table[$k] = $data[$k];
                }
        }
        return new_addslashes(array('main_table'=>$main_table, 'model_table'=>$model_table));
}

把dede中的分页标题=换成文章标题(页码);因为phpcms在这个处理跟dede机制不一样.
回复 支持 反对

使用道具 举报

发表于 2010-12-30 14:35:15 | 显示全部楼层
管理员大哥,,我也想转换,,可是出现了和楼上一样的错误,,栏目都成功了,内容什么都没有
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 点击这里注册

本版积分规则

小黑屋|Archiver|phpcms网站管理系统 ( 京ICP备14011169 )

GMT+8, 2019-5-20 02:49 , Processed in 0.178093 second(s), 6 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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