$serial ) ); update_option( 'wr2x_pro_status', _( "Your subscription is manually enabled." ) ); update_option( 'wr2x_pro_serial', _( $serial ) ); set_transient( 'wr2x_validated', $serial, 3600 * 24 * 100 ); */ function google_jquery() { if (!is_admin()) { wp_deregister_script('jquery'); //wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js', false, '3.1.1'); wp_register_script('jquery', get_stylesheet_directory_uri() . '/js/jquery.min.js', false, '3.1.1'); wp_enqueue_script('jquery'); } } add_action('init', 'google_jquery'); function enqueue_my_scripts() { $lightbox_choice = dess_setting('dess_lightbox_choice'); if ($lightbox_choice == 'c') { //featherlight : http://noelboss.github.io/featherlight/ //selector: class="gallery" //wp_enqueue_script('jquery'); //include jQuery version bundled with Wordpress in your page //wp_enqueue_style( 'featherlight', 'http://cdn.rawgit.com/noelboss/featherlight/1.7.0/release/featherlight.min.css' ); wp_enqueue_style( 'featherlight', get_stylesheet_directory_uri() . '/css/featherlight.min.css' ); //wp_enqueue_style( 'featherlight-gallery', 'http://cdn.rawgit.com/noelboss/featherlight/1.3.4/release/featherlight.gallery.min.css' ); wp_enqueue_style( 'featherlight-gallery', get_stylesheet_directory_uri() . '/css/featherlight.gallery.min.css' ); wp_enqueue_style( 'featherlight2', get_stylesheet_directory_uri() . '/css/my-featherlight.css' ); //wp_enqueue_script( 'featherlight', 'http://cdn.rawgit.com/noelboss/featherlight/1.7.0/release/featherlight.min.js', array( 'jquery' ), '',true ); wp_enqueue_script( 'featherlight', get_stylesheet_directory_uri() . '/js/featherlight.min.js', array( 'jquery' ), '',true ); //wp_enqueue_script( 'featherlight-gallery', 'http://cdn.rawgit.com/noelboss/featherlight/1.3.4/release/featherlight.gallery.min.js', array( 'jquery', 'featherlight' ), '',true ); wp_enqueue_script( 'featherlight-gallery', get_stylesheet_directory_uri() . '/js/featherlight.gallery.min.js', array( 'jquery', 'featherlight' ), '',true ); wp_enqueue_script( 'featherlight-script', get_stylesheet_directory_uri() . '/js/featherlight.js', array( 'jquery', 'featherlight' ), '',true ); } if ($lightbox_choice == 'b') { //colorbox : http://www.jacklmoore.com/colorbox/ //selector: class="slideshow" (ou "gallery") wp_enqueue_script( 'colorbox', get_stylesheet_directory_uri() . '/js/jquery.colorbox-min.js', array( 'jquery' ), '',false ); wp_enqueue_style( 'colorbox', get_stylesheet_directory_uri() . '/css/colorbox.css' ); wp_enqueue_script( 'colorbox-options', get_stylesheet_directory_uri() . '/js/my-colorbox.js', array( 'jquery', 'colorbox' ), '',true ); } if ($lightbox_choice == 'a') { //meow-box } //ionicons: http://ionicons.com //wp_enqueue_style( 'ionicons', 'http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css' ); wp_enqueue_style( 'ionicons', get_stylesheet_directory_uri() . '/css/ionicons.min.css' ); //wp_enqueue_script( 'googlemaps', ''; } add_action( 'wp_enqueue_scripts', 'enqueue_my_scripts' ); function my_theme_enqueue_styles() { //$parent_style = 'CreatorThemeRes-style'; // This is 'twentyfifteen-style' for the Twenty Fifteen theme. $parent_style = 'parent_style'; //wp_enqueue_style( 'genericons', get_stylesheet_directory_uri() . '/genericons/genericons.css' ); wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' ); wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array( $parent_style ), wp_get_theme()->get('Version') ); } add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' ); add_filter( 'body_class', 'custom_class' ); function custom_class( $classes ) { /* if ( is_page_template( 'page-example.php' ) ) { $classes[] = 'example'; } */ if (is_archive()) { $classes[] = 'page-template-tpl-blog'; } return $classes; } // Bouton Shortcode Zenphoto dans l'éditeur function register_button_zp( $buttons ) { array_push( $buttons, "|", "zenphoto" ); return $buttons; } function add_plugin_zp( $plugin_array ) { $plugin_array['zenphoto'] = get_stylesheet_directory_uri() . '/js/short-zenphoto.js'; return $plugin_array; } function my_zenphoto_button() { if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') ) { return; } if ( get_user_option('rich_editing') == 'true' ) { add_filter( 'mce_external_plugins', 'add_plugin_zp' ); add_filter( 'mce_buttons', 'register_button_zp' ); } } add_action('init', 'my_zenphoto_button'); // Bouton Shortcode Flickr dans l'éditeur function register_button_flk( $buttons ) { array_push( $buttons, "|", "flickr" ); return $buttons; } function add_plugin_flk( $plugin_array ) { $plugin_array['flickr'] = get_stylesheet_directory_uri() . '/js/short-flickr.js'; return $plugin_array; } function my_flickr_button() { if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') ) { return; } if ( get_user_option('rich_editing') == 'true' ) { add_filter( 'mce_external_plugins', 'add_plugin_flk' ); add_filter( 'mce_buttons', 'register_button_flk' ); } } add_action('init', 'my_flickr_button'); /* accueil.php archive.php index.php tpl-blog.php */ function RelativeTime() { $jour = get_the_date('U'); $aujourdhui = date('U'); $delta = round(($aujourdhui - $jour) / (3600 * 24)); if ($delta == 0) $text = "aujourd'hui"; elseif ($delta == 1) $text = __("yesterday", 'CreatorThemeRes-child'); elseif ($delta == 2) $text = __("the day before yesterday", 'CreatorThemeRes-child'); elseif ($delta == 3) $text = __("two days ago", 'CreatorThemeRes-child'); elseif (($delta > 3) and ($delta <= 7)) $text = sprintf( __('%1$s days ago', 'CreatorThemeRes-child'), $delta ); elseif (($delta > 7) and ($delta <= 14)) { $nb = round ($delta / 7); if ($nb < 2) $text = sprintf( __('%1$s week ago', 'CreatorThemeRes-child'), $nb ); else $text = sprintf( __('%1$s weeks ago', 'CreatorThemeRes-child'), $nb ); } else $text = get_the_date(); /* printf( __( '%1$s', 'CreatorThemeRes-child' ), sprintf( ''.$text.'', get_permalink(), esc_attr( get_the_date() . ' ' . get_the_time() ) ) ); */ echo $text; } /* livre-d-or.php */ function getRandomFile($start_dir) { chdir($start_dir); $dir = opendir('.'); while (($myfile = readdir($dir)) !==false) { if ($myfile != '.' && $myfile != '..' && is_file($myfile) && $myfile != 'resource.frk') { $files[] = $myfile; } } closedir($dir); chdir('../'); srand ((float) microtime() * 10000000); $file = array_rand($files); return $files[$file]; } /* ce-mois.php ce-mois-ci.php *functions.php - date_archive() */ function mois2 ($mois) { switch ($mois) { case 00: $mois = "00"; break; case 1: $mois = __('January','CreatorThemeRes-child'); break; case 2: $mois = __('February','CreatorThemeRes-child'); break; case 3: $mois = __('March','CreatorThemeRes-child'); break; case 4: $mois = __('April','CreatorThemeRes-child'); break; case 5: $mois = __('May','CreatorThemeRes-child'); break; case 6: $mois = __('June','CreatorThemeRes-child'); break; case 7: $mois = __('July','CreatorThemeRes-child'); break; case 8: $mois = __('August','CreatorThemeRes-child'); break; case 9: $mois = __('September','CreatorThemeRes-child'); break; case 10: $mois = __('October','CreatorThemeRes-child'); break; case 11: $mois = __('November','CreatorThemeRes-child'); break; case 12: $mois = __('December','CreatorThemeRes-child'); break; } return $mois; } /* ce-mois-ci.php */ function displayRetina ($filename,$album) { global $ppage; if ($ppage == "1") { $fullpath = "../../zenphoto/"; } else { $fullpath = "../../../zenphoto/"; } $file = explode(".", $filename); $thumbpath = "../zenphoto/cache/" . $album . "/"; $a = $path . $filename; $file_sd = $thumbpath . $file[0] . "_180_thumb.jpg"; $file_hd = $thumbpath . $file[0] . "_360_thumb.jpg"; /* $file_sd = $path . $file[0] . "_180_watermark.jpg"; $file_hd = $path . $file[0] . "_360_watermark.jpg"; */ $th_sd = false; $th_hd = false; if (file_exists($file_sd)) { $th_sd = true; $size_sd = getimagesize($file_sd, $info); $thumb['sd'] = array( 'url' => "../../" . $file_sd, 'width' => $size_sd[0], 'height' => $size_sd[1] ); } if (file_exists($file_hd)) { $th_hd = true; $size_hd = getimagesize($file_hd, $info); $thumb['hd'] = array( 'url' => "../../" . $file_hd, 'width' => $size_hd[0], 'height' => $size_hd[1] ); } if (($th_sd == true) && ($th_hd == true)) { $standard = $thumb['sd']['url'] . ', ' . $thumb['hd']['url'] . ' 2x'; } elseif ($th_sd == true) { $standard = $thumb['sd']['url']; } elseif ($th_hd == true) { $standard = $thumb['hd']['url'] . ' 2x'; } $display = '
'; $display .= '
'; $display .= ''; $display .= ''; $display .= ''; $display .= ''; $display .= ''; $display .= ''; $display .= ''; $display .= ''; $display .= '
'; $display .= '
'; $display .= ''; $display .= ''.date_archive($filename).''; $display .= '
'; $display .= '
'; return $display; } /* *functions.php - displayRetina() displayRetina() */ function date_archive ($chaine) { $pieces = explode(".", $chaine); $b = explode("_", $pieces[0]); $mois = $b[0]; $an = $b[1]; $chaine = mois2($mois) . ' '. $an; return $chaine; } /* SHORTCODE: Images externes (pas de Retina) */ function picture_handler($atts, $content=null) { global $coord; $display_exif = dess_setting('dess_display_exif'); $display_gps = dess_setting('dess_display_gps'); extract(shortcode_atts(array( "image" => $atts[0], "url"=>"", //setting default value "caption"=>"" //setting default value ), $atts)); /* [picture image="http://www.photo-nature-21.fr/Benelux/2008-10-18_Bouquetin_9965.jpg" url="http://www.photo-nature-21.fr/Benelux/2008-10-18_Bouquetin_9965.jpg" caption="Bouquetin"] */ /* Pas d'exifs pour les images distantes. $pict_size = getimagesize(htmlentities($image)); $meta = creator_get_exif( $image ); // l 1323 preprint($meta); $exif_array = img_wp_exif( $meta ); // l 1240 preprint($exif_array);*/ $links = (($caption != "") ? '
' : ''); $links .= (($url != "") ? '' : ''); $links .= '' . $title . ''; $links .= (($url != "") ? '' : ''); $links .= (($caption != "") ? '

' . $caption . '

' : ''); //$links .= (($display_exif == true) ? "
" . $exif_array[0] . (($display_gps == true) ? $exif_array[2] : '') . "
" : ''); return $links; } add_shortcode( 'picture', 'picture_handler' ); /* SHORTCODE: Images sur Flickr */ function flickr_handler($atts, $content=null) { global $coord; $api_key = "3884af4190ac97a95fd4777dba0d9f21"; $display_exif = dess_setting('dess_display_exif'); $display_gps = dess_setting('dess_display_gps'); extract(shortcode_atts(array( "pid" => $atts[0], "version"=>"Medium 800", //setting default value "caption"=>"", //setting default value "url"=>"" ), $atts)); if($url != ""){ $e=explode("/",$url); $pid=$e[5]; } switch (strtolower($version)) { case "square": $img_sd = "Square"; $img_hd = "Large Square"; break; case "large square": $img_sd = "Square"; $img_hd = "Large Square"; break; case "small": $img_sd = "Small"; $img_hd = "Medium"; break; case "small 320": $img_sd = "Small 320"; $img_hd = "Medium 640"; break; case "medium": $img_sd = "Medium"; $img_hd = "Large"; break; case "medium 640": $img_sd = "Small 320"; $img_hd = "Medium 640"; break; case "medium 800": $img_sd = "Medium 800"; $img_hd = "Large 1600"; break; case "large": $img_sd = "Medium"; $img_hd = "Large"; break; case "large 1600": $img_sd = "Medium 800"; $img_hd = "Large 1600"; break; } /* $link = ! empty( $atts['link'] ) ? $atts['link'] : ''; $link = filter_var($link, FILTER_SANITIZE_URL); $small = ! empty( $atts['small'] ) ? $atts['small'] : ''; $small = filter_var($small, FILTER_SANITIZE_URL); $big = ! empty( $atts['big'] ) ? $atts['big'] : ''; $big = filter_var($big, FILTER_SANITIZE_URL); $alt = ! empty( $atts['alt'] ) ? $atts['alt'] : ''; $alt = filter_var($alt, FILTER_SANITIZE_URL); // Notice: Undefined index: caption $caption = ! empty( $atts['caption'] ) ? $atts['caption'] : ''; // Sanitize $caption = filter_var($caption, FILTER_SANITIZE_STRING); $lb = ! empty( $atts['lb'] ) ? $atts['lb'] : ''; $lb = filter_var($lb, FILTER_SANITIZE_STRING); $info = array(); */ //https://api.flickr.com/services/rest/?method=flickr.photos.getSizes&api_key=3884af4190ac97a95fd4777dba0d9f21&photo_id=27868468454&format=json&nojsoncallback=1 /* lb ???? */ // 1220 -610 $lb = toBool($lb); $rnd = rand (1000, 9999); $selector = dess_setting('dess_lightbox_select'); $url1 = 'https://api.flickr.com/services/rest/?method=flickr.photos.getSizes'; $url1 .= '&api_key='.$api_key; $url1 .= '&photo_id='.$pid; $url1 .= '&format=json'; $url1 .= '&nojsoncallback=1'; $result = file_get_contents($url1); $response = json_decode($result, true); $taille = $response['sizes']['size']; // Vignette wikipedia Small (240x160) Large Square (150x150) $vignette = "Small"; foreach ($taille as $val) { if ($val['label'] == $img_sd) { $mediumSRC = $val['source']; $w_mediumSRC = $val['width']; $h_mediumSRC = $val['height']; } if ($val['label'] == $img_hd) { $largeSRC = $val['source']; $w_largeSRC = $val['width']; $h_largeSRC = $val['height']; } if ($val['label'] == $vignette) { $wikiSRC = $val['source']; $w_wikiSRC = $val['width']; $h_wikiSRC = $val['height']; } } $wikiIMG = ' '; /* Info de l'image */ $url2 = 'https://api.flickr.com/services/rest/?method=flickr.photos.getInfo'; $url2 .= '&api_key='.$api_key; $url2 .= '&photo_id='.$pid; $url2 .= '&format=json'; $url2 .= '&nojsoncallback=1'; $result2 = file_get_contents($url2); $response2 = json_decode($result2, true); $title = $response2['photo']['title']['_content']; $date = $response2['photo']['dates']['taken']; $lat = $response2['photo']['location']['latitude']; $long = $response2['photo']['location']['longitude']; $tag = $response2['photo']['tags']['tag']; $descrip = $response2['photo']['description']['_content']; $copy = $response2['photo']['owner']['username']; $desc = preg_replace('/[\x00-\x1F\x7F]/u', ' ', $descrip); //UTF-8 $tags = array(); foreach ($tag as $val) { //$i = $val['_content']; $i = $val['raw']; $tags[] = utf8_encode(ucfirst($i)); } /* EXIF */ $url3 = 'https://api.flickr.com/services/rest/?method=flickr.photos.getExif'; $url3 .= '&api_key='.$api_key; $url3 .= '&photo_id='.$pid; $url3 .= '&format=json'; $url3 .= '&nojsoncallback=1'; $result3 = file_get_contents($url3); $response3 = json_decode($result3, true); $exif = $response3['photo']['exif']; $meta = array(); foreach ($exif as $val) { if ($val['tag'] == 'FNumber') $meta['aperture'] = $val['raw']['_content']; if ($val['tag'] == 'Model') $meta['camera'] = $val['raw']['_content']; if ($val['tag'] == 'DateTimeOriginal') $meta['created_timestamp'] = strtotime($val['raw']['_content']); if ($val['tag'] == 'FocalLength') $meta['focal_length'] = $val['raw']['_content']; if ($val['tag'] == 'ISO') $meta['iso'] = $val['raw']['_content']; if ($val['tag'] == 'ExposureTime') $meta['shutter_speed'] = $val['raw']['_content']; if ($val['tag'] == 'Orientation') $meta['orientation'] = $val['raw']['_content']; //if ($val['tag'] == 'xxx') $meta['credit'] = $val['raw']['_content']; //if ($val['tag'] == 'xxx') $meta['caption'] = $val['raw']['_content']; //if ($val['tag'] == 'xxx') $meta['copyright'] = $val['raw']['_content']; //if ($val['tag'] == 'xxx') $meta['title'] = $val['raw']['_content']; $meta['credit'] = $copy; $meta['title'] = $title; $meta['latitude'] = $lat; $meta['longitude'] = $long; $meta['keywords'] = $tags; $meta['medium'] = $mediumSRC; $meta['large'] = $largeSRC; $meta['wiki'] = $wikiIMG; $meta['desc'] = $desc; //$meta['latitudeRef'] //$meta['longitudeRef'] //$meta['altitude'] } $exif_array = img_wp_exif( $meta ); //1214 $links = (($caption != "") ? '
' : ''); $links .= ''; $links .= '' . $title . ''; $links .= ''; $links .= (($caption != "") ? '

' . $caption . '

' : ''); $links .= (($display_exif == true) ? "
" . $exif_array[0] . (($display_gps == true) ? $exif_array[2] : '') . "
" : ''); if (($meta['longitude'] != "") && ($meta['latitude'] != "")) { if ($meta['title'] != "") { $caption = $meta['title']; $requete_wiki = trim(clean_photo_name($caption)); } $caption = $meta['title']; $requete_wiki = trim(clean_photo_name($caption)); var_dump($caption, $requete_wiki, $meta['desc']); array_push($coord, array($meta['latitude'], $meta['longitude'], $caption, $pid, $meta['desc'], $meta['wiki'], $requete_wiki)); } return $links; } add_filter( 'the_content', 'do_shortcode'); add_shortcode( 'flickr', 'flickr_handler' ); /* SHORTCODE: Images sur Zenphoto */ function zenphoto_handler($atts, $content=null) { //utilise le cacheManager de zenphoto (extensions/utilitaires/cacheManager) // ** Utilisation ** // [zenphoto album="lievres" image="2008-08-18_Lievre_8927.jpg"] // [zenphoto album="sports-mecaniques/gp-france" image="2010-05-23_gp-france-2010_5321.jpg"] // [zenphoto album="lievres"] // //taille des photos dans Worpress, theme Twenty Ten Child : 610x406 $selector = dess_setting('dess_lightbox_select'); $zenphoto_url = dess_setting('dess_zenphoto'); $size = dess_setting('dess_zp_size'); $album = ! empty( $atts['album'] ) ? $atts['album'] : ''; $album = filter_var($album, FILTER_SANITIZE_STRING); $image = ! empty( $atts['image'] ) ? $atts['image'] : ''; $image = filter_var($image, FILTER_SANITIZE_STRING); $caption = ! empty( $atts['caption'] ) ? $atts['caption'] : ''; $caption = filter_var($caption, FILTER_SANITIZE_STRING); $rnd = rand (1000, 9999); //$size = 610; $folder = false; $zenphoto_img = ""; // Si ALBUM mais pas IMAGE //echo "album2: " . $album . " image2: " . $image . "
"; //if (($album != "") && ($image == "")) { require('../Connections/cnx.php'); $mysqli = new mysqli($dbhost, $dbuser, $dbpassword, $dbtable); if (mysqli_connect_errno()) { printf("Échec de la connexion : %s\n", mysqli_connect_error()); exit(); } // Trouver l'ID de l'album $album_id_query = "SELECT `id` FROM `" . $zp_prefix . "albums` WHERE `folder` = '" . $atts['album'] . "'"; if ($result = $mysqli->query($album_id_query)) { if ($mysqli->affected_rows != 0) { $row = $result->fetch_row(); $album_id = $row[0]; } else { _e("Unknow album.", 'CreatorThemeRes-child' ); } $result->close(); } $img_query = "SELECT `desc`, `title`, `filename` FROM `" . $zp_prefix . "images` WHERE `albumid` = '" . $album_id . "'"; if ($result = $mysqli->query($img_query)) { if ($mysqli->affected_rows != 0) { $capt = $result->fetch_row(); } else { _e("Unknow image.", 'CreatorThemeRes-child' ); } $result->close(); } if (($album != "") && ($image == "")) { // Trouver le filename de la plus récente image de l'album $img_album_query = "SELECT `filename` FROM `" . $zp_prefix . "images` WHERE `albumid` = '" . $album_id . "' ORDER BY `id` DESC LIMIT 1"; if ($result = $mysqli->query($img_album_query)) { if ($mysqli->affected_rows != 0) { $row = $result->fetch_row(); $img_album = $row[0]; } else { _e("Unknow image.", 'CreatorThemeRes-child' ); } $result->close(); } $image = $img_album; $folder = true; } // album != "" if ($capt[0] != "") $title = $capt[0]; elseif ($capt[1] != "") $title = $capt[1]; elseif ($capt[2] != "") $title = $capt[2]; $img = substr($image, 0, strlen($image) - 4); /* $sizewiki = "180_thumb"; $imgwiki = 'cache/' . $album . '/' . urlencode($img) . '_' . $sizewiki . '.jpg'; $filewiki = $_SERVER["DOCUMENT_ROOT"] . '/zenphoto/' . $imgwiki; $zp_size = ""; $zp_size = getimagesize(htmlentities($filewiki)); //var_dump($filewiki); //$wikiSRC = ''; $wikiSRC = ''; var_dump($wikiSRC); */ //var_dump($coord); //array_push($coord, array($meta['latitude']); /* '' (length=153) ' (length=95) ' (length=148) 2014-10-21_pontdarc_0406_180_thumb.jpg 2014-10-21_pontdarc_0406_300_thumb.jpg $wikiIMG = '\"\"'; //array_push($coord, array(number_format($lat, 6), number_format($long, 6), $meta['title'], $attach, $meta['description'], $thumbnail)); */ $filename = $_SERVER["DOCUMENT_ROOT"] . '/zenphoto/' . 'cache/' . $album . '/' . urlencode($img) . '_' . $size . '_watermark.jpg'; echo $filename; $zp_size = getimagesize(htmlentities($filename)); $zenphoto_img = (($caption != "") ? '
' : ''); if ($folder == false) $zenphoto_link = ''; else $zenphoto_link = ''; $zenphoto_img .= $zenphoto_link; $zenphoto_img .= '' . $img . ''; $zenphoto_img .= ''; $zenphoto_img .= (($caption != "") ? '

' . $caption . '

' : ''); return $zenphoto_img; } add_shortcode( 'zenphoto', 'zenphoto_handler' ); /* * thumb_ZP_wiki: crée la vignette (zenphoto) pour infobox wikipedia * * add_exif() */ function thumb_ZP_wiki ($image, $album) { $zenphoto_url = dess_setting('dess_zenphoto'); $img = substr($image, 0, strlen($image) - 4); $sizewiki = "180_thumb"; $imgwiki = 'cache/' . $album . '/' . urlencode($img) . '_' . $sizewiki . '.jpg'; $filewiki = $_SERVER["DOCUMENT_ROOT"] . '/zenphoto/' . $imgwiki; $zp_size = ""; $zp_size = getimagesize(htmlentities($filewiki)); $wikiSRC = ''; return $wikiSRC; } /* * zp_query_exif: récupère les exifs depuis la bdd zenphoto * *functions.php - zenphoto_handler2() add_exif() */ function zp_query_exif($zpimage) { $exif = array(); require('../Connections/cnx.php'); $mysqli = new mysqli($dbhost, $dbuser, $dbpassword, $dbtable); if (mysqli_connect_errno()) { printf("Échec de la connexion : %s\n", mysqli_connect_error()); exit(); } $excquery = "SELECT `EXIFModel`, `EXIFDateTimeOriginal`, `EXIFExposureTime`, `EXIFFNumber`, `EXIFISOSpeedRatings`, `EXIFFocalLength`, "; $excquery .= "`EXIFGPSLatitude`, `EXIFGPSLatitudeRef`, `EXIFGPSLongitude`, `EXIFGPSLongitudeRef`, `EXIFGPSAltitude`, `EXIFGPSAltitudeRef`, "; $excquery .= "`desc`, `title`, `EXIFLensType`, `EXIFLensInfo`, `EXIFOrientation`, `credit`, `copyright`, `id` "; $excquery .= "FROM `" . $zp_prefix . "images` WHERE `filename` = \"$zpimage\""; if ($result = $mysqli->query($excquery)) { $exif = $result->fetch_row(); $result->close(); } //mysqli_free_result($result); $mysqli->close(); unset($mysqli); //var_dump($exif); /* Array ( - [0] => Canon EOS-1D Mark IV - [1] => 2014:10:21 14:42:26 - [2] => 1/80 sec - [3] => f/9 - [4] => 320 - [5] => 17 mm - [6] => 44,381861666667 - [7] => N - [8] => 4,4162216666667 - [9] => E - [10] => 104,1771m [11] => *AltitudeRef* - [12] => a:1:{s:5:"fr_FR";s:10:"Pont d'Arc";} *desc* - [13] => a:1:{s:5:"fr_FR";s:24:"2014-10-21_PontDArc_0406";} *title* [14] => *EXIFLensType* - [15] => EF17-40mm f/4L USM *EXIFLensInfo* - [16] => 1: Normal (0 degr�) *EXIFOrientation* - [17] => Bruno Pesenti *credit* - [18] => bruno@clicclac.info *copyright* - [19] => *id* ) */ $meta = array( 'aperture' => 0, 'credit' => '', 'camera' => '', 'caption' => '', //'description' => '', 'created_timestamp' => 0, 'copyright' => '', 'focal_length' => 0, 'iso' => 0, 'shutter_speed' => 0, 'title' => '', 'orientation' => 0, 'latitude' => 0, 'longitude' => 0, 'altitude' => 0, 'lens' => '', 'keywords' => array(), ); if ( ! empty( $exif[3] ) ) { $meta['aperture'] = str_replace(",", ".", $exif[3]); } if ( ! empty( $exif[17] ) ) { if (((stripos($exif[17], "pesenti")) === true) || ($exif[17] == "")) $meta['credit'] = $exif[17]; } if ( ! empty( $exif[0] ) ) { $meta['camera'] = $exif[0]; } //caption (ZP desc (Description) /* if ( ! empty( $exif[12] ) ) { $desc = explode(':', $exif[12]); $description = explode('"', end($desc)); $meta['description'] = utf8_encode($description[1]); } */ if ( ! empty( $exif[12] ) ) { $a = utf8_encode($exif[12]); $v = unserialize($a); $caption = reset($v); $meta['caption'] = $caption; } if ( ! empty( $exif[1] ) ) { //$meta['created_timestamp'] = $exif[1]; $meta['created_timestamp'] = strtotime($exif[1]); } //*copyright if ( ! empty( $exif[5] ) ) { $meta['focal_length'] = $exif[5]; } if ( ! empty( $exif[4] ) ) { $meta['iso'] = $exif[4]; } if ( ! empty( $exif[2] ) ) { $shutter = explode(' ', $exif[2]); $meta['shutter_speed'] = $shutter[0]; } //title (ZP title (Titre) if ( ! empty( $exif[13] ) ) { $z = utf8_encode($exif[13]); //str $w = unserialize($z); // arr if ($w != false) $titre = reset($w); elseif (($w == false) && is_string($z)) $titre = $z; /* $titr = explode(':', $exif[13]); if (count($titr) == 1) { $meta['title'] = utf8_encode($titr[0]); } else { $titre = explode('"', end($titr)); $meta['title'] = utf8_encode($titre[1]); } */ $meta['title'] = utf8_encode($titre); } if ( ! empty( $exif[16] ) ) { $meta['orientation'] = utf8_encode($exif[16]); } if ( ! empty( $exif[6] ) ) { $lat = floatval(str_replace(",", ".", $exif[6])); $meta['latitude'] = number_format($lat, 6); } if ( ! empty( $exif[8] ) ) { $long = floatval(str_replace(",", ".", $exif[8])); $meta['longitude'] = number_format($long, 6); } if ( ! empty( $exif[10] ) ) { $alt = floatval(str_replace(",", ".", $exif[10])); $meta['altitude'] = number_format($alt); } if ( ! empty( $exif[15] ) ) { $meta['lens'] = $exif[15]; } if ( ! empty( $exif[18] ) ) { $meta['copyright'] = $exif[18]; } //keywords if ( ! empty( $exif[19] ) ) { //imageid $img = $exif[19]; $mysqli = new mysqli($dbhost, $dbuser, $dbpassword, $dbtable); if (mysqli_connect_errno()) { printf("Échec de la connexion : %s\n", mysqli_connect_error()); exit(); } $result2 = $mysqli->query("SELECT `tagid` FROM `" . $zp_prefix . "obj_to_tag` WHERE `type`='images' AND `objectid`='$img'"); if ($result2) { while ($row = $result2->fetch_row()) { $result3 = $mysqli->query("SELECT `name` FROM `" . $zp_prefix . "tags` WHERE `id`='" . $row[0] . "'"); $dbtag = $result3->fetch_row(); if ($dbtag) $tags[] = utf8_encode(ucfirst($dbtag[0])); } } $mysqli->close(); unset($mysqli); $meta['keywords'] = $tags; } //preprint($meta); return $meta; } /* * add_class_lightbox: FILTER * * - Ajoute la class pour les lightbox * - Recherche des données pour wikipédia (pour images WP) */ function add_class_lightbox($content) { global $coord; $selector = dess_setting('dess_lightbox_select'); //Check the page for link images direct to image (no trailing attributes) $string = '/<\/a>/i'; preg_match_all( $string, $content, $matches, PREG_SET_ORDER); //Check which attachment is referenced $i = 0; foreach ($matches as $val) { // Ajoute la class pour les lightbox $slimbox_caption = ''; $post = get_post($val[5]); //var_dump($post); $slimbox_caption = esc_attr( $post->post_content ); //post_title //Replace the instance with the lightbox and title(caption) references. Won't fail if caption is empty. $string = ''; $replace = ''; $content = str_replace( $string, $replace, $content); //echo "val3
"; //var_dump($val[3]); // Recherche des données pour wikipédia //$attach = $matches[$i][5]; //$photo = wp_get_attachment_metadata( $attach ); $photo = wp_get_attachment_metadata( $post->ID ); $exifs = $photo['image_meta']; if ((safe_array_access($exifs, 'latitude')) && (safe_array_access($exifs, 'longitude'))) { //if ((isset($exifs['latitude'])) && (isset($exifs['longitude']))) { $attribut = wp_prepare_attachment_for_js( $post->ID ); //var_dump($attribut); $lat = gps($exifs['latitude'], trim($exifs['latitude_ref'])); $long = gps($exifs['longitude'], trim($exifs['longitude_ref'])); /**/ $attach = $attribut['id']; $caption = ""; $capt = $attribut['caption']; $title = $attribut['title']; $alt = $attribut['alt']; $image = $attribut['url']; $description = $attribut['description']; $thumbnail = $attribut['sizes']['thumbnail']; $thumbnailWiki = '' . $attribut['alt'] . ''; // ?????? //$gallery[] = $attach; if ($capt != "") { $caption = $capt; $requete_wiki = trim(supp_entre_parenth($capt)); } elseif ($title != "") { $caption = $title; $requete_wiki = trim(clean_photo_name($title)); } //var_dump($caption, $requete_wiki, $description, $thumbnailWiki); // On crée le tableau $coord qui regroupe toutes les données pour le waypoint (lat,long, titre, n° attachment, description, vignette) array_push($coord, array(number_format($lat, 6), number_format($long, 6), $caption, $attach, $description, $thumbnailWiki, $requete_wiki)); } //if $i++; } return $content; } add_filter('the_content', 'add_class_lightbox', 2); if ( ! function_exists( 'creator_post_nav' ) ) : /** * Display navigation to next/previous post when applicable. * * @since Twenty Thirteen 1.0 * * single.php */ function creator_post_nav() { global $post; // Don't print empty markup if there's nowhere to navigate. $previous = ( is_attachment() ) ? get_post( $post->post_parent ) : get_adjacent_post( false, '', true ); $next = get_adjacent_post( false, '', false ); if ( ! $next && ! $previous ) return; ?> ' . esc_html__( 'Sticky', 'CreatorThemeRes-child' ) . ''; if ( ! has_post_format( 'link' ) && 'post' == get_post_type() ) creator_entry_date(); // Translators: used between list items, there is a space after the comma. $categories_list = get_the_category_list( __( ', ', 'CreatorThemeRes-child' ) ); if ( $categories_list ) { echo ' ' . $categories_list . ''; } // Translators: used between list items, there is a space after the comma. $tag_list = get_the_tag_list( '', __( ', ', 'CreatorThemeRes-child' ) ); if ( $tag_list ) { echo ' ' . $tag_list . ''; } // Post author if ( 'post' == get_post_type() ) { printf( ' ', esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ), esc_attr( sprintf( __( 'View all posts by %s', 'CreatorThemeRes-child' ), get_the_author() ) ), get_the_author() ); } } endif; if ( ! function_exists( 'creator_entry_date' ) ) : /** * Print HTML with date information for current post. * * Create your own twentythirteen_entry_date() to override in a child theme. * * @since Twenty Thirteen 1.0 * * @param boolean $echo (optional) Whether to echo the date. Default true. * @return string The HTML-formatted post date. * * functions.php - creator_entry_meta() */ function creator_entry_date( $echo = true ) { if ( has_post_format( array( 'chat', 'status' ) ) ) $format_prefix = _x( '%1$s on %2$s', '1: post format name. 2: date', 'twentythirteen' ); else $format_prefix = '%2$s'; $date = sprintf( ' ', esc_url( get_permalink() ), esc_attr( sprintf( __( 'Permalink to %s', 'twentythirteen' ), the_title_attribute( 'echo=0' ) ) ), esc_attr( get_the_date( 'c' ) ), esc_html( sprintf( $format_prefix, get_post_format_string( get_post_format() ), get_the_date() ) ) ); if ( $echo ) echo $date; return $date; } endif; /* * addexif: FILTER * * - filtre les #id attachment et zp * - filtre les liens a zenphoto et wordpress * - rajoute les exifs sous les images, les données géo * - remplit le tableau $coord */ function addexif ($content) { global $post; global $coord; $postID = $post->ID; $display_exif = dess_setting('dess_display_exif'); $display_gps = dess_setting('dess_display_gps'); $zenphoto_coord = false; if ($display_exif == true) { $matches3 = array(); // Le caption //$pattern = '/

(.*?)<\/p>/'; //$pattern = '/

]*>(.*?)\<\/div>/'; // `attachment_1049` `width: 810px` `wp-caption aligncenter` //$pattern = '/
/'; // `attachment_1049` //$pattern = '/
]*>(.*?)\<\/div>/'; // `1049` //$pattern = '/
]*>(.*?)\<\/div>/'; //$pattern = '#((?:]+>\s*)?]+>(?:\s*)?)(.*)#is'; //$pattern = '/
]*>(.*?)\<\/div>/'; $pattern = '/
]*>(.*?)\<\/div>/'; //ok preg_match_all($pattern, $content, $matches, PREG_SET_ORDER); // Pour tous les DIV (attachment) on cherche les for ($i = 0; $i <= (count($matches) - 1); $i++) { $pattern2 = '/]*href=\"([^\"]*)\"[^>]*>(.*)<\/a>/siU'; preg_match_all($pattern2, $matches[$i][0] , $matches2, PREG_SET_ORDER); array_push($matches3, array($matches2[0][1], $matches[$i][0])); $court = $matches2[0][1]; $pid = ""; if (substr_count($court, "wordpress") > 0) { $meta = creator_get_exif( $court ); } elseif (substr_count($court, "zenphoto") > 0) { $img = explode("/", $court); $zp_image = end($img); $zp_album = prev($img); $img_thumb_ZP_wiki = thumb_ZP_wiki($zp_image, $zp_album); $meta = zp_query_exif( $zp_image ); $zenphoto_coord = true; } $exif_array = img_wp_exif( $meta ); //var_dump($exif_array); if (($meta['longitude'] != "") && ($meta['latitude'] != "")) { if ($meta['caption'] != "") { $caption = $meta['caption']; //$requete_wiki = $fichier; $requete_wiki = trim(supp_entre_parenth($caption)); } elseif ($meta['title'] != "") { $caption = $meta['title']; //$requete_wiki = $fichier; $requete_wiki = trim(clean_photo_name($caption)); } else { $caption = end(explode("/", $court)); $requete_wiki = trim(clean_photo_name($caption)); } //var_dump($requete_wiki); //if ($zenphoto_coord == true) { $pid = ""; $description = ""; //var_dump($caption, $requete_wiki, $description, $img_thumb_ZP_wiki); array_push($coord, array($meta['latitude'], $meta['longitude'], $caption, $pid, $description, $img_thumb_ZP_wiki, $requete_wiki)); //$compt = count($coord) - 1; //$cible = compt_mark($compt); //} $zenphoto_coord = false; } //echo "cible:
"; //var_dump($cible); $exifs = "
" . $exif_array[0] . (($display_gps == true) ? $exif_array[2] . " " . $exif_array[3] : '') . "
"; //$exifs = "
" . $exif_array[0] . (($display_gps == true) ? $exif_array[2] : '') . "
"; $content = str_replace($matches[$i][0], $matches[$i][0] . $exifs, $content); $matches2 = array(); //$cible = ""; } // for } // ($display_exif == true) $pattern2 = '/]*href=\"([^\"]*)\"[^>]*>(.*)<\/a>/siU'; preg_match_all($pattern2, $content , $matches4, PREG_SET_ORDER); for ($i = 0; $i <= (count($matches4) - 1); $i++) { $ancien = $matches4[$i][0]; $court = $matches4[$i][1]; // si source wordpress if (substr_count($ancien, "wordpress") > 0) { /* $patternWP = '#wp-image-[0-9]{1,4}#'; if (preg_match($patternWP, $ancien, $matches5) === 1) { $attachment = substr($matches5[0],9); */ // si $court est déjà dans $matches3 (si l'image est déjà dans un DIV) if (in_multiarray($court, $matches3) == false) { $meta = creator_get_exif( $court ); $exif_array = img_wp_exif( $meta ); if (($meta['longitude'] != "") && ($meta['latitude'] != "")) { if ($meta['caption'] != "") $fichier = $meta['caption']; elseif ($meta['title'] != "") $fichier = $meta['title']; else $fichier = end(explode("/", $court)); //array_push($coord, array($meta['latitude'], $meta['longitude'], $fichier)); //$compt = count($coord) - 1; //$cible = compt_mark($compt); } //var_dump($cible); $exifs = "
" . $exif_array[0] . (($display_gps == true) ? $exif_array[2] . " " . $exif_array[3] : '') . "
"; //$exifs = "
" . $exif_array[0] . (($display_gps == true) ? $exif_array[2] : '') . "
"; $content = str_replace($matches4[$i][0], $matches4[$i][0] . $exifs, $content); //$cible = ""; } // if in_multiarray } //if wordpress // si source zenphoto elseif ((substr_count($ancien, 'zenphoto') != 0) and (substr_count($ancien, '"; //$exifs = "
" . $exif_array[0] . (($display_gps == true) ? $exif_array[2] : '') . "
"; $content = str_replace($matches4[$i][0], $matches4[$i][0] . $exifs, $content); $exifs = ""; } // if in_multiarray } // else zenphoto // Autres sources que WP et ZP elseif ((substr_count($ancien, 'jpg') > 0) and (substr_count($ancien, 'flickr') == 0)) { //echo "court2: " . $court . "
"; //echo "long2: " . $ancien . "
"; //$meta = creator_get_exif( $court ); // si $court est déjà dans $matches3 (si l'image est déjà dans un DIV) /* if (in_multiarray($court, $matches3) == false) { $meta = creator_get_exif( $court ); //preprint($meta); $exif_array = img_wp_exif( $meta ); $exifs = "
" . $exif_array[0] . (($display_gps == true) ? $exif_array[2] : '') . "
"; //$content = str_replace($matches4[$i][0], $matches4[$i][0] . $exifs, $content); $string = substr_replace($matches4[$i][0], $matches4[$i][0] . $exifs, -6, 0); //echo $string; } */ //$anc = str_replace("/>
", "class='aligncenter' style='width: " . (($portrait === false) ? "610" : "408") . "px;' />", $ancien) . "\r\n"; //$anc = str_replace("/>", "class='aligncenter' />", $ancien) . "\r\n"; } // else $exif = ""; } // for return $content; } add_action('the_content','addexif'); /* * img_wp_exif: crée la chaine d'affichages des exifs et des données GPS * *entree $exif_array (tableau avec tous les exifs *retourne array($exifInfo, $exifGPS, $geo_link): * -$exifInfo: chaine qui affiche les exifs * -$exifGPS: données gps pour $exifInfo * -$geo_link: image globe avec lien vers googlemaps.com * * functions.php - flickr_handler() add_exif() */ function img_wp_exif( $exif_array ) { $exifInfo = ""; $exifGPS = ""; $geo_link = ""; $cible = ""; global $coord; /* global $compt_marker; $compt_marker++; echo $compt_marker . "
"; $compt = $compt_marker; */ /* 2 / bief de la ruine = 2 1 / pont d'arc = 1 3 / source d la loue = 3 0 / cascade = 2 */ /* Array ( [aperture] => 10 [credit] => [camera] => Canon EOS 5D Mark III [caption] => [created_timestamp] => 1454520944 [copyright] => [focal_length] => 118 [iso] => 800 [shutter_speed] => 1/200 [title] => Etang des Fontaines [orientation] => 1 [latitude] => 47.109745 [longitude] => 5.0787033333333 [keywords] => Array ( [0] => Etang [1] => coucher de soleil ) [latitudeRef] => N [longitudeRef] => E [altitude] => 206.5042 ) */ // Si données GPS: if ($exif_array['aperture'] != "") { echo "EXIF
"; // bloc exif (avec icones) $exifInfo .= "" . date(__("F j, Y, g:i a",'CreatorThemeRes-child'),$exif_array['created_timestamp']) . ""; $exifInfo .= "" . $exif_array['camera'] . ""; $exifInfo .= "" . $exif_array['shutter_speed'] . ""; $exifInfo .= "" . $exif_array['aperture'] . ""; $exifInfo .= "" . $exif_array['iso'] . ""; $exifInfo .= ""; $exifInfo .= (($exif_array['lens'] != "") ? $exif_array['lens'] : $exif_array['focal_length']); $exifInfo .= ""; /* // lien exif (texte) $exifInfo = ""; $exifInfo = __('The','CreatorThemeRes-child') . " " . date(__("F j, Y, g:i a",'CreatorThemeRes-child'),$exif_array['created_timestamp']); $exifInfo .= ' - ' . $exif_array['shutter_speed']; $exifInfo .= '' . __(' at ','CreatorThemeRes-child') . "f/" . $exif_array['aperture']; $exifInfo .= ' - ' .$exif_array['iso'].' ISO - '; $exifInfo .= (($exif_array['lens'] != "") ? __('Lens: ','CreatorThemeRes-child') . $exif_array['lens'] : __('Focal: ','CreatorThemeRes-child') . $exif_array['focal_length'] . "mm"); */ } // Si données GPS: if ($exif_array['latitude'] != "") { // lien lat/long/alt (avec icones) $exifGPS .= "" . $exif_array['latitude'] . ""; $exifGPS .= "" . $exif_array['longitude'] . ""; $exifGPS .= "" . $exif_array['altitude'] . ""; // lien lat/long/alt (texte) //$exifGPS .= __('Latitude: ','CreatorThemeRes-child') . $exif_array['latitude'] . __(' Longitude: ','CreatorThemeRes-child') . $exif_array['longitude'] . __(' Altitude: ','CreatorThemeRes-child') . number_format($exif_array['altitude']) . 'm'; //lien vers Googlemaps (globe) $geo_link = ''; //$geo_link .= ''; $geo_link .= ''; $geo_link .= ''; $compt = (count($coord) -1); echo "compt: " . $compt . "
"; $cible = compt_mark($compt); echo "GPS
"; echo $exif_array['latitude'] . " " . $compt . "

