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

Тема в разделе "PHP", создана пользователем winsofts, 1 июн 2011.

Модераторы: latteo
  1. winsofts

    winsofts Постоялец

    Регистр.:
    25 июл 2009
    Сообщения:
    82
    Симпатии:
    0
    Имеется 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>




    и вот тут руководство http://vkontakte.ru/pages.php?o=-1&p=%C4%EE%EA%F3%EC%E5%ED%F2%E0%F6%E8%FF%20%EA%20%E2%E8%E4%E6%E5%F2%F3%20%CC%ED%E5%20%ED%F0%E0%E2%E8%F2%F1%FF

    в коде слаб, помогите кто чем может)
     
  2. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.036
    Симпатии:
    699
    между тегами 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>
    API id для сайта получаем здесь http://vkontakte.ru/apps.php?act=add&site=1
     
  3. winsofts

    winsofts Постоялец

    Регистр.:
    25 июл 2009
    Сообщения:
    82
    Симпатии:
    0

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

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

    Код:
    VK.Widgets.Group("vk_grp", {mode: 0, width: "200", height: "290"}, 26189530);
    VK.Widgets.Like("vk_like", {type: "button"}); 
    
     
  4. satyra

    satyra Постоялец

    Регистр.:
    21 окт 2007
    Сообщения:
    73
    Симпатии:
    7
    проверь все подключённые скрипты на конфликт со скриптом от контакта,
    возмжно где то здесь проблемма
    и хорошо бы посмотреть выдаёт ли браузер какие либо ожибки с JS
     
  5. winsofts

    winsofts Постоялец

    Регистр.:
    25 июл 2009
    Сообщения:
    82
    Симпатии:
    0

    да у меня все работает только не показывает картинку
     
  6. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.036
    Симпатии:
    699
    у тебя так VK.Widgets.Like("vk_like", {type: "button"}); а согласно документации должно быть что-то вроде
    HTML:
     VK.Widgets.Like('vk_like', {type: "button", pageImage: "http://site.ru/image.jpg"});
    VK.Widgets.Like если параметры не прописаны как в твоем случае виджет берет их из метатегов
    HTML:
    <meta name="title" content="Заголовок статьи" />
    <meta name="description" content="Описание статьи. Это очень интересная статья." />
    <link rel="image_src" href="_http://site.ru/image.jpg" />