Помогите из tpl выдрать нужное для кнопки "мне нравится" вконтакте

winsofts

Постоялец
Регистрация
25 Июл 2009
Сообщения
83
Реакции
1
Имеется TPL файл товара, нужно что бы при нажатии на рассказать друзьям, захватывал название товара и фото товара. пока получается не правильно.
пмогите с готовым кодом

сам tpl:
PHP:
{*
  Template name: Товар
  Отображение отдельного товара
  Used by: Strefront.class.php   
  Assigned vars: $product, $comments, $category
*}

{* Подключаем js-проверку формы *}
<script src="js/baloon/js/default.js" language="JavaScript" type="text/javascript"></script>
<script src="js/baloon/js/validate.js" language="JavaScript" type="text/javascript"></script>
<script src="js/baloon/js/baloon.js" language="JavaScript" type="text/javascript"></script>
<link href="js/baloon/css/baloon.css" rel="stylesheet" type="text/css" /> 

{* Увеличитель картинок *}
<script type="text/javascript" src="js/enlargeit/enlargeit.js"></script>

<div id="page_title">
  <div id="path">
    <a href="./">Главная</a>
    {foreach from=$category->path item=cat}
    <span>|</span> <a href="catalog/{$cat->url}">{$cat->name|escape}</a>
    {/foreach}
    {if $product->brand}
    <span>|</span> <a href="catalog/{$cat->url}/{$product->brand_url}">{$product->brand|escape}</a>
    {/if}
    <span>|</span>  {$product->category|escape} {$product->brand|escape} {$product->model|escape}
  </div>
<br>
  <h1  tooltip='product' product_id='{$product->product_id}' {if $product->hit}id="hit_header"{/if} class="float_left">{$product->category|escape} {$product->brand|escape} {$product->model|escape}</h1>
</div>

<!-- Описание товара /-->
<div id="product_main">
<br>
  <!-- Картинки товара /-->
  <div id="product_main_img">
    <img src="{if $product->large_image}files/products/{$product->large_image}{elseif $product->small_image}files/products/{$product->small_image}{else}design/{$settings->theme}/images/no_foto.gif{/if}" alt=""/>
    <ul>
      {if $product->fotos}
      {foreach from=$product->fotos item=foto}                      
      <li><a href="files/products/{$foto->foto_id}" onclick='return false;'><img id="files/products/{$foto->filename}" onclick="enlarge(this);" longdesc="files/products/{$foto->filename}" width=80 src="files/products/{$foto->filename}" alt=""/></a></li>
      {/foreach}
      {/if}
    </ul>
  </div>
  <!-- Картинки товара #End /-->
  
  <!-- Основное описание товара /-->
  <div id="product_main_description">
    
  {if $product->properties}
  <div id="product_params">
    <a name=params></a>
    <b>Свойства товара:</b><br />
    <table class="properti">
    {foreach from=$product->properties item=property name=propname}
      {if $property->in_product}
    <tr class="prop{$smarty.foreach.propname.iteration}">
        <td>{$property->name|escape}</td>
        <td>{$property->value|escape}</td>
      </tr>
    {/if}
    {/foreach}
    </table>
  </div>
  {/if}

  <form action=cart method=get id="cartform">
  <p>
  {if $product->variants|@count > 1}
  <!-- Варианты товара /-->
  <b>Варианты товара:</b>
  <select name=variant_id onchange="display_variant(this.value);return false;">
  {foreach from=$product->variants item=variant}
  <option value='{$variant->variant_id|escape}'>{$variant->name|escape}</option>
  {/foreach}
  </select>
  <p>
  {if $product->variants[0]->discount_price>0}
   Цена: <span class="price"><span id=variant_price>{$product->variants[0]->discount_price*$currency->rate_from/$currency->rate_to|string_format:"%.2f"}</span>&nbsp;{$currency->sign|escape}</span>
  {/if}
  </p>
  <input type=button class="link_to_cart" onclick="document.cookie='from='+location.href+';path=/';this.form.submit();">
  <script>
  var variants_prices = new Array;
  {foreach from=$product->variants item=variant}
  variants_prices[{$variant->variant_id|escape}] = '{$variant->discount_price*$currency->rate_from/$currency->rate_to|string_format:"%.2f"}';
  {/foreach}
  {literal}
  function display_variant(variant)
  {
    document.getElementById('variant_price').innerHTML = variants_prices[variant];
  }
  {/literal}
  </script>
  {elseif $product->variants|@count == 1}
   <p>
  {if $product->variants[0]->discount_price>0}
   Цена: <span class="price"><span id=variant_price>{$product->variants[0]->discount_price*$currency->rate_from/$currency->rate_to|string_format:"%.2f"}</span>&nbsp;{$currency->sign|escape}</span>
  {/if}
  </p>
  <input type=hidden name=variant_id value='{$product->variants[0]->variant_id}'>
  <input type=button class="link_to_cart" onclick="document.cookie='from='+location.href+';path=/';this.form.submit();">
  {/if}
  <!-- Варианты товара #END /-->

  </p>
  </form>

  {$product->body}
  </div>
  
