Добавление комментария мод на сайт Smarty Template PHP - PullRequest
1 голос
/ 24 сентября 2011

Мой сайт построен на X-Cart 4.2.3, которая построена на шаблонах Smarty.Я пытаюсь найти способ добавить комментарии Facebook к моим динамическим страницам с товарами (https://developers.facebook.com/docs/reference/plugins/comments/). У них должны быть уникальные URL-адреса для каждой страницы продукта. Я нашел X-cart wiki о том, как добавить кнопку LIKE, что я и сделалЭто был код для кнопки 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,Я не могу заставить мод комментариев показываться в передней части магазина. То же самое происходит с кодом xfbml кнопки LIKE. Только если кажется, что работает iframe. Проблема 2: даже если я решу первую проблему, какЯ использую переменную URL в теге fb, так как она имеет кавычки вокруг 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 голосов
/ 25 сентября 2011

Колин, блестящий призыв с вашей стороны. Вы решили проблему! Этот код на самом деле работает отлично:

<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/

Дима

0 голосов
/ 24 сентября 2011

Я думаю, вам нужен тег Smart Literal.Вы должны включить / выключить его внутри JS, что также может повлиять на вашу проблему с URL.Вы можете найти подробности здесь:

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

...