function wppg_photo_gallery_sc_handler($attrs)
 {
     global $wpdb, $wp_photo_gallery;
     $gallery_id = $attrs['id'];
     $gallery_table = WPPG_TBL_GALLERY;
     //Let's get the gallery associated with this ID
     $gallery_object = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$gallery_table} WHERE id = %d", $gallery_id));
     if ($gallery_object === NULL) {
         //No result found
         $wp_photo_gallery->debug_logger->log_debug("wppg_photo_gallery_sc_handler: Could not find gallery with ID: " . $gallery_id, 4);
         echo '<div class="wppg_red_box_front_end">' . __("Error: No gallery found with the following ID: ", "spgallery") . $gallery_id . '</div>';
     }
     isset($gallery_object->gallery_thumb_template) ? $template = $gallery_object->gallery_thumb_template : ($template = '0');
     switch ($template) {
         case '0':
             require_once 'gallery-templates/wppg-photo-gallery-template-1.php';
             $template1 = new WPPG_Gallery_Template_1();
             $output = $template1->render_gallery($gallery_id);
             break;
         case '1':
             require_once 'gallery-templates/wppg-photo-gallery-template-2.php';
             $template2 = new WPPG_Gallery_Template_2();
             $output = $template2->render_gallery($gallery_id);
             break;
         case '2':
             require_once 'gallery-templates/wppg-photo-gallery-template-3.php';
             $template3 = new WPPG_Gallery_Template_3();
             $output = $template3->render_gallery($gallery_id);
             break;
         default:
             require_once 'gallery-templates/wppg-photo-gallery-template-1.php';
             $template1 = new WPPG_Gallery_Template_1();
             $output = $template1->render_gallery($gallery_id);
     }
     return $output;
 }
