<?php load_theme_textdomain('twentytwelve-child', get_template_directory() . '-child/languages'); ?>
<?php
/*
add_filter('the_content', 'exif_content', 20);

function exif_content($content) {
	if ( is_single() )
		$content = $content . "exif";
	return $content;
}
*/

/*** ***/

add_filter('the_content', 'ajoute_class_lightbox', 99);

function ajoute_class_lightbox($content) {
	if(get_option('add_lightbox') == 1){
		global $post;	
		$id = isset($post->ID) ? $post->ID : -1;
		
		if (is_home || is_single || !is_page) {
		$content = dom_swipebox($content, $id);
		//$content = dom_swipebox_2($content, $id);
		}
	}			
	return $content;
}

/* automatically insert rel="lightbox[nameofpost]" to every image with no manual work. 
	if there are already rel="lightbox[something]" attributes, they are not clobbered. 
	Michael Tyson, you are a regular expressions god! - http://atastypixel.com 
function jqlb_do_regexp($content, $id){
	$id = esc_attr($id);			
	$pattern = "/(<a(?![^>]*?rel=['\"]lightbox.*)[^>]*?href=['\"][^'\"]+?\.(?:bmp|gif|jpg|jpeg|png)(\?\S{0,}){0,1}['\"][^\>]*)>/i";
	$replacement = '$1 rel="lightbox['.$id.']">';
	
	return preg_replace($pattern, $replacement, $content);
}
*/
/*** ***/

function dom_swipebox_2($content, $id) {
	$id = esc_attr($id);
	// Nom du script JS de lightbox
	$lightbox = 'swipebox';
	
	$content = mb_convert_encoding($content, 'HTML-ENTITIES', "UTF-8");
	$html = new DOMDocument();
	$html->loadHTML($content);


	$root = $html->documentElement;              // get the first child node (the root)
	$elms = $root->getElementsByTagName("*");      // gets all elements ("*") in root
	$nr_elms = $elms->length;                      // gets the number of elements

	// loop through all elements stored in $elms
	for($i = 0; $i<$nr_elms; $i++) {
  		$node = $elms->item($i);               // gets the current node

  		// on recherche les liens <a href="" class="" ref=""><img src="" class=""></a>
  		if($node->nodeName=='a') {
  			$old_node = $node;

			// on teste si le lien n'appartient pas à une gallery
			$parent = $node->parentNode;
			if ($parent->nodeName != 'dt') {
				$enfants = $node->childNodes;
				foreach($enfants as $enfant) {
					//uniquement les liens images <a href="" class="" ref=""><img src="" class=""></a>
					//et pas les liens textex <a href="" class="" ref="">bla-bla</a>
					if ($enfant->nodeName == 'img') {
						//On récupère l'attribut 'class' et on ajoute swipebox à sa valeur
						$oldClass = $node->getAttribute('class');
     					if (strstr($oldClass, $lightbox) != false) $newClass = $oldClass;
      					else $newClass = $oldClass . ' ' . $lightbox;
      					$node->setAttribute('class', $newClass);
      			
 						//Chaque article à sa gallery
 						$newRel = 'gallery-' . $id;
						$node->setAttribute('rel', $newRel);
						//
     			
						}
					}
				}
			/*
			else {
    			echo $old_node->nodeValue;
    			}
			*/
  			}
		}

	// save the new xml content in the same file and output its structure
    $newHtml = preg_replace('/^<!DOCTYPE.+?>/', '', str_replace( array('<html>', '</html>', '<body>', '</body>'), array('', '', '', ''), $html->saveHTML()));
	return $newHtml;
	}
	
/*** ***/

function dom_swipebox($content, $id) {
	$id = esc_attr($id);
	// Nom du script JS de lightbox
	$lightbox = 'swipebox';
	
	$content = mb_convert_encoding($content, 'HTML-ENTITIES', "UTF-8");
	
	$html = new DOMDocument();
	
	libxml_use_internal_errors(true);
	if (strlen($content) > 1) $html->loadHTML($content);
	// Autre solution: if (strlen($content) > 1) @$html->loadHTML($content);
	
	// contact 
	else return $content;
	// liens
	
	//print_r($html);
	
	// On récupère tous les nodes 'liens' <a xxx></a>
	$links = $html->getElementsByTagName('a');

	foreach ($links as $link) {
	
		$parents = $link->parentNode;
		foreach($parents as $parent) {
			echo $parent->nodeName;
		}
		
		$enfants = $link->childNodes;
		foreach($enfants as $enfant) {
			// On se s'occupe uniquement que liens image
			if ($enfant->nodeName == 'img') {
				//On récupère l'attribut 'class' et on ajoute swipebox à sa valeur
				$oldClass = $link->getAttribute('class');
      			if (strstr($oldClass, $lightbox) != false) $newClass = $oldClass;
      			else $newClass = $oldClass . ' ' . $lightbox;
      			$link->setAttribute('class', $newClass);
      			
 				//Chaque article à sa gallery
 				$newRel = 'gallery-' . $id;
				$link->setAttribute('rel', $newRel);
				//
     			
				}
			}
			
		}
    $newHtml = preg_replace('/^<!DOCTYPE.+?>/', '', str_replace( array('<html>', '</html>', '<body>', '</body>'), array('', '', '', ''), $html->saveHTML()));
	return $newHtml;
}


/** Enleve les width et height attributes**/ 
//add_filter( 'post_thumbnail_html', 'remove_thumbnail_dimensions', 10 ); 
//add_filter( 'image_send_to_editor', 'remove_thumbnail_dimensions', 10 ); 
//function remove_thumbnail_dimensions( $html ) { $html = preg_replace( '/(width|height)=\"\d*\"\s/', "", $html ); return $html; }
/** /Enleve les width et height attributes**/ 



/*** 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 ***/


add_theme_support( 'post-thumbnails' );
add_image_size( 'similar-thumbnail', 120, 80, true );
function my_theme_setup() {
	// adding a new image size
	add_image_size( 'slider-thumbnail', 1200, '', true );
	//add_image_size( 'similar-thumbnail', 120, 80, true );
	}

/*** Register footer widgets ***/

register_sidebar( array(
	'name' => __( 'Footer Widget One', 'tto' ),
	'id' => 'sidebar-4',
	'description' => __( 'Found at the bottom of every page (except 404s, optional homepage and full width) as the footer. Left Side.', 'tto' ),
	'before_widget' => '<aside id="%1$s" class="widget %2$s">',
	'after_widget' => '</aside>',
	'before_title' => '<h3 class="widget-title">',
	'after_title' => '</h3>',
) );

register_sidebar( array(
	'name' => __( 'Footer Widget Two', 'tto' ),
	'id' => 'sidebar-5',
	'description' => __( 'Found at the bottom of every page (except 404s, optional homepage and full width) as the footer. Center.', 'tto' ),
	'before_widget' => '<aside id="%1$s" class="widget %2$s">',
	'after_widget' => "</aside>",
	'before_title' => '<h3 class="widget-title">',
	'after_title' => '</h3>',
) );

register_sidebar( array(
	'name' => __( 'Footer Widget Three', 'tto' ),
	'id' => 'sidebar-6',
	'description' => __( 'Found at the bottom of every page (except 404s, optional homepage and full width) as the footer. Right Side.', 'tto' ),
	'before_widget' => '<aside id="%1$s" class="widget %2$s">',
	'after_widget' => "</aside>",
	'before_title' => '<h3 class="widget-title">',
	'after_title' => '</h3>',
) );

