2026-04-01

This commit is contained in:
gcch 2026-04-01 17:07:06 +02:00
commit 5f332f4068
34 changed files with 9392 additions and 391 deletions

View file

@ -6,61 +6,62 @@ declare(strict_types=1);
* Le modèle de la Page d'Archive d'une Catégorie de Produits.
*/
use HaikuAtelier\Data\Product;
use HaikuAtelier\WP\Resource;
use Timber\Timber;
require_once __DIR__ . '/src/inc/TraitementInformations.php';
// Contexte et modèles
$contexte = Timber::context();
$modeles = ['boutique.twig'];
$context = Timber::context();
$templates = ['boutique.twig'];
/** @var list<WC_Product> $informations_produits Les informations brutes des Produits. */
$informations_produits = wc_get_products([
'category' => [get_queried_object()?->slug],
/** @var WP_Term */
$current_term = get_queried_object();
$category_slug = $current_term->slug;
/** @var list<WC_Product> $raw_products Les informations brutes des Produits. */
$raw_products = wc_get_products([
'category' => [$category_slug],
'limit' => 12,
'order' => 'DESC',
'orderby' => 'date',
'status' => 'publish'
]);
/** @var InformationsProduitShop $produits Les informations strictement nécessaires pour la grille des Produits. */
$produits = array_map(
callback: recupere_informations_produit_shop(...),
array: $informations_produits
$products = array_map(
callback: Product::new(...),
array: $raw_products
);
$contexte['produits'] = $produits;
$id_categorie_produits = array_shift($informations_produits)?->get_category_ids()[0] ?? '';
$contexte['id_categorie_produits'] = $id_categorie_produits;
$context['products'] = $products;
$products_category_id = array_shift($raw_products)?->get_category_ids()[0] ?? '';
$context['products_category_id'] = $products_category_id;
/**
* Charge les Scripts nécessaires pour la page d'Archive.
* Charge les ressources nécessaires pour la page d'Archive.
*/
function charge_scripts_page_archive_produits(): void {
wp_enqueue_style(
function load_page_resources(): void {
Resource::enqueue_style_file(
handle: 'haiku-atelier-2024-styles-page-boutique',
src: get_template_directory_uri() . '/assets/css/pages/page-boutique.css',
deps: [],
ver: filemtime(get_template_directory() . '/assets/css/pages/page-boutique.css'),
media: 'all'
path: '/assets/css/pages/page-boutique.css'
);
wp_enqueue_script_module(
Resource::enqueue_script_module_file(
id: 'haiku-atelier-2024-scripts-page-boutique',
src: get_template_directory_uri() . '/assets/js/scripts-page-boutique.js',
deps: [],
version: filemtime(get_template_directory() . '/assets/js/scripts-page-boutique.js')
path: '/assets/js/scripts-page-boutique.js'
);
wp_enqueue_script_module(
Resource::enqueue_script_module_file(
id: 'haiku-atelier-2024-scripts-menu-categories',
src: get_template_directory_uri() . '/assets/js/scripts-menu-categories.js',
deps: [],
version: filemtime(get_template_directory() . '/assets/js/scripts-menu-categories.js')
path: '/assets/js/scripts-menu-categories.js'
);
}
add_action('wp_enqueue_scripts', 'charge_scripts_page_archive_produits');
add_action('wp_enqueue_scripts', 'load_page_resources');
$lal = wp_json_encode($context);
echo "<script>console.debug({$lal});</script>";
// Rendu
Timber::render(
filenames: $modeles,
data: $contexte
filenames: $templates,
data: $context
);