This commit is contained in:
gcch 2025-06-19 16:07:29 +02:00
commit de73fc619a
3560 changed files with 747274 additions and 0 deletions

View file

@ -0,0 +1,201 @@
<?php
declare(strict_types=1);
use Carbon_Fields\Carbon_Fields;
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";
// Initialise Timber
Timber::init();
// Sélectionne le répertoire contenant les modèles Twig
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"),
);
}
add_action("wp_enqueue_scripts", "charge_scripts_haiku_atelier_2024");
// 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",
);
}
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
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."),
]);
// 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"),
]);
// 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."),
]);
$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,
],
]),
);
}
add_action("customize_register", "enregistre_personnalisations_theme");
function retire_tailles_image_par_defaut($sizes) {
$targets = ["full", "thumbnail"];
foreach ($sizes as $size_index => $size) {
if (!in_array($size, $targets)) {
unset($sizes[$size_index]);
}
}
return $sizes;
}
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");
// Block Patterns
add_action("after_setup_theme", function () {
remove_theme_support("core-block-patterns");
});
add_filter("should_load_remote_block_patterns", "__return_false");
/**
* 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();
}
add_action("after_setup_theme", "charge_carbon_fields");
// Emails
// add_filter("woocommerce_email_styles", "patricks_woocommerce_email_styles");
// function patricks_woocommerce_email_styles($css) {
// $css = "";
// return $css;
// }