/*** /Register footer widgets ***/

/*** Supprime les fontes Google ***/

function twtwFFWD_queuing() {
	wp_dequeue_style( 'twentytwelve-fonts' );
	}
add_action('wp_enqueue_scripts', 'twtwFFWD_queuing', 11 );
    

/*** Page d'options (administration) ***/

// à l'initialisation de l'administration
// on informe WordPress des options de notre thème

add_action( 'admin_init', 'myThemeRegisterSettings' );

function myThemeRegisterSettings( ) {
	register_setting( 'twentytwelve-child', 'zenphoto_url' ); // url de zenphoto
	register_setting( 'twentytwelve-child', 'img_size' );       // taille des images
	register_setting( 'twentytwelve-child', 'display_comment' );       // afficher les comentaires
	register_setting( 'twentytwelve-child', 'description' );       // description auteur
	register_setting( 'twentytwelve-child', 'similar' );       // articles similaires
	register_setting( 'twentytwelve-child', 'add_lightbox' );       // ajoute la class swipebox
}

// la fonction myThemeAdminMenu( ) sera exécutée
// quand WordPress mettra en place le menu d'admin

add_action( 'admin_menu', 'myThemeAdminMenu' );

function myThemeAdminMenu( ) {
	add_menu_page(
		__('Twentytwelve Child options', 'twentytwelve-child' ), // le titre de la page Options de twentytwelve Child
		'twentytwelve Child',            // le nom de la page dans le menu d'admin
		'administrator',        // le rôle d'utilisateur requis pour voir cette page
		'my-theme-page',        // un identifiant unique de la page
		'myThemeSettingsPage'   // le nom d'une fonction qui affichera la page
	);
}

function myThemeSettingsPage( ) {
?>
	<div class="wrap">
		<h2>Options de mon thème</h2>

		<form method="post" action="options.php">
			<?php
				// cette fonction ajoute plusieurs champs cachés au formulaire
				// pour vous faciliter le travail.
				// elle prend en paramètre le nom du groupe d'options
				// que nous avons défini plus haut.

				settings_fields( 'twentytwelve-child' );
				
				// URL de Zenphoto, Taille des images, Afficher les commentaires, Afficher la description de l\'auteur, Afficher les articles similaires
			?>

			<table class="form-table">
				<tr valign="top">
					<th scope="row"><label for="zenphoto_url"><?php _e('Zenphoto\'s URL', 'twentytwelve-child' ); ?></label></th>
					<td><input type="text" id="zenphoto_url" name="zenphoto_url" value="<?php echo get_option( 'zenphoto_url' ); ?>" /></td>
				</tr>

				<tr valign="top">
					<th scope="row"><label for="img_size"><?php _e('Images size', 'twentytwelve-child' ); ?></label></th>
					<td><input type="text" id="img_size" name="img_size" class="small-text" value="<?php echo get_option( 'img_size' ); ?>" /></td>
				</tr>

				<tr valign="top">
					<th scope="row"><label for="display_comment"><?php _e('Display comments', 'twentytwelve-child' ); ?></label></th>
					<td><input type="checkbox" id="display_comment" name="display_comment" value="1" <?php checked('1',get_option('display_comment')); ?> /></td>
				</tr>

				<tr valign="top">
					<th scope="row"><label for="description"><?php _e('Display author', 'twentytwelve-child' ); ?></label></th>
					<td><input type="checkbox" id="description" name="description" value="1" <?php checked('1',get_option('description')); ?> /></td>
				</tr>
				<tr valign="top">
					<th scope="row"><label for="similar"><?php _e('Display similar', 'twentytwelve-child' ); ?></label></th>
					<td><input type="checkbox" id="similar" name="similar" value="1" <?php checked('1',get_option('similar')); ?> /></td>
				</tr>
				<tr valign="top">
					<th scope="row"><label for="add_lightbox"><?php _e('Add lightbox\'s class', 'twentytwelve-child' ); ?></label></th>
					<td><input type="checkbox" id="add_lightbox" name="add_lightbox" value="1" <?php checked('1',get_option('add_lightbox')); ?> /></td>
				</tr>

			</table>
			<p class="submit">
				<input type="submit" class="button-primary" value="Mettre à jour" />
			</p>
		</form>
	</div>
<?php
}

/*** /Page d'options (administration) ***/

function touch_navigation_js() {
	/* Register our script. */
        //wp_register_script( 'touch_navigation', plugins_url('/jquery.touchwipe.min.js', __FILE__) );
        wp_register_script( 'touch_navigation', get_bloginfo('stylesheet_directory') . '/js/jquery.touchwipe.min.js' );

	if ( is_single() ) {
		wp_enqueue_script(
			'touch_navigation',
			//plugins_url('/jquery.touchwipe.min.js', __FILE__),
			get_bloginfo('stylesheet_directory') . '/js/jquery.touchwipe.min.js',
			array('jquery'),
			false,
			true
		);
	}
}

function touch_navigation(){
	/* only single post */
	if (! is_single() )
		return;
?>
<script type="text/javascript">
jQuery(document).ready(function() {
	jQuery("body.single").swipe({
  		swipeRight:function() {
			window.open( jQuery('a[rel="prev"]').attr("href"), "_self" );
  			return false;
  		},
  		swipeLeft:function() {
			window.open( jQuery('a[rel="next"]').attr("href"), "_self" );
  			return false;
  		}
	});
});
</script>
<?php 
}
add_action('wp_footer', 'touch_navigation');
add_action('wp_enqueue_scripts', 'touch_navigation_js');

/*** 
Shortcode 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"]
	//taille des photos dans Worpress, theme Twenty Ten Child : 610x406
	
	//$zenphoto_url = "http://alubook.local/zenphoto/";
	$zenphoto_url = get_option( 'zenphoto_url' );
	//$size = 610;
	$size = get_option( 'img_size' );

	/*
	<div class="wp-caption aligncenter" style="width: 620px">
	
	<a href="http://clicclac.info/zenphoto/albums/oiseaux/heron-pourpre/2013-05-28_HeronPourpre_9795.jpg">
		<img src="http://clicclac.info/zenphoto/cache/oiseaux/heron-pourpre/2013-05-28_HeronPourpre_9795_660_watermark.jpg">
	</a>
	
	<p class="wp-caption-text">T'approches pas de mon nid !!</p></div>
	*/
	
	$img = substr($atts['image'], 0, strlen($atts['image']) - 4);
	
	if ($atts['caption'] != "") {
		$zenphoto_img = '<div class="wp-caption aligncenter" style="width: 620px">';
		}
	//$zenphoto_img .= '<a href="' . $zenphoto_url . 'albums/' . $atts['album'] . '/' . $atts['image'] . '">';
	$zenphoto_img .= '<a href="' . $zenphoto_url . 'cache/' . $atts['album'] . '/' . $img . '_FULL_watermark.jpg">';

	//$zenphoto_img .= '<img src="' . $zenphoto_url . 'cache/' . $atts['album'] . '/' . substr($atts['image'], 0, strlen($atts['image']) - 4) . '_' . $size . '_watermark.jpg" title="" alt="" class="aligncenter">';
	$zenphoto_img .= '<img src="' . $zenphoto_url . 'cache/' . $atts['album'] . '/' . $img . '_' . $size . '_watermark.jpg" title="' . $img . '" alt="' . $img . '" class="aligncenter">';
	$zenphoto_img .= '</a>';
	if ($atts['caption'] != "") {
	
		$zenphoto_img .= '<p class="wp-caption-text">' . $atts['caption'] . '</p></div>';
		}
	
	return $zenphoto_img;
}

