function yinstagram_shortcode($atts) { global $wp, $yinstagram_options; $a = shortcode_atts(array('display_images' => null, 'username' => null, 'hashtags' => null), $atts); // Enqueue scripts yinstagram_wp_enqueue_scripts($yinstagram_options); $display_your_images = empty($a['display_images']) ? $yinstagram_options['display_your_images'] : $a['display_images']; if (!empty($a['hashtags'])) { $display_your_images = 'hashtag'; } $username_of_user_id = $yinstagram_options['username_of_user_id']; if (!empty($a['username'])) { $display_your_images = 'recent'; $username_of_user_id = $a['username']; } $data = null; $output = '<p>Not Connected.</p>'; $yinstagram_options['number_of_images'] = isset($yinstagram_options['number_of_images']) ? $yinstagram_options['number_of_images'] : '1'; $yinstagram_options['size'] = isset($yinstagram_options['size']) ? $yinstagram_options['size'] : 'thumbnail'; if (isset($yinstagram_options['access_token']) && isset($yinstagram_options['user'])) { $output = '<p>Request timed out, or no have ' . $display_your_images . ' images.</p>'; switch ($display_your_images) { case 'hashtag': $data = yinstagram_get_tags_images($yinstagram_options['access_token'], $yinstagram_options['display_the_following_hashtags'], $yinstagram_options['number_of_images'], true, $a['hashtags']); break; default: $data = yinstagram_get_own_images($yinstagram_options['access_token'], $display_your_images, $yinstagram_options['number_of_images'], $username_of_user_id, true, $a); } if ($yinstagram_options['order'] == 'shuffle') { shuffle($data); } } if (!empty($data)) { $is_inifinte = false; switch ($yinstagram_options['scroll']) { case 'infinite': $is_inifinte = true; $output = yinstagram_get_scroll_infinite($yinstagram_options, $data); break; default: yinstagram_styles($yinstagram_options['height']); $output = yinstagram_get_scroll_auto($yinstagram_options, $data); } if ($yinstagram_options['display_social_links']) { $current_url = home_url(add_query_arg(array(), $wp->request)); $socialClass = $is_inifinte ? 'yinstagram-social infinite_scroll' : 'yinstagram-social'; $output .= '<div class="' . $socialClass . ' clearfix"><ul class="links">'; $output .= '<li><iframe src="//www.facebook.com/plugins/like.php?href=' . urlencode($current_url) . '&width&layout=button_count&action=like&show_faces=false&share=false&height=21&appId=561399377290377" scrolling="no" frameborder="0" style="border:none; overflow:hidden; height:21px;" allowTransparency="true"></iframe></li>'; $output .= '<li><a href="https://twitter.com/share" class="twitter-share-button" data-lang="en">Tweet</a></li>'; $output .= '<li><div class="g-plusone" data-size="medium"></div></li>'; $output .= '</ul></div>'; } } return $output; }
public function widget($args, $instance) { global $yinstagram_options; // Enqueue scripts yinstagram_wp_enqueue_scripts($yinstagram_options); extract($args); $title = apply_filters('widget_title', empty($instance['title']) ? null : $instance['title'], $instance, $this->id_base); // set default $instance['type'] = isset($instance['type']) ? $instance['type'] : 'images'; $instance['display_images'] = isset($instance['display_images']) ? $instance['display_images'] : 'recent'; $instance['username_of_user_id'] = isset($instance['username_of_user_id']) ? $instance['username_of_user_id'] : null; $instance['custom_size'] = isset($instance['custom_size']) ? $instance['custom_size'] : null; $instance['limit'] = isset($instance['limit']) ? $instance['limit'] : '6'; $instance['order'] = isset($instance['order']) ? $instance['order'] : 'default'; $style = null; if ($instance['custom_size']) { $style = 'style="width:' . $instance['custom_size'] . 'px; height:' . $instance['custom_size'] . 'px"'; } echo $before_widget; if (!empty($title)) { echo $before_title . $title . $after_title; } if (isset($yinstagram_options['access_token']) && isset($yinstagram_options['user'])) { $data = null; switch ($instance['display_images']) { case 'tags': $data = yinstagram_get_tags_images($yinstagram_options['access_token'], $instance['hashtags'], null, false); break; default: $data = yinstagram_get_own_images($yinstagram_options['access_token'], $instance['display_images'], 1, $instance['username_of_user_id'], false); } if ($instance['order'] == 'shuffle') { shuffle($data); } switch ($instance['type']) { case 'profile': /*begin profile type*/ $u_info = yinstagram_get_user_info($yinstagram_options); if ($u_info && !empty($data)) { echo '<div class="yinstagram_profile">'; $i = $j = 0; echo '<div class="header"><ul class="images">'; foreach ($data as $datum) { $i++; $j++; echo $i == 1 ? '<li>' : null; echo '<img src="' . $datum->images->thumbnail->url . '"/>'; echo $i == 4 ? '</li>' : null; $i = $i == 4 ? 0 : $i; if ($j == 12) { break; } } echo $j != 4 || $j != 8 || $j != 12 ? '</li>' : null; echo '</ul><img class="icon" alt="instagram-icon" src="' . YINSTAGRAM_PLUGIN_URL . '/img/instagram-icon-32x32.png"></div>'; echo '<div class="info"><img class="circular" title="' . $u_info->full_name . '" alt="' . $u_info->username . '" src="' . $u_info->profile_picture . '">'; echo '<p class="fullname" title="' . $u_info->username . '">' . $u_info->full_name . '</p>'; if ($u_info->website) { echo '<p class="website"><a href="' . $u_info->website . '" target="_blank">' . preg_replace('#^https?://#', '', $u_info->website) . '</a></p>'; } if ($u_info->bio) { echo '<p class="bio">' . $u_info->bio . '</p>'; } echo '<ul class="counts"><li>Posts: ' . $u_info->counts->media . '</li>'; echo '<li>Followers: ' . $u_info->counts->followed_by . '</li>'; echo '<li>Following: ' . $u_info->counts->follows . '</li></ul>'; echo '<a href="http://instagram.com/' . $u_info->username . '?ref=badge" class="ig-b- ig-b-v-24">'; echo '<img src="//badges.instagram.com/static/images/ig-badge-view-24.png" alt="Instagram" />'; echo '</a>'; echo '</div></div>'; } else { echo '<p>Request timed out.</p>'; } /*end of profile type*/ break; default: /*begin images type*/ if (!empty($data)) { $i = 0; if ($yinstagram_options['lightbox'] == 'thickbox') { add_thickbox(); } echo '<input class="yinstagram-widget-settings" type="hidden" value="' . htmlentities(json_encode(array('lightbox' => $yinstagram_options['lightbox'], 'colorbox_effect' => $yinstagram_options['effect'], 'dimensions' => $instance['custom_size']))) . '">'; echo $yinstagram_options['lightbox'] == 'disable' ? '<ul class="yinstagram_grid">' : '<ul class="yinstagram_grid lightbox_on">'; foreach ($data as $datum) { $img_src = $datum->images->thumbnail->url; if ($instance['size'] == 'low_resolution') { $img_src = $datum->images->low_resolution->url; } elseif ($instance['size'] == 'standard_resolution') { $img_src = $datum->images->standard_resolution->url; } $images[] = array('id' => $datum->id, 'title' => str_replace('"', "'", (string) $datum->caption->text), 'src' => $img_src); echo '<li>'; switch ($yinstagram_options['lightbox']) { case 'thickbox': echo '<a class="yinstagram-lbox thickbox" style="cursor: pointer;" href="' . $datum->images->standard_resolution->url . '?TB_iframe=true" title="' . yinstagram_get_excerpt(str_replace('"', "'", (string) $datum->caption->text)) . '" rel="gallery-yinstagram">'; break; case 'colorbox': echo '<a class="yinstagram-lbox" style="cursor: pointer;" href="' . $datum->images->standard_resolution->url . '" title="' . yinstagram_get_excerpt(str_replace('"', "'", (string) $datum->caption->text)) . '">'; break; default: echo '<a target="_blank" href="' . $datum->images->standard_resolution->url . '">'; } echo '<span class="load_w-' . $datum->id . '" ' . $style . '></span>'; echo '</a></li>'; $i++; if ($i == $instance['limit']) { break; } } echo '</ul>'; echo '<textarea class="yinstagram-widget-images" style="display: none;">' . json_encode($images) . '</textarea>'; } else { echo '<p>Request timed out, or no have ' . $instance['display_images'] . ' images.</p>'; } /*end of images type*/ } } else { echo '<p>Not Connected.</p>'; } echo $after_widget; }