详情页

YzmCMS如何做多语言网站,YzmCMS做多语言网站实现思路

时间:2024年01月24日

编辑:佚名

最近看到群里的小伙伴在问如何用yzmcms做中英文网站,同一个yzmcms后台管理内容,今天小编就给大家分享一下具体的实现方法与步骤:
首先,我们在分类表(yzm_category),文章内容表(yzm_article) 增加一个字段l_code 用来存放所属语言 如 cn,en,增加字段的可以进phpmyadmin或者用Navicat Premium软件管理,具体的操作方法在这里就不多说了,可自行百度。
第二步,后台栏目管理控制器 ,application/admin/controller/category.class.php 增加如下代码:
/**
* 栏目列表
*/
    public function init() {
    /*  ....   此处为省略代码  ... */
$where['l_code'] = isset($_GET['lang']) ? $_GET['lang'] : 'cn';
$lang = isset($_GET['lang']) ? $_GET['lang'] : 'cn';
// $data 修改下面代码
$data = $this->db->field('catid AS id,catname AS name,parentid,type,modelid,listorder,member_publish,pclink,display')->where($where)->order('listorder ASC,catid ASC')->select();
再找到添加栏目函数 
/**
 * 添加栏目
*/
public function add() {    
    $modelid = isset($_GET['modelid']) ? intval($_GET['modelid']) : 1;
    $catid = isset($_GET['catid']) ? intval($_GET['catid']) : 0;
    $type = isset($_GET['type']) ? intval($_GET['type']) : intval($_POST['type']);
// 下面增加
$lang = isset($_GET['lang']) ? $_GET['lang'] : 'cn';
第三步,后台添加栏目模板文件,application/admin/view/category_add.html
<div class="row cl">
    <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-2">
        <input type="hidden" name="status" value="1">
        // 在这下面添加
        <input type="hidden" name="l_code" value="<?php echo $lang;?>">
        <button name="dosubmit" class="btn btn-primary radius" type="submit" onclick="set_status(1)"><i class="Hui-iconfont">&#xe603;</i> 立即发布</button>
        <button name="dosubmit" class="btn btn-secondary radius" type="submit" onclick="set_status(0)"><i class="Hui-iconfont">&#xe632;</i> 保存草稿</button>
        <button onclick="yzm_content_close()" class="btn btn-default radius" type="button">&nbsp;&nbsp;关闭&nbsp;&nbsp;</button>
    </div>
</div>
第四步,后台栏目列表模板文件,application/admin/view/category_list.html
//修改添加栏目
<a href="javascript:;" onclick="layui_open('添加栏目','<?php echo U('add', array('type'=>0,'lang'=>$lang));?>',800,500)" class="btn btn-primary radius"><i class="Hui-iconfont">&#xe600;</i> 添加栏目</a>
至此,后台基本就可以添加内容的时候区分不同语言,默认添加内容为中文
我们再看前端如何做模板,其实很简单,
首先我们复制application文件夹下的mobile文件夹,也就是复制手机版模块拿来修改,先将文件夹名改为en,
然后里面相应的代码也稍微改下,具体的代码就不贴出来了,只要有点基础的的应该都会改的,
然后改模板文件,这个更简单了,在所有模板标签调用的地方增加where这个参数,
如导航栏标签:
<ul>
    <li><a href="{U('en/index/index')}" {if !isset($catid)} class="current" {/if}>home</a></li>
    {m:nav field="mobname,catid,type,pclink" where="parentid=0 AND l_code='en'" limit="20" return="nav_data"}
    {loop $nav_data $v}
    <li>
        <a {if isset($catid) && $v['catid']==$catid} class="current" {/if} href="{if $v['type']!=2}{U('en/index/lists', array('catid'=>$v['catid']))}{else}{$v[pclink]}{/if}">{$v[mobname]}</a>
    </li>
    {/loop}
</ul>
其他的也是类似全部加上where这个参数就可以了。
好啦,其实yzmcms做多语言中英文网站也并不难的,看完这篇文章是不是觉得很简单呢,还是希望大家理解这个思路然后自己多多动手去实践,相信你一定可以的。
相关文章
猜你需要