add_shortcode( 'zenphoto', 'zenphoto_handler' );

function zenphoto_full_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"]
	//taille des photos dans Worpress, theme Twenty Ten Child : 610x406
	
	//$zenphoto_url = "http://alubook.local/zenphoto/";
	$zenphoto_url = get_option( 'zenphoto_url' );
	//$size = 610;
	$size = get_option( 'img_size' );

	/*
	<div class="wp-caption aligncenter" style="width: 620px">
	
	<a href="http://clicclac.info/zenphoto/albums/oiseaux/heron-pourpre/2013-05-28_HeronPourpre_9795.jpg">
		<img src="http://clicclac.info/zenphoto/cache/oiseaux/heron-pourpre/2013-05-28_HeronPourpre_9795_660_watermark.jpg">
	</a>
	
	<p class="wp-caption-text">T'approches pas de mon nid !!</p></div>
	*/
	
	$img = substr($atts['image'], 0, strlen($atts['image']) - 4);
	
	if ($atts['caption'] != "") {
		$zenphoto_img = '<div class="wp-caption aligncenter" style="width: 620px">';
		}
	//$zenphoto_img .= '<a href="' . $zenphoto_url . 'albums/' . $atts['album'] . '/' . $atts['image'] . '">';
	$zenphoto_img .= '<a href="' . $zenphoto_url . 'cache/' . $atts['album'] . '/' . $img . '_FULL_watermark.jpg">';

	//$zenphoto_img .= '<img src="' . $zenphoto_url . 'cache/' . $atts['album'] . '/' . substr($atts['image'], 0, strlen($atts['image']) - 4) . '_' . $size . '_watermark.jpg" title="" alt="" class="aligncenter">';
	$zenphoto_img .= '<img src="' . $zenphoto_url . 'cache/' . $atts['album'] . '/' . $img . '_FULL_watermark.jpg" title="' . $img . '" alt="' . $img . '" class="aligncenter">';
	$zenphoto_img .= '</a>';
	if ($atts['caption'] != "") {
	
		$zenphoto_img .= '<p class="wp-caption-text">' . $atts['caption'] . '</p></div>';
		}
	
	return $zenphoto_img;
}

add_shortcode( 'zenphoto_full', 'zenphoto_full_handler' );
/*** /Shortcode zenphoto ***/


/*** 
SEO 
***/

function meta_box_title_description() {
	add_meta_box( 'parametres_seo_metabox', 'Param&egrave;tres SEO', 'parametres_seo_metabox_content', 'post', 'side', 'high' );
	add_meta_box( 'parametres_seo_metabox', 'Param&egrave;tres SEO', 'parametres_seo_metabox_content', 'page', 'side', 'high' );
	}
add_action( 'add_meta_boxes', 'meta_box_title_description' );


function parametres_seo_metabox_content($post) {
	$val_title = get_post_meta($post->ID,'_parametres_seo_title',true);
	$val_description = get_post_meta($post->ID,'_parametres_seo_description',true);
	?>
	<p><strong>Title</strong></p>
	<input id="parametres_seo_title" name="parametres_seo_title" type="text" style="width:100%;" value="<?php echo $val_title; ?>" />
	<p><strong>Meta description</strong></p>
	<textarea id="parametres_seo_description" name="parametres_seo_description" style="width:100%; resize:none;"><?php echo $val_description; ?></textarea>
	<?php
	}

function save_parametres_seo_metabox($post_ID){
	if(isset($_POST['parametres_seo_title'])){
		update_post_meta($post_ID,'_parametres_seo_title', esc_html($_POST['parametres_seo_title']));
		}
	if(isset($_POST['parametres_seo_description'])){
		update_post_meta($post_ID,'_parametres_seo_description', esc_html($_POST['parametres_seo_description']));
		}
	}
add_action('save_post','save_parametres_seo_metabox');

function modify_description_from_metabox() {
	global $wp_query;
	if ( get_post_meta($wp_query->post->ID,'_parametres_seo_description',true) ) {
		echo '<meta name="description" content="';
		echo get_post_meta($wp_query->post->ID,'_parametres_seo_description',true);
		echo '" />';
		}
	}
add_action( 'wp_head', 'modify_description_from_metabox' );

function modify_title_from_metabox($title) {
	global $wp_query;
	if ( get_post_meta($wp_query->post->ID,'_parametres_seo_title',true) ) {
		return get_post_meta($wp_query->post->ID,'_parametres_seo_title',true);
	} else {
		return $title;
		}
	}
add_filter( 'wp_title', 'modify_title_from_metabox' );

/*** /SEO ***/


/*** 
Fil d'arianne 
***/

//Récupérer les catégories parentes
function myget_category_parents($id, $link = false,$separator ='/',$nicename = false,$visited = array()) {
  $chain = '';$parent = &get_category($id);
    if (is_wp_error($parent))return $parent;
    if ($nicename)$name = $parent->name;
    else $name = $parent->cat_name;
    if ($parent->parent && ($parent->parent != $parent->term_id ) &&!in_array($parent->parent, $visited)) {
        $visited[] = $parent->parent;$chain .= myget_category_parents($parent->parent, $link, $separator, $nicename, $visited );}
    if ($link) $chain .= '<span typeof="v:Breadcrumb"><a href="' .get_category_link( $parent->term_id ) . '" title="' . __('View all post from ', 'twentytwelve-child' ).$parent->cat_name.'" rel="v:url" property="v:title">'.$name.'</a></span>' . $separator;
    else $chain .= $name.$separator;
    return $chain;
    }

