• PHPCMS V9双语站建设切换


     PHPCMS V9要做双语,很多同学都是迷茫的,在此特地分享我的双语制作步辶 我这种模式是把两个站点都改为HTML静态模式才可以实现

    双语切换可分为两种模式:

    1、解析二级域名来切换双语

    解析二级域名如果主机支持可以二级域名绑定子目录,也可以用使用.htaccess来做重定向(适用于Apache服务器)

    .htaccess 代码 放入根目录

    RewriteEngine On 

    RewriteCond %{HTTP_HOST} ^(www.)?www.abc.com/cn/$ 

    RewriteCond %{REQUEST_URI} !^/cn/ 

    RewriteCond %{REQUEST_FILENAME} !-f 

    RewriteCond %{REQUEST_FILENAME} !-d 

    RewriteRule ^(.*)$ /html/en/$1 

    RewriteCond %{HTTP_HOST} ^(www.)?www.abc.com/cn/$ 

    RewriteRule ^(/)?$ /cn/index.html [L]

    2、建立根目录来切换双语

    a/建立根目录我们需要做的就是在caches/configs/system.php中将html_root这句更改为'html_root' => '',//生成静态文件路径

    b/后台站点管理中格式如下

    Siteid站点名站点目录站点域名                                域名绑定目录管理操作

    1        英文版       http://www.abc.com/    /      修改 | 删除

    2        中文版  cn       http://www.abc.com/cn//cn      修改 | 删除

    做好这些基本上就可以实现双语并切换了。但还有个问题出现了,上传的图片怎么更新都无法打开,因为我们上传附件时的URL地址并不是我们填写的那个http://www.abc.com/cn/地址 都是以默认http://www.abc.com/  来存储。这里我们需要修改一个。找到以下路径中 /phpcms/modules/content/classes/ url.class.php文件

    定位到83行的样子 找到以下代码 

    $url_arr[0] = WEB_PATH == '/' ? $match_url.$html_root.'/'.$urls : $match_url.rtrim(WEB_PATH,'/').$html_root.'/'.$urls; 

    将他替换为

    $this->sitedb = pc_base::load_model('site_model');

     $siteid=param::get_cookie('siteid');

    $siteinfo=$this->sitedb->get_one(array('siteid'=>$siteid));

    $url_arr[0] = $siteinfo['domain'].$urls;

    以上搞好后,现在我们需要处理分页的路径问题

    找到以下路径/phpcms/libs/functions/中的global.func.php  定位在715行  或者找到以下代码

    $url = str_replace(array('http://','//','~'), array('~','/','http://'), $url);

    在这句代码下面加一句

    $siteid=param::get_cookie('siteid');

    $urlq= substr($url,-4); //这里主要针对后台内容分页 因为会重复主URL地址

        if($siteid == 1){

    if($urlq=="html"){

        $url="http://www.abc.com/".$url;

    }

        }else{

    if($urlq=="html"){

         $url="http://www.abc.com/cn/".$url;

    }

    }

    将上面的绝对地址替换为你的地址即可!

    保存,现在试试是否OK了!|

    以上只针对静态生成的页面,请知悉!

    摘自:http://jingyan.baidu.com/article/aa6a2c14d68c7a0d4c19c4c8.html

  • 相关阅读:
    git技能
    iOS 命名规则
    iOS crash 报错类型
    iOS 面试相关
    【转】app后端如何选择合适的数据库产品
    App的token机制
    【转】Spring注解详解
    spring mvc ModelAndView 404的原因
    ibatis 环境搭建(1)
    Android中的Selector的用法
  • 原文地址:https://www.cnblogs.com/MY0101/p/6441931.html
Copyright © 2020-2023  润新知