zoukankan      html  css  js  c++  java
  • 用phpcms切换中英文网页的方法(不用解析二级域名)、phpcms完成pc和手机端切换(同一域名)

    AA。phpcms进行双语切换方法(不用解析二级域名)

    phpcms进行两种语言的切换,有一把部分的人都是进行的二级域名的解析,这样的话可能会有一部分的麻烦,我这里有一种方法可以不用解析二级域名就可以,不过因为是模板所以可能麻烦一点,不过真的是不接触不知道,接触到没有用到的东西就可以进行进一步的学习。作者:悦悦 博客地址:http://www.cnblogs.com/nuanai/

    这里我使用的方法是进行一级栏目的读取,通过不同的一级栏目进行不同的内容调取。只要修改一级栏目的id就可以了,这就需要用到不同的id,因此就进行了头部文件的修改,其它的列表页或是内容页的东西不用进行修改。但是怎么判断当前页面我应该调取那个语言的一级栏目的id呢?这就是我需要考虑的问题,不过这个问题已经解决了,看下我是怎么解决的吧。下面就是进行phpcms的步骤,因为phpcms的安装步骤一直到添加内容、更换模板风格等在之前的博客中都有写到,这里就不多说了,直接从怎么替换语言来说。作者:悦悦 博客地址:http://www.cnblogs.com/nuanai/

    一、两种语言模板的替换(中文---英文)默认首页假如是中文

      1.模板结构功能如果一样,直接在你的content文件夹中复制一模一样的默认文件出来(包括所有的文件)

      2.修改文件的名字,要和默认中文的文件名字区分开,好进行中英文的模板切换

      3.找到你的中文模板的头文件,我这里是header.html文件,打开头文件,进行如下修改

      (1)找到你要进行切换语言的位置,修改你的语言切换的指向路径是一个php的处理文件

    1
    2
    <!--找到你要进行双语切换的地方,这里是进行英文版的切换-->
    <a href="qhe.php">English</a>

      注意:这里指向的php文件是要放到“phpcmswminstall_package”文件夹下的,不然在走这个php文件的时候会出错

      (2)进行编写这个php处理文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
        //开启缓存
        session_start(); 
         
        //给一个默认的值,这里是英文语言的默认值,默认值你们可以自己定义
        $_SESSION['qhz'] = 1; 
         
        //跳转到自己的phpcms的首页,使用的是window.location.href = '自己的phpcms的主页路径'
        echo "<script type='text/javascript'>window.location.href = '/phpcmswm/install_package/'</script>" 
    ?>

      (3)编写结束php处理文件之后,对默认的首页跳转的处理文件进行修改

      首先,找到这个路径下的index.php文件并打开,文件的路径是: phpcmswminstall_packagephpcmsmodulescontentindex.php

      其次,A.在index.php文件中开启缓存

    1
    2
    //开启缓存
    session_start();

      B.找到文件中的这句话,大约在31行

    1
    include template('content','index',$default_style);

      替换成如下这样,这是进行判读

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //判断传过来的session的值是不是空的,是的话就跳默认中文主页,不是就跳英文主页
    if(empty($_SESSION["qhz"]))
    {
        include template('content','index',$default_style);
    }
    else
    {
        //这是英文版的主页,我的英文版主页的名字是index1
        include template('content','index1',$default_style);       
    }

      到这里关于中文版的头部文件修改就结束了。

      4.中文头部文件结束了,然后是英文的头部文件了(同上面的第3步骤)

      注意:不同的地方是你的英文的php处理文件,不要指向同一个处理文件,所以要进行新的处理文件的编写,除了文件名和传值不一样外,其他的其实都是一样的。

      (1)中文的头部文件  

    1
    2
    <!--切换中文的指向文件-->
    <a href="qhz.php">中文</a>

      (2)php处理的页面

    1
    2
    3
    4
    5
    <?php
        session_start();
        $_SESSION['qhz'] = 0;   //传的中文状态下的值
        echo "<script type='text/javascript'>window.location.href = '/phpcmswm/install_package/'</script>"
    ?>

      (3)phpcmswminstall_packagephpcmsmodulescontentindex.php这个index.php文件是不需要修改的,因为里面的判断已经写了空的时候就是默认的中文界面,值是空的其实和0是一样的,所以不用进行别的修改。

      这样中文和英文的模板需要修改的地方就写完了。

    二、phpcms后台的修改部分

      1.默认的模板不用进行修改,需要修改的是英文状态下的模板,这里你就需要进行一级栏目的添加

      (1)选择“内容”标签,单击“添加栏目”,进行信息的添加

      (2)进行到“模板设置”的栏目的时候,选择“可用风格”---“是站点管理中的风格名字”这个是不用变得;“栏目首页模板”---“是你的英文的首页模板”;“列表页、内容页”----“都是对应的英文的模板文件”

      (3)进行“提交”就可以了

      2.进行英文栏目下的菜单栏目的添加,正常的添加菜单栏目就可以了

      3.其他的内容页、列表页都是正常的添加内容就可以了

      到这里,后台的修改就结束了

    三、整体看效果就可以了

      以上就是进行双语的切换步骤,修改的只有中英文的头部文件和传值的处理页面,需要后台添加的就是你的英文栏目,其它的东西就是全靠传的id值进行内容切换就可以了,因为功能都是样的,所以直接复制了默认模板的所有文件就可以了。

     作者:悦悦 博客地址:http://www.cnblogs.com/nuanai/

    BB。 phpcms完成pc和手机端切换(同一域名)作者:悦悦 博客地址:http://www.cnblogs.com/nuanai/

     一、手机端文件的创建和修改

      1.在这个文件路径下新建一个手机端网页文件

      phpcmswminstall_packagephpcms emplateswm    这路径就是后台的“站点管理”中的模板风格文件,在这个模板风格文件下创建一个文件夹,我这里叫做content_m,这个文件夹就是用来做手机网站的

      2.将你的手机网页的文件复制到这个content_m文件夹下,进行拆分成phpcms使用的分类文件就可以了(正常的网页文件拆分:头部、尾部、中心等),然后修改文件中的各个文件路径就可以了,这里不多说,路径修改什么的都在前面的博客中详细讲解过了。

    二、修改首页跳转的处理文件

      1.找到这个index.php文件,就是首页跳转的处理文件  路径:phpcmswminstall_packagephpcmsmodulescontentindex.php

      2.将判断设备的代码复制到index的类方法里(类名大约是第8行),判断设备的代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    //判断是不是手机端
        function isMobile()
        {
            // 如果有HTTP_X_WAP_PROFILE则一定是移动设备
            if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))
            {
                return true;
            }
            // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
            if (isset ($_SERVER['HTTP_VIA']))
            {
                // 找不到为flase,否则为true
                return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;
            }
            // 脑残法,判断手机发送的客户端标志,兼容性有待提高
            if (isset ($_SERVER['HTTP_USER_AGENT']))
            {
                $clientkeywords array ('nokia',
                    'sony',
                    'ericsson',
                    'mot',
                    'samsung',
                    'htc',
                    'sgh',
                    'lg',
                    'sharp',
                    'sie-',
                    'philips',
                    'panasonic',
                    'alcatel',
                    'lenovo',
                    'iphone',
                    'ipod',
                    'blackberry',
                    'meizu',
                    'android',
                    'netfront',
                    'symbian',
                    'ucweb',
                    'windowsce',
                    'palm',
                    'operamini',
                    'operamobi',
                    'openwave',
                    'nexusone',
                    'cldc',
                    'midp',
                    'wap',
                    'mobile'
                    );
                // 从HTTP_USER_AGENT中查找手机浏览器的关键字
                if (preg_match("/(" . implode('|'$clientkeywords) . ")/i"strtolower($_SERVER['HTTP_USER_AGENT'])))
                {
                    return true;
                }
            }
            // 协议法,因为有可能不准确,放到最后判断
            if (isset ($_SERVER['HTTP_ACCEPT']))
            {
                // 如果只支持wml并且不支持html那一定是移动设备
                // 如果支持wml和html但是wml在html之前则是移动设备
                if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html'))))
                {
                    return true;
                }
            }
            return false;

      3.找到本处理文件中的这句代码(处理文件的所有这句代码都要替换) 

    1
    include template('content',$template);

      替换成如下代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    if($this->isMobile())
    {
        //第一个参数是你要跳转的手机网页文件夹名
        include template('content_m',$template);
    }
    else
    {
        include template('content',$template);
    }

      4.找到处理文件中的这句代码

    1
    include template('content','index',$default_style);

      替换成如下代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    if($this->isMobile())
    {
        //这是手机端的网页
      include template('content_m','index',$default_style);
    }
    else
    {      
      include template('content','index',$default_style);          
    }

      到这里就是PC和手机的切换步骤基本结束了,你可以通过火狐浏览器的手机模拟器来查看是不是可以修改了。作者:悦悦 博客地址:http://www.cnblogs.com/nuanai/

  • 相关阅读:
    解决 搭建Jekins过程中 启动Tomcat的java.net.UnknownHostException异常
    射手和农场主
    java 和 JS(javaScript)中的反斜杠正则转义
    分享修改密码的SharePoint Web part: ITaCS Change Password web part
    分享微软官方Demo用的SharePoint 2010, Exchange 2010, Lync 2010虚拟机
    Office 365 的公共网站的一些限制及解决的办法
    SharePoint 2013 关闭 customErrors
    安装 KB2844286 导致SharePoint 2010 XSLT web part 显示出现错误
    安装Office Web Apps Server 2013 – KB2592525安装失败
    如何将hyper-v虚拟机转换成vmware的虚拟机- 转换SharePoint 2010 Information Worker Demonstration and Evaluation Virtual Machine (SP1)
  • 原文地址:https://www.cnblogs.com/rose1324/p/8861790.html
Copyright © 2011-2022 走看看