2025-11-04

This commit is contained in:
gcch 2025-11-04 13:21:41 +01:00
commit 71c35a497f
1626 changed files with 5901 additions and 2182 deletions

View file

@ -7,191 +7,185 @@ use HaikuAtelier\StarterSite;
use Timber\Timber;
// Récupère les dépendances Composer
require_once __DIR__ . "../../../../../vendor/autoload.php";
require_once __DIR__ . "/src/inc/ControlesPersonnalises.php";
require_once __DIR__ . "/src/StarterSite.php";
require_once __DIR__ . "/src/inc/Fonctionnalites.php";
require_once __DIR__ . "/src/inc/FonctionnalitesWooCommerce.php";
require_once __DIR__ . "/src/inc/ChampsPersonnalises.php";
require_once __DIR__ . "/src/inc/Taxonomies.php";
require_once __DIR__ . '../../../../../vendor/autoload.php';
require_once __DIR__ . '/src/StarterSite.php';
require_once __DIR__ . '/src/inc/ChampsPersonnalises.php';
require_once __DIR__ . '/src/inc/ControlesPersonnalises.php';
require_once __DIR__ . '/src/inc/Fonctionnalites.php';
require_once __DIR__ . '/src/inc/FonctionnalitesWooCommerce.php';
require_once __DIR__ . '/src/inc/Taxonomies.php';
// Initialise Timber
Timber::init();
// Sélectionne le répertoire contenant les modèles Twig
Timber::$dirname = ["views"];
Timber::$dirname = ['views'];
// Charge les Scripts du thème (report d'erreurs)
function charge_scripts_haiku_atelier_2024(): void {
wp_enqueue_script_module(
id: "haiku-atelier-2024-gaffe",
deps: [],
src: get_template_directory_uri() . "/assets/js/gaffe.js",
version: filemtime(get_template_directory() . "/assets/js/gaffe.js"),
);
wp_enqueue_script_module(
id: "haiku-atelier-2024-bouton-panier",
deps: [],
src: get_template_directory_uri() . "/assets/js/scripts-bouton-panier.js",
version: filemtime(get_template_directory() . "/assets/js/scripts-bouton-panier.js"),
);
wp_enqueue_script_module(
id: "haiku-atelier-2024-menu-mobile",
deps: [],
src: get_template_directory_uri() . "/assets/js/scripts-menu-mobile.js",
version: filemtime(get_template_directory() . "/assets/js/scripts-menu-mobile.js"),
);
wp_enqueue_script_module(
id: "haiku-atelier-2024-bouton-retour-sommet",
deps: [],
src: get_template_directory_uri() . "/assets/js/scripts-bouton-retour-sommet.js",
version: filemtime(get_template_directory() . "/assets/js/scripts-bouton-retour-sommet.js"),
);
function load_scripts(): void {
wp_enqueue_script_module(
id: 'haiku-atelier-2024-gaffe',
deps: [],
src: get_template_directory_uri() . '/assets/js/gaffe.js',
version: filemtime(get_template_directory() . '/assets/js/gaffe.js'),
);
wp_enqueue_script_module(
id: 'haiku-atelier-2024-bouton-panier',
deps: [],
src: get_template_directory_uri() . '/assets/js/scripts-bouton-panier.js',
version: filemtime(get_template_directory() . '/assets/js/scripts-bouton-panier.js'),
);
wp_enqueue_script_module(
id: 'haiku-atelier-2024-menu-mobile',
deps: [],
src: get_template_directory_uri() . '/assets/js/scripts-menu-mobile.js',
version: filemtime(get_template_directory() . '/assets/js/scripts-menu-mobile.js'),
);
wp_enqueue_script_module(
id: 'haiku-atelier-2024-bouton-retour-sommet',
deps: [],
src: get_template_directory_uri() . '/assets/js/scripts-bouton-retour-sommet.js',
version: filemtime(get_template_directory() . '/assets/js/scripts-bouton-retour-sommet.js'),
);
}
add_action("wp_enqueue_scripts", "charge_scripts_haiku_atelier_2024");
add_action('wp_enqueue_scripts', 'load_scripts');
// Charge les styles du thème
function charge_styles_haiku_atelier_2024(): void {
wp_enqueue_style(
handle: "haiku-atelier-2024-styles",
src: get_template_directory_uri() . "/assets/css/main.css",
deps: [],
ver: filemtime(get_template_directory() . "/assets/css/main.css"),
media: "all",
);
wp_enqueue_style(
handle: 'haiku-atelier-2024-styles',
src: get_template_directory_uri() . '/assets/css/main.css',
deps: [],
ver: filemtime(get_template_directory() . '/assets/css/main.css'),
media: 'all',
);
}
add_action("wp_enqueue_scripts", "charge_styles_haiku_atelier_2024");
add_action('wp_enqueue_scripts', 'charge_styles_haiku_atelier_2024');
// Initialise les fonctionnalités du thème
new StarterSite();
/**
* Personnalisation du thème
* Personnalisation du thème.
*
* @param mixed $wp_customize
*/
// Personnalisation du thème
function enregistre_personnalisations_theme($wp_customize) {
// Section « Réseaux sociaux »
$wp_customize->add_section("liens_reseaux_sociaux", [
"title" => __("Liens des réseaux sociaux"),
"description" => __("Liens des réseaux sociaux s'affichant dans le pied de page."),
]);
// Section « Réseaux sociaux »
$wp_customize->add_section('liens_reseaux_sociaux', [
'title' => __('Liens des réseaux sociaux'),
'description' => __("Liens des réseaux sociaux s'affichant dans le pied de page."),
]);
// Instagram
$wp_customize->add_setting("lien_instagram", [
"type" => "theme_mod",
"capability" => "edit_theme_options",
]);
$wp_customize->add_control("lien_instagram", [
"type" => "url",
"section" => "liens_reseaux_sociaux",
"label" => __("Profil Instagram"),
]);
// Instagram
$wp_customize->add_setting('lien_instagram', ['type' => 'theme_mod', 'capability' => 'edit_theme_options']);
$wp_customize->add_control('lien_instagram', [
'type' => 'url',
'section' => 'liens_reseaux_sociaux',
'label' => __('Profil Instagram'),
]);
// Facebook
$wp_customize->add_setting("lien_facebook", [
"type" => "theme_mod",
"capability" => "edit_theme_options",
]);
$wp_customize->add_control("lien_facebook", [
"type" => "url",
"section" => "liens_reseaux_sociaux",
"label" => __("Profil Facebook"),
]);
// Facebook
$wp_customize->add_setting('lien_facebook', ['type' => 'theme_mod', 'capability' => 'edit_theme_options']);
$wp_customize->add_control('lien_facebook', [
'type' => 'url',
'section' => 'liens_reseaux_sociaux',
'label' => __('Profil Facebook'),
]);
// Pinterest
$wp_customize->add_setting("lien_pinterest", [
"type" => "theme_mod",
"capability" => "edit_theme_options",
]);
$wp_customize->add_control("lien_pinterest", [
"type" => "url",
"section" => "liens_reseaux_sociaux",
"label" => __("Profil Pinterest"),
]);
// Pinterest
$wp_customize->add_setting('lien_pinterest', ['type' => 'theme_mod', 'capability' => 'edit_theme_options']);
$wp_customize->add_control('lien_pinterest', [
'type' => 'url',
'section' => 'liens_reseaux_sociaux',
'label' => __('Profil Pinterest'),
]);
// Section « Descriptions Produits »
$wp_customize->add_section("descriptions_produits", [
"title" => __("Textes des descriptions Produits"),
"description" => __("Textes des descriptions apparaissant sur les pages Produit."),
]);
// Section « Descriptions Produits »
$wp_customize->add_section('descriptions_produits', [
'title' => __('Textes des descriptions Produits'),
'description' => __('Textes des descriptions apparaissant sur les pages Produit.'),
]);
$wp_customize->add_setting("texte_conditions_livraison", [
"capability" => "edit_theme_options",
"default" => "",
"sanitize_callback" => "wp_kses_post",
"transport" => "postMessage",
"type" => "theme_mod",
]);
$wp_customize->add_control(
new Controle_Personnalise_TinyMCE($wp_customize, "texte_conditions_livraison", [
"label" => __("Conditions de livraison"),
"description" => __("Descriptif des conditions de livraison."),
"section" => "descriptions_produits",
"input_attrs" => [
"toolbar1" => "bold italic bullist numlist alignleft aligncenter alignright link",
"mediaButtons" => true,
],
]),
);
$wp_customize->add_setting('texte_conditions_livraison', [
'capability' => 'edit_theme_options',
'default' => '',
'sanitize_callback' => 'wp_kses_post',
'transport' => 'postMessage',
'type' => 'theme_mod',
]);
$wp_customize->add_control(new Controle_Personnalise_TinyMCE($wp_customize, 'texte_conditions_livraison', [
'label' => __('Conditions de livraison'),
'description' => __('Descriptif des conditions de livraison.'),
'section' => 'descriptions_produits',
'input_attrs' => [
'toolbar1' => 'bold italic bullist numlist alignleft aligncenter alignright link',
'mediaButtons' => true,
],
]));
$wp_customize->add_setting("texte_entretien_produit", [
"capability" => "edit_theme_options",
"default" => "",
"sanitize_callback" => "wp_kses_post",
"transport" => "postMessage",
"type" => "theme_mod",
]);
$wp_customize->add_control(
new Controle_Personnalise_TinyMCE($wp_customize, "texte_entretien_produit", [
"label" => __("Entretien du Produit"),
"description" => __("Descriptif des bonnes pratiques pour l'entretien du Produit."),
"section" => "descriptions_produits",
"input_attrs" => [
"toolbar1" => "bold italic bullist numlist alignleft aligncenter alignright link",
"mediaButtons" => true,
],
]),
);
$wp_customize->add_setting('texte_entretien_produit', [
'capability' => 'edit_theme_options',
'default' => '',
'sanitize_callback' => 'wp_kses_post',
'transport' => 'postMessage',
'type' => 'theme_mod',
]);
$wp_customize->add_control(new Controle_Personnalise_TinyMCE($wp_customize, 'texte_entretien_produit', [
'label' => __('Entretien du Produit'),
'description' => __("Descriptif des bonnes pratiques pour l'entretien du Produit."),
'section' => 'descriptions_produits',
'input_attrs' => [
'toolbar1' => 'bold italic bullist numlist alignleft aligncenter alignright link',
'mediaButtons' => true,
],
]));
}
add_action("customize_register", "enregistre_personnalisations_theme");
function retire_tailles_image_par_defaut($sizes) {
$targets = ["full", "thumbnail"];
add_action('customize_register', 'enregistre_personnalisations_theme');
foreach ($sizes as $size_index => $size) {
if (!in_array($size, $targets)) {
unset($sizes[$size_index]);
function retire_tailles_image_par_defaut(mixed $sizes): mixed {
error_log(print_r($sizes, true));
/** @var array<string> */
$targets = ['full', 'thumbnail'];
foreach ($sizes as $size_index => $size) {
if (!in_array($size, $targets, true)) {
unset($sizes[$size_index]);
}
}
}
return $sizes;
return $sizes;
}
add_filter("intermediate_image_sizes", "retire_tailles_image_par_defaut", 10, 1);
add_filter("big_image_size_threshold", "__return_false");
add_filter('intermediate_image_sizes', 'retire_tailles_image_par_defaut', 10, 1);
add_filter('big_image_size_threshold', '__return_false');
// Désactive la mise à jour automatique des traductions
add_filter("async_update_translation", "__return_false");
add_filter("auto_update_translation", "__return_false");
add_filter('async_update_translation', '__return_false');
add_filter('auto_update_translation', '__return_false');
// Block Patterns
add_action("after_setup_theme", function () {
remove_theme_support("core-block-patterns");
add_action('after_setup_theme', function () {
remove_theme_support('core-block-patterns');
});
add_filter("should_load_remote_block_patterns", "__return_false");
add_filter('should_load_remote_block_patterns', '__return_false');
/**
* WooCommerce
* WooCommerce.
*/
// Charge Carbon Fields
function charge_carbon_fields(): void {
// Nécessaire pour que Carbon Fields trouve ses ressources
define("Carbon_Fields\URL", home_url("/vendor/htmlburger/carbon-fields"));
Carbon_Fields::boot();
// Nécessaire pour que Carbon Fields trouve ses ressources
define('Carbon_Fields\URL', home_url('/vendor/htmlburger/carbon-fields'));
Carbon_Fields::boot();
}
add_action("after_setup_theme", "charge_carbon_fields");
add_action('after_setup_theme', 'charge_carbon_fields');
// Emails
// add_filter("woocommerce_email_styles", "patricks_woocommerce_email_styles");