Pligg beta9.7升级到pligg beta 9.8过程遇到的(中文支持)问题解决

原创 2007年09月14日 05:17:00
Pligg beta9.7升级到pligg beta 9.8过程遇到的(中文支持)问题解决

刚升级完会出现乱码(比如很多问号),这因该是升级前没有修改/libs/db.php文件中数据库连接限定连接字符集导致(如果默认的数据库连接就为utf8的就不会出现问题,这个主要跟空间商的mysql有关。)
下边说具体需要做什么:
我的因为没有做的很好,升级心切解决数据丢失!!,这次留个教训下次一定要在测试站点上测试后在做进一步活动,希望其它朋友在升级前也做好备份准备(这个pligg备份不知道怎么了,数据库恢复不了!老提示重复复制什么!提示忘掉啦,再试试吧)

并且这次决定不去汉化前台显示啦,直接使用英文的站,只是修改支持中文的功能,不再做表面工作。


by clin003 at 20070914 from:http://clin003.com/或http://blog.csdn.net/clin003/

1,升级办法我就不说啦在readme文件中说的很详细啦
2,升级前基本的注意事项(readme文档中提到的)我就不说啦
2,升级前推荐修改/libs/db.php
这个可以参考9.7中修改办法:http://blog.csdn.net/clin003/archive/2007/08/16/1745853.aspx
大致在:202行回车添加代码
                $dbcharset='utf8';
                
mysql_query("SET character_set_connection=$dbcharset, character_set_results=$dbcharset, character_set_client=binary"); 

这部分添加后的样子是这样的:
            if ( ! isset($this->dbh) || ! $this->dbh )
            {
                
$this->connect($this->dbuser, $this->dbpassword, $this->dbhost);
                
$dbcharset='utf8';
                
mysql_query("SET character_set_connection=$dbcharset, character_set_results=$dbcharset, character_set_client=binary"); 
                
$this->select($this->dbname);
            }

这是解决中文文章乱码问题。

----------------------------
另外一个问题是:9.8升级后查看文章内容后,在Pligg beta 9 Home » About i0Day »后便显示的文章标题会变成乱码的

这个解决办法目前我就知道一个:
这个问题的解决办法参考自:http://forums.pligg.com/bug-report/8793-chinese-characters-bug.html

