2026-04-01
This commit is contained in:
parent
ef19ba2b72
commit
5f332f4068
34 changed files with 9392 additions and 391 deletions
|
|
@ -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
|
||||
);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue