Виджет Инстаграм

#1 16 июня 2014 в 21:28
Всем привет!
Подскажите, существует ли виджет для instantcms отображающий фотки из инстаграма?
#2 16 июня 2014 в 21:56
Ничего же не мешает просто взять код любого виджета и вставить в новый модуль.
#3 16 июня 2014 в 22:08


Ничего же не мешает просто взять код любого виджета и вставить в новый модуль.

Sonat

Ну, так то, да) Начал искать в яндексе. Думал уже есть готовое решение, но поиск по форуму не дал.
#4 17 июня 2014 в 00:02
Поискал, решил сам написать, так как большинство завязаны на сервисах и работают через ифрейм.
Вот что получилось: вставил в модуль, показывается нужное количество фоток, минус фотки юзеров из черного списка, все одним файлом.
Принимаю критику)
Думаю фильтровать по количеству лайков. Застолбил название "Инстантграм"
  1.  
  2. <style>
  3. .instantgram {
  4. border: 3px solid #eee;
  5. float:left;
  6. overflow: hidden;
  7. margin:5px;
  8. position: relative;
  9. }
  10. .instantgram img:hover {
  11. filter: alpha(opacity=80);
  12. opacity: 0.8;
  13. }
  14. .dark-background {
  15. background-color: rgba(15, 15, 15, 0.6);
  16. color: #fff;
  17. text-shadow: #000 0px 0px 10px;
  18. display: none;
  19. font-size: 1.0em;
  20. font-weight: bold;
  21. height: 100%;
  22. position: absolute;
  23. text-align: center;
  24. text-decoration: none;
  25. width: 100%;
  26. z-index: 100;
  27. }
  28. </style>
  29.  
  30. <?php
  31. $tag="питер";
  32. $count=10;// колво фоток
  33. $token="ХХХХХХХХХХХХХХХХХХХХ";//access token можно получить по адресу http://instagram.com/developer/api-console/# , авторизовавшись, сделать любой запрос, в ответе придет токен
  34. $blist="reklama,spamer"; //черный список пользователей, через запятую
  35. $resolution="thumbnail"; //thumbnail =150x150, low_resolution =306х306, standard_resolution =640х640
  36. $bl=explode(",",$blist);
  37.  
  38. $url="https://api.instagram.com/v1/tags/".$tag."/media/recent?access_token=".$token;
  39. $html=file_get_contents_curl($url);
  40.  
  41.  
  42. $posts = json_decode( $html );
  43. $a = object_to_array($posts);
  44. $posts = $a["data"];
  45. //print_r($posts);
  46. $i=0;$x=0;
  47. while ($i <$count) {
  48. $post=$posts[$x];
  49. $x++;
  50. if (!in_array($post["caption"]["from"]["username"],$bl)){
  51. echo "<div class=\"instantgram\">\n";
  52. echo "<a href=\"".$post["link"]."\" target=\"_blank\">\n";
  53. echo "<span class=\"dark-background\">".$post["caption"]["from"]["username"]."<br>&hearts; ".$post["likes"]["count"]."<br>".date("d.m.Y",$post["created_time"])."<br>".$post["caption"]["text"]."</span>\n";
  54. echo "<img src='".$post["images"][$resolution]["url"]."'></a>\n";
  55. echo "</div>\n";
  56. $i++;
  57. }
  58. }
  59.  
  60.  
  61. function object_to_array($data)
  62. {
  63. if(is_array($data) || is_object($data))
  64. {
  65. $result = array();
  66. foreach($data as $key => $value) {
  67. $result[$key] = object_to_array($value);
  68. }
  69. return $result;
  70. }
  71. return $data;
  72. }
  73.  
  74. function file_get_contents_curl($url) {
  75. $ch = curl_init();
  76. curl_setopt($ch, CURLOPT_HEADER, 0);
  77. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  78. curl_setopt($ch, CURLOPT_URL, $url);
  79. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  80. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
  81. $data = curl_exec($ch);
  82. curl_close($ch);
  83. return $data;
  84. }
  85. ?>
  86. <script type="text/javascript">
  87. $(document).ready(function() {
  88. $('.instantgram').mouseenter(function(e) {
  89. $(this).children('a').children('span').fadeIn(200);
  90. }).mouseleave(function(e) {
  91. $(this).children('a').children('span').fadeOut(200);
  92. });
  93. });
  94. </script>
  95.  
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.