<div class="clear"></div>
<!-- Основное описание товара #End /-->


<!-- Соседние товары  /-->
<div align="center" class="othprod">
{if $prev_product}
<a href='products/{$prev_product->url}'>←&nbsp;{$prev_product->category|escape} {$prev_product->brand|escape} {$prev_product->model|escape}</a></nobr>
{/if}
{if $next_product}
&nbsp;&nbsp;&nbsp;
<a href='products/{$next_product->url}'>{$next_product->category|escape} {$next_product->brand|escape} {$next_product->model|escape}&nbsp;→</a>
{/if}
<!-- Соседние товары  #End/-->
</div>

</div>
<!-- Описание товара #End/-->



{if $product->related_products}
<h2>Так же советуем посмотреть:</h2>
<!-- Список связанных товаров  /-->
<div id="products_list">

    {foreach name=products item=product from=$product->related_products}    
    <!-- Товар /-->
    <div class="product_block">
    
        <!-- Картинка товара /-->
        <div class="product_block_img">
            <p>
              <a href="products/{$product->url}">
                <img src="{if $product->small_image}files/products/{$product->small_image}{else}design/{$settings->theme}/images/no_foto.gif{/if}" alt=""/>
              </a>
              </p>
        </div>
        <!-- Картинка товара #End /-->
        
        <!-- Информация о товаре /-->
        <div class="product_block_annotation" >
        
            <!-- Название /-->
            <p tooltip='product' product_id='{$product->product_id}'><a href="products/{$product->url}" {if $product->hit}class="product_name_link_hit"{else}class="product_name_link"{/if}>{$product->category|escape} {$product->brand|escape} {$product->model|escape}</a></p>
            <!-- Название #End /-->

            <!-- Описание товара /-->
            <p class="product_annotation">
                {$product->description}
            </p>
            <!-- Описание товара #End /-->
        </div>
        <!-- Информация о товаре #End /-->
        
    </div>
    <!-- Товар #End /-->
    {if $smarty.foreach.products.iteration%2 == 0}
      <div class="clear"><!-- /--></div>
    {/if}
    {/foreach}
    
    <div class="clear"><!-- /--></div>
    
</div>
<!-- Список товаров #End /-->
{/if}


  <!-- AddThis Button BEGIN -->
  <div class="addthis_toolbox addthis_default_style ">
    <div id="vk_like" class="leftb"></div>


    <a class="odkl-klass-stat leftb" href="http://p-shup.ru/products/{$product->url}" onclick="ODKL.Share(this);return false;" ><span>0</span></a>
    <a class="addthis_button_facebook_like leftb" fb:like:layout="button_count"></a>
    <a class="addthis_button_tweet leftb"></a>
    <a class="addthis_counter addthis_pill_style leftb"></a>
  </div>
  <script type="text/javascript">var addthis_config = "data_track_clickback":true;</script>
  <script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#pubid=ra-4db6d51032b82754"></script>
  <!-- AddThis Button END -->


  <div id="vk_comnt"></div>
  <script type="text/javascript">
   VK.Widgets.Comments('vk_comnt');
  </script>


