您现在的位置是:首页 > 学无止境 > PHPPHP

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

AndyGuo2020-09-06 12:09:13PHP1794人已围观

简介最近看到群里的小伙伴在问如何用yzmcms做中英文网站多语言网站,同一个yzmcms后台管理,今天小郭就给大家分享一下具体的实现方法与步骤

最近看到群里的小伙伴在问如何用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做多语言中英文网站也并不难的,看完这篇文章是不是觉得很简单呢,还是希望大家理解这个思路然后自己多多动手去实践,相信你一定可以的。

小郭博客

标签云 更多

关闭
QQ 微信 支付宝扫一扫打赏