簡體   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