$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 );
add_filter( 'pre_option_link_manager_enabled', '__return_true' );
add_filter('sanitize_file_name', 'remove_accents' );
// Set Plugins and Themes to Update Automatically
add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_theme', '__return_true' );
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.3.1');
wp_enqueue_script('jquery');
}
}
add_action('init', 'google_jquery');
function enqueue_my_scripts() {
//wp_enqueue_script('google-maps', '//maps.googleapis.com/maps/api/js?key=AIzaSyB7cAx3NSH4dPM3Sx2oQeud7Zr-KaGXmLk&callback=initMap', array(), '3', true);
//wp_enqueue_script('google-maps', '//maps.googleapis.com/maps/api/js?key=AIzaSyB7cAx3NSH4dPM3Sx2oQeud7Zr-KaGXmLk&callback=MapApiLoaded', array(), '3', true);
//wp_enqueue_script('google-jsapi','https://www.google.com/jsapi');
wp_enqueue_script( 'child', get_stylesheet_directory_uri() . '/js/child.js', '', '',false );
}
add_action( 'wp_enqueue_scripts', 'enqueue_my_scripts' );
// Settings
//http://cssmary.com/wordpress/customizer-api-child-theme/
function childtheme_customize_register( $wp_customize ) {
// add settings
$add_socials = array('500px','flickr','rss','mail');
for($i=0;$iadd_setting('dess_'.$add_socials[$i], array(
'capability' => 'edit_theme_options',
'type' => 'theme_mod',
'sanitize_callback' => 'dess_sanitize_url',
));
$wp_customize->add_control(new WP_Customize_Control($wp_customize, 'dess_'.$add_socials[$i], array(
'settings' => 'dess_'.$add_socials[$i],
'label' => $name.' URL',
'section' => 'sm_section',
'type' => 'text',
)));
}
$wp_customize->get_setting( 'dess_rss' )->default = get_bloginfo('rss2_url');
// new section
$wp_customize->add_section('settings_section', array(
'title' => __('Settings','creator'),
'capability' => 'edit_theme_options',
'description' => __('Theme settings','twentyten-child')
)
);
// new options
$wp_customize->add_setting('dess_zenphoto', array(
'capability' => 'edit_theme_options',
'type' => 'theme_mod',
'sanitize_callback' => 'dess_sanitize_html',
));
$wp_customize->add_control(new WP_Customize_Control($wp_customize, 'dess_zenphoto', array(
'settings' => 'dess_zenphoto',
'label' => __('Zenphoto path (end with /)','twentyten-child'),
'section' => 'settings_section',
'type' => 'text',
)));
$wp_customize->add_setting('dess_zp_size', array(
'capability' => 'edit_theme_options',
'type' => 'theme_mod',
// 'sanitize_callback' => 'dess_sanitize_html',
));
$wp_customize->add_control(new WP_Customize_Control($wp_customize, 'dess_zp_size', array(
'settings' => 'dess_zp_size',
'label' => __('Zenphoto image size (px)','twentyten-child'),
'section' => 'settings_section',
'type' => 'text',
)));
$wp_customize->add_setting('dess_social_size', array(
'capability' => 'edit_theme_options',
'type' => 'theme_mod',
'sanitize_callback' => 'dess_sanitize_html',
));
$wp_customize->add_control(new WP_Customize_Control($wp_customize, 'dess_social_size', array(
'settings' => 'dess_social_size',
'label' => __('Socials icons size (16 or 32px)','twentyten-child'),
'section' => 'settings_section',
'type' => 'text',
)));
$wp_customize->add_setting('dess_lightbox_select', array(
'capability' => 'edit_theme_options',
'type' => 'theme_mod',
'sanitize_callback' => 'dess_sanitize_html',
));
$wp_customize->add_control(new WP_Customize_Control($wp_customize, 'dess_lightbox_select', array(
'settings' => 'dess_lightbox_select',
'label' => __('Lightbox selector (class="xxx")','twentyten-child'),
'section' => 'settings_section',
'type' => 'text',
)));
$wp_customize->add_setting( 'dess_lightbox_choice', array(
'default' => 'b',
) );
$wp_customize->add_control(new WP_Customize_Control($wp_customize, 'dess_lightbox_choice', array(
'label' => __('Choice of lightbox','twentyten-child'),
'section' => 'settings_section',
'settings' => 'dess_lightbox_choice',
'type' => 'radio',
'choices' => array(
'a' => 'Meow box',
'b' => 'Colorbox',
'c' => 'Featherlight',
),
)));
$wp_customize->add_setting( 'dess_display_exif', array(
'default' => 'trlue',
'type' => 'theme_mod',
'capability' => 'edit_theme_options',
) );
$wp_customize->add_control( 'dess_display_exif', array(
'settings' => 'dess_display_exif',
'label' => __('Display EXIFs','twentyten-child'),
'section' => 'settings_section',
'type' => 'checkbox',
) );
$wp_customize->add_setting( 'dess_display_gps', array(
'default' => 'false',
'type' => 'theme_mod',
'capability' => 'edit_theme_options',
) );
$wp_customize->add_control( 'dess_display_gps', array(
'settings' => 'dess_display_gps',
'label' => __('Display Geo datas','twentyten-child'),
'section' => 'settings_section',
'type' => 'checkbox',
) );
$wp_customize->add_setting( 'dess_display_meta', array(
'default' => 'false',
'type' => 'theme_mod',
'capability' => 'edit_theme_options',
) );
$wp_customize->add_control( 'dess_display_meta', array(
'settings' => 'dess_display_meta',
'label' => __('Display meta (single)','twentyten-child'),
'section' => 'settings_section',
'type' => 'checkbox',
) );
}
add_action( 'customize_register', 'childtheme_customize_register', 12);
function theme_setting($name, $default = false) {
return get_theme_mod( $name, $default );
}
function dess_sanitize_html($value){
return wp_filter_post_kses($value);
}
function dess_sanitize_text($value){
return sanitize_text_field($value);
}
function dess_sanitize_url($value) {
return esc_url_raw($value);
}
/* Affichage des array() */
function preprint($s, $return=false) {
$x = "";
$x .= print_r($s, 1);
$x .= "";
if ($return) return $x;
else print $x;
}
/*** Ajout d'un bouton ZP dans l'éditeur visuel (tinymce) ***/
add_action('init','add_buttons');
function add_buttons(){
if(current_user_can('edit_posts') && current_user_can('edit_pages')){
add_filter('mce_external_plugins','add_plugins');
add_filter('mce_buttons','register_buttons');
}
}
function add_plugins($plugins){
$plugins['zp'] = get_bloginfo('stylesheet_directory').'/js/zenphoto.js';
return $plugins;
}
function register_buttons($buttons){
array_push($buttons, 'zp');
return $buttons;
}
/*** /ajout bouton ZP dans l'editeur ***/
/* Shorcode 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" folder="false"]
// [zenphoto album="sports-mecaniques/gp-france" image="2010-05-23_gp-france-2010_5321.jpg" folder="false"]
// Folder = false: liens vers l'image, affiche l'image
// Folder = true: liens vers l'album, affiche l'image
//
// [zenphoto album="lievres"](3)
// Liens vers album, affiche la 1ere image de l'album
//
//taille des photos dans Worpress, theme Twenty Ten Child : 610x406
/*
print_r($atts);
echo "
";
*/
/*
Array (
[album] => sports-mecaniques/24H-Mans-2016
[image] => 2016-04-10_24H-Mans_9717.jpg
[folder] => false
)
*/
$selector = theme_setting('dess_lightbox_select');
$zenphoto_url = theme_setting('dess_zenphoto');
$size = theme_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);
$folder = ! empty( $atts['folder'] ) ? $atts['folder'] : '';
$folder = filter_var($folder, FILTER_VALIDATE_BOOLEAN);
$rnd = rand (1000, 9999);
$filename = "";
$zenphoto_img = "";
//echo dirname(__FILE__);
//echo __FILE__;
// require ($_SERVER["DOCUMENT_ROOT"]."/path/to/file.php");
//require(dirname(__FILE__) . '/Connections/cnx.php');
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` = '" . $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.", 'twentyten-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.", 'twentyten-child' );
}
$result->close();
}
//echo "image1: " . $image . "
";
// (3) Si juste un album est donné, on cherche l'image la plus récente de l'album
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.", 'twentyten-child' );
}
$result->close();
}
echo "img_album: " . $img_album . "
";
$image = $img_album;
$folder = true;
} // album != ""
//echo "image2: " . $image . "
";
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);
//echo "img: " . $img . "
";
$filename = $zenphoto_url . 'cache/' . $atts['album'] . '/' . urlencode($img) . '_' . $size . '_watermark.jpg';
//echo "filename: " . $filename . "
";
$zp_size = getimagesize(htmlentities($filename));
if ($folder === false) {
$zenphoto_link = '';
}
else {
$zenphoto_link = '';
}
$zenphoto_img .= $zenphoto_link;
$zenphoto_img .= '
';
$zenphoto_img .= '';
/*
if ($b['image_meta']['description'] != "") {
$caption = "";
$caption .= '';
$caption .= $b['image_meta']['description'] . '
';
$zenphoto_img .= $caption;
}
*/
//echo $zenphoto_img;
return $zenphoto_img;
}
add_shortcode( 'zenphoto', 'zenphoto_handler' );
// include
/* NON UTILISE */
function field_func($atts) {
global $post;
$name = $atts['name'];
if (empty($name)) return;
return get_post_meta($post->ID, $name, true);
}
add_shortcode('field', 'field_func');
/*
// http://wp.ruche.org/2010/12/20/utiliser-les-images-a-la-une/
add_theme_support( 'post-thumbnails', array( 'post' ) ); // Ajouter sur les articles uniquement
add_theme_support( 'post-thumbnails', array( 'page' ) ); // Ajouter sur les pages uniquement
set_post_thumbnail_size( 50, 50 ); // 50 pixels en largeur par 50 pixels en hauteur, box resize
//set_post_thumbnail_size( 50, 50, true ); // 50 pixels en largeur par 50 pixels en hauteur, mode hard crop
//add_image_size( 'miniature-archives', 200, 9999 ); // Miniatures des archives
*/
/* Ajoute les données GPS aux métadata lors de l'importation du média */
function add_geo_exif($meta,$file,$sourceImageType) {
$exif = @exif_read_data( $file );
if (!empty($exif['GPSLatitude']))
$meta['latitude'] = $exif['GPSLatitude'] ;
if (!empty($exif['GPSLatitudeRef']))
$meta['latitude_ref'] = trim( $exif['GPSLatitudeRef'] );
if (!empty($exif['GPSLongitude']))
$meta['longitude'] = $exif['GPSLongitude'] ;
if (!empty($exif['GPSLongitudeRef']))
$meta['longitude_ref'] = trim( $exif['GPSLongitudeRef'] );
return $meta;
}
add_filter('wp_read_image_metadata', 'add_geo_exif','',3);
function favicon_link() {
echo '' . "\n";
}
add_action('wp_head', 'favicon_link');
function childtheme_iefix() { ?>
'',
'title_after' => '
',
);
wp_list_bookmarks( $args ); ?>
false
), $atts));
if ( $catagory_name == false )
$bookmarks = get_bookmarks();
else
$bookmarks = get_bookmarks("catagory_name=$catagory_name");
ob_start();
echo "";
foreach($bookmarks as $bookmark){
$cat = $bookmark->link_category;
//foreach(($bookmark->link_category) as $cat){
/*
stdClass Object (
[link_id] => 10
[link_url] => http://www.eos-numerique.com/
[link_name] => EOS-Numerique
[link_image] =>
[link_target] =>
[link_category] => 3
[link_description] => Portail EOS Canon numérique
[link_visible] => Y
[link_owner] => 1
[link_rating] => 0
[link_updated] => 0000-00-00 00:00:00
[link_rel] =>
[link_notes] =>
[link_rss] =>
)
*/
//echo ".")
";
//echo "- ".$bookmark->link_name."
";
echo $cat;
//}
}
echo "
";
$list = ob_get_clean();
return $list;
}
add_shortcode('show_bookmark_image_list', 'show_bookmark_image_list');
//end show_bookmark_image_list
/* Signale que le post a été mis à jour
loop-single.php:365:
*/
function twentyten_post_updated() {
$u_time = get_the_time('U');
$u_modified_time = get_the_modified_time('U');
if ($u_modified_time >= $u_time + 86400) {
printf( __( ' Article updated the %1$s at %2$s ', 'twentyten-child'),
sprintf('%1$s', get_the_modified_time('j F Y')),
sprintf('%1$s', get_the_modified_time())
);
}
}
/* Prints HTML with meta information for the current post—date/time and author.
livre-d-or.php:23:
loop-single.php:29:
loop.php:66:
loop.php:121:
loop.php:135:
*/
function twentyten_posted_on() {
printf( __( '%1$s', 'twentyten-child' ),
sprintf( '%3$s',
get_permalink(),
esc_attr( get_the_time() ),
get_the_date()
)
);
}
/* Prints HTML with meta information for the current post (category, tags and permalink).
livre-d-or.php:32:
loop-attachment.php:149:
loop-single.php:372:
*/
function twentyten_posted_in() {
// Retrieves tag list of current post, separated by commas.
$tag_list = get_the_tag_list( '', ', ' );
if ( $tag_list ) {
//$posted_in = __( 'This entry was posted in %1$s and tagged %2$s. Bookmark the permalink.', 'twentyten' );
$posted_in = __( 'Posted in %1$s and tagged %2$s. Permalink.', 'twentyten-child' );
} elseif ( is_object_in_taxonomy( get_post_type(), 'category' ) ) {
$posted_in = __( 'This entry was posted in %1$s. Bookmark the permalink.', 'twentyten-child' );
} else {
$posted_in = __( 'Bookmark the permalink.', 'twentyten-child' );
}
// Prints the string, replacing the placeholders.
printf(
$posted_in,
get_the_category_list( ', ' ),
$tag_list,
get_permalink(),
the_title_attribute( 'echo=0' )
);
}
/* NON UTILISE */
function thirtyten_excerpt_more($more){
return ' … ' . __('finish reading '.get_the_title() .'', 'twentyten-child') . '';
}
remove_filter( 'excerpt_more', 'twentyten_excerpt_more' );
add_filter ('excerpt_more', 'thirtyten_excerpt_more' );
/* Messages du livre d'or
livre-comments.php:54
*/
function twentyten_comment_guestbook( $comment, $args, $depth ) {
$GLOBALS['comment'] = $comment;
// hack 'city'
$city = htmlspecialchars(ucwords(get_comment_meta($comment->comment_ID,'city',true)));
$pays = htmlentities(get_comment_meta($comment->comment_ID,'pays',true));
$pays = str_replace('_',' ',$pays);
if (($city != "") and ($pays != "")) $a = "(" . $city . ", " . $pays . ")";
if (($city != "") and ($pays == "")) $a = "(" . $city . ")";
if (($city == "") and ($pays != "")) $a = "(" . $pays . ")";
if (($city == "") and ($pays == "")) $a = "";
switch ( $comment->comment_type ) :
case '' :
?>
id="li-comment-">
3) and ($delta <= 7)) $text = sprintf( __('%1$s days ago', 'twentyten-child'), $delta );
elseif (($delta > 7) and ($delta <= 14)) {
$nb = round ($delta / 7);
if ($nb < 2) $text = sprintf( __('%1$s week ago', 'twentyten-child'), $nb );
else $text = sprintf( __('%1$s weeks ago', 'twentyten-child'), $nb );
}
else $text = get_the_date();
printf( __( '%1$s', 'twentyten-child' ),
sprintf( ''.$text.'',
get_permalink(),
esc_attr( get_the_date() . ' ' . get_the_time() )
)
);
}
/*
function exif_get_float($value) {
$pos = strpos($value, '/');
if ($pos === false) return (float) $value;
$a = (float) substr($value, 0, $pos);
$b = (float) substr($value, $pos+1);
return ($b == 0) ? ($a) : ($a / $b);
}
function exif_get_shutter($apex) {
$apex = exif_get_float($apex);
$shutter = pow(2, -$apex);
if ($shutter == 0) return false;
if ($shutter >= 1) return round($shutter) . 's';
return '1/' . round(1 / $shutter) . 's';
}
function exif_get_fstop(&$exif) {
if (!isset($exif['ApertureValue'])) return false;
$apex = exif_get_float($exif['ApertureValue']);
$fstop = pow(2, $apex/2);
if ($fstop == 0) return false;
return 'f/' . round($fstop,1);
}
*/
// === DISPLAY EXIF === //
/* return geo exif in a nice form
*/
function geo_frac2dec($str) {
@list( $n, $d ) = explode( '/', $str );
if ( !empty($d) )
return $n / $d;
return $str;
}
/*
33° 52.37′ 0″ S 151° 9.06′ 0″ E
*/
function geo_pretty_fracs2dec($fracs) {
return geo_frac2dec($fracs[0]) . '° ' .
geo_frac2dec($fracs[1]) . '′ ' .
geo_frac2dec($fracs[2]) . '″ ';
}
/*
to GoogleMaps
*/
function geo_single_fracs2dec($fracs) {
return geo_frac2dec($fracs[0]) +
geo_frac2dec($fracs[1]) / 60 +
geo_frac2dec($fracs[2]) / 3600;
}
/* Crée le cadre Afficher les exifs (WorPress)
single.php:67:
single.php:123:
functions.php:555:
functions.php:794:
loop-attachment.php:138:
loop-single.php:117:
loop-single.php:151:
loop-single.php:197:
*/
function ListeExif($meta, $attach, $i){
$before_item = '';
$after_item = '';
$sep = ': ';
$zoom = '11';
$exif_list = '';
$gm_lat = '';
$gm_lng = '';
if (!empty($meta['image_meta']['latitude']))
$latitude = $meta['image_meta']['latitude'];
if (!empty($meta['image_meta']['longitude']))
$longitude = $meta['image_meta']['longitude'];
if (!empty($meta['image_meta']['latitude_ref']))
$lat_ref = $meta['image_meta']['latitude_ref'];
if (!empty($meta['image_meta']['longitude_ref']))
$lng_ref = $meta['image_meta']['longitude_ref'];
// Aperture
if (!empty($meta['image_meta']['aperture']))
$exif_list .= $before_item . __('Aperture', 'twentyten-child') . $sep . "f/" . $meta['image_meta']['aperture'] . $after_item;
// Shutter speed
if (!empty($meta['image_meta']['shutter_speed'])) {
$exif_list .= $before_item . __('Shutter speed', 'twentyten-child') . $sep;
if ((1 / $meta['image_meta']['shutter_speed']) > 1) {
$exif_list .= "1/";
if ((number_format((1 / $meta['image_meta']['shutter_speed']), 1)) == 1.3
or number_format((1 / $meta['image_meta']['shutter_speed']), 1) == 1.5
or number_format((1 / $meta['image_meta']['shutter_speed']), 1) == 1.6
or number_format((1 / $meta['image_meta']['shutter_speed']), 1) == 2.5) {
$exif_list .= number_format((1 / $meta['image_meta']['shutter_speed']), 1, '.', '') . " s" . $after_item;
}
else {
$exif_list .= number_format((1 / $meta['image_meta']['shutter_speed']), 0, '.', '') . " s" . $after_item;
}
}
else {
$exif_list .= $meta['image_meta']['shutter_speed']." s" . $after_item;
}
}
// Focal length
if (!empty($meta['image_meta']['focal_length']))
$exif_list .= $before_item . __('Focal length', 'twentyten-child') . $sep . $meta['image_meta']['focal_length'] . " mm" . $after_item;
// Camera
if (!empty($meta['image_meta']['camera']))
$exif_list .= $before_item . __('Camera', 'twentyten-child') . $sep . $meta['image_meta']['camera'] . $after_item;
// Creation time
if (!empty($meta['image_meta']['created_timestamp']))
/*
setlocale(LC_TIME, 'fr_FR');
echo $meta['image_meta']['created_timestamp'];
$dt = strftime("%e %B %Y", $meta['image_meta']['created_timestamp']);
$dt = mb_convert_encoding($dt, 'utf-8');
echo $dt;
*/
$exif_list .= $before_item . __('Taken', 'twentyten-child') . $sep . date(__('j F, Y', 'twentyten-child'),$meta['image_meta']['created_timestamp']) . $after_item;
// Latitude and Longtitude
//if ($latitude != 0 && $longitude != 0) {
if (isset($latitude) && isset($longitude)) {
$lat = geo_single_fracs2dec($latitude);
$lng = geo_single_fracs2dec($longitude);
if ($lat_ref == 'S') { $neg_lat = '-'; } else { $neg_lat = ''; }
if ($lng_ref == 'W') { $neg_lng = '-'; } else { $neg_lng = ''; }
$gm_lat = $neg_lat . number_format($lat,6);
$gm_lng = $neg_lng . number_format($lng, 6);
$geo_link = '';
$geo_link .= '
';
$geo_link .= '';
$exif_list .= $before_item . $geo_link . $after_item;
//affichage dans un cadre map caché
//$exif_list .= $before_item . '
' . $after_item;
}
// Titre du marker
if (!empty($meta['image_meta']['title'])) $title_marker = $meta['image_meta']['title'];
elseif (!empty($meta['file'])) {
// en 2 lignes, sinon erreur Strict Standards: Only variables should be passed by reference
$tmp = explode("/", $meta['file']);
$title_marker = end($tmp);
}
//if ((isset($exif_list)) & (isset($gm_lat)) & (isset($gm_lng)) & (isset($title_marker))) {
return array($exif_list, $gm_lat, $gm_lng, $title_marker);
//}
}
/* NON UTILISE */
function _ListeExif($meta, $attachment){
$before_item = '';
$after_item = '';
$sep = ': ';
$zoom = '11';
//print_r($meta);
if ($meta['image_meta']['latitude'])
$latitude = $meta['image_meta']['latitude'];
if ($meta['image_meta']['longitude'])
$longitude = $meta['image_meta']['longitude'];
if ($meta['image_meta']['latitude_ref'])
$lat_ref = $meta['image_meta']['latitude_ref'];
if ($meta['image_meta']['longitude_ref'])
$lng_ref = $meta['image_meta']['longitude_ref'];
$lat = geo_single_fracs2dec($latitude);
$lng = geo_single_fracs2dec($longitude);
if ($lat_ref == 'S') { $neg_lat = '-'; } else { $neg_lat = ''; }
if ($lng_ref == 'W') { $neg_lng = '-'; } else { $neg_lng = ''; }
$gm_lat = $neg_lat . number_format($lat,6);
$gm_lng = $neg_lng . number_format($lng, 6);
$start_geo_link = '';
$end_geo_link = '';
// Aperture
if (!empty($meta['image_meta']['aperture']))
$exif_list .= $before_item . __('Aperture', 'twentyten-child') . $sep . "f/" . $meta['image_meta']['aperture'] . $after_item;
// Shutter speed
if (!empty($meta['image_meta']['shutter_speed'])) {
$exif_list .= $before_item . __('Shutter speed', 'twentyten-child') . $sep;
if ((1 / $meta['image_meta']['shutter_speed']) > 1) {
$exif_list .= "1/";
if ((number_format((1 / $meta['image_meta']['shutter_speed']), 1)) == 1.3
or number_format((1 / $meta['image_meta']['shutter_speed']), 1) == 1.5
or number_format((1 / $meta['image_meta']['shutter_speed']), 1) == 1.6
or number_format((1 / $meta['image_meta']['shutter_speed']), 1) == 2.5) {
$exif_list .= number_format((1 / $meta['image_meta']['shutter_speed']), 1, '.', '') . " s" . $after_item;
}
else {
$exif_list .= number_format((1 / $meta['image_meta']['shutter_speed']), 0, '.', '') . " s" . $after_item;
}
}
else {
$exif_list .= $meta['image_meta']['shutter_speed']." s" . $after_item;
}
}
// Focal length
if (!empty($meta['image_meta']['focal_length']))
$exif_list .= $before_item . __('Focal length', 'twentyten-child') . $sep . $meta['image_meta']['focal_length'] . " mm" . $after_item;
// Camera
if (!empty($meta['image_meta']['camera']))
$exif_list .= $before_item . __('Camera', 'twentyten-child') . $sep . $meta['image_meta']['camera'] . $after_item;
// Creation time
if (!empty($meta['image_meta']['created_timestamp']))
$exif_list .= $before_item . __('Taken', 'twentyten-child') . $sep . date('j F, Y',$meta['image_meta']['created_timestamp']) . $after_item;
// F j, Y, g:i a
//echo $exif_list;
// Latitude and Longtitude
if ($latitude != 0 && $longitude != 0)
//affichage dans un cadre map caché
//$exif_list .= $before_item . '
' . $after_item;
$exif_list .= $before_item . '' . $after_item;
//$exif_list .= $before_item . '
' . $after_item;
// Titre du marker
if ($meta['image_meta']['caption']) $title_marker = $meta['image_meta']['caption'];
elseif ($meta['file']) $title_marker = $meta['file'];
//echo "exif_list: " . $exif_list;
return array($exif_list, $gm_lat, $gm_lng, $title_marker);
}
/* NON UTILISE */
function mod_image($id){
$ajout .= '
' . "\n" . 'Voir les Exif
';
$ajout .= '' . "\n";
$ajout .= '
';
list($liste_exif, $gm_lat, $gm_lng, $title_marker) = att_exif($id);
//$ajout .= att_exif($id);
$ajout .= $liste_exif;
$ajout .= '
';
$ajout .= '';
//
$ajout .= '';
?>
';
$liste_exif = $before_block;
*/
// ListeExif renvoie 3 paramètres dans un tableau:
// -les exifs sous forme de liste
// -latitude et longitude pour le javascript
// -le caption ou le nom du fichier pour l'infoWindow
list($exif_list, $gm_lat, $gm_lng, $title_marker) = ListeExif($metadata,$a);
//echo $exif_list;
$liste_exif .= $exif_list;
$liste_exif .= $after_block;
//echo $liste_exif;
//return $liste_exif;
return array($liste_exif, $gm_lat, $gm_lng, $title_marker);
}
/* Requete pour récupérer les exifs d'une image dans Zenphoto
loop-single.php:147
*/
function zp_query($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`, `EXIFGPSLatitude`, `EXIFGPSLatitudeRef`, `EXIFGPSLongitude`, `EXIFGPSLongitudeRef`, `EXIFGPSAltitude`, `EXIFGPSAltitudeRef`, `desc`, `title` FROM `" . $zp_prefix . "images` WHERE `filename` = \"$zpimage\"";
//echo $excquery;
if ($result = $mysqli->query($excquery)) {
$exif = $result->fetch_row();
$result->close();
}
//preprint($exif);
/*
Array
(
[0] => Canon EOS 7D
[1] => 2011:06:30 20:43:30
[2] => 1/400 sec
[3] => f/6,3
[4] => 640
[5] => 600 mm
[6] => lat
[7] => lat ref
[8] => long
[9] => long ref
[10] => alt
[11] => alt ref
[12] => desc
[13] => title
)*/
$meta = array();
$meta['image_meta']['camera'] = $exif[0];
$meta['image_meta']['created_timestamp'] = $exif[1];
$meta['image_meta']['shutter_speed'] = $exif[2];
$meta['image_meta']['aperture'] = $exif[3];
$meta['image_meta']['iso'] = $exif[4];
$meta['image_meta']['focal_length'] = $exif[5];
$meta['image_meta']['latitude'] = $exif[6];
$meta['image_meta']['latitude_ref'] = $exif[7];
$meta['image_meta']['longitude'] = $exif[8];
$meta['image_meta']['longitude_ref'] = $exif[9];
$meta['image_meta']['altitude'] = $exif[10];
$meta['image_meta']['altitude_ref'] = $exif[11];
if ($exif[12] != "") {
$desc = explode(':', $exif[12]);
$description = explode('"', end($desc));
//print_r($description);
$meta['image_meta']['description'] = utf8_encode($description[1]);
}
else $meta['image_meta']['description'] = "";
if ($exif[13] != "") {
//echo "exif: " . $exif[13] . "
";
// a:1:{s:5:"fr_FR";s:30:"2011-05-15_GP-France-2011_9798";}
$titr = explode(':', $exif[13]);
//echo count($titr) . "
";
if (count($titr) == 1) {
//print_r($titr);
//$titr[0]
$meta['image_meta']['title'] = utf8_encode($titr[0]);
}
else {
$titre = explode('"', end($titr));
//print_r($titre);
//$titre[1]
$meta['image_meta']['title'] = utf8_encode($titre[1]);
}
/*
echo "titr: ";
print_r($titr);
echo "
";
$titre = explode('"', end($titr));
print_r($titre);
foreach ($titr as $var) {
echo "" . $var . "
";
}
*/
//$meta['image_meta']['title'] = utf8_encode($titre[1]);
}
else $meta['image_meta']['title'] = "";
//echo "
";
$meta['image_meta']['file'] = $image;
//preprint($meta['image_meta']);
/*
[camera] => Canon EOS-1D Mark IV
[created_timestamp] => 2014:10:21 14:42:26
[shutter_speed] => 1/80 sec
[aperture] => f/9
[iso] => 320
[focal_length] => 17 mm
[latitude] => 44,381861666667
[latitude_ref] => N
[longitude] => 4,4162216666667
[longitude_ref] => E
[altitude] => 104,1771m
[altitude_ref] =>
[description] =>
[title] =>
*/
return $meta;
}
function Getfloat($str) {
if(strstr($str, ",")) {
$str = str_replace(".", "", $str); // replace dots (thousand seps) with blancs
$str = str_replace(",", ".", $str); // replace ',' with '.'
}
if(preg_match("#([0-9\.]+)#", $str, $match)) { // search for number that may contain '.'
return floatval($match[0]);
} else {
return floatval($str); // take some last chances with floatval
}
}
/* Crée le cadre Afficher les exifs (Zenphoto)
loop-single.php:151
*/
function ListeExifZP($meta){
$before_item = '';
$after_item = '';
$sep = ': ';
$zoom = '11';
$exif_list = "";
$latitude = "";
$longitude = "";
$gm_lat = "";
$gm_lng = "";
if (!empty($meta['image_meta']['latitude']))
$latitude = $meta['image_meta']['latitude'];
if (!empty($meta['image_meta']['longitude']))
$longitude = $meta['image_meta']['longitude'];
if (!empty($meta['image_meta']['latitude_ref']))
$lat_ref = $meta['image_meta']['latitude_ref'];
if (!empty($meta['image_meta']['longitude_ref']))
$lng_ref = $meta['image_meta']['longitude_ref'];
// Aperture
if (!empty($meta['image_meta']['aperture']))
$exif_list .= $before_item . __('Aperture', 'twentyten-child') . $sep . str_replace(',', '.', $meta['image_meta']['aperture']) . $after_item;
// Shutter speed
if (!empty($meta['image_meta']['shutter_speed']))
$exif_list .= $before_item . __('Shutter speed', 'twentyten-child') . $sep . str_replace('sec', 's', $meta['image_meta']['shutter_speed']) . $after_item;
// Focal length
if (!empty($meta['image_meta']['focal_length']))
$exif_list .= $before_item . __('Focal length', 'twentyten-child') . $sep . $meta['image_meta']['focal_length'] . $after_item;
// Camera
if (!empty($meta['image_meta']['camera']))
$exif_list .= $before_item . __('Camera', 'twentyten-child') . $sep . $meta['image_meta']['camera'] . $after_item;
// Creation time
if (!empty($meta['image_meta']['created_timestamp']))
/*
setlocale(LC_TIME, 'fr_FR');
echo $meta['image_meta']['created_timestamp'];
$dt = strftime("%e %B %Y", $meta['image_meta']['created_timestamp']);
$dt = mb_convert_encoding($dt, 'utf-8');
echo $dt;
*/
$pieces = explode(' ', $meta['image_meta']['created_timestamp']);
list($yy, $mm, $dd) = explode(':', $pieces[0]);
list($hh, $min, $ss) = explode(':', $pieces[1]);
$timestamp = mktime((int) $hh, (int) $min, (int) $ss, (int) $mm, (int) $dd, (int) $yy);
$ddate = date('d.m.Y à H:i',$timestamp);
$exif_list .= $before_item . __('Taken', 'twentyten-child') . $sep . $ddate . $after_item;
// Latitude and Longtitude
if (($latitude != "") && ($longitude != "")) {
if ($lat_ref == 'S') { $neg_lat = '-'; } else { $neg_lat = ''; }
if ($lng_ref == 'W') { $neg_lng = '-'; } else { $neg_lng = ''; }
$gm_lat = $neg_lat . number_format(Getfloat($latitude), 6);
$gm_lng = $neg_lng . number_format(Getfloat($longitude), 6);
$geo_link = '';
$geo_link .= '
';
$geo_link .= '';
//affichage dans un cadre map caché
//$exif_list .= $before_item . '
' . $after_item;
$exif_list .= $before_item . $geo_link . $after_item;
}
// Titre du marker
if (!empty($meta['image_meta']['description'])) $title_marker = $meta['image_meta']['description'];
elseif (!empty($meta['image_meta']['title'])) $title_marker = $meta['image_meta']['title'];
//elseif (!empty($meta['image_meta']['file'])) $title_marker = $meta['image_meta']['file'];
return array($exif_list, $gm_lat, $gm_lng, $title_marker);
}
/*
* fmulticurl(): recherche et récupère des infos sur Wikipedia
*
* entree $query (array) (tableau contenant les données à rechercher sur wikipedia (1 entrée/image))
* retourne $obj (array)
*
* single.php - tpl-carte.php
*/
function fmulticurl($query) {
$url = "https://fr.wikipedia.org/w/api.php";
$erreur = array();
/* contruction de la requete opensearch */
$fields = array(
'action' => 'opensearch',
//'search' => $query,
'format' => 'json',
'profile' => 'strict' //strict, normal, *fuzzy*, classic
);
$fields_string = "";
foreach($fields as $key=>$value) {
$fields_string .= $key.'='.$value.'&';
}
/* nettoyage expressions à rechercher */
/*
echo "requete avant clean_req_wiki
";
var_dump($query);
*/
$wiki = clean_req_wiki($query);
//$wiki = $query;
/*
echo "requete apres clean_req_wiki
";
var_dump($wiki);
*/
/* constructions des requetes */
foreach ($wiki as &$val) {
//$val = $url . "?" . $fields_string . "search=" . str_replace(" ", "_", trim($val));
$val = $url . "?" . $fields_string . "search=" . $val;
}
//create the multiple cURL handle
$mh = curl_multi_init();
$nbr = count($query);
// set URL and options
for($x = 0; $x < $nbr; $x++){
$ch[$x] = curl_init();
curl_setopt($ch[$x], CURLOPT_URL, $wiki[$x]);
//curl_setopt($ch[$x], CURLOPT_POST, 1);// set post data to true
//curl_setopt($ch[$x], CURLOPT_POSTFIELDS, $fields); // post data
curl_setopt($ch[$x], CURLOPT_HEADER, 0);
curl_setopt($ch[$x], CURLOPT_USERAGENT, 'ClicBot/1.0 (https://clicclac.info/; contact@clicclac.info)');
curl_setopt($ch[$x], CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch[$x], CURLOPT_SSL_VERIFYPEER, false);
curl_multi_add_handle($mh,$ch[$x]);
}
$running = null;
do {
curl_multi_exec($mh, $running);
} while ($running);
for($x = 0; $x < $nbr; $x++){
$result = curl_multi_getcontent($ch[$x]);
$obj[]= json_decode($result, true);
//get info about the request
// $error = curl_getinfo($ch[$x], CURLINFO_HTTP_CODE);
// if($error != 200){
if (curl_errno($ch[$x])) {
$erreur[] = array("Url" =>curl_getinfo($ch[$x], CURLINFO_EFFECTIVE_URL), "error_info" => curl_getinfo($ch[$x]));
}
//error handling
/*
200 : succès de la requête ;
301 et 302 : redirection, respectivement permanente et temporaire ;
401 : utilisateur non authentifié ;
403 : accès refusé ;
404 : page non trouvée ;
500 et 503 : erreur serveur.
*/
curl_multi_remove_handle($mh, $ch[$x]);
curl_close($ch[$x]);
}
curl_multi_close($mh);
/* OK Remplace les entrées vides par ""
for ($a = 0; $a < count($obj); $a++){
if (is_array($obj[$a])) {
for ($b = 0; $b < count($obj[$a]); $b++){
if (empty($obj[$a][$b])) {
$obj[$a][$b][0] = "";
}
}
} //if
} //for
*/
//echo "retour de la requete
";
//var_dump($obj);
for ($a = 0; $a < count($obj); $a++){
/*
$req = str_replace("_", " ", $obj[$a][0]);
$req = " " . $req . " ";
*/
$req = $query[$a];
$req = " " . $req . " ";
/*
if (is_array($obj[$a])) {
for ($b = 0; $b < count($obj[$a]); $b++){
if (empty($obj[$a][$b])) {
$obj[$a][$b][0] = "";
}
} //for
} //if
*/
foreach ($obj[$a][2] as $key => $val) {
//if (stripos(substr($val, 0, 50), $req) !== false) echo "matche $key";
//echo "nettoyage du retour de la requete
";
$l = substr($val, 0, 50);
//var_dump($req, $val, $l);
if (stripos(substr($val, 0, 50), $req) === false) {
//echo "on supprime
";
unset($obj[$a][1][$key]);
unset($obj[$a][3][$key]);
unset($obj[$a][2][$key]);
}
}
} //for
if (count($erreur) > 0) var_dump($erreur);
//echo "retour de la function multicurl
";
//var_dump($obj);
return $obj;
}
/*
* safe_array_access(): recherche et récupère des infos sur Wikipedia
*
* entree $query (array) (tableau contenant les données à rechercher sur wikipedia (1 entrée/image))
* retourne $obj (array)
*
* single.php - tpl-carte.php
*/
function safe_array_access($ar){
$numargs = func_num_args();
$arg_list = func_get_args();
$aritterator = $ar;
for($i = 1; $i < $numargs; $i++){
if (isset($aritterator[$arg_list[$i]]) || array_key_exists($arg_list[$i], $aritterator)){
$aritterator = $aritterator[$arg_list[$i]];
}else{
return(false);
}
}
return($aritterator);
}
/*
* clean_req_wiki(): nettoie la requete pour Wikipedia
*
* entree $req (array) (tableau contenant les données à rechercher sur wikipedia (1 entrée/image))
* retourne $q (array) (supprime les tags, les articles en début d'expression, les accents, trim , remplace les " " par "_"
*
* functions.php - fmulticurl()
*/
function clean_req_wiki ($req) {
$q = array();
$pat = "#_([^)]*)_#";
foreach($req as $val) {
$z = strip_tags($val);
/*
$fichier = preg_match($pat, $z, $match1);
if ($fichier === 1) $h = $match1[1];
else $h = $z;
*/
//$y= supp_article($z);
$y= supprime_article($z);
$x = str_to_noaccent($y);
//$v = strtolower($w);
$v = str_replace(" ", "_", $x);
$q[] = trim($v);
}
return $q;
}
function clean_photo_name($str) {
$pat = "#_([^)]*)_#";
$fichier = preg_match($pat, $str, $match1);
if ($fichier === 1) $h = $match1[1];
else $h = $z;
return $h;
}
function supp_entre_parenth($str) {
$pattern3 = "#\\([^)]*\\)#";
$m = preg_replace($pattern3, "", $str);
return $m;
}
/*
* str_to_noaccent(): remplace les lettres accentuées par leur équivalent sans accent
*
* entree $str (str)
* retourne $str (str)
*
* functions.php - clean_req_wiki()
*/
function str_to_noaccent($str) {
$str = preg_replace('#Ç#', 'C', $str);
$str = preg_replace('#ç#', 'c', $str);
$str = preg_replace('#è|é|ê|ë#', 'e', $str);
$str = preg_replace('#È|É|Ê|Ë#', 'E', $str);
$str = preg_replace('#à|á|â|ã|ä|å#', 'a', $str);
$str = preg_replace('#@|À|Á|Â|Ã|Ä|Å#', 'A', $str);
$str = preg_replace('#ì|í|î|ï#', 'i', $str);
$str = preg_replace('#Ì|Í|Î|Ï#', 'I', $str);
$str = preg_replace('#ð|ò|ó|ô|õ|ö#', 'o', $str);
$str = preg_replace('#Ò|Ó|Ô|Õ|Ö#', 'O', $str);
$str = preg_replace('#ù|ú|û|ü#', 'u', $str);
$str = preg_replace('#Ù|Ú|Û|Ü#', 'U', $str);
$str = preg_replace('#ý|ÿ#', 'y', $str);
$str = preg_replace('#Ý#', 'Y', $str);
return ($str);
}
/*
* supprime_article(): supprime les articles en début d'expression
*
*
* entree $str (str)
* retourne $m (str)
*
* functions.php - clean_req_wiki()
*/
function supprime_article($str) {
//supprime les articles en début de chaine
//supprime expressions entre parentheses
$pattern = "#^(le|la|les|un|une|du|de|des|ce|ces|cette|cet)\s#mUis";
$pattern2 = "#^([l|d|s|t]')#mUis";
//$pattern3 = "#\\([^)]*\\)#";
$k = preg_replace($pattern, " ", $str);
$l = preg_replace($pattern2, " ", $k);
return trim($l);
//$m = preg_replace($pattern3, "", $l);
//return trim($m);
}
/*
add_filter('the_content', 'exif_content', 20);
function exif_content($content) {
if ( is_single() )
$content = $content . "exif";
return $content;
}
function replace_http( $original ) {
// use preg_replace() to replace http:// with https://
//$output = preg_replace( "^http:", "https:", $original );
$output = preg_replace( "/^http:/i", "https:", $original );
return $output;
}
add_filter( 'the_content', 'replace_http' );
*/
?>