<?php
// style and scripts
add_action(‘wp_enqueue_scripts’, ‘bootscore_child_enqueue_styles’);
function bootscore_child_enqueue_styles() {
  // style.css
  wp_enqueue_style(‘parent-style’, get_template_directory_uri() . ‘/style.css’);
  // Compiled main.css
  $modified_bootscoreChildCss = date(‘YmdHi’, filemtime(get_stylesheet_directory() . ‘/css/main.css’));
  wp_enqueue_style(‘main’, get_stylesheet_directory_uri() . ‘/css/main.css’, array(‘parent-style’), $modified_bootscoreChildCss);
  wp_enqueue_style( ‘idevcss1’, get_template_directory_uri() . ‘/css/bootstrap.min.css’, array(), NULL, NULL);
}
add_action(‘wp_enqueue_scripts’, ‘my_enqueue_scripts’);
function my_enqueue_scripts() {
    wp_enqueue_script(‘custom-js’, get_stylesheet_directory_uri() . ‘/js/custom.js’, false, ”, true);
    wp_enqueue_script(‘jdst-js’, get_stylesheet_directory_uri() . ‘/js/jamaisdeuxsanstrois.js’, false, ”, true);
    wp_enqueue_script( ‘thering2’, get_template_directory_uri()  . ‘/js/mycustom.js’, array( ‘jquery’ ),”,true );
}
// Fonction pour gérer la recherche basée sur les catégories 2 et 3
function search_by_cat2_cat3() {
  $cat2_id = $_POST[‘cat2_id’]; // Récupérer l’ID de la catégorie 2 à partir de la requête AJAX
  $cat3_id = $_POST[‘cat3_id’]; // Récupérer l’ID de la catégorie 3 à partir de la requête AJAX
  // Employer les IDs des catégories 2 et 3 pour effectuer votre recherche et récupérer les résultats
  // dans un tableau ou un objet JSON
  $results = array(); // Exemple : tableau vide pour les résultats
  // Effectuer votre recherche et remplir le tableau des résultats
  // d’après votre logique métier
  // …
  wp_send_json($results); // Envoyer les résultats de recherche en qualité de réponse JSON
}
add_action(‘wp_ajax_search_by_cat2_cat3’, ‘search_by_cat2_cat3’); // Ajouter l’action AJAX pour les utilisateurs connectés
add_action(‘wp_ajax_nopriv_search_by_cat2_cat3’, ‘search_by_cat2_cat3’); // Ajouter l’action AJAX pour les utilisateurs non connectés
function stevejobs_post_views($postID) {
  $count_key = ‘stevejobs_post_views_count’;
  $count = get_post_meta($postID, $count_key, true);
  if($count == ”){
      $count = 0;
      delete_post_meta($postID, $count_key);
      add_post_meta($postID, $count_key, ‘0’);
  } else {
      $count++;
      update_post_meta($postID, $count_key, $count);
  }
}
function stevejobs_track_post_views($post_id) {
  if (!is_single()) return;
  if (empty($post_id)) {
      global $post;
      $post_id = $post->ID;
  }
  stevejobs_post_views($post_id);
}
add_action(‘wp_head’, ‘stevejobs_track_post_views’);
function stevejobs_get_most_viewed_posts($number_of_posts = 5) {
  $args = array(
      ‘posts_per_page’ => $number_of_posts,
      ‘meta_key’ => ‘stevejobs_post_views_count’,
      ‘orderby’ => ‘meta_value_num’,
      ‘order’ => ‘DESC’,
  );
  $most_viewed_posts = new WP_Query($args);
  return $most_viewed_posts;
}
function add_custom_scripts() {
  wp_enqueue_script(‘jquery’);
  wp_enqueue_script(‘slick-js’, ‘//cdn.jsdelivr.net/jquery.slick/1.6.0/slick.min.js’, array(‘jquery’), ‘1.6.0’, true);
  wp_enqueue_style(‘slick-css’, ‘//cdn.jsdelivr.net/jquery.slick/1.6.0/slick.css’, array(), ‘1.6.0’);
  wp_enqueue_style(‘slick-theme-css’, ‘//cdn.jsdelivr.net/jquery.slick/1.6.0/slick-theme.css’, array(‘slick-css’), ‘1.6.0’);
}
add_action(‘wp_enqueue_scripts’, ‘add_custom_scripts’);
// Meta Box Class: ia recherche
class iarechercheMetabox {
  private $screen = array(
    ‘post’,
    ‘page’,
    ‘category’,
  );
  private $meta_fields = array(
    array(
      ‘label’ => ‘insérez un mot clé’,
      ‘id’ => ‘customia’,
      ‘default’ => ‘HMAC’,
      ‘type’ => ‘text’,
    ),
  );
  public function __construct() {
    add_action( ‘add_meta_boxes’, array( $this, ‘add_meta_boxes’ ) );
    add_action( ‘save_post’, array( $this, ‘save_fields’ ) );
  }
  public function add_meta_boxes() {
    foreach ( $this->screen as $single_screen ) {
      add_meta_box(
        ‘iarecherche’,
        __( ‘ia recherche’, ‘textdomain’ ),
        array( $this, ‘meta_box_callback’ ),
        $single_screen,
        ‘advanced’,
        ‘default’
      );
    }
  }
  public function meta_box_callback( $post ) {
    wp_nonce_field( ‘iarecherche_data’, ‘iarecherche_nonce’ );
    $this->field_generator( $post );
  }
  public function field_generator( $post ) {
    $output = ”;
    foreach ( $this->meta_fields as $meta_field ) {
      $label = ‘<label for=”‘ . $meta_field[‘id’] . ‘”>’ . $meta_field[‘label’] . ‘</label>’;
      $meta_value = get_post_meta( $post->ID, $meta_field[‘id’], true );
      if ( empty( $meta_value ) ) {
        if ( isset( $meta_field[‘default’] ) ) {
          $meta_value = $meta_field[‘default’];
        }
      }
      switch ( $meta_field[‘type’] ) {
        default:
          $input = sprintf(
            ‘<input %s id=”%s” name=”%s” type=”%s” value=”%s”>’,
            $meta_field[‘type’] !== ‘color’ ? ‘style=”width: 100%”‘ : ”,
            $meta_field[‘id’],
            $meta_field[‘id’],
            $meta_field[‘type’],
            $meta_value
          );
      }
      $output .= $this->format_rows( $label, $input );
    }
    echo ‘<table class=”form-table”><tbody>’ . $output . ‘</tbody></table>’;
  }
  public function format_rows( $label, $input ) {
    return ‘<tr><th>’.$label.'</th><td>’.$input.'</td></tr>’;
  }
  public function save_fields( $post_id ) {
    if ( ! isset( $_POST[‘iarecherche_nonce’] ) )
      return $post_id;
    $nonce = $_POST[‘iarecherche_nonce’];
    if ( !wp_verify_nonce( $nonce, ‘iarecherche_data’ ) )
      return $post_id;
    if ( defined( ‘DOING_AUTOSAVE’ ) && DOING_AUTOSAVE )
      return $post_id;
    foreach ( $this->meta_fields as $meta_field ) {
      if ( isset( $_POST[ $meta_field[‘id’] ] ) ) {
        switch ( $meta_field[‘type’] ) {
          case ’email’:
            $_POST[ $meta_field[‘id’] ] = sanitize_email( $_POST[ $meta_field[‘id’] ] );
            break;
          case ‘text’:
            $_POST[ $meta_field[‘id’] ] = sanitize_text_field( $_POST[ $meta_field[‘id’] ] );
            break;
        }
        update_post_meta( $post_id, $meta_field[‘id’], $_POST[ $meta_field[‘id’] ] );
      } else if ( $meta_field[‘type’] === ‘checkbox’ ) {
        update_post_meta( $post_id, $meta_field[‘id’], ‘0’ );
      }
    }
  }
}
if (class_exists(‘iarechercheMetabox’)) {
  new iarechercheMetabox;
};
/*
function my_custom_menu_page() {
  add_menu_page(
    __( ‘Gestion des tags’, ‘textdomain’ ),
    ‘Gestion des tags’,
    ‘manage_options’,
    ‘my-custom-menu’,
    ‘my_custom_menu_page_callback’,
    ‘dashicons-admin-generic’,
    6
  );
}
add_action( ‘admin_menu’, ‘my_custom_menu_page’ );
function my_custom_menu_page_callback() {
  global $wpdb;
  // Gestion de la soumission du formulaire
  if ( isset( $_POST[‘submit’] ) ) {
    $new_tag_name = sanitize_text_field( $_POST[‘new_tag_name’] );
    $wpdb->insert( $wpdb->terms, array( ‘name’ => $new_tag_name, ‘slug’ => sanitize_title( $new_tag_name ) ) );
  }
  // Gestion de la suppression de tags
  if ( isset( $_POST[‘delete_tag_id’] ) ) {
    $delete_tag_id = intval( $_POST[‘delete_tag_id’] );
    $wpdb->query( $wpdb->prepare( “DELETE FROM $wpdb->terms WHERE term_id = %d”, $delete_tag_id ) );
  }
  // Affichage du formulaire d’ajout de tag
  echo ‘<h1>Gestion des tags</h1>’;
  echo ‘<form method=”post”>’;
  echo ‘<label for=”new_tag_name”>Nouveau tag :</label>’;
  echo ‘<input type=”text” name=”new_tag_name” id=”new_tag_name”>’;
  echo ‘<input type=”submit” name=”submit” value=”Ajouter”>’;
  echo ‘</form>’;
  // Affichage de la liste des tags
  $tags = $wpdb->get_results( “SELECT * FROM $wpdb->terms ORDER BY name” );
  if ( $tags ) {
    echo ‘<h2>Liste des tags</h2>’;
    echo ‘<ul>’;
    foreach ( $tags as $tag ) {
      echo ‘<li>’ . $tag->name . ‘ <form method=”post” style=”display: inline;”><input type=”hidden” name=”delete_tag_id” value=”‘ . $tag->term_id . ‘”><input type=”submit” value=”Supprimer”></form></li>’;
    }
    echo ‘</ul>’;
  } else {
    echo ‘<p>Aucun tag trouvé.</p>’;
  }
}*/
// Ajoute une nouvelle page d’options dans le menu d’administration
add_action(‘admin_menu’, ‘ajouter_page_tags_admin’);
function ajouter_page_tags_admin(){
    add_menu_page(
        ‘Gestion des tags’, // Titre de la page
        ‘Ajouts suppresion tag’, // Titre du menu
        ‘manage_options’, // Capacité requise pour afficher la page
        ‘gestion-tags’, // Slug de la page
        ‘afficher_page_tags_admin’ // Callback pour afficher la page
    );
}
// Affiche la page d’options pour la gestion des tags
function afficher_page_tags_admin(){
    // Vérifie que l’utilisateur a les droits nécessaires pour accéder à cette page
    if (!current_user_can(‘manage_options’))  {
        wp_die(__(‘Vous n’avez pas les droits nécessaires pour accéder à cette page.’));
    }
    // Si des tags ont été sélectionnés pour suppression, les supprimer de la base de informations
    if(isset($_POST[‘supprimer_tags’])){
        $tags_a_supprimer = $_POST[‘supprimer_tags’];
        foreach($tags_a_supprimer as $tag_id){
            wp_delete_term($tag_id, ‘post_tag’);
        }
    }
    // Affiche la liste des tags actuels, avec une case à cocher pour chaque tag pour permettre la suppression de plusieurs tags à la fois
    $tags = get_terms(‘post_tag’, array(‘hide_empty’ => false));
    if(count($tags) > 0){
        echo ‘<h2>Liste des tags</h2>’;
        echo ‘<form method=”post”>’;
        echo ‘<ul>’;
        foreach($tags as $tag){
            echo ‘<li><input type=”checkbox” name=”supprimer_tags[]” value=”‘.$tag->term_id.'”>’.$tag->name.'</li>’;
        }
        echo ‘</ul>’;
        echo ‘<input type=”submit” value=”Supprimer les tags sélectionnés”>’;
        echo ‘</form>’;
    } else {
        echo ‘<p>Aucun tag trouvé.</p>’;
    }
}
// Fonction pour ajouter l’option de menu personnalisée dans l’administration WordPress
function ajouter_option_import_rtf() {
    add_menu_page(
        ‘Importer des articles RTF’, // Titre de la page
        ‘Importer RTF’, // Nom dans le menu
        ‘manage_options’, // Droits requis pour voir l’option de menu
        ‘importer_rtf’, // ID unique pour l’option de menu
        ‘afficher_page_import_rtf’, // Fonction d’affichage de la page d’importation
        ‘dashicons-media-document’, // Icône pour l’option de menu
        30 // Position de l’option de menu
    );
}
add_action(‘admin_menu’, ‘ajouter_option_import_rtf’);
// Fonction pour afficher la page d’importation RTF
function afficher_page_import_rtf() {
    ?>
    <div class=”wrap”>
        <h1>Importer des articles RTF</h1>
        <form method=”post” enctype=”multipart/form-data”>
            <input type=”file” name=”fichiers[]” multiple=”multiple” accept=”.txt”><br>
            <?php wp_nonce_field(‘importer_rtf’, ‘importer_rtf_nonce’); ?>
            <input type=”submit” value=”Importer” class=”button button-primary”>
        </form>
    </div>
    <?php
}
// Fonction pour importer les fichiers RTF
function importer_fichiers_rtf() {
    if (isset($_POST[‘importer_rtf_nonce’]) && wp_verify_nonce($_POST[‘importer_rtf_nonce’], ‘importer_rtf’)) {
        if (isset($_FILES[‘fichiers’]) && $_FILES[‘fichiers’][‘error’][0] == 0) {
            $fichiers = $_FILES[‘fichiers’][‘tmp_name’];
            foreach ($fichiers as $fichier) {
                $contenu = file_get_contents($fichier);
                $titre = substr($contenu, 0, strpos($contenu, “n”));
                $contenu = str_replace($titre . “n”, “”, $contenu);
                $post_data = array(
                    ‘post_title’ => wp_strip_all_tags($titre),
                    ‘post_content’ => $contenu,
                    ‘post_status’ => ‘publish’,
                    ‘post_type’ => ‘post’
                );
                $post_id = wp_insert_post($post_data);
            }
            echo ‘<div class=”notice notice-success is-dismissible”><p>Les fichiers ont été importés avec réussite.</p></div>’;
        } else {
            echo ‘<div class=”notice notice-error is-dismissible”><p>Une erreur est survenue durant l’importation des fichiers.</p></div>’;
        }
    }
}
add_action(‘admin_init’, ‘importer_fichiers_rtf’);