и вот тут руководство

в коде слаб, помогите кто чем может)
 
между тегами head
HTML:
 <script src="http://vkontakte.ru/js/api/openapi.js" type="text/javascript" charset="windows-1251"></script>
этот код в ваш tpl
HTML:
{literal}
<script type="text/javascript">
  VK.init({
    apiId: API id для вашего сайта,
    onlyWidgets: true
  });
</script>{/literal}
<div id="vk_like"></div>
<script type="text/javascript">
{literal}
window.onload = function () {
 VK.init({apiId: 111, onlyWidgets: true});
 VK.Widgets.Like('vk_like', {{/literal}width: 500, pageTitle: '{$product->category|escape} {$product->brand|escape} {$product->model|escape}', pageImage: '{if $product->large_image}http://site.ru/files/products/{$product->large_image}{elseif $product->small_image}http://site.ru/files/products/{$product->small_image}{else}http://site.ru/design/{$settings->theme}/images/no_foto.gif{/if}'{literal}});
 }{/literal}
</script>
 
между тегами head
HTML:
 <script src="http://vkontakte.ru/js/api/openapi.js" type="text/javascript" charset="windows-1251"></script>
этот код в ваш tpl
HTML:
{literal}
<script type="text/javascript">
  VK.init({
    apiId: API id для вашего сайта,
    onlyWidgets: true
  });
</script>{/literal}
<div id="vk_like"></div>
<script type="text/javascript">
{literal}
window.onload = function () {
 VK.init({apiId: 111, onlyWidgets: true});
 VK.Widgets.Like('vk_like', {{/literal}width: 500, pageTitle: '{$product->category|escape} {$product->brand|escape} {$product->model|escape}', pageImage: '{if $product->large_image}http://site.ru/files/products/{$product->large_image}{elseif $product->small_image}http://site.ru/files/products/{$product->small_image}{else}http://site.ru/design/{$settings->theme}/images/no_foto.gif{/if}'{literal}});
 }{/literal}
</script>
*** скрытое содержание ***


попробывал не получается картинку вывести всейровно
может потому что у меня реализовано через скрипт?

вот содержимое:

Код:
VK.Widgets.Group("vk_grp", {mode: 0, width: "200", height: "290"}, 26189530);
VK.Widgets.Like("vk_like", {type: "button"});
 
проверь все подключённые скрипты на конфликт со скриптом от контакта,
возмжно где то здесь проблемма
и хорошо бы посмотреть выдаёт ли браузер какие либо ожибки с JS
 
проверь все подключённые скрипты на конфликт со скриптом от контакта,
возмжно где то здесь проблемма
и хорошо бы посмотреть выдаёт ли браузер какие либо ожибки с JS


да у меня все работает только не показывает картинку
 
попробывал не получается картинку вывести всейровно
может потому что у меня реализовано через скрипт?
вот содержимое:
Код:
VK.Widgets.Group("vk_grp", {mode: 0, width: "200", height: "290"}, 26189530);
VK.Widgets.Like("vk_like", {type: "button"});
у тебя так VK.Widgets.Like("vk_like", {type: "button"}); а согласно документации должно быть что-то вроде
HTML:
 VK.Widgets.Like('vk_like', {type: "button", pageImage: "http://site.ru/image.jpg"});
если параметры не прописаны как в твоем случае виджет берет их из метатегов
HTML:
<meta name="title" content="Заголовок статьи" />
<meta name="description" content="Описание статьи. Это очень интересная статья." />
<link rel="image_src" href="_http://site.ru/image.jpg" />
 
Назад
Сверху