Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
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;
}