first functionnal repertoire page

This commit is contained in:
Antoine M 2024-10-21 16:58:16 +02:00
parent 47764e95f8
commit 332a7eb30a

View File

@ -0,0 +1,268 @@
<?php
/* Template Name: Repertoire des métiers */
?>
<?php
get_header();
$pageIcon = get_field('page_icon', get_queried_object_id()) ?? null;
?>
<nav class=" breadcrumbs_navigation" aria-label="<?php echo __("Vous êtes ici", "homegrade-theme__texte-fonctionnel") ?>">
<?php
$currentPage = get_post(get_queried_object_id());
$networkHomeUrl = network_home_url();
$frontPageUrl = get_home_url();
$frontPageTitle = get_the_title(get_option('page_on_front'));
?>
<ol>
<li>
<a href="<?php echo $networkHomeUrl ?>" title="<?php echo __("Accueil", "homegrade-theme__texte-fonctionnel") ?>">
<img src="<?php echo get_template_directory_uri() . "/resources/img/pictogrammes/icon_house_dark.svg" ?>" alt="">
</a>
</li>
<li><a href="<?php echo $frontPageUrl ?>" aria-current="location" aria-disabled="true"><?php echo $frontPageTitle ?></a></li>
<?php if ($currentPage) : ?>
<li><a href="<?php echo get_post_permalink($currentPage->ID) ?>" aria-current="location" aria-disabled="true"><?php echo $currentPage->post_title ?></a></li>
<?php endif; ?>
</ol>
</nav>
<div class="homegrade-page-container homegrade-page-container--metiers-patrimoine">
<?php /* --------
HEADING BOX
---------------*/ ?>
<?php
get_template_part("template-components/heading-box", null, array(
"pageIcon" => $pageIcon,
"title" => $currentPage->post_title,
"description" => __("Cherchez une entreprise ou un artisan", "metiers-patrimoine-theme"),
));
?>
<section class="artisans-posts">
<aside class="metier-patrimoine-searchbar">
<div class="metier-patrimoine-searchbar__results-indications">
<p class="metier-patrimoine-searchbar__posts-results-amount" role="status" aria-live="polite">
<span class="results-amount">
4 </span>
<span class="results-text">
résultat(s) </span>
</p>
</div>
<form class="metier-patrimoine-searchform" action="">
<input type="hidden" value="1" name="active-page">
<fieldset class="metier-patrimoine-searchbar__search-by">
<legend><?php echo __("Rechercher par", "metiers-patrimoine-theme") ?></legend>
<div class="search-radio-card">
<label for="building_elements"><?php echo __("Éléments du bâtiment", "metiers-patrimoine-theme") ?></label>
<input type="radio" id="elements_batiments_checkbox" name="search_by" value="elementsbatiments" checked />
</div>
<div class="search-radio-card">
<label for="job_types"><?php echo __("Métiers du patrimoine", "metiers-patrimoine-theme") ?></label>
<input type="radio" id="metiers_checkbox" name="search_by" value="metiers" />
</div>
</fieldset>
<fieldset class="metier-patrimoine-searchbar__elements-batiments-filters">
<div class="fieldset-titling">
<img class="fieldset-icon" src="<?php echo get_stylesheet_directory_uri() . '/resources/img/Homegrade_repertoire-metiers.svg' ?>" alt=''>
<h4 class="filter-title">Éléments du bâtiment</h4>
</div>
<ul>
<?php
// Récupérer tous les termes de la taxonomie 'elementsbatiments' avec une hiérarchie
$ElementBatimentsTerms = get_terms([
'taxonomy' => 'elementsbatiments',
'orderby' => 'name',
'order' => 'ASC',
'hide_empty' => false,
]);
if ($ElementBatimentsTerms) :
// Organiser les termes par parent (hiérarchie)
$terms_by_parent = [];
// Boucle pour organiser les termes en fonction de leurs parents
foreach ($ElementBatimentsTerms as $term) {
if ($term->parent == 0) {
// Si c'est un parent, on le place dans le tableau des parents
$terms_by_parent[$term->term_id] = [
'term' => $term,
'children' => [],
];
} else {
$terms_by_parent[$term->parent]['children'][] = $term;
}
}
// Vérifier que l'organisation est correcte
// write_log($terms_by_parent); // Permet de déboguer l'organisation des termes
// Afficher les termes parents et leurs enfants
foreach ($terms_by_parent as $parent_term_data) :
$parent_term = $parent_term_data['term'];
?>
<li class="checkbox-choice">
<input type="checkbox" name="elementsbatiments[]" value="<?php echo esc_attr($parent_term->term_id); ?>" data-term="<?php echo esc_attr($parent_term->slug); ?>">
<label>
<?php echo esc_html($parent_term->name); ?>
</label>
<?php if (!empty($parent_term_data['children'])) : ?>
<ul>
<?php foreach ($parent_term_data['children'] as $child_term) : ?>
<li class="checkbox-choice">
<label>
<input type="checkbox" name="elementsbatiments[]" value="<?php echo esc_attr($child_term->term_id); ?>" data-term="<?php echo esc_attr($child_term->slug); ?>">
<?php echo esc_html($child_term->name); ?>
</label>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</li>
<?php endforeach;
endif; ?>
</ul>
</fieldset>
<fieldset class="metier-patrimoine-searchbar__metiers-filters">
<div class="fieldset-titling">
<img class="fieldset-icon" src="<?php echo get_stylesheet_directory_uri() . '/resources/img/Homegrade_repertoire-elements.svg' ?>" alt=''>
<h4 class="filter-title">Métiers</h4>
</div>
<ul>
<?php
// Récupérer tous les termes de la taxonomie 'metiers' avec une hiérarchie
$MertiersTerms = get_terms([
'taxonomy' => 'metiers',
'orderby' => 'name',
'order' => 'ASC',
'hide_empty' => false,
'stat'
]);
if ($MertiersTerms) :
$terms_by_parent = [];
foreach ($MertiersTerms as $term) {
if ($term->parent == 0 && !isset($terms_by_parent[$term->term_id])) {
$terms_by_parent[$term->term_id] = [
'term' => $term,
'children' => [],
];
}
if ($term->parent == 0 && isset($terms_by_parent[$term->term_id])) {
$terms_by_parent[$term->term_id]['term'] = $term;
} else {
if (!isset($terms_by_parent[$term->parent])) {
$terms_by_parent[$term->parent] = [
'term' => null,
'children' => [],
];
}
$terms_by_parent[$term->parent]['children'][] = $term;
}
}
foreach ($terms_by_parent as $parent_term_data) :
$parent_term = $parent_term_data['term'];
?>
<li class="checkbox-choice">
<input type="checkbox" name="metiers[]" value="<?php echo esc_attr($parent_term->term_id); ?>" data-term="<?php echo esc_attr($parent_term->slug); ?>">
<label>
<?php echo esc_html($parent_term->name); ?>
</label>
<!-- Afficher les enfants sous forme de checkboxes -->
<?php if (!empty($parent_term_data['children'])) : ?>
<ul>
<?php foreach ($parent_term_data['children'] as $child_term) : ?>
<li class="checkbox-choice">
<input type="checkbox" name="metiers[]" value="<?php echo esc_attr($child_term->term_id); ?>" data-term="<?php echo esc_attr($child_term->slug); ?>">
<label>
<?php echo esc_html($child_term->name); ?>
</label>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</li>
<?php endforeach;
endif; ?>
</ul>
</fieldset>
<!-- <button type="submit">submit</button> -->
</form>
</aside>
<div class="artisans-posts__grid">
<?php
$initialPosts = new WP_Query([
"status" => "publish",
"post_type" => "artisans",
"posts_per_page" => -1,
"paged" => 1,
]);
// write_log($initialPosts);
foreach ($initialPosts->posts as $key => $artisanPost) {
$post_thumbnail = get_the_post_thumbnail($artisanPost->ID, 'full', array('class' => 'card-artisans__thumbnail card-post__thumbnail')) ?? null;
$post_date = get_the_date('j.m.Y', $artisanPost->ID) ?? null;
get_template_part(
'template-components/artisans/card-artisans',
null,
array(
'card_variant' => 'activite',
'post_ID' => $artisanPost->ID,
'post_title' => get_the_title($artisanPost->ID),
'post_thumbnail' => $post_thumbnail,
'current_taxonomy' => "elementsbatiments",
'post_date' => $post_date,
)
);
}
?>
</div>
</section>
</div>
<?php get_footer();