KINGCMS栏目那里加个字段
做了个站,需要在栏目列表的每个栏目名称下加个英文名称,原来的想法是把标题或者关键词什么的改成那个字段,后来觉得还是练练手改改看
先到数据库里king_list添加个字段kenname,我是按照
char(100) | utf8_general_ci | ? | 是 | NULL |
然后就是修改后台程序了,找到portal下面的manage.php,再找到这个函数king_edt(),这个函数就是编辑栏目的
然后$_sql=后面的一串读取数据库里的字段里面添加上我们刚添加的字段kenname,我是直接添加在kkeywords的前面~方便以后管理
然后再往下就是生成后台编辑表单的代码,找到
?//kkeywords
?$_array=array(
??array(‘kkeywords’,0,0,100),
?);
在前面按葫芦画瓢添加
?//kenname 小货添加,英文名字
?$_array=array(
??array(‘kenname’,0,1,100),
?);
?$s.=$king->htmForm($king->lang->get(‘portal/label/kenname’).’ (1-100, ‘.$king->lang->get(‘portal/label/kenname1′).’)’,'<input type=”text” name=”kenname” value=”‘.htmlspecialchars($data[‘kenname’]).'” maxlength=”100″ />’,$_array,’EnName’);
注意$king->lang->get(‘portal/label/kenname’)的意思是读取语言文件,有个问题是这个kenname是我们新添加的,原来的语言文件肯定没有,所以我们必须到语言文件里补全
找到语言文件portal\language\zh-cn.xml
在<label>后面加上我们新添加的词汇
??<kenname>栏目英文名</kenname>
??<kenname1>在导航下面显示的英文名</kenname1>
然后回到manage.php,刚才设置的是读取数据库,并显示成表单,现在是入库,可以往下搜索
??$_array=array(
???’modelid’=>($modelid?$modelid:0),
???’listid1’=>$data[‘listid1’],
???’klistname’=>$data[‘klistname’],
???’ktitle’=>$data[‘ktitle’],
然后在后面添加我们要入库的字段
?’kenname’=>$data[‘kenname’],
那么后台就修改完成了
但是前台显示的时候直接调用{king:enname/}是啥都不显示的~因为我们没有将这个字段放到模板引擎里
找到portal/core.class.php
找到这个函数public function getField($type1,$type2)
然后把我们需要显示的字段加进下面这行去
???’field’=>array(‘ktitle’,’klisttitle’,’klistname’,’kkeywords’,’klistpath’,’kdescription’,’kimage’,’kcontent’,’klanguage’),//字段
然后刷新~终于在前台可以显示了