Я настраиваю генератор администратора Symfony 1.4 для одной из моих моделей данных ("Достижение"). Модель данных «Достижение» имеет поле («url»), в котором хранится URL-адрес внешнего ресурса, и я хотел бы, чтобы этот URL-адрес отображался как ссылка в действии списка генератора администратора. По умолчанию генератор администратора отображает ссылку в виде простого текста. Я попытался написать функцию для украшения URL-адреса с помощью HTML и обрезки строки, если она слишком длинная (добавлено в «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);
}
К сожалению, в представлении списка генератора администратора HTML экранирован, оставляя длинную уродливую строку. Я не могу понять, как отключить экранирование для этого поля.
Если я изменю «ESC_SPECIALCHARS» на «ESC_RAW» в «apps/backend/config/settings.yml», ссылка будет отображаться правильно. Нет ли более точного управления экранированием для Symfony 1.4?