织梦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,却发现根本不显示
//求解!
展开
 我来答
晕神1222
2015-06-04 · TA获得超过778个赞
知道小有建树答主
回答量:563
采纳率:60%
帮助的人:389万
展开全部

$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}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式