/** * 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 }
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; } }
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); } }
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; } } }