3

如果有更快的方法在 .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>

我认为这很重要,因为如果您只是执行 {ls="pagename"} ,那么您必须将页面名称翻译两次。

如此精细。但由于它真的很简单,我不敢相信没有办法通过 smarty 做到这一点。仅仅为了完成这个简单的任务而扩展 Tools 类是不好的。

任何想法?

4

3 回答 3

0

简单如馅饼,没有任何覆盖(PS 1.6.1.14)

{$cms->meta_title}获取 CMS 页面标题

{$cms->meta_description}获取描述

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

于 2017-07-27T08:57:12.790 回答
0

您是否直接在 tpl 上尝试过 {$meta_title|escape:'html':'UTF-8'} ?我刚刚在 cms.tpl 上进行了测试,它可以工作。

于 2015-11-09T12:57:15.893 回答
0

如果您像我一样,我了解您想访问页面外的页面标题。如果是这样,以前的答案没有帮助。

在此页面中,我找到了解决方案:https ://toniravsadhu.wordpress.com/2014/02/27/prestashop-how-can-i-get-a-cms-page-title-in-a- tpl模板文件/

第一:扩展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>
于 2020-10-20T09:04:01.860 回答