繁体   English   中英

为管理员生成器列表操作禁用转义?

[英]Disable escaping for admin generator list action?

我正在为我的一个数据模型(“成就”)配置Symfony 1.4的管理生成器。 “成就”数据模型具有一个字段(“ URL”),该字段存储指向外部资源的URL,我希望将此URL呈现为admin生成器列表操作中的链接。 默认情况下,管理生成器将链接显示为纯文本。 我尝试编写一个用HTML装饰URL的函数,并在字符串过长时对其进行修剪(添加到“ lib / model / doctrine / Achievement.class.php”中)。

function getLink()
{
  $text = $this->getUrl();
  if(strlen($text) > 40)
  {
    $text = sprintf( "%s...%s", substr($text, 0, 20), substr($text, -20, 20) );
  }

  return sprintf('<a href="%s">%s</a>', $this->getUrl(), $text);
}

不幸的是,在admin生成器列表视图中,HTML被转义,留下了一个很长的丑陋字符串。 我无法弄清楚如何禁用此字段的转义。

如果我在“ apps / backend / config / settings.yml”中将“ ESC_SPECIALCHARS”更改为“ ESC_RAW”,则链接将正确呈现。 Symfony 1.4是否没有更精细的转义控制?

您不应在模型中生成HTML。 而是为此创建一个辅助函数,并使该字段呈现为局部,并在其中使用该辅助函数。

您可以在控制器(actions.class.php)中使用sfConfig::set('sf_escaping_strategy', false) )进行list操作。 请参阅我对这个问题的回答。

但是,就像1ed所说的那样,您最好为此做一个助手,而不是在控制器中编写html代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM