197 lines
6.7 KiB
PHP
Executable file
197 lines
6.7 KiB
PHP
Executable file
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use Carbon_Fields\Carbon_Fields;
|
|
use HaikuAtelier\StarterSite;
|
|
use Timber\Timber;
|
|
|
|
use function wp_enqueue_script_module;
|
|
|
|
// Récupère les dépendances Composer
|
|
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'];
|
|
|
|
// Charge les Scripts du thème (report d'erreurs)
|
|
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', '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',
|
|
);
|
|
}
|
|
|
|
add_action('wp_enqueue_scripts', 'charge_styles_haiku_atelier_2024');
|
|
|
|
// Initialise les fonctionnalités du thème
|
|
new StarterSite();
|
|
|
|
/**
|
|
* Personnalisation du thème.
|
|
*
|
|
* @param mixed $wp_customize
|
|
*/
|
|
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(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;
|
|
}
|
|
|
|
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;
|
|
// }
|