haiku-atelier-2024/web/app/themes/haiku-atelier-2024/archive-product.php

47 lines
1.5 KiB
PHP

<?php
/**
* Le modèle de la Page Boutique (« E-Shop »).
*/
declare(strict_types=1);
use Timber\Timber;
require_once __DIR__ . "/src/inc/TraitementInformations.php";
// Contexte et modèles
$contexte = Timber::context();
$modeles = ["boutique.twig"];
/** @var array<WC_Product> $informations_produits Les informations brutes des Produits. */
$informations_produits = wc_get_products([
"limit" => 12,
"order" => "DESC",
"orderby" => "date",
]);
/** @var InformationsProduitShop $produits Les informations strictement nécessaires pour la grille des Produits. */
$produits = array_map(callback: "recupere_informations_produit_shop", array: $informations_produits);
$contexte["produits"] = $produits;
/**
* Charge les Scripts nécessaires pour la page Boutique.
*/
function charge_scripts_page_boutique(): void {
wp_enqueue_style(
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",
);
wp_enqueue_script_module(
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"),
);
}
add_action("wp_enqueue_scripts", "charge_scripts_page_boutique");
// Rendu
Timber::render(filenames: $modeles, data: $contexte);