//Le rendu
function mybread() {
  // variables gloables
  global $wp_query;$ped=get_query_var('paged');$rendu = '<div id="mybread" xmlns:v="http://rdf.data-vocabulary.org/#">';  
  //$debutlien = '<span id="breadex">Vous &ecirc;tes ici :</span> <span typeof="v:Breadcrumb"><a title="'. get_bloginfo('name') .'" id="breadh" href="'.home_url().'" rel="v:url" property="v:title">'.get_bloginfo('name') .'</a></span>';
  $debutlien = '<span id="breadex">' . __('You are here', 'twentytwelve-child' ) . ' :</span> <span typeof="v:Breadcrumb"><a title="'. get_bloginfo('name') .'" id="breadh" href="'.home_url().'" rel="v:url" property="v:title">'.get_bloginfo('name') .'</a></span>';
  //$debut = '<span id="breadex">Vous &ecirc;tes ici :</span> <span typeof="v:Breadcrumb">Accueil de '. get_bloginfo('name') .'</span>';
  $debut = '<span id="breadex">' . __('You are here', 'twentytwelve-child' ) . ' :</span> <span typeof="v:Breadcrumb">Accueil de '. get_bloginfo('name') .'</span>';

  // si l'utilisateur a défini une page comme page d'accueil
  if ( is_front_page() ) {$rendu .= $debut;}

  // dans le cas contraire
  else {

    // on teste si une page a été définie comme devant afficher une liste d'article 
    if( get_option('show_on_front') == 'page') {
      $url = urldecode(substr($_SERVER['REQUEST_URI'], 1));
      $uri = $_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"];
      $posts_page_id = get_option( 'page_for_posts');
      $posts_page_url = get_page_uri($posts_page_id);  
      $pos = strpos($uri,$posts_page_url);
      if($pos !== false) {
        //$rendu .= $debutlien.' &raquo; <span typeof="v:Breadcrumb">Les articles</span>';
        $rendu .= $debutlien.' &raquo; <span typeof="v:Breadcrumb">' . __('Posts', 'twentytwelve-child' ) . '</span>';
      }
      else {$rendu .= $debutlien;} 
    }

    //Si c'est l'accueil
    elseif ( is_home()) {$rendu .= $debut;}

    //pour tout le reste
    else {$rendu .= $debutlien;}

    // les catégories
    if ( is_category() ) {
      $cat_obj = $wp_query->get_queried_object();$thisCat = $cat_obj->term_id;$thisCat = get_category($thisCat);$parentCat =get_category($thisCat->parent);
      if ($thisCat->parent != 0) $rendu .= " &raquo; ".myget_category_parents($parentCat, true, " &raquo; ", true);
      if ($thisCat->parent == 0) $rendu .= " &raquo; ";
      if ( $ped <= 1 ) {
      		//$rendu .= single_cat_title("", false);
      		$rendu .= __('Category', 'twentytwelve-child' ) . " &raquo; <b>" . single_cat_title("", false) . "</b>";
      		}
      elseif ( $ped > 1 ) {
        //$rendu .= '<span typeof="v:Breadcrumb"><a href="' .get_category_link( $thisCat ) . '" title="Voir tous les articles de '.single_cat_title("", false).'" rel="v:url" property="v:title">'.single_cat_title("", false).'</a></span>';
        $rendu .= '<span typeof="v:Breadcrumb"><a href="' .get_category_link( $thisCat ) . '" title="' . __('View all post from ', 'twentytwelve-child' ).single_cat_title("", false).'" rel="v:url" property="v:title">'.single_cat_title("", false).'</a></span>';
        }
        }

    // les auteurs
    elseif ( is_author()){
      //global $author;$user_info = get_userdata($author);$rendu .= " &raquo; Articles de l'auteur ".$user_info->display_name."</span>";}  
      global $author;$user_info = get_userdata($author);$rendu .= __(' &raquo; Articles de l\'auteur ', 'twentytwelve-child' )."<b>".$user_info->display_name."</b>";
      }  

    // les mots clés
    elseif ( is_tag()){
      //$tag=single_tag_title("",FALSE);$rendu .= " &raquo; Articles sur le th&egrave;me <span>".$tag."</span>";}
      $tag=single_tag_title("",FALSE);$rendu .= __(' &raquo; Articles sur le th&egrave;me <b>', 'twentytwelve-child' ).$tag."</b>";
      }
      elseif ( is_date() ) {
          if ( is_day() ) {
              global $wp_locale;
              $rendu .= '<span typeof="v:Breadcrumb"><a href="'.get_month_link( get_query_var('year'),get_query_var('monthnum') ).'" rel="v:url" property="v:title">'.$wp_locale->get_month(get_query_var('monthnum') ).' '.get_query_var('year').'</a></span> ';
              //$rendu .= " &raquo; Archives pour ".get_the_date();}
              $rendu .= __(' &raquo; Archives for ', 'twentytwelve-child' ) . get_the_date();
              }
      else if ( is_month() ) {
              //$rendu .= " &raquo; Archives pour ".single_month_title(' ',false);}
              $rendu .= __(' &raquo; Archives for ', 'twentytwelve-child' ) . single_month_title(' ',false);
              }
      else if ( is_year() ) {
              //$rendu .= " &raquo; Archives pour ".get_query_var('year');}}
             $rendu .= __(' &raquo; Archives for ', 'twentytwelve-child' ) . get_query_var('year');
             }
        }

    //les archives hors catégories
    elseif ( is_archive() && !is_category()){
          $posttype = get_post_type();
      $tata = get_post_type_object( $posttype );
      $var = '';
      $the_tax = get_taxonomy( get_query_var( 'taxonomy' ) );
      $titrearchive = $tata->labels->menu_name;
      if (!empty($the_tax)) {
      		$var = $the_tax->labels->name.' ';
      		}
        if (empty($the_tax))
        	{$var = $titrearchive;
        	}
      //$rendu .= ' &raquo; Archives sur "'.$var.'"';}
      $rendu .= __(' &raquo; Archives for "', 'twentytwelve-child' ) .$var.'"';
      }

    // La recherche
    elseif ( is_search()) {
      //$rendu .= " &raquo; R&eacute;sultats de votre recherche <span>&raquo; ".get_search_query()."</span>";}
      $rendu .= __(' &raquo; Search result <span>&raquo; ', 'twentytwelve-child' ) . get_search_query()."</span>";
      }

    // la page 404
    elseif ( is_404()){
      //$rendu .= " &raquo; 404 Page non trouv&eacute;e";}
      $rendu .= __(' &raquo; 404 Page not found', 'twentytwelve-child' );
      }

    //Un article
    elseif ( is_single()){
      $category = get_the_category();
      $category_id = get_cat_ID( $category[0]->cat_name );
      if ($category_id != 0) {
        $rendu .= " &raquo; ".myget_category_parents($category_id,TRUE,' &raquo; ')."<span>".the_title('','',FALSE)."</span>";
        }
      elseif ($category_id == 0) {
        $post_type = get_post_type();
        $tata = get_post_type_object( $post_type );
        $titrearchive = $tata->labels->menu_name;
        $urlarchive = get_post_type_archive_link( $post_type );
        $rendu .= ' &raquo; <span typeof="v:Breadcrumb"><a href="'.$urlarchive.'" title="'.$titrearchive.'" rel="v:url" property="v:title">'.$titrearchive.'</a></span> &raquo; <span>'.the_title('','',FALSE).'</span>';
        }
    	}

    //Une page
    elseif ( is_page()) {
      $post = $wp_query->get_queried_object();
      if ( $post->post_parent == 0 ) {
      	$rendu .= " &raquo; ".the_title('','',FALSE)."";
      	}
      elseif ( $post->post_parent != 0 ) {
        $title = the_title('','',FALSE);$ancestors =array_reverse(get_post_ancestors($post->ID));array_push($ancestors,$post->ID);
        foreach ( $ancestors as $ancestor ) {
          if( $ancestor != end($ancestors) ) {
          	$rendu .= '&raquo; <span typeof="v:Breadcrumb"><a href="'. get_permalink($ancestor) .'" rel="v:url" property="v:title">'. strip_tags( apply_filters('single_post_title', get_the_title( $ancestor ) ) ) .'</a></span>';
          	}
          else {$rendu .= ' &raquo; '.strip_tags(apply_filters('single_post_title',get_the_title($ancestor))).'';
          }}}}
    if ( $ped >= 1 ) {
    	$rendu .= ' (Page '.$ped.')';
    	}
  }
  $rendu .= '</div>';
  echo $rendu;
  }
  
/*** /Fil d'arianne ***/


if ( ! function_exists( 'twentytwelve_entry_meta' ) ) :
/**
 * Prints HTML with meta information for current post: categories, tags, permalink, author, and date.
 *
 * Create your own twentytwelve_entry_meta() to override in a child theme.
 *
 * @since Twenty Twelve 1.0
 */
