Пример #1
0
    /**
     * Display the new Custom Fields meta box
     */
    function displayCustomFields()
    {
        global $post;
        ?>
			 <div class="box right-col metaboxes side">
				<?php 
        wp_nonce_field($this->settings['slug'], $this->settings['slug'] . '_wpnonce', false, true);
        // Check capability
        if (!current_user_can($this->settings['capability'], $post->ID)) {
            $output = false;
        } else {
            $output = true;
        }
        // Output if allowed
        if ($output) {
            ?>
  
		
							<?php 
            //get stored values
            $rt_gallery_images = get_post_meta($post->ID, $this->prefix . "rt_gallery_images", true);
            //to compatible with earlier rt-framework implode the images into an array first
            if (is_array($rt_gallery_images) && !empty($rt_gallery_images)) {
                $rt_gallery_images = implode(",", $rt_gallery_images);
            }
            ?>

							<ul class="rt-gallery-uploaded-photos">
							 

									<?php 
            if (!empty($rt_gallery_images)) {
                //make an array from the image list
                $rt_gallery_images_array = explode(",", $rt_gallery_images);
                for ($i = 0; $i < count($rt_gallery_images_array); $i++) {
                    //the image url
                    $image_url = rt_find_image_org_path(trim($rt_gallery_images_array[$i]));
                    //find the id of image
                    $image_id = rt_get_attachment_id_from_src(rt_clean_thumbnail_ext($image_url));
                    //the thumbmail url
                    $thumbnail = wp_get_attachment_image_src($image_id, "thumbnail", true, "");
                    if (strpos($thumbnail[0], "default.png")) {
                        $thumbnail[0] = $image_url;
                    }
                    echo ' <li><img src="' . $thumbnail[0] . '" data-rel="' . $image_url . '"></li> ';
                }
            }
            ?>

							</ul> 

							<input type="hidden" name="<?php 
            echo $this->prefix;
            ?>
rt_gallery_images" value="<?php 
            echo $rt_gallery_images;
            ?>
" id="rt-gallery-images" class="upload_field">

							<div class="rt-gallery-new-photos-holder">
								<div class="rt-gallery-new-photos"></div>
							</div>
					<?php 
        }
        ?>
 
					
					<div class="rt_gallery_add_button icon-plus-squared-1 button"><?php 
        echo __("Add New Images", "rt_theme_admin");
        ?>
</div> 	 
			</div>
			<?php 
    }
