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; }
function yinstagram_get_scroll_infinite($yinstagram_options, $data) { $i = $j = $k = 0; $images = array(); $limit = yinstagram_get_number_of_images($yinstagram_options['number_of_images']); if ($yinstagram_options['lightbox'] == 'thickbox') { add_thickbox(); } $output = '<div class="vert yinstagram-shortcode-infinite">'; $output .= '<ul class="yinstagram-scroller-infinite clearfix">'; foreach ($data as $datum) { if ($datum->type != 'image') { continue; } $i++; $j++; $img_src = $datum->images->thumbnail->url; if ($yinstagram_options['size'] == 'low_resolution') { $img_src = $datum->images->low_resolution->url; } elseif ($yinstagram_options['size'] == 'standard_resolution') { $img_src = $datum->images->standard_resolution->url; } $output .= $i == 1 ? '<li>' : null; switch ($yinstagram_options['lightbox']) { case 'thickbox': $output .= '<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': $output .= '<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: $output .= '<a target="_blank" href="' . $datum->images->standard_resolution->url . '">'; } $output .= '<span class="load_is-' . $datum->id . '"></span>'; $output .= '</a>'; $output .= $i == 4 ? '</li>' : null; $i = $i == 4 ? 0 : $i; $images[] = array('id' => $datum->id, 'title' => str_replace('"', "'", (string) $datum->caption->text), 'src' => $img_src, 'tags' => $datum->tags, 'link' => $datum->link); if ($j == $limit) { break; } } if ($j != $limit) { $output .= '</li>'; } $output .= '</ul>'; $output .= '<input class="yinstagram-shortcode-settings-inf" name="yinstagram-shortcode-settings-inf" type="hidden" value="' . htmlentities(json_encode(array('lightbox' => $yinstagram_options['lightbox'], 'colorbox_theme' => $yinstagram_options['theme'], 'colorbox_effect' => $yinstagram_options['effect']))) . '">'; $output .= '<input class="yinstagram-inf-images-i" name="yinstagram-inf-images-i" type="hidden" value="15" peak="' . count($images) . '">'; $output .= '<textarea class="yinstagram-shortcode-images-infinite" name="yinstagram-shortcode-images-infinite" style="display: none;">' . json_encode($images) . '</textarea>'; $output .= '</div>'; $style = $yinstagram_options['display_social_links'] ? null : ' style="margin-bottom: 1.5em;"'; $output .= '<a href="#" class="yinstagram-load-more"' . $style . '>Load More</a>'; return $output; }