function twentytwelve_entry_meta() {
	// Translators: used between list items, there is a space after the comma.
	$categories_list = get_the_category_list( __( ', ', 'twentytwelve' ) );

	// Translators: used between list items, there is a space after the comma.
	$tag_list = get_the_tag_list( '', __( ', ', 'twentytwelve' ) );

	$date = sprintf( '<time class="entry-date" datetime="%3$s">%4$s</time>',
		esc_url( get_permalink() ),
		esc_attr( get_the_time() ),
		esc_attr( get_the_date( 'c' ) ),
		esc_html( get_the_date() )
	);

	$author = sprintf( '<span class="author vcard"><a class="url fn n" href="%1$s" title="%2$s" rel="author">%3$s</a></span>',
		esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
		esc_attr( sprintf( __( 'View all posts by %s', 'twentytwelve' ), get_the_author() ) ),
		get_the_author()
	);

	// Translators: 1 is category, 2 is tag, 3 is the date and 4 is the author's name.
	if ( $tag_list ) {
		$utility_text = __( 'This entry was posted in %1$s and tagged %2$s on %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve-child' );
	} elseif ( $categories_list ) {
		$utility_text = __( 'This entry was posted in %1$s on %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve-child' );
	} else {
		$utility_text = __( 'This entry was posted on %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve-child' );
	}

	printf(
		$utility_text,
		$categories_list,
		$tag_list,
		$date,
		$author
	);
}
endif;

function date_auteur_meta() {
	// Modif pour human_time_diff

	$categories_list = get_the_category_list( __( ', ', 'twentytwelve' ) );
	
	$date = sprintf( '<time class="entry-date" datetime="%1$s">%2$s</time>',
		esc_attr( get_the_date( 'c' ) ),
		//esc_html( get_the_date() )
		esc_html( _human_time_diff( get_the_time('U'), current_time('timestamp') ) )
	);

	$author = sprintf( '<span class="author vcard"><a class="url fn n" href="%1$s" title="%2$s" rel="author">%3$s</a></span>',
		esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
		esc_attr( sprintf( __( 'View all posts by %s', 'twentytwelve' ), get_the_author() ) ),
		get_the_author()
	);
	/*
	if ( $categories_list ) {
		$utility_text = __( 'On %2$s<span class="by-author"> by %3$s</span> - %1$s', 'twentytwelve-child' );
	} else {	
		$utility_text = __( 'On %2$s<span class="by-author"> by %3$s</span>.', 'twentytwelve-child' );
	}
	*/
	if ( $categories_list ) {
		$utility_text = __( '%2$s<span class="by-author"> by %3$s</span> - %1$s', 'twentytwelve-child' );
	} else {	
		$utility_text = __( '%2$s<span class="by-author"> by %3$s</span>.', 'twentytwelve-child' );
	}

	printf(
		$utility_text,
		$categories_list,
		$date,
		$author
	);
}

function date_auteur_meta_post_format() {

	$categories_list = get_the_category_list( __( ', ', 'twentytwelve' ) );
	
	$date = sprintf( '<a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date" datetime="%3$s">%4$s</time></a>',
		esc_url( get_permalink() ),
		esc_attr( get_the_time() ),
		esc_attr( get_the_date( 'c' ) ),
		esc_html( get_the_date() )
	);

	$author = sprintf( '<span class="author vcard"><a class="url fn n" href="%1$s" title="%2$s" rel="author">%3$s</a></span>',
		esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
		esc_attr( sprintf( __( 'View all posts by %s', 'twentytwelve' ), get_the_author() ) ),
		get_the_author()
	);
	
	if ( $categories_list ) {
		$utility_text = __( 'On %2$s<span class="by-author"> by %3$s</span> - %1$s', 'twentytwelve-child' );
	} else {	
		$utility_text = __( 'On %2$s<span class="by-author"> by %3$s</span>.', 'twentytwelve-child' );
	}

	printf(
		$utility_text,
		$categories_list,
		$date,
		$author
	);
}

/***
Limite la taille du résumé à x caractères
***/

function the_excerpt_max_charlength($charlength) {
	$a = "";
	$excerpt = get_the_excerpt();
	$charlength++;

	if ( mb_strlen( $excerpt ) > $charlength ) {
		$subex = mb_substr( $excerpt, 0, $charlength - 5 );
		$exwords = explode( ' ', $subex );
		$excut = - ( mb_strlen( $exwords[ count( $exwords ) - 1 ] ) );
		if ( $excut < 0 ) {
			$a = mb_substr( $subex, 0, $excut );
		} else {
			$a = $subex;
		}
		$a = $a . '[...]';
	} else {
		$a = $excerpt;
	}
	return $a;
}


/***
Renvoie la date de la dernière modif de l'article
***/

function twentytwelve_post_updated() {
	setlocale(LC_TIME, get_locale());
	$u_time = get_the_time('U');
	$u_modified_time = get_the_modified_time('U');
	// '%e %B %Y @ %H:%M' => 14 août 2013 @ 14:09
	// '%A, %B %e %Y @ %l:%M %p' => Wednesday, August 14 2013 @ 2:09 PM
	if ($u_modified_time >= $u_time + 86400) {
	?>
		<svg version="1.1" width="20px" height="20px" viewBox="0 0 30 30">
			<path d="M17.001,15.5l-0.5-7.876c0-0.552-0.448-1-1-1c-0.552,0-1,0.448-1,1l-0.466,7.343l-3.004,1.96c-0.478,0.277-0.642,0.89-0.365,1.365c0.275,0.479,0.889,0.644,1.365,0.367l3.305-1.677C15.39,16.99,15.444,17,15.501,17C16.329,17,17.001,16.329,17.001,15.5zM18.939,21.455c-0.479,0.277-0.644,0.889-0.366,1.367c0.274,0.477,0.888,0.643,1.366,0.365c0.478-0.275,0.642-0.89,0.365-1.365C20.027,21.344,19.417,21.18,18.939,21.455zM19.938,7.813c-0.477-0.276-1.09-0.111-1.364,0.366c-0.275,0.48-0.111,1.091,0.366,1.367c0.477,0.276,1.088,0.112,1.365-0.366C20.581,8.702,20.418,8.089,19.938,7.813zM21.823,20.305c0.477,0.274,1.089,0.112,1.364-0.365c0.276-0.479,0.112-1.092-0.364-1.367c-0.48-0.275-1.093-0.111-1.367,0.365C21.182,19.416,21.344,20.029,21.823,20.305zM22.822,12.428c0.478-0.275,0.643-0.888,0.365-1.366c-0.274-0.478-0.89-0.642-1.365-0.366c-0.479,0.278-0.643,0.89-0.366,1.367S22.344,12.705,22.822,12.428zM24.378,15.5c0-0.551-0.448-1-1-1c-0.554,0.002-1.001,0.45-1.001,1c0.001,0.552,0.448,1,1.001,1C23.93,16.5,24.378,16.053,24.378,15.5zM9.546,12.062c0.275-0.478,0.111-1.089-0.366-1.366c-0.479-0.276-1.09-0.112-1.366,0.366s-0.111,1.09,0.365,1.366C8.658,12.704,9.269,12.541,9.546,12.062zM6.624,15.5c0,0.553,0.449,1,1,1c0.552,0,1-0.447,1.001-1c-0.001-0.552-0.448-0.999-1.001-1C7.071,14.5,6.624,14.948,6.624,15.5zM9.179,20.305c0.479-0.275,0.643-0.888,0.367-1.367c-0.276-0.477-0.888-0.641-1.367-0.365c-0.478,0.277-0.642,0.889-0.365,1.367C8.089,20.418,8.703,20.58,9.179,20.305zM12.062,9.545c0.479-0.276,0.642-0.888,0.366-1.366c-0.276-0.478-0.888-0.642-1.366-0.366s-0.642,0.888-0.366,1.366C10.973,9.658,11.584,9.822,12.062,9.545zM14.501,23.377c0,0.553,0.448,1,1,1c0.552,0,1-0.447,1-1s-0.448-1-1-1C14.949,22.377,14.501,22.824,14.501,23.377zM10.696,21.822c-0.275,0.479-0.111,1.09,0.366,1.365c0.478,0.276,1.091,0.11,1.365-0.365c0.277-0.479,0.113-1.09-0.365-1.367C11.584,21.18,10.973,21.344,10.696,21.822zM28.674,14.087l-3.27-1.186c0.291,1.105,0.41,2.274,0.309,3.478c-0.492,5.639-5.449,9.809-11.091,9.333c-5.639-0.495-9.809-5.45-9.333-11.09c0.494-5.641,5.449-9.812,11.089-9.335c2.428,0.212,4.567,1.266,6.194,2.833l-1.637,1.377l7.031,2.548l-1.309-7.364l-1.771,1.492c-2.133-2.151-4.996-3.597-8.25-3.877C9.346,1.67,2.926,7.072,2.297,14.364c-0.625,7.291,4.777,13.71,12.066,14.339c7.293,0.625,13.713-4.776,14.342-12.066C28.779,15.771,28.762,14.919,28.674,14.087z" />
		</svg>
	<?php
		/*printf( __( '<div class="maj"> Article updated the %1$s at %2$s </div>', 'twentytwelve-child'), 
			sprintf('%1$s', get_the_modified_time('j F Y')), 
			sprintf('%1$s', get_the_modified_time()) */
		printf( __( 'Article updated the %1$s', 'twentytwelve-child'), 
			sprintf('%1$s', strftime( __('%A, %B %e %Y @ %l:%M %p', 'twentytwelve-child'), $u_modified_time))
		);
	}
}