Пример #2
0
function rt_vt_resize($attach_id = null, $img_url = null, $width, $height, $crop = false, $v_crop = false)
{
    $file_path = "";
    $image_src = array();
    // fix demo image urls
    $upload_dir = wp_upload_dir();
    $img_url = str_replace(RT_DEMOUPLOADSDIR, $upload_dir['url'], $img_url);
    //clean if thumbnail used instead of full image
    if ($img_url) {
        $img_url = rt_clean_thumbnail_ext($img_url);
    }
    // this is an attachment, so we have the ID
    if ($attach_id) {
        $image_src = wp_get_attachment_image_src($attach_id, 'full');
        $file_path = get_attached_file($attach_id);
        // this is not an attachment, let's use the image url
    } else {
        if ($img_url) {
            //parse
            $file_path = parse_url($img_url);
            $file_path = $_SERVER['DOCUMENT_ROOT'] . $file_path['path'];
            /* alternative find paths
            			$file_path = parse_url( $img_url );
            			$uploads = wp_upload_dir();  
            			$file_path = $uploads['basedir'] . str_replace("/wp-content/uploads","", $file_path['path']);
            		*/
            $orig_size = file_exists($file_path) ? getimagesize($file_path) : false;
            $image_src[0] = $img_url;
            $image_src[1] = $orig_size[0];
            $image_src[2] = $orig_size[1];
            //let WP find image urls
            if (!$orig_size) {
                $get_image_id_from_url = rt_get_attachment_id_from_src($img_url);
                if ($get_image_id_from_url) {
                    $image_src = wp_get_attachment_image_src($get_image_id_from_url, 'full');
                    $file_path = get_attached_file($get_image_id_from_url);
                }
            }
        }
    }
    $file_info = pathinfo($file_path);
    $extension = isset($file_info['extension']) ? '.' . $file_info['extension'] : "";
    // the image path without the extension
    $no_ext_path = isset($file_info['dirname']) && isset($file_info['filename']) ? $file_info['dirname'] . '/' . $file_info['filename'] : "";
    if (isset($image_src[2]) && $height <= $image_src[2] && $v_crop != false && $crop == false) {
        $cropped_img_path = $no_ext_path . '-vc-' . $width . 'x' . $height . $extension;
        //cropped vertically
    } else {
        $cropped_img_path = $no_ext_path . '-' . $width . 'x' . $height . $extension;
        //cropped normal
    }
    // checking if the file size is larger than the target size
    // if it is smaller or the same size, stop right here and return
    if (isset($image_src[1]) && $image_src[1] > $width || isset($image_src[2]) && $image_src[2] > $height) {
        // the file is larger, check if the resized version already exists (for $crop = true but will also work for $crop = false if the sizes match)
        if (file_exists($cropped_img_path) && $crop != false) {
            $cropped_img_url = str_replace(basename($image_src[0]), basename($cropped_img_path), $image_src[0]);
            $vt_image = array('url' => $cropped_img_url, 'width' => $width, 'height' => $height);
            return $vt_image;
        }
        // $crop = false
        if ($crop == false && $v_crop == false) {
            // calculate the size proportionaly
            $proportional_size = wp_constrain_dimensions($image_src[1], $image_src[2], $width, $height);
            $resized_img_path = $no_ext_path . '-' . $proportional_size[0] . 'x' . $proportional_size[1] . $extension;
            // checking if the file already exists
            if (file_exists($resized_img_path)) {
                $resized_img_url = str_replace(basename($image_src[0]), basename($resized_img_path), $image_src[0]);
                $vt_image = array('url' => $resized_img_url, 'width' => $proportional_size[0], 'height' => $proportional_size[1]);
                return $vt_image;
            }
        }
        // $v_crop = true
        if ($height <= $image_src[2] && $v_crop != false && $crop == false) {
            // calculate the size proportionaly
            if ($width > $image_src[1]) {
                $proportional_size = array($image_src[1], $height);
            } else {
                $proportional_size = array($width, $height);
            }
            $resized_img_path = $no_ext_path . '-vc-' . $proportional_size[0] . 'x' . $proportional_size[1] . $extension;
            // checking if the file already exists
            if (file_exists($resized_img_path)) {
                $resized_img_url = str_replace(basename($image_src[0]), basename($resized_img_path), $image_src[0]);
                $vt_image = array('url' => $resized_img_url, 'width' => $proportional_size[0], 'height' => $proportional_size[1]);
                return $vt_image;
            }
        }
        // no cache files - let's finally resize it
        $new_img_path = wp_get_image_editor($file_path);
        if (!is_wp_error($new_img_path)) {
            /*
             *  resize & crop
             */
            //crop images with the height value, and take x and y = 0
            if ($height <= $image_src[2] && $v_crop != false && $crop == false) {
                if ($width > $image_src[1]) {
                    $resized = $new_img_path->crop(0, 0, $image_src[1], $height);
                    $v_crop_sfx = "vc-" . $image_src[1] . "x" . $height;
                } else {
                    $resized = $new_img_path->crop(0, 0, $width, $height);
                    $v_crop_sfx = "vc-" . $width . "x" . $height;
                }
            }
            if ($v_crop == false) {
                $resized = $new_img_path->resize($width, $height, $crop);
                // regular resize
            }
            //if no wp error save the new file
            if (!is_wp_error($resized)) {
                if ($height <= $image_src[2] && $v_crop != false && $crop == false) {
                    $dest_file = $new_img_path->generate_filename($v_crop_sfx);
                    //v_crop
                } else {
                    $dest_file = $new_img_path->generate_filename();
                }
                $saved = $new_img_path->save($dest_file);
                if (!is_wp_error($saved)) {
                    $new_img_path = $saved["path"];
                } else {
                    $new_img_path = $file_path;
                }
            } else {
                $new_img_path = $file_path;
            }
        } else {
            $new_img_path = $file_path;
        }
        $new_img_size = getimagesize($new_img_path);
        $new_img = str_replace(basename($image_src[0]), basename($new_img_path), $image_src[0]);
        // resized output
        $vt_image = array('url' => $new_img, 'width' => $new_img_size[0], 'height' => $new_img_size[1]);
        return $vt_image;
    }
    // default output - without resizing
    $vt_image = array('url' => isset($image_src[0]) ? $image_src[0] : "", 'width' => isset($image_src[0]) ? $image_src[1] : "", 'height' => isset($image_src[0]) ? $image_src[2] : "");
    return $vt_image;
}
 /**
  * Get html output of an image
  * @param  array $atts
  * @return html 
  */
 function rt_get_image_output($atts = array())
 {
     //defaults
     extract(shortcode_atts(array("image_url" => "", "image_id" => "", "class" => "", "id" => ""), $atts));
     if (empty($image_id) && empty($image_url)) {
         return false;
     } else {
         //find img id from src
         if (empty($image_id) && !empty($image_url)) {
             $image_id = rt_get_attachment_id_from_src($image_url);
         }
         //image alt texx
         $image_alternative_text = !empty($image_id) ? get_post_meta($image_id, '_wp_attachment_image_alt', true) : "";
         //image src
         $image_src = !empty($image_id) ? rt_get_attachment_image_src($image_id) : $image_url;
         //if img src couldn't found return false
         if (!$image_src) {
             return;
         }
         //image id attr
         $id = !empty($id) ? 'id="' . $id . '"' : "";
         //the output
         $image_output = '<img ' . $id . ' itemprop="image" src="' . $image_src . '" alt="' . $image_alternative_text . '" class="' . $class . '" />';
         return $image_output;
     }
 }