コード例 #2
0
    function render_gallery($gallery_id)
    {
        global $wp_photo_gallery;
        $pagination = false;
        //Initialize
        $gallery = new WPPGPhotoGallery($gallery_id);
        $display_photo_details_page = $gallery->display_image_on_page;
        $gallery_items = WPPGPhotoGallery::getGalleryItems($gallery_id);
        WP_Photo_Gallery_Utility::start_buffer();
        ?>
        <link type="text/css" rel="stylesheet" href="<?php 
        echo WP_PHOTO_URL . '/classes/gallery-templates/css/wppg-photo-gallery-template-2.css?ver=' . WP_PHOTO_VERSION;
        ?>
" />
        <div id="wppg-gallery-template-2">
<?php 
        //Add Pagination if applicable
        if ($gallery->enable_pagination == 1) {
            echo '<link type="text/css" rel="stylesheet" href="' . WP_PHOTO_URL . '/classes/gallery-templates/css/wppg-pagination.css?ver=' . WP_PHOTO_VERSION . '" />';
            //Load the CSS file for this view
            $pagination = WPPGPhotoGallery::apply_gallery_pagination($gallery, $gallery_items);
            if ($pagination !== false) {
                $gallery_items = $pagination['array'];
            }
        }
        foreach ($gallery_items as $p) {
            $image_id = $p['id'];
            //Now let's create a PhotoProduct object for this item
            $wppgPhotoObj = new WPPGPhotoGalleryItem();
            $wppgPhotoObj->create_photo_item_by_id($image_id);
            $water_mark_url = '';
            $file_name = $wppgPhotoObj->image_file_name;
            $upload_dir = wp_upload_dir();
            $path = $wppgPhotoObj->thumb_url;
            $image_file_url = $wppgPhotoObj->image_file_url;
            $h = '150';
            //Max height for the gallery images in this template
            $w = WPPG_Gallery_Template_2::calculate_thumb_img_width_given_desired_height($image_file_url, $h, $wppgPhotoObj->image_height, $wppgPhotoObj->image_width);
            //Get a resized thumbnail using WP functions
            $thumb_name = $wppgPhotoObj->calculate_wp_generated_thumbnail_img_name($w, $h);
            $thumb_path = $wppgPhotoObj->source_dir . $thumb_name;
            if (!file_exists($thumb_path)) {
                $resized_file = image_make_intermediate_size($wppgPhotoObj->image_file_path, $w, $h);
                $thumbnail_src = $wppgPhotoObj->source_dir_url . $resized_file['file'];
            } else {
                $thumbnail_src = $wppgPhotoObj->source_dir_url . $thumb_name;
            }
            //End of wp image resize
            if ($display_photo_details_page == 1) {
                $details_page_id = $wp_photo_gallery->configs->get_value('wppg_photo_details_page_id');
                if (empty($details_page_id)) {
                    $photo_details_page = get_page_by_path('wppg_photogallery/wppg_photo_details');
                    if ($photo_details_page == NULL) {
                        $wp_photo_gallery->debug_logger->log_debug('Gallery template 2: get_page_by_path returned NULL!', 4);
                    }
                    $preview_page = $photo_details_page->guid;
                } else {
                    $preview_page = get_permalink($details_page_id);
                }
                //Check if this gallery is password protected
                if (!empty($gallery->password)) {
                    //This gallery is password protected - so let's add an encoded string
                    $encoded_str = base64_encode(WPPS_PHOTO_VIEW_AUTH_STRING);
                    $query_params = array('gallery_id' => $gallery_id, 'image_id' => $image_id, 'auth_key' => $encoded_str);
                } else {
                    $query_params = array('gallery_id' => $gallery_id, 'image_id' => $image_id);
                }
                $preview_url = add_query_arg($query_params, $preview_page);
                $button_html = '<span class="wpsg-t2-buy-link"><a href="' . $preview_url . '">' . __("View", "spgallery") . '</a></span>';
            } else {
                $source_dir = $upload_dir['basedir'] . '/' . WPPG_UPLOAD_SUB_DIRNAME . '/' . $gallery_id . '/';
                if ($gallery->watermark != NULL) {
                    //Get the gallery settings values for watermark placement, width and font size
                    $watermark_placement = $gallery->watermark_placement;
                    if ($watermark_placement === NULL) {
                        $watermark_placement = '0';
                    }
                    $desired_width = $gallery->watermark_width;
                    if ($desired_width == 0 || empty($desired_width)) {
                        $desired_width = '600';
                    }
                    $wm_font_size = $gallery->watermark_font_size;
                    if ($wm_font_size == 0 || empty($wm_font_size)) {
                        $wm_font_size = '14';
                    }
                    $watermark_opacity = $gallery->watermark_opacity;
                    if ($watermark_opacity === NULL) {
                        $watermark_opacity = '35';
                    }
                    //If the image is a portrait then instead of setting max width, we want to set max height otherwise the preview comes out too big
                    if ($wppgPhotoObj->image_height > $wppgPhotoObj->image_width) {
                        $args = array('watermark_height' => $desired_width, 'watermark_font_size' => $wm_font_size, 'watermark_placement' => $watermark_placement, 'watermark_opacity' => $watermark_opacity);
                    } else {
                        $args = array('watermark_width' => $desired_width, 'watermark_font_size' => $wm_font_size, 'watermark_placement' => $watermark_placement, 'watermark_opacity' => $watermark_opacity);
                    }
                    $args = array('watermark_width' => $desired_width, 'watermark_font_size' => $wm_font_size, 'watermark_placement' => $watermark_placement);
                    WPPGPhotoGallery::createWatermarkImage($source_dir, $source_dir, $file_name, false, $gallery->watermark, $args);
                    $water_mark_url = $upload_dir['baseurl'] . '/' . WPPG_UPLOAD_SUB_DIRNAME . '/' . $gallery_id . '/watermark_' . $file_name;
                    $preview_url = $water_mark_url;
                } else {
                    //Don't create a watermark URL if the watermark field was empty in the gallery settings. Display original image instead
                    $preview_url = $wppgPhotoObj->image_file_url;
                }
                $button_html = '<input type="button" id="viewPhotoDetails_' . $wppgPhotoObj->id . '" class="wppg_popup wppg-gallery-button wpsg-t2-buy-input" value="' . __("View", "spgallery") . '">';
            }
            ?>
	<div class="wpsg-t2-item">
            <div class="wpsg-t2-top" style="height:<?php 
            echo $h;
            ?>
px; width:<?php 
            echo $w;
            ?>
px;">
                <div class="wpsg-t2-thumb" style="height:<?php 
            echo $h;
            ?>
px; width:<?php 
            echo $w;
            ?>
px;">
                    <a class="wppg_popup" title="<?php 
            echo $wppgPhotoObj->name;
            ?>
" href="<?php 
            echo $preview_url;
            ?>
">
                        <img alt="<?php 
            echo $wppgPhotoObj->alt_text;
            ?>
" src="<?php 
            echo $thumbnail_src;
            ?>
">
                    </a>                    
<!--                    <div class="wpsg-t2-meta">
                        <div class="wpsg-t2-buy-button">
                            <?php 
            echo $button_html;
            ?>
                        </div>
                    </div>                   -->
                </div>                
            </div>
	</div><!-- end of .wpsg-t2-item -->
    <?php 
        }
        //End foreach loop
        ?>
        <div class="clear"></div>
    <?php 
        //Insert pagination nav bar at bottom
        if ($gallery->enable_pagination == 1 && $pagination !== false) {
            echo '<div class="wppg_photo_gallery_pagination">' . $pagination['panel'] . '</div>';
        }
        ?>
            
        </div> <!--end wppg-gallery-display div --> 
<?php 
        if ($display_photo_details_page == 0) {
            //Load lightbox css file
            wp_enqueue_style('jquery-lightbox-css', WP_PHOTO_URL . '/js/jquery-lightbox/css/jquery.lightbox-0.5.css');
            //Load lightbox js files
            wp_enqueue_script('wppg-lb-script-js', WP_PHOTO_URL . '/js/simple_photo_gallery_js.js', array('jquery'));
            wp_localize_script('wppg-lb-script-js', 'WPPG_LIGHTBOX_JS', array('imgLoading' => WP_PHOTO_URL . '/js/jquery-lightbox/images/lightbox-ico-loading.gif', 'imgbtnPrev' => WP_PHOTO_URL . '/js/jquery-lightbox/images/lightbox-btn-prev.gif', 'imgbtnNext' => WP_PHOTO_URL . '/js/jquery-lightbox/images/lightbox-btn-next.gif', 'imgBlank' => WP_PHOTO_URL . '/js/jquery-lightbox/images/lightbox-blank.gif', 'imgbtnClose' => WP_PHOTO_URL . '/js/jquery-lightbox/images/lightbox-btn-close.gif'));
        }
        $output = WP_Photo_Gallery_Utility::end_buffer_and_collect();
        return $output;
    }