/***
returns the name of one random file from within a directory
content-livre.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];
    }

/*** /returns the name of one random file from within a directory ***/

/***
Shortcode pour afficher la liste des liens
[show_bookmark_image_list]
***/

function show_bookmark_list(){ ?>
	<ul>
		<?php
		$args = array(
		'title_before'     => '<h3>',
		'title_after'      => '</h3>',
		);
		wp_list_bookmarks( $args ); ?>
	</ul>
	<?php
}
add_shortcode('show_bookmark_list', 'show_bookmark_list');


/***
Shortcode
[show_bookmark_image_list catagory_name='photographes']
***/

function show_bookmark_image_list($atts){
	extract(shortcode_atts(array( 'catagory_name' => false ), $atts));
    
    $args = array(
		'orderby'        => 'name',
		'order'          => 'ASC',
		'category_name'  => $catagory_name
		);
    
    if ( $catagory_name == false )
        $bookmarks = get_bookmarks();
    else
        $bookmarks = get_bookmarks($args);
   
    ob_start();
    echo "<ul class='link-image-list'>";
    foreach($bookmarks as $bookmark) {
        //echo "<li><a href='".esc_url($bookmark->link_url) ."'><img src='".esc_url($bookmark->link_image)."' /></a></li>";
        echo "<li><a href='".esc_url($bookmark->link_url) ."'>".$bookmark->link_name."</a></li>";
    }   
    echo "</ul>";
    $list = ob_get_clean();
    return $list;
}
add_shortcode('show_bookmark_image_list', 'show_bookmark_image_list');
//end show_bookmark_image_list


/* affiche la 1ere image d'un article
1. la post_thumbail (image à la une)
2. champ personnalisé (post custom)
3. 1ere image du content
4. image par défaut
*/
function first_image($article) {
	$first_img = "";
	$metas = get_post_custom($article);

	if (has_post_thumbnail($article)) {
		$output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', get_the_post_thumbnail( $article ), $matches);	
		$first_img = $matches [1] [0];
		//echo $article . " -- " . $first_img . " hpt<br><br>";
		}
	elseif ( isset($metas['thumb_zenphoto'][0]) ) {
		$first_img = $metas['thumb_zenphoto'][0];
		// http://alubook.local/zenphoto/cache/gp-france-2010/2010-05-23_gp-france-2010_5327_610_watermark.jpg
		//echo $article . " -- " . $first_img . " tz<br><br>";
		}
	else {
		$output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', get_the_content($article), $matches);	
		$first_img = $matches [1] [0];
		//echo $article . " -- " . $first_img . " preg<br><br>";
		if(empty($first_img)) {
			//$first_img = "http://alubook.local/wordpress/wp-content/themes/twentytwelve-child/images/ampoules.jpg";
			$first_img = get_bloginfo('stylesheet_directory') . "/images/ampoules.jpg";
			//echo $article . " -- " . $first_img . " ampoule<br><br>";
			}
		}
		
	return $first_img;
}	
	
if ( ! function_exists( 'twentytwelve_comment' ) ) :
/**
 * Template for comments and pingbacks.
 *
 * To override this walker in a child theme without modifying the comments template
 * simply create your own twentytwelve_comment(), and that function will be used instead.
 *
 * Used as a callback by wp_list_comments() for displaying the comments.
 *
 * @since Twenty Twelve 1.0
 */