Пример #4
0
 function rt_get_image_data($args)
 {
     global $post;
     //args
     extract(shortcode_atts(array("image_id" => "", "image_url" => "", "w" => "", "h" => "", "crop" => false), $args));
     //save the global post if any
     $save_post = $post;
     //find post id from src
     $image_id = !empty($image_id) ? $image_id : isset($image_url) ? rt_get_attachment_id_from_src($image_url) : "";
     //get the post attachment
     $attachment = !empty($image_id) ? get_post($image_id) : false;
     if ($attachment) {
         //attachment data
         $image_title = $attachment->post_title;
         $image_caption = $attachment->post_excerpt;
         $image_description = $attachment->post_content;
         $image_alternative_text = get_post_meta($image_id, '_wp_attachment_image_alt', true);
         //image url - if not provided
         $orginal_image_url = !empty($image_url) ? $attachment->guid : $image_url;
         //resized img src - resize the image if $w and $h suplied
         $thumbnail_url = !empty($w) && !empty($h) ? rt_vt_resize($image_id, '', $w, $h, $crop) : $orginal_image_url;
         $thumbnail_url = is_array($thumbnail_url) ? $thumbnail_url["url"] : $thumbnail_url;
         // Tiny image thumbnail for lightbox gallery feature
         $lightbox_thumbnail = rt_vt_resize($image_id, '', 75, 50, true);
         $lightbox_thumbnail = is_array($lightbox_thumbnail) ? $lightbox_thumbnail["url"] : $thumbnail_url;
     }
     //give back the global post
     $post = $save_post;
     if ($attachment) {
         //output
         return array("image_title" => $image_title, "image_caption" => $image_caption, "image_alternative_text" => $image_alternative_text, "image_url" => $orginal_image_url, "thumbnail_url" => $thumbnail_url, "lightbox_thumbnail" => $lightbox_thumbnail);
     } else {
         //output
         return array("image_title" => "", "image_caption" => "", "image_alternative_text" => "", "image_url" => $image_url, "thumbnail_url" => $image_url, "lightbox_thumbnail" => $image_url);
     }
 }