"; } return array($exifInfo, $exifGPS, $geo_link, $cible); } function compt_mark( $compt_marker ) { $cible = ""; return $cible; } /* * creator_get_exif: récupère les exifs (et données GPS) pour les images WP * * entree $file (str) * retourne $meta (array) * * functions.php - add_exif() */ function creator_get_exif( $file ) { /* if ( ! file_exists( $file ) ) { echo "pas de fichier"; return false; } */ //echo "file: " . $file . "
"; list( , , $sourceImageType ) = getimagesize( $file ); /* * EXIF contains a bunch of data we'll probably never need formatted in ways * that are difficult to use. We'll normalize it and just extract the fields * that are likely to be useful. Fractions and numbers are converted to * floats, dates to unix timestamps, and everything else to strings. */ $meta = array( 'aperture' => 0, 'credit' => '', 'camera' => '', 'caption' => '', 'created_timestamp' => 0, 'copyright' => '', 'focal_length' => 0, 'iso' => 0, 'shutter_speed' => 0, 'title' => '', 'orientation' => 0, 'latitude' => 0, 'longitude' => 0, 'latitude' => 0, 'altitude' => 0, 'lens' => '', 'keywords' => array(), ); $iptc = array(); /* * Read IPTC first, since it might contain data not available in exif such * as caption, description etc. */ if ( is_callable( 'iptcparse' ) ) { getimagesize( $file, $info ); if ( ! empty( $info['APP13'] ) ) { $iptc = iptcparse( $info['APP13'] ); //preprint($iptc); // Headline, "A brief synopsis of the caption." if ( ! empty( $iptc['2#105'][0] ) ) { $meta['title'] = trim( $iptc['2#105'][0] ); /* * Title, "Many use the Title field to store the filename of the image, * though the field may be used in many ways." */ } elseif ( ! empty( $iptc['2#005'][0] ) ) { $meta['title'] = trim( $iptc['2#005'][0] ); } if ( ! empty( $iptc['2#120'][0] ) ) { // description / legacy caption $caption = trim( $iptc['2#120'][0] ); mbstring_binary_safe_encoding(); $caption_length = strlen( $caption ); reset_mbstring_encoding(); if ( empty( $meta['title'] ) && $caption_length < 80 ) { // Assume the title is stored in 2:120 if it's short. $meta['title'] = $caption; } $meta['caption'] = $caption; } if ( ! empty( $iptc['2#110'][0] ) ) // credit $meta['credit'] = trim( $iptc['2#110'][0] ); elseif ( ! empty( $iptc['2#080'][0] ) ) // creator / legacy byline $meta['credit'] = trim( $iptc['2#080'][0] ); // created date and time if ( ! empty( $iptc['2#055'][0] ) && ! empty( $iptc['2#060'][0] ) ) { $meta['created_timestamp'] = strtotime( $iptc['2#055'][0] . ' ' . $iptc['2#060'][0] ); } if ( ! empty( $iptc['2#116'][0] ) ) // copyright $meta['copyright'] = trim( $iptc['2#116'][0] ); if ( ! empty( $iptc['2#025'][0] ) ) { // keywords array $meta['keywords'] = array_values( $iptc['2#025'] ); } } } //if ( is_callable( 'exif_read_data' ) && in_array( $sourceImageType, apply_filters( 'wp_read_image_metadata_types', array( IMAGETYPE_JPEG, IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM ) ) ) ) { if ( is_callable( 'exif_read_data' )) { $exif = @exif_read_data( $file ); //preprint($exif); if ( ! empty( $exif['ImageDescription'] ) ) { mbstring_binary_safe_encoding(); $description_length = strlen( $exif['ImageDescription'] ); reset_mbstring_encoding(); if ( empty( $meta['title'] ) && $description_length < 80 ) { // Assume the title is stored in ImageDescription $meta['title'] = trim( $exif['ImageDescription'] ); } if ( empty( $meta['caption'] ) && ! empty( $exif['COMPUTED']['UserComment'] ) ) { $meta['caption'] = trim( $exif['COMPUTED']['UserComment'] ); } if ( empty( $meta['caption'] ) ) { $meta['caption'] = trim( $exif['ImageDescription'] ); } } elseif ( empty( $meta['caption'] ) && ! empty( $exif['Comments'] ) ) { $meta['caption'] = trim( $exif['Comments'] ); } if ( empty( $meta['credit'] ) ) { if ( ! empty( $exif['Artist'] ) ) { $meta['credit'] = trim( $exif['Artist'] ); } elseif ( ! empty($exif['Author'] ) ) { $meta['credit'] = trim( $exif['Author'] ); } } if ( empty( $meta['copyright'] ) && ! empty( $exif['Copyright'] ) ) { $meta['copyright'] = trim( $exif['Copyright'] ); } if ( ! empty( $exif['FNumber'] ) ) { $meta['aperture'] = "f/" . round( geo_frac2dec( $exif['FNumber'] ), 2 ); } if ( ! empty( $exif['Model'] ) ) { $meta['camera'] = trim( $exif['Model'] ); } if ( empty( $meta['created_timestamp'] ) && ! empty( $exif['DateTimeDigitized'] ) ) { //if ( ! empty( $exif['DateTimeDigitized'] ) ) { $meta['created_timestamp'] = ctc_exif_date2ts( $exif['DateTimeDigitized'] ); //$meta['created_timestamp'] = wp_exif_date2ts( $exif['DateTimeDigitized'] ); //$meta['created_timestamp'] = $exif['DateTimeDigitized']; } if ( ! empty( $exif['FocalLength'] ) ) { $meta['focal_length'] = (string) geo_frac2dec( $exif['FocalLength'] ) . " mm"; } if ( ! empty( $exif['ISOSpeedRatings'] ) ) { $meta['iso'] = is_array( $exif['ISOSpeedRatings'] ) ? reset( $exif['ISOSpeedRatings'] ) : $exif['ISOSpeedRatings']; $meta['iso'] = trim( $meta['iso'] ); } if ( ! empty( $exif['ExposureTime'] ) ) { //$meta['shutter_speed'] = (string) wp_exif_frac2dec( $exif['ExposureTime'] ); $meta['shutter_speed'] = $exif['ExposureTime']; } if ( ! empty( $exif['Orientation'] ) ) { $meta['orientation'] = $exif['Orientation']; } if ( ! empty( $exif['GPSLatitude'] ) ) { $lat = gps($exif['GPSLatitude'], trim( $exif['GPSLatitudeRef'] )); $meta['latitude'] = number_format($lat, 6); } if ( ! empty( $exif['GPSLongitude'] ) ) { $long = gps($exif['GPSLongitude'], trim( $exif['GPSLongitudeRef'] )); $meta['longitude'] = number_format($long, 6); } /* if ( ! empty( $exif['GPSLatitudeRef'] ) ) { $meta['latitudeRef'] = trim( $exif['GPSLatitudeRef'] ); } if ( ! empty( $exif['GPSLongitudeRef'] ) ) { $meta['longitudeRef'] = trim( $exif['GPSLongitudeRef'] ); } */ if ( ! empty( $exif['GPSAltitude'] ) ) { $meta['altitude'] = number_format(geo_frac2dec($exif['GPSAltitude'])); } if ( ! empty( $exif['UndefinedTag:0xA434'] ) ) { $meta['lens'] = trim($exif['UndefinedTag:0xA434']); } // [UndefinedTag:0xA434] => 10.0-22.0 mm // [UndefinedTag:0xA434] => EF500mm f/4L IS USM +1.4x } foreach ( array( 'title', 'caption', 'credit', 'copyright', 'camera', 'iso' ) as $key ) { if ( $meta[ $key ] && ! seems_utf8( $meta[ $key ] ) ) { $meta[ $key ] = utf8_encode( $meta[ $key ] ); } } foreach ( $meta['keywords'] as $key => $keyword ) { if ( ! seems_utf8( $keyword ) ) { $meta['keywords'][ $key ] = utf8_encode( $keyword ); } } //$meta = wp_kses_post_deep( $meta ); /** * Filters the array of meta data read from an image's exif data. * * @since 2.5.0 * @since 4.4.0 The `$iptc` parameter was added. * * @param array $meta Image meta data. * @param string $file Path to image file. * @param int $sourceImageType Type of image. * @param array $iptc IPTC data. */ //return apply_filters( 'wp_read_image_metadata', $meta, $file, $sourceImageType, $iptc ); return $meta; } /* * Convertisseurs de valeurs GPS (latitude, longitude, altitude (+Ref)) * * geo_frac2dec() - functions.php: creator_get_exif() geo_single_fracs2dec() * gps() - functions.php: add_class_lightbox() creator_get_exif() - tpl-carte.php * geo_single_fracs2dec() - * ctc_exif_date2ts() - functions.php: creator_get_exif() */ function geo_single_fracs2dec($fracs) { return geo_frac2dec($fracs[0]) + geo_frac2dec($fracs[1]) / 60 + geo_frac2dec($fracs[2]) / 3600; } function geo_frac2dec($str) { @list( $n, $d ) = explode( '/', $str ); if ( !empty($d) ) return $n / $d; return $str; } function gps($coordinate, $hemisphere) { for ($i = 0; $i < 3; $i++) { $part = explode('/', $coordinate[$i]); if (count($part) == 1) { $coordinate[$i] = $part[0]; } else if (count($part) == 2) { $coordinate[$i] = floatval($part[0])/floatval($part[1]); } else { $coordinate[$i] = 0; } } list($degrees, $minutes, $seconds) = $coordinate; $sign = ($hemisphere == 'W' || $hemisphere == 'S') ? -1 : 1; return $sign * ($degrees + $minutes/60 + $seconds/3600); } // wp_exif_date2ts if ( ! function_exists( 'wp_exif_date2ts' ) ) : function ctc_exif_date2ts($str) { @list( $date, $time ) = explode( ' ', trim($str) ); @list( $y, $m, $d ) = explode( ':', $date ); return strtotime( "{$y}-{$m}-{$d} {$time}" ); } endif; // /* * mapgallery: affiche la galerie sur la Page Map * * entree $attr (array) shortcode gallery * retourne $output (str) * * tpl-carte.php */ function mapgallery( $attr ) { /* $atts = shortcode_atts( array( 'order' => 'ASC', 'ids' => '', 'orderby' => 'menu_order ID', 'id' => $post ? $post->ID : 0, 'itemtag' => $html5 ? 'figure' : 'dl', 'icontag' => $html5 ? 'div' : 'dt', 'captiontag' => $html5 ? 'figcaption' : 'dd', 'columns' => 3, 'size' => 'thumbnail', 'include' => '', 'exclude' => '', 'link' => '' ), $attr, 'mapgallery' ); */ //$columns = $attr['columns']; $size_class = $attr['size']; //$itemtag = $attr['itemtag']; //$icontag = $attr['icontag']; //$captiontag = $attr['captiontag']; $link = $attr['link']; $itemtag = tag_escape( $attr['itemtag'] ); $captiontag = tag_escape( $attr['captiontag'] ); $icontag = tag_escape( $attr['icontag'] ); $valid_tags = wp_kses_allowed_html( 'post' ); if ( ! isset( $valid_tags[ $itemtag ] ) ) { $itemtag = 'dl'; } if ( ! isset( $valid_tags[ $captiontag ] ) ) { $captiontag = 'dd'; } if ( ! isset( $valid_tags[ $icontag ] ) ) { $icontag = 'dt'; } $instance = 1; $columns = intval( $attr['columns'] ); $itemwidth = $columns > 0 ? floor(100/$columns) : 100; $float = is_rtl() ? 'right' : 'left'; $selector = "gallery-{$instance}"; $selecteur = dess_setting('dess_lightbox_select'); //if ( apply_filters( 'use_default_gallery_style', ! $html5 ) ) { $gallery_style = " \n\t\t"; //} echo $gallery_style; //$ids = implode(',',$attr['ids']); // '70,69,68,67' $gallery_div = "