function twentytwelve_comment( $comment, $args, $depth ) {
	$GLOBALS['comment'] = $comment;
	switch ( $comment->comment_type ) :
		case 'pingback' :
		case 'trackback' :
		// Display trackbacks differently than normal comments.
	?>
	<li <?php comment_class(); ?> id="comment-<?php comment_ID(); ?>">
		<p><?php _e( 'Pingback:', 'twentytwelve' ); ?> <?php comment_author_link(); ?> <?php edit_comment_link( __( '(Edit)', 'twentytwelve' ), '<span class="edit-link">', '</span>' ); ?></p>
	<?php
			break;
		default :
		// Proceed with normal comments.
		global $post;
	?>
	<li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>">
		<article id="comment-<?php comment_ID(); ?>" class="comment">
			<header class="comment-meta comment-author vcard">
				<?php
					echo get_avatar( $comment, 44 );
					printf( '<cite><b class="fn">%1$s</b> %2$s</cite>',
						get_comment_author_link(),
						// If current post author is also comment author, make it known visually.
						( $comment->user_id === $post->post_author ) ? '<span>' . __( 'Post author', 'twentytwelve' ) . '</span>' : ''
					);
					printf( '<a href="%1$s"><time datetime="%2$s">%3$s</time></a>',
						esc_url( get_comment_link( $comment->comment_ID ) ),
						get_comment_time( 'c' ),
						/* translators: 1: date, 2: time */
						sprintf( __( '%1$s at %2$s', 'twentytwelve' ), get_comment_date(), get_comment_time() )
					);
				?>
			</header><!-- .comment-meta -->

			<?php if ( '0' == $comment->comment_approved ) : ?>
				<p class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.', 'twentytwelve' ); ?></p>
			<?php endif; ?>

			<section class="comment-content comment">
				<?php comment_text(); ?>
				<?php //edit_comment_link( __( 'Edit', 'twentytwelve' ), '<p class="edit-link">', '</p>' ); ?>
			</section><!-- .comment-content -->

			<div class="reply">
				<?php edit_comment_link( __( 'Edit', 'twentytwelve' ), '', '' ); ?>
				<?php comment_reply_link( array_merge( $args, array( 'reply_text' => __( 'Reply', 'twentytwelve' ), 'after' => ' <span>&darr;</span>', 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?>
			</div><!-- .reply -->
		</article><!-- #comment-## -->
	<?php
		break;
	endswitch; // end comment_type check
}
endif;


function comment_form_livredor( $args = array(), $post_id = null ) {
	if ( null === $post_id )
		$post_id = get_the_ID();
	else
		$id = $post_id;

	$commenter = wp_get_current_commenter();
	$user = wp_get_current_user();
	$user_identity = $user->exists() ? $user->display_name : '';

	if ( ! isset( $args['format'] ) )
		$args['format'] = current_theme_supports( 'html5', 'comment-form' ) ? 'html5' : 'xhtml';

	$req      = get_option( 'require_name_email' );
	$aria_req = ( $req ? " aria-required='true'" : '' );
	$html5    = 'html5' === $args['format'];
	$fields   =  array(
		'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name' ) . ( $req ? ' <span class="required">*</span>' : '' ) . '</label> ' .
		            '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>',
		'email'  => '<p class="comment-form-email"><label for="email">' . __( 'Email' ) . ( $req ? ' <span class="required">*</span>' : '' ) . '</label> ' .
		            '<input id="email" name="email" ' . ( $html5 ? 'type="email"' : 'type="text"' ) . ' value="' . esc_attr(  $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' /></p>',
		'url'    => '<p class="comment-form-url"><label for="url">' . __( 'Website' ) . '</label> ' .
		            '<input id="url" name="url" ' . ( $html5 ? 'type="url"' : 'type="text"' ) . ' value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" /></p>',
	);

	$required_text = sprintf( ' ' . __('Required fields are marked %s'), '<span class="required">*</span>' );
	$defaults = array(
		'fields'               => apply_filters( 'comment_form_default_fields', $fields ),
		'comment_field'        => '<p class="comment-form-comment"><label for="comment">' . _x( 'Comment', 'noun' ) . '</label> <textarea id="comment" name="comment" cols="45" rows="8" aria-required="true"></textarea></p>',
		'must_log_in'          => '<p class="must-log-in">' . sprintf( __( 'You must be <a href="%s">logged in</a> to post a comment.' ), wp_login_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) ) ) . '</p>',
		'logged_in_as'         => '<p class="logged-in-as">' . sprintf( __( 'Logged in as <a href="%1$s">%2$s</a>. <a href="%3$s" title="Log out of this account">Log out?</a>' ), get_edit_user_link(), $user_identity, wp_logout_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) ) ) . '</p>',
		'comment_notes_before' => '<p class="comment-notes">' . __( 'Your email address will not be published.' ) . ( $req ? $required_text : '' ) . '</p>',
		'comment_notes_after'  => '<p class="form-allowed-tags">' . sprintf( __( 'You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: %s' ), ' <code>' . allowed_tags() . '</code>' ) . '</p>',
		'id_form'              => 'commentform',
		'id_submit'            => 'submit',
		'title_reply'          => __( 'Leave a Reply' ),
		'title_reply_to'       => __( 'Leave a Reply to %s' ),
		'cancel_reply_link'    => __( 'Cancel reply' ),
		'label_submit'         => __( 'Post Comment' ),
		'format'               => 'xhtml',
	);

	$args = wp_parse_args( $args, apply_filters( 'comment_form_defaults', $defaults ) );

	?>
		<?php if ( comments_open( $post_id ) ) : ?>
			<?php do_action( 'comment_form_before' ); ?>
			<div id="respond" class="comment-respond">
				<h3 id="reply-title" class="comment-reply-title"><?php comment_form_title( $args['title_reply'], $args['title_reply_to'] ); ?> <small><?php cancel_comment_reply_link( $args['cancel_reply_link'] ); ?></small></h3>
				<?php if ( get_option( 'comment_registration' ) && !is_user_logged_in() ) : ?>
					<?php echo $args['must_log_in']; ?>
					<?php do_action( 'comment_form_must_log_in_after' ); ?>
				<?php else : ?>
					<form action="<?php echo site_url( '/wp-comments-post.php' ); ?>" method="post" id="<?php echo esc_attr( $args['id_form'] ); ?>" class="comment-form"<?php echo $html5 ? ' novalidate' : ''; ?>>
						<?php do_action( 'comment_form_top' ); ?>
						<?php if ( is_user_logged_in() ) : ?>
							<?php echo apply_filters( 'comment_form_logged_in', $args['logged_in_as'], $commenter, $user_identity ); ?>
							<?php do_action( 'comment_form_logged_in_after', $commenter, $user_identity ); ?>
						<?php else : ?>
							<?php echo $args['comment_notes_before']; ?>
							<?php
							do_action( 'comment_form_before_fields' );
							foreach ( (array) $args['fields'] as $name => $field ) {
								echo apply_filters( "comment_form_field_{$name}", $field ) . "\n";
							}
							do_action( 'comment_form_after_fields' );
							?>
						<?php endif; ?>
						<?php echo apply_filters( 'comment_form_field_comment', $args['comment_field'] ); ?>
						<?php echo $args['comment_notes_after']; ?>
						<p class="form-submit">
							<input name="submit" type="submit" id="<?php echo esc_attr( $args['id_submit'] ); ?>" value="<?php echo esc_attr( $args['label_submit'] ); ?>" />
							<?php comment_id_fields( $post_id ); ?>
						</p>
						<?php do_action( 'comment_form', $post_id ); ?>
					</form>
				<?php endif; ?>
			</div><!-- #respond -->
			<?php do_action( 'comment_form_after' ); ?>
		<?php else : ?>
			<?php do_action( 'comment_form_comments_closed' ); ?>
		<?php endif; ?>
	<?php
}


/**
 * Outputs a complete commenting form for use within a template.
 * Most strings and form fields may be controlled through the $args array passed
 * into the function, while you may also choose to use the comment_form_default_fields
 * filter to modify the array of default fields if you'd just like to add a new
 * one or remove a single field. All fields are also individually passed through
 * a filter of the form comment_form_field_$name where $name is the key used
 * in the array of fields.
 *
 * @since 3.0.0
 * @param array $args Options for strings, fields etc in the form
 * @param mixed $post_id Post ID to generate the form for, uses the current post if null
 * @return void
 */
 /* si aucun commentaire => requis pour masquer le formulaire */
 