打开/libs/html1.php在大致124行找到函数function do_sidebar($var_smarty)使用9.7中的相应函数替换即可。
替换前的9.8的样子是这样的:
function do_sidebar($var_smarty) {
    
// show the categories in the sidebar
    global $db, $dblang, $globals, $the_cats, $navwhere;
    
    
// fix for 'undefined index' errors
        if(!isset($navwhere['text4'])){$navwhere['text4'= '';}else{$navwhere['text4'= htmlentities($navwhere['text4']);}
        
if(!isset($navwhere['text3'])){$navwhere['text3'= '';}else{$navwhere['text3'= htmlentities($navwhere['text3']);}
        
if(!isset($navwhere['text2'])){$navwhere['text2'= '';}else{$navwhere['text2'= htmlentities($navwhere['text2']);}
        
if(!isset($navwhere['text1'])){$navwhere['text1'= '';}else{$navwhere['text1'= htmlentities($navwhere['text1']);}
        
if(!isset($navwhere['link4'])){$navwhere['link4'= '';}
        
if(!isset($navwhere['link3'])){$navwhere['link3'= '';}
        
if(!isset($navwhere['link2'])){$navwhere['link2'= '';}
        
if(!isset($navwhere['link1'])){$navwhere['link1'= '';}
        
$var_smarty->assign('navbar_where', $navwhere);
    
        
$var_smarty->assign('body_args', '');    
    
// fix for 'undefined index' errors

    
$_caching = $var_smarty->cache;     // get the current cache settings
    $var_smarty->cache = true;             // cache has to be on otherwise is_cached will always be false
    $var_smarty->cache_lifetime = -1;   // lifetime has to be set to something otherwise is_cached will always be false
    $thetpl = $var_smarty->get_template_vars('the_template_sidebar_modules'. '/categories.tpl';

    
// check to see if the category sidebar module is already cached
    // if it is, use it


    
if(isset($_REQUEST['category'])){
        
$thecat = sanitize($_REQUEST['category'], 3);
    }
else{
        
$thecat = '';
    }
    
if ($var_smarty->is_cached($thetpl, 'sidebar|category|'.$thecat)) {
        
$var_smarty->assign('cat_array', 'x'); // this is needed. sidebar.tpl won't include the category module if cat_array doesnt have some data
    }else{
        
if(isset($_REQUEST['category'])){$thecat = $db->get_var("SELECT category_name FROM " . table_categories . " WHERE `category_safe_name` = '".urlencode(sanitize($_REQUEST['category'], 1))."';");}
    
        
if(!empty($_REQUEST['id'])) {
            
$doing_story=true;
        } 
else {
            
$doing_story=false;
        }
    
        
$var_smarty->assign('UrlMethod', urlmethod);

        
foreach($the_cats as $cat){
            
if($cat->category_id == $thecat && $cat->category_lang == $dblang && $cat->category_parent == 0)
            { 
                
$globals['category_id'= $cat->category_id;
                
$globals['category_name'= $cat->category_name;
            }
        }
    
        
$pos = strrpos($_SERVER["SCRIPT_NAME"], "/");
        
$script_name = substr($_SERVER["SCRIPT_NAME"], $pos + 1, 100);
        
$script_name = str_replace(".php", "", $script_name);
    
        
include_once('dbtree.php');
        
$array = tree_to_array(0, table_categories);
        
$var_smarty->assign('lastspacer', 0);
        
$var_smarty->assign('cat_array', $array);        
    
        
// use the 'totals' table now 
        $published_count = get_story_count('published');
        
        
$var_smarty->assign('published_count', $published_count);
        
$categories = mysql_query("select *,  count(*) as count from " . table_links . "" . table_categories . " where category_lang='$dblang' and category_id=link_category group by link_category ORDER BY category_name ASC");
    
        
$categorylist = array();
        
while ($rows = mysql_fetch_array ($categories, MYSQL_ASSOC)) array_push ($categorylist, $rows);
        
$var_smarty->assign('categorylist', $categorylist);
        
$var_smarty->assign('category_url', getmyurl('maincategory'));

    }

    
$var_smarty->cache = $_caching// set cache back to original value

    check_actions(
'do_sidebar');

    
return $var_smarty;
}

替换后的为9.7中的对应函数样子是这样的:
function do_sidebar($var_smarty) {
    
// show the categories in the sidebar
    global $db, $dblang, $globals, $the_cats;

    
$_caching = $var_smarty->cache;     // get the current cache settings
    $var_smarty->cache = true;             // cache has to be on otherwise is_cached will always be false
    $var_smarty->cache_lifetime = -1;   // lifetime has to be set to something otherwise is_cached will always be false
    $thetpl = $var_smarty->get_template_vars('the_template_sidebar_modules'. '/categories.tpl';

    
// check to see if the category sidebar module is already cached
    // if it is, use it


    
if(isset($_REQUEST['category'])){
        
$thecat = sanitize($_REQUEST['category'], 3);
    }
else{
        
$thecat = '';
    }
    
if ($var_smarty->is_cached($thetpl, 'sidebar|category|'.$thecat)) {
        
$var_smarty->assign('cat_array', 'x'); // this is needed. sidebar.tpl won't include the category module if cat_array doesnt have some data
    }else{
        
if(isset($_REQUEST['category'])){$thecat = $db->get_var("SELECT category_name FROM " . table_categories . " WHERE `category_safe_name` = '".urlencode(sanitize($_REQUEST['category'], 1))."';");}
    
        
if(!empty($_REQUEST['id'])) {
            
$doing_story=true;
        } 
else {
            
$doing_story=false;
        }
    
        
$var_smarty->assign('UrlMethod', urlmethod);

        
foreach($the_cats as $cat){
            
if($cat->category_id == $thecat && $cat->category_lang == $dblang && $cat->category_parent == 0)
            { 
                
$globals['category_id'= $cat->category_id;
                
$globals['category_name'= $cat->category_name;
            }
        }
    
        
$pos = strrpos($_SERVER["SCRIPT_NAME"], "/");
        
$script_name = substr($_SERVER["SCRIPT_NAME"], $pos + 1, 100);
        
$script_name = str_replace(".php", "", $script_name);
    
        
include_once('dbtree.php');
        
$array = tree_to_array(0, table_categories);
        
$var_smarty->assign('lastspacer', 0);
        
$var_smarty->assign('cat_array', $array);        
    
        
// use the 'totals' table now 
        $published_count = get_story_count('published');
        
        
$var_smarty->assign('published_count', $published_count);
        
$categories = mysql_query("select *,  count(*) as count from " . table_links . "" . table_categories . " where category_lang='$dblang' and category_id=link_category group by link_category ORDER BY category_name ASC");
    
        
$categorylist = array();
        
while ($rows = mysql_fetch_array ($categories, MYSQL_ASSOC)) array_push ($categorylist, $rows);
        
$var_smarty->assign('categorylist', $categorylist);
        
$var_smarty->assign('category_url', getmyurl('maincategory'));

    }

    
$var_smarty->cache = $_caching// set cache back to original value

    check_actions(
'do_sidebar');

    
return $var_smarty;
}

Pligg Beta9.7前后台界面汉化完成(lang.conf)

Pligg Beta9.7前后台界面汉化完成(lang.conf)by clin003 at 20070816 from:http://clin003.com/或http://blog.csdn.ne...
  • clin003
  • clin003
  • 2007年08月16日 14:05
  • 6291

Pligg 使用

Pligg1, 安装http://www.alicrm.cn/forum/viewthread.php?tid=10&extra=page%3D2* 创建数据 pligg* 配置连接  root/ro...
  • onlydot
  • onlydot
  • 2007年06月19日 18:35
  • 292

关于Pligg

pligg的介绍What is Pligg?. Pligg is Web 2.0 Content Management System (CMS) unlike any other existing C...
  • chenhuijun
  • chenhuijun
  • 2006年11月03日 10:59
  • 7996

mysql5.7后用group by 查询时抛出异常

MySQL 5.7.5后实现了对功能依赖的检测。默认启用了only_full_group_by 的SQL模式,会抛出:Expression #1 of SELECT list is not in GR...
  • qq_39174464
  • qq_39174464
  • 2018年01月06日 13:43
  • 44

Pligg安装使用教程

pligg是类似digg的开源cms软件,出自http://www.pligg.com/ ,欢迎到核桃博客 查看更多内容 http://www.hetaoblog.com/pligg-insta...
  • hetaoblog
  • hetaoblog
  • 2010年10月17日 08:34
  • 9428

Pligg发表文章中文乱码解决办法

Pligg发表文章中文乱码解决办法by clin003 at 20070816 from:http://clin003.com/或http://blog.csdn.net/clin003/版本:lin...
  • clin003
  • clin003
  • 2007年08月16日 02:22
  • 13869

Fabrity - 的Pligg内容管理系统

Fabrity - 的Pligg内容管理系统 像其他社会新闻网站,Fabrity将允许所有用户能够发现新闻,注册用户将能够排名的新闻报道,博客和其它在线信息,建立一个以社区为基础的新闻版面。不同的是,...
  • zfyg1
  • zfyg1
  • 2014年08月12日 14:21
  • 227

真郁闷,重装啦pligg,重新定位Beta消息

今天去看pligg发现9.8beta,就升级啦,本来要建个测试站后测试完再升级的,可能太心急就直接升级啦。过后,发现以前添加的中文文章全部 问好!!恢复数据库遇到上次汉化后的没有解决的问题!这次不去做...
  • clin003
  • clin003
  • 2007年09月13日 20:40
  • 915

pligg如何让支持端口访问

相信大家都有使用过国外的一款cms,这里只要介绍下如何让他支持端口访问,默认他是只支持80端口访问的,比如localhost,但是你修改为localhost:8080访问会发现你怎么也不能登陆系统.其...
  • raojinpg
  • raojinpg
  • 2011年01月24日 16:07
  • 651

网页制作中遇到的一些问题及解决方案

1、重复定义:在css中前面定义了标签的字体颜色之后,如果后面要修改某个标签的字体颜色,css中该怎么写?(未解答) 2、自己在做的页面中,对于页码的实现,需要有跳转的页码框,当浏览器显示的页面中页...
  • wbaibianjingling
  • wbaibianjingling
  • 2017年03月23日 18:45
  • 223
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Pligg beta9.7升级到pligg beta 9.8过程遇到的(中文支持)问题解决
举报原因:
原因补充:

(最多只允许输入30个字)