prestashop - 如何在.tpl中获取cms页面标题?

时间:2013-09-06 15:50:03

标签: title prestashop

如果有更快的方法在.tpl

中获得cms标题,我就会徘徊

目前,我使用一种非常简单的方法扩展了Tools类:

public static function getCMSTitle($id_cms,$id_lang){
    $cms = new CMS($id_cms, $id_lang);
    return $cms->meta_title;
}

这样我就可以这样做了:

<li><a href="{$link->getCMSLink(1)}">{Tools::getCMSTitle(1,$cookie->id_lang)}</a></li>

我认为这很重要因为,如果你只是做{l s =“pagename”},那么你必须翻译两次页面名称。

所以,很好。但由于它非常简单,我无法相信没有办法通过聪明的方式来做到这一点。仅扩展Tools类来完成这个简单的任务是不好的。

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

您是否直接在tpl上尝试过{$ meta_title | escape:&#39; html&#39;:&#39; UTF-8&#39;}?我刚刚在cms.tpl上测试过,它可以正常工作。

答案 1 :(得分:0)

简单的馅饼没有任何改写(PS 1.6.1.14)

{$ cms-&gt; meta_title} 获取CMS页面标题

{$ cms-&gt; meta_description} 获取说明

以及基于 ps_cms_lang 表中列名称的许多其他内容。

答案 2 :(得分:0)

如果您像我一样,我知道您想访问该页面的外部页面标题。 如果是这样,以前的答案无济于事。

在此页面中,我找到了以下解决方案:https://toniravsadhu.wordpress.com/2014/02/27/prestashop-how-can-i-get-a-cms-page-title-in-a-tpltemplate-file/

首先:扩展Tools类,添加以下方法

public static function getCMSTitle($id_cms,$id_lang){
  $cms = new CMS($id_cms, $id_lang);
  return $cms->meta_title;
}

然后,在模板中,您现在可以使用以下内容从CMS页面ID中获取标题:

<a>{Tools::getCMSTitle(1,$cookie->id_lang)}</a>