function no_comment_form( $args = array(), $post_id = null ) {
	if ( null === $post_id )
		$post_id = get_the_ID();
	else
		$id = $post_id;

	$commenter = wp_get_current_commenter();
	$user = wp_get_current_user();
	$user_identity = $user->exists() ? $user->display_name : '';

	if ( ! isset( $args['format'] ) )
		$args['format'] = current_theme_supports( 'html5', 'comment-form' ) ? 'html5' : 'xhtml';

	$req      = get_option( 'require_name_email' );
	$aria_req = ( $req ? " aria-required='true'" : '' );
	$html5    = 'html5' === $args['format'];
	$fields   =  array(
		'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name' ) . ( $req ? ' <span class="required">*</span>' : '' ) . '</label> ' .
		            '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>',
		'email'  => '<p class="comment-form-email"><label for="email">' . __( 'Email' ) . ( $req ? ' <span class="required">*</span>' : '' ) . '</label> ' .
		            '<input id="email" name="email" ' . ( $html5 ? 'type="email"' : 'type="text"' ) . ' value="' . esc_attr(  $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' /></p>',
		'url'    => '<p class="comment-form-url"><label for="url">' . __( 'Website' ) . '</label> ' .
		            '<input id="url" name="url" ' . ( $html5 ? 'type="url"' : 'type="text"' ) . ' value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" /></p>',
	);

	$required_text = sprintf( ' ' . __('Required fields are marked %s'), '<span class="required">*</span>' );
	$defaults = array(
		'fields'               => apply_filters( 'comment_form_default_fields', $fields ),
		'comment_field'        => '<p class="comment-form-comment"><label for="comment">' . _x( 'Comment', 'noun' ) . '</label> <textarea id="comment" name="comment" cols="45" rows="8" aria-required="true"></textarea></p>',
		'must_log_in'          => '<p class="must-log-in">' . sprintf( __( 'You must be <a href="%s">logged in</a> to post a comment.' ), wp_login_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) ) ) . '</p>',
		'logged_in_as'         => '<p class="logged-in-as">' . sprintf( __( 'Logged in as <a href="%1$s">%2$s</a>. <a href="%3$s" title="Log out of this account">Log out?</a>' ), get_edit_user_link(), $user_identity, wp_logout_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) ) ) . '</p>',
		'comment_notes_before' => '<p class="comment-notes">' . __( 'Your email address will not be published.' ) . ( $req ? $required_text : '' ) . '</p>',
		'comment_notes_after'  => '<p class="form-allowed-tags">' . sprintf( __( 'You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: %s' ), ' <code>' . allowed_tags() . '</code>' ) . '</p>',
		'id_form'              => 'commentform',
		'id_submit'            => 'submit',
		'title_reply'          => __( ' &rarr; Leave a Reply' ),
		'title_reply_to'       => __( 'Leave a Reply to %s' ),
		'cancel_reply_link'    => __( 'Cancel reply' ),
		'label_submit'         => __( 'Post Comment' ),
		'format'               => 'xhtml',
	);

	$args = wp_parse_args( $args, apply_filters( 'comment_form_defaults', $defaults ) );

	?>
		<?php if ( comments_open( $post_id ) ) : ?>
			<?php do_action( 'comment_form_before' ); ?>
			<?php //echo '<span id="soumettre">Afficher</span> '; ?>
				<h3 id="reply-title" class="comment-reply-title bouton"><?php comment_form_title( $args['title_reply'], $args['title_reply_to'] ); ?> <small><?php cancel_comment_reply_link( $args['cancel_reply_link'] ); ?></small></h3>
			<div id="respond" class="comment-respond">
			
			<div class="commentaires <?php if (get_option( 'display_comment' ) != ('1')) echo 'masquer'; ?>">
				<?php if ( get_option( 'comment_registration' ) && !is_user_logged_in() ) : ?>
					<?php echo $args['must_log_in']; ?>
					<?php do_action( 'comment_form_must_log_in_after' ); ?>
				<?php else : ?>
					<form action="<?php echo site_url( '/wp-comments-post.php' ); ?>" method="post" id="<?php echo esc_attr( $args['id_form'] ); ?>" class="comment-form"<?php echo $html5 ? ' novalidate' : ''; ?>>
						<?php do_action( 'comment_form_top' ); ?>
						<?php if ( is_user_logged_in() ) : ?>
							<?php echo apply_filters( 'comment_form_logged_in', $args['logged_in_as'], $commenter, $user_identity ); ?>
							<?php do_action( 'comment_form_logged_in_after', $commenter, $user_identity ); ?>
						<?php else : ?>
							<?php echo $args['comment_notes_before']; ?>
							<?php
							do_action( 'comment_form_before_fields' );
							foreach ( (array) $args['fields'] as $name => $field ) {
								echo apply_filters( "comment_form_field_{$name}", $field ) . "\n";
								}
							do_action( 'comment_form_after_fields' );
							?>
						<?php endif; ?>
						<?php echo apply_filters( 'comment_form_field_comment', $args['comment_field'] ); ?>
						<?php echo $args['comment_notes_after']; ?>
						<p class="form-submit">
							<input name="submit" type="submit" id="<?php echo esc_attr( $args['id_submit'] ); ?>" value="<?php echo esc_attr( $args['label_submit'] ); ?>" />
							<?php comment_id_fields( $post_id ); ?>
						</p>
						<?php do_action( 'comment_form', $post_id ); ?>
					</form>
				<?php endif; ?>
			</div><!-- #commentaires -->
			</div><!-- #respond -->
			<?php do_action( 'comment_form_after' ); ?>
		<?php else : ?>
			<?php do_action( 'comment_form_comments_closed' ); ?>
		<?php endif; ?>
	<?php
}

/* Remplacer le shortcode gallery
remove_shortcode('gallery', 'gallery_shortcode');
add_shortcode('gallery', 'gallery_shortcode_swipebox');

function gallery_shortcode_swipebox($attr) {
}
*/

/**
 * Determines the difference between two timestamps.
 *
 * The difference is returned in a human readable format such as "1 hour",
 * "5 mins", "2 days".
 *
 * @since 1.5.0
 *
 * @param int $from Unix timestamp from which the difference begins.
 * @param int $to Optional. Unix timestamp to end the time difference. Default becomes time() if not set.
 * @return string Human readable time difference.
 */
function _human_time_diff( $from, $to = '' ) {
	if ( empty( $to ) )
		$to = time();

	$diff = (int) abs( $to - $from );
	if ( $diff < HOUR_IN_SECONDS ) {
		$mins = round( $diff / MINUTE_IN_SECONDS );
		if ( $mins <= 1 )
			$mins = 1;
		/* translators: min=minute */
		$since = sprintf( _n( '%s min ago', '%s mins ago', $mins, 'twentytwelve-child' ), $mins );
	} elseif ( $diff < DAY_IN_SECONDS && $diff >= HOUR_IN_SECONDS ) {
		$hours = round( $diff / HOUR_IN_SECONDS );
		if ( $hours <= 1 )
			$hours = 1;
		$since = sprintf( _n( '%s hour ago', '%s hours ago', $hours, 'twentytwelve-child' ), $hours );
	} elseif ( $diff < WEEK_IN_SECONDS && $diff >= DAY_IN_SECONDS ) {
		$days = round( $diff / DAY_IN_SECONDS );
		if ( $days <= 1 )
			$days = 1;
		$since = sprintf( _n( '%s day ago', '%s days ago', $days, 'twentytwelve-child' ), $days );
	} elseif ( $diff < 30 * DAY_IN_SECONDS && $diff >= WEEK_IN_SECONDS ) {
		$weeks = round( $diff / WEEK_IN_SECONDS );
		if ( $weeks <= 1 )
			$weeks = 1;
		$since = sprintf( _n( '%s week ago', '%s weeks ago', $weeks, 'twentytwelve-child' ), $weeks );
	} else {
	/*
	} elseif ( $diff < YEAR_IN_SECONDS && $diff >= 30 * DAY_IN_SECONDS ) {
		$months = round( $diff / ( 30 * DAY_IN_SECONDS ) );
		if ( $months <= 1 )
			$months = 1;
			*/
		//$since = sprintf( _n( '%s month', '%s months', $months ), $months );
		
		//$since = __('The', 'twentytwelve-child') . " " . get_the_date();
		
		$since = sprintf( __( 'The %s', 'twentytwelve-child' ), get_the_date() );
		
		/*
	} elseif ( $diff >= YEAR_IN_SECONDS ) {
		$years = round( $diff / YEAR_IN_SECONDS );
		if ( $years <= 1 )
			$years = 1;
		$since = sprintf( _n( '%s year', '%s years', $years ), $years );*/
	}
	return $since;
}

?>