将注释mod添加到Smarty Template PHP站点

时间:2011-09-24 16:33:28

标签: php facebook comments smarty fbml

我的网站是围绕Smarty模板构建的X-Cart 4.2.3构建的。我想找到一种方法将Facebook评论添加到我的动态产品页面(https://developers.facebook.com/docs/reference/plugins/comments/)。这些必须为每个产品页面提供唯一的URL。我找到了一个关于如何添加LIKE按钮的X-cart wiki,这是我成功完成的。这是LIKE按钮的代码:

 <iframe src="//www.facebook.com/plugins/like.php?href={$php_url.url|escape:"url"}&amp;send=false&amp;layout=standard&amp;width=350&amp;show_faces=true&amp;action=like&amp;colorscheme=light&amp;font=verdana&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:300px; height:80px;" allowTransparency="true"></iframe>

上面的代码与Facebook的工具吐出的代码完全相同,除了动态URL变量:{$ php_url.url | escape:“url”} 我想基本上为COMMENTS模块重复相同的过程,但是那个是严格的xfbml,而不是iframe,这会产生两个问题: 问题1:即使我将xfbml代码逐字粘贴到我的product.tpl模板中,我也无法将评论模式显示在商店的前端。 LIKE按钮的xfbml代码也会发生同样的事情。只有iframe似乎有效。 问题2:即使我解决了第一个问题,如何利用fb标签中的URL变量,因为它在URL周围有引号? 有什么想法吗? 以下是标准评论代码:

<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) {return;}
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

<fb:comments href="example.com" num_posts="10" width="500"></fb:comments>

2 个答案:

答案 0 :(得分:0)

我认为你想要Smart Literal标签。您应该在JS内部打开/关闭,并且可能也会影响您的URL问题。您可以在此处查看详细信息:

http://www.smarty.net/docsv2/en/language.function.literal

答案 1 :(得分:0)

科林 你的出色表现。你解决了这个问题!这段代码实际上非常有效:

<div id="fb-root"></div>

{literal}
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) {return;}
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
{/literal}
<fb:comments href="{$php_url.url|escape:"url"}" num_posts="10" width="730"></fb:comments>

一个小问题......评论模式有时会出现在文章的底部,有时则不会。我只在IE的最新版本中注意到了这一点。好像有时页面会完全加载,但有时它们却没有。我希望,这可能是我的问题。如果您有时间,请查看以下文章:http://horrorunlimited.com/Fresh-Blood-and-Crumpets/

迪马