织梦dedecms输出php的问题
{dede:channeltype='top'row='10'}<li><ahref="[field:typelink/]"class="nava">[field:typ...
{dede:channel type='top' row='10'}
<li>
<a href="[field:typelink/]" class="nava">[field:typename/]<br>
{dede:php}
$a="{dede:field.typename/}";
switch($a){
case "关于我们":
echo "About";
break;
case “产品中心”:
echo "Products";
break;
case “新闻中心”:
echo "News";
break;
}
{/dede:php}
</a>
</li>
{/dede:channel}
//用的dedecms,需要导航条目同时显示中英文,栏目名称用了中文,英文部分怎么调用?
//百思不得其解,只有想到用php,却发现根本不显示
//求解! 展开
<li>
<a href="[field:typelink/]" class="nava">[field:typename/]<br>
{dede:php}
$a="{dede:field.typename/}";
switch($a){
case "关于我们":
echo "About";
break;
case “产品中心”:
echo "Products";
break;
case “新闻中心”:
echo "News";
break;
}
{/dede:php}
</a>
</li>
{/dede:channel}
//用的dedecms,需要导航条目同时显示中英文,栏目名称用了中文,英文部分怎么调用?
//百思不得其解,只有想到用php,却发现根本不显示
//求解! 展开
展开全部
$a="{dede:field.typename/}"; 不能这么写的,这样写是无效的。
把以下自定义函数放到include/extend.func.php 最末尾
function cntoen($typename)
{
$a=$typename;
if($a=='关于我们')
{
$pname='About';
}
else if($a=='产品中心')
{
$pname='Products';
}
else if($a=='新闻中心')
{
$pname='News';
}
else
{
$pname=$typename;
}
return $pname;
}
导航标签这样写
{dede:channel type='top' row='10' currentstyle="<li class='hover'><a href='~typelink~' ~rel~><span>~typename~</span></a></li>"}
<li><a href='[field:typeurl/]' [field:rel/]><span>[field:typename/]-[field:typename function=cntoen(@me)/]</span></a></li>
{/dede:channel}
[field:typename function=cntoen(@me)/] 可以放在{dede:channel} 标签以内的任何位置
或者直接进行二次开发,后台执行
alter table dede_arctype Add column en_typename char(50) AFTER typename
打开dede/templets/catalog_add.htm 找到 栏目名称 在其下方增加
<tr>
<td class='bline' height="26" style="padding-left:10px;"><font color='red'>英文栏目名称:</font></td>
<td class='bline'><input name="en_typename" type="text" id="en_typename" size="30" value="" class="iptxt" /></td>
</tr>
然后打开dede/catalog_add.php 搜索
$in_query
复制以下完整SQL 替换掉
$in_query = "INSERT INTO `#@__arctype`(reid,topid,sortrank,typename,en_typename,typedir,isdefault,defaultname,issend,channeltype,
tempindex,templist,temparticle,modname,namerule,namerule2,
ispart,corank,description,keywords,seotitle,moresite,siteurl,sitepath,ishidden,`cross`,`crossid`,`content`,`smalltypes`)
VALUES('$reid','$topid','$sortrank','$typename','$en_typename','$typedir','$isdefault','$defaultname','$issend','$channeltype',
'$tempindex','$templist','$temparticle','default','$namerule','$namerule2',
'$ispart','$corank','$description','$keywords','$seotitle','$moresite','$siteurl','$sitepath','$ishidden','$cross','$crossid','$content','$smalltypes')";
打开dede/templets/catalog_edit.htm 找到 栏目名称 在其下方增加
<tr>
<td class='bline' height="26" style="padding-left:10px;"><font color='red'>英文栏目名称:</font></td>
<td class='bline'><input name="en_typename" type="text" id="en_typename" size="30" value="<?php echo $myrow['en_typename']?>" class="iptxt" /></td>
</tr>
然后打开dede/catalog_edit.php 搜索 typename='$typename', 然后再其下方增加
en_typename='$en_typename',
打开include/taglib/channel.lib.php 搜索
SELECT id,typename,
有4处,在其后边增加
en_typename,
然后搜索
$linkOkstr = str_replace("~typename~",$row['typename'],$linkOkstr);
在其下方增加
$linkOkstr = str_replace("~en_typename~",$row['en_typename'],$linkOkstr);
最后,直接在后台增加栏目或者修改栏目,写上英文栏目名称即可
导航标签
{dede:channel type='top' row='10' }
使用 [field:en_typename/]
{/dede:channel}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询