i dont know if your solution should work or no, but i get the title and id in the plugin, store it in the array and pass my array to smarty, and it work:
in my plugin class:
$publishedArticleObjects = $publishedArticleDao->getPublishedArticlesByJournalId($journalId, $rangeArticles, $reverse = true);
$latestArticles = array();
while ($publishedArticle = $publishedArticleObjects->next()) {
$latestArticles[] = array(
'title' => $publishedArticle->getLocalizedTitle(),
'id' => $publishedArticle->getBestArticleId()
);
}
$smarty->assign('latestArticles', $latestArticles );
and in template:
{foreach from=$latestArticles item=article}
<p><a href="{url page="article" op="view" path=$article.id}">
{$article.title|strip|escape:"html"}
</a></p>
{/foreach}