Kriuchko
1/9/2019 - 10:46 AM

Social

Magento 1 social


\!h ----- facebook like button facebook share button

https://developers.facebook.com/tools/debug

чистит кэш фейсбука

<iframe src="//www.facebook.com/plugins/like.php?href=<?php echo $_product->getProductUrl() ?>&amp;send=false&amp;layout=button_count&amp;width=150&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:150px; height:21px;" allowTransparency="true"></iframe>
<meta property="og:image" content="<?php echo get_template_directory_uri(); ?>/images/logo.jpg" />
<link rel="image_src" href="<?php echo get_template_directory_uri(); ?>/images/logo.jpg" />


\!h ----- FacebookLike, Twitter, Pinit Button на странице продукта

<ul class="social-plugins">
    <?php
        $_pinlink['url'] = $_product->getProductUrl();                      
        $_pinlink['media'] = $this->helper('catalog/image')->init($_product, 'image')->__toString() ;
        $_pinlink['description'] = $_helper->productAttribute($_product, $_product->getName(), 'name') . " - " . strip_tags($_product->getDescription());                                                                                   
    ?>
    <li><div class="fb-like" data-href="<?php echo $_pinlink['url']; ?>" data-send="true" data-layout="button_count" data-width="130" data-show-faces="false"></div></li>
    <li><a href="https://twitter.com/share" class="twitter-share-button">Tweet</a>
        <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script></li>
    <li><a href="http://pinterest.com/pin/create/button/?<?php echo http_build_query($_pinlink) ?>" class="pin-it-button" count-layout="none"></a>                    
 <script type="text/javascript" async defer data-pin-custom="true" src="//assets.pinterest.com/js/pinit.js"></script>
или дефолтная
<script type="text/javascript" src="//assets.pinterest.com/js/pinit.js"></script>
    </li>
</ul>


\!h ----- share this Share This add this addthis

мусор в урле hash #

Share This

<script type="text/javascript">stLight.options({publisher: "INSERTYOURPUBKEY", doNotHash:true, doNotCopy:true,hashAddressBar:false});</script>

Add This

<script type="text/javascript">
var addthis_config = addthis_config||{};
addthis_config.data_track_addressbar = false;
</script>


\!h ----- Добавление в HEAD meta для социальных кнопок 

Для того чтобы корректно работали кнопки социальных сетей (особенно Facebook который берет данные из head из мета тэгов meta property=”og:image”) нужно в head получить конкретный продукт и вывесте в мета тэгах его картинку, дескрипшен и т.п.
Это можно сделать таким образом:
в файл head.phtml (в папке template/page/html) нужно добавить такой код:

<?php if (Mage::registry('current_product')) : ?>
<meta property="og:image" content="<?php echo Mage::helper('catalog/image')->init(Mage::registry('current_product'), 'small_image')->resize(100,100);?>" />
<meta property="og:title" content="<?php echo Mage::registry('current_product')->getMetaTitle()?>" /> 

Также можно получить и другие данный из атрибутов продукта, обычно же нужна только картинка и тайтл продукта.
Этот метод будет работать только на странице сингл продукта.


\!h ----- instagram INSTAGRAM

http://jelled.com/instagram/access-token
http://jelled.com/instagram/lookup-user-id
http://instagram.com/developer/endpoints/users/#get_users_feed

{{block type="core/template" token="281496136.ab103e5.60a81e7a32e4412498f35ce8d4d1770c" user_id="281496136" name="home-instagram" template="additional/instagram.phtml"}}

additional/instagram.phtml

<?php
  $token = $this->gettoken();
  $user_id = $this->getuser_id();
  
  function fetchData($url){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 20);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    $result = curl_exec($ch);
    curl_close($ch); 
    return $result;
  }
  
  $result = fetchData("https://api.instagram.com/v1/users/".$user_id."/media/recent/?access_token=".$token);
  $result = json_decode($result);
  
  if(!empty($result)):
?>
  <div class="instagramm-gallery">
    <h2><span><span><?php echo $this->__('SCS UNLIMITED ON INSTAGRAM'); ?></span></span></h2>
    <div class="holder">
      <img src="<?php echo $this->getSkinUrl('images/bg-instagramm.jpg'); ?>" alt="bg" class="bg" height="221" />
      <div class="instagramm-carousel">
        <div class="mask">
          <div class="slideset">
            <?php foreach ($result->data as $post): if($post->type == 'image'): ?>
              <div class="slide">
                <a href="<?php echo $post->images->standard_resolution->url; ?>" rel="lightbox">
                  <img src="<?php echo $post->images->standard_resolution->url; ?>" width="149" height="150" alt="image description" />
                </a>
              </div>  
            <?php endif; endforeach;  ?>
          </div>
        </div>
        <a class="btn-prev" href="#"><?php echo $this->__('Previous'); ?></a>
        <a class="btn-next" href="#"><?php echo $this->__('Next'); ?></a>
      </div>
    </div>
  </div>
<?php endif; ?>

----- Без curl

<?php
  $token = $this->gettoken();
  $user_id = $this->getuser_id();
  $images_count = $this->getimages_count();

  $url = 'https://api.instagram.com/v1/users/'.$user_id.'/media/recent/?access_token='.$token;

  $cache = './'.sha1($url).'.json';
  if(file_exists($cache) && filemtime($cache) > time() - 60*60){
    $jsonData = json_decode(file_get_contents($cache));
  } else {
    $jsonData = json_decode((file_get_contents($url)));
    file_put_contents($cache,json_encode($jsonData));
  }
  
  if(!empty($jsonData->data)):
?>
  <ul>
    <?php $counter = 0; foreach ($jsonData->data as $key => $post): if($post->type == 'image'): ++$counter; ?>
      <li>
        <a href="<?php echo $post->link; ?>">
          <img src="<?php echo $post->images->standard_resolution->url; ?>" width="217" height="217" alt="image descritpion" >
        </a>
      </li>
    <?php if($counter == $images_count){ break; } endif; endforeach; ?>
  </ul>
<?php endif; ?>