Я не могу рассказать вам о решении из головы, но вот что происходит:
<#assign author-img = user.getPortraitURL(themeDisplay)>
использует предопределенную переменную user
, например, зарегистрированный в данный момент пользователь.Именно то, что вы получаете, но не то, что вы хотите.themeDisplay
используется для предоставления текущего веб-контекста (например, используемого имени хоста) для правильного создания URL-адреса, соответствующего текущей отображаемой странице.
Вместо использования reserved-article-author-name
, вы хотите использовать reserved-article-author-id
чтобы получить пользовательский объект с этим идентификатором.Вам понадобится UserLocalService для этого (простите мою память - я редко использую freemarker и, возможно, не смогу разобраться, как на самом деле это сделать, но вы можете искать эту информацию. Возможно, вам нужен доступ к serviceLocator - что делает хорошее дополнительноепоисковый запрос).
Имея этот пользовательский объект (назовите его не так, как user
, например, author
), вы можете получить URL-адрес портретного изображения автора с той же стратегией, что и выше:
<#assign author-img = author.getPortraitURL(themeDisplay)>