Пример #5
0
    function rt_shortcode_slider_slides($atts, $content = null)
    {
        //[slide link="link" title="title" img_url="" video_url="" styling="" title_color="" title_bg_color="" text_color="" text_bg_color="" title_size="" text_size=""]slide_text[/slide]
        global $rt_slider_width, $rt_slider_height, $rt_slider_script, $rt_total_slide, $rt_slide_count, $rt_caption_output, $rt_slide_output, $rt_slider_id, $rt_image_resize, $rt_image_crop;
        $text = $image_output = $resized_img_url = "";
        $rt_slide_count++;
        //defaults
        extract(shortcode_atts(array("link" => '', "title" => '', "title2" => '', "img_url" => '', "video_url" => '', "text_align" => 'left', "stretch_images" => true, "styling" => "", "title_color" => "", "title_bg_color" => "", "text_color" => "", "text_bg_color" => "", "title_size" => "", "text_size" => ""), $atts));
        //nivo slide id
        $nivo_slide_id = $rt_slider_script == "nivo_slider" ? "random_" . rand(100000, 1000000) : "";
        //randomized
        $nivo_image_sync_id = $nivo_slide_id ? "#" . $nivo_slide_id : "";
        //caption css
        $caption_css = "";
        if ($styling == "new") {
            $caption_css .= !empty($title_color) ? " color:" . rt_rgba2hex($title_color) . "; color:" . $title_color . ";" : "";
            $caption_css .= !empty($title_bg_color) ? "background-image:none; background-color:" . rt_rgba2hex($title_bg_color) . "; background-color:" . $title_bg_color . ";" : "background-color:transparent;padding-top:0;padding-bottom:0;";
            $caption_css .= !empty($title_size) ? " font-size:" . str_replace("px", "", $title_size) . "px;line-height:140%;" : "";
            $caption_css = !empty($caption_css) ? 'style="' . $caption_css . '"' : "";
        }
        //text css
        $text_css = "";
        if ($styling == "new") {
            $text_css .= !empty($text_color) ? " color:" . rt_rgba2hex($text_color) . "; color:" . $text_color . ";" : "";
            $text_css .= !empty($text_bg_color) ? "background-image:none; background-color:" . rt_rgba2hex($text_bg_color) . "; background-color:" . $text_bg_color . ";" : "background-color:transparent;padding-top:0;padding-bottom:0;";
            $text_css .= !empty($text_size) ? " font-size:" . str_replace("px", "", $text_size) . "px;line-height:140%;" : "";
            $text_css = !empty($text_css) ? 'style="' . $text_css . '"' : "";
        }
        //allowed html codes
        $allowed_html_title = array('br' => array());
        $allowed_html_text = array('a' => array('href' => array(), 'title' => array()), 'br' => array(), 'em' => array(), 'strong' => array());
        //title
        $title = !empty($title) ? !empty($link) ? '<div class="caption-one" ' . $caption_css . '><a href="' . $link . '" title="' . wp_kses($title, "") . '" ' . $caption_css . '>' . wp_kses(stripcslashes($title), $allowed_html_title) . '</a></div>' . "\n" : '<div class="caption-one" ' . $caption_css . '>' . wp_kses($title, $allowed_html_title) . '</div>' . "\n" : "";
        //text
        $text = !empty($content) ? '<div class="caption-text" ' . $text_css . '>' . trim(wp_kses(stripcslashes($content), $allowed_html_text)) . '</div>' . "\n" : "";
        //li class
        $li_class = $stretch_images == "true" ? "stretch" : "";
        //featured image output
        if (!empty($img_url)) {
            $img_url = rt_find_image_org_path($img_url);
            $image_id = rt_get_attachment_id_from_src($img_url);
            $image_alternative_text = get_post_meta($image_id, '_wp_attachment_image_alt', true);
            $image_meta_data = wp_get_attachment_metadata($image_id, "true");
            $image_height = isset($image_meta_data["height"]) ? $image_meta_data["height"] : "";
            //crop & resize = true
            if (!empty($rt_image_resize) && !empty($rt_image_crop)) {
                $resized_img_url = rt_vt_resize($image_id, $img_url, $rt_slider_width, $rt_slider_height, true, false);
            }
            //crop = true & resize = false
            if (empty($rt_image_resize) && !empty($rt_image_crop)) {
                $resized_img_url = rt_vt_resize($image_id, $img_url, $rt_slider_width, $rt_slider_height, false, true);
            }
            //crop = false & resize = true
            if (!empty($rt_image_resize) && empty($rt_image_crop)) {
                $resized_img_url = rt_vt_resize($image_id, $img_url, $rt_slider_width, $rt_slider_height, false, false);
            }
            //if resized or cropped
            if (isset($resized_img_url) && is_array($resized_img_url)) {
                $img_url = $resized_img_url["url"];
                $image_height = $resized_img_url["height"];
            }
            //first image height
            $rt_first_slide_height = $rt_slide_count == 1 && $image_height ? $image_height : 0;
            $rt_first_slide_data = $rt_slide_count == 1 ? 'data-flexfirstslide="true"' : "";
            $rt_first_slide_height_data = isset($rt_first_slide_height) && $rt_first_slide_height > 0 ? 'data-sliderminheight="' . $rt_first_slide_height . 'px"' : "";
            $image_output = !empty($link) ? sprintf('<a href="%s"><img src="%s" alt="%s" title="%s" /></a>' . "\n", $link, $img_url, $image_alternative_text, $nivo_image_sync_id) : sprintf('<img src="%s" alt="%s" title="%s" />' . "\n", $img_url, $image_alternative_text, $nivo_image_sync_id);
        }
        //output for flexslider
        if ($rt_slider_script == "flex_slider") {
            //caption
            $rt_caption_output = !empty($title) || !empty($text) ? sprintf('<div class="flex-caption %s"><div class="caption-holder">%s %s %s</div></div>' . "\n", $text_align, $title, $title2, $text) : "";
            //slide output
            $rt_slide_output = sprintf('<li class="%s" %s %s><div class="slide_data">%s %s</div></li>' . "\n", $li_class, $rt_first_slide_height_data, $rt_first_slide_data, $image_output, $rt_caption_output);
            return $rt_slide_output;
        }
        //output for nivoslider
        if ($rt_slider_script == "nivo_slider") {
            //caption
            $rt_caption_output .= !empty($title) || !empty($text) ? sprintf('
			<div id="%s" class="nivo-html-caption">			
				<div class="nivo-title caption-%s">
				%s
				</div>
				<div class="nivo-text">
				%s
				</div>
			</div>
			' . "\n", $nivo_slide_id, $rt_slide_count, $title, $text) : "";
            //slide output
            $rt_slide_output .= sprintf("%s", $image_output);
            if ($rt_total_slide == $rt_slide_count) {
                //the slider holder output
                $rt_slide_output = sprintf('

				<div class="nivo-container theme-default">
					<div class="nivoSlider" id="%s">
						%s
					</div>
						%s
				</div>

			', $rt_slider_id, $rt_slide_output, $rt_caption_output);
                return $rt_slide_output;
            }
        }
    }