Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

[已答复] 模板设计的时候,eval中能否调用switch语句

[复制链接]
51mis 发表于 2009-10-13 10:40:57 | 显示全部楼层 |阅读模式
  1.                                 <!--{loop $_SBLOCK['hyfa'] $value}-->
  2.                 <!--{eval
  3.                     $lburl="http://www.51mis.com/solution/";
  4.                     $url=$lburl."news-".$value[id].".html";
  5.                     $title=cutstr($value[title],35,1);           
  6.                     switch($value[boardid])
  7.                     {
  8.                             case 624:$lburl.="shangpingliutong/";break;
  9.                         case 625:$lburl.="zhizaohangye/";break;
  10.                         case 626:$lburl.="waimaohangye/";break;
  11.                         case 627:$lburl.="xingzhengshiye/";break;
  12.                         case 628:$lburl.="fuzhuangfangzhi/";break;
  13.                         case 629:$lburl.="jixiehangye/";break;
  14.                         case 630:$lburl.="wuliaocangchu/";break;
  15.                         case 631:$lburl.="qichehangye/";break;
  16.                         case 632:$lburl.="gangtiehangye/";break;
  17.                         case 633:$lburl.="dianlihangye/";break;
  18.                         case 634:$lburl.="yiyaohangye/";break;
  19.                         case 635:$lburl.="yancaohangye/";break;
  20.                         case 636:$lburl.="jiadianhangye/";break;
  21.                         case 637:$lburl.="meitanhangye/";break;
  22.                         case 638:$lburl.="itdianzi/";break;
  23.                         case 639:$lburl.="lvyouhangye/";break;
  24.                         case 640:$lburl.="shipinyinliao/";break;
  25.                     }
  26.                 }-->
复制代码
该怎么写呢?
回复

使用道具 举报

lidq.jingwu 发表于 2009-10-13 10:42:30 | 显示全部楼层
eval标签中是php语句,理论上是可以的,实际没有操作过,试一下吧。
回复

使用道具 举报

 楼主| 51mis 发表于 2009-10-13 10:45:52 | 显示全部楼层
我这样写了,结果首页出来是空白,

在template.func.php中找到如下代码,好象是控制这个的
  1.         $template = preg_replace("/[\n\r\t]*\{eval\s+(.+?)\}[\n\r\t]*/ies", "stripvtags('<?php \\1; ?>','')", $template);
复制代码
可能是大括号的处理有些问题,不知道怎么解决。
回复

使用道具 举报

lidq.jingwu 发表于 2009-10-13 11:26:27 | 显示全部楼层
用下面这个试一下,我用for循环测试没问题。
  1.                <!--{loop $_SBLOCK['hyfa'] $value}-->
  2.                 <!--{eval
  3.                     $lburl="http://www.51mis.com/solution/";
  4.                     $url=$lburl."news-".$value[id].".html";
  5.                     $title=cutstr($value[title],35,1);           
  6.                     switch($value[boardid])}-->
  7.                     <!--{eval  {}-->
  8.                     <!--{eval
  9.                             case 624:$lburl.="shangpingliutong/";break;
  10.                         case 625:$lburl.="zhizaohangye/";break;
  11.                         case 626:$lburl.="waimaohangye/";break;
  12.                         case 627:$lburl.="xingzhengshiye/";break;
  13.                         case 628:$lburl.="fuzhuangfangzhi/";break;
  14.                         case 629:$lburl.="jixiehangye/";break;
  15.                         case 630:$lburl.="wuliaocangchu/";break;
  16.                         case 631:$lburl.="qichehangye/";break;
  17.                         case 632:$lburl.="gangtiehangye/";break;
  18.                         case 633:$lburl.="dianlihangye/";break;
  19.                         case 634:$lburl.="yiyaohangye/";break;
  20.                         case 635:$lburl.="yancaohangye/";break;
  21.                         case 636:$lburl.="jiadianhangye/";break;
  22.                         case 637:$lburl.="meitanhangye/";break;
  23.                         case 638:$lburl.="itdianzi/";break;
  24.                         case 639:$lburl.="lvyouhangye/";break;
  25.                         case 640:$lburl.="shipinyinliao/";break;
  26. }-->
  27. <!--{eval  }}-->
复制代码
回复

使用道具 举报

 楼主| 51mis 发表于 2009-10-14 15:58:59 | 显示全部楼层
写成下面这个样子就行了,看来是大括号的问题

  1. <!--{eval
  2.     $lburl=WDURL;
  3.     $title=cutstr($value[CardName],32,1);           
  4.     switch($value[BoardFirstId]):
  5.     case 11: $lburl.="acct/";break;
  6.     case 12: $lburl.="crm/";break;
  7.     case 1443: $lburl.="erp/";break;
  8.     case 1445: $lburl.="scm/";break;
  9.     case 1446: $lburl.="oahr/";break;
  10.     case 1447: $lburl.="hangye/";break;
  11.     case 1448: $lburl.="piaoju/";break;
  12.     case 1449: $lburl.="remote/";break;
  13.     endswitch;
  14.     if ($lburl!=WDURL)
  15.     $url=$lburl.$value[ID].".html";
  16.     $lburl.="card1-".$value[BoardSecondId];
  17. }-->
复制代码

评分

1

查看全部评分

回复

使用道具 举报

littlehz 发表于 2009-10-14 16:08:58 | 显示全部楼层
是的,<!--{}-->不能在嵌套一层或者多层{}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-9-14 11:08 , Processed in 0.112848 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表