Compare commits

...

6 Commits

Author SHA1 Message Date
8c26c27d19 error handling for post code
All checks were successful
continuous-integration/drone/push Build is passing
2024-11-26 10:26:18 +01:00
93bf32774e correct datas 2024-11-26 10:26:06 +01:00
2e930f0048 handling multiple localisation in artisan query 2024-11-26 10:25:53 +01:00
d6ec861bf0 refining geographical filters 2024-11-26 10:25:22 +01:00
74eda13e56 handling localisation checkbox behaviour 2024-11-26 10:24:49 +01:00
1fabb25f97 introducing page redirector block 2024-11-26 10:24:11 +01:00
8 changed files with 96 additions and 19 deletions

View File

@ -0,0 +1,25 @@
{
"name": "acf/search-artisan-btn",
"title": "Redirecteur de page",
"category": "metiers-patrimoine-blocks",
"icon": {
"foreground": "#8B2FF7",
"src": "groups"
},
"keywords": [
"artisan",
"bouton",
"rechercher",
"recherche"
],
"supports": {
"align": [
"full"
]
},
"acf": {
"mode": "auto",
"renderTemplate": "page-redirector.php"
},
"align": "full"
}

View File

@ -0,0 +1,14 @@
<?php
// $dates_seminaire = get_field('dates_seminaire_datas');
$searchPageId = 43;
$searchPageTitle = get_the_title($searchPageId);
$searchPageUrl = get_post_permalink($searchPageId);
$searchPageIcon = get_field('page_icon', $searchPageId) ?? null;
?>
<a class="search-artisan-btn" href="<?php echo $searchPageUrl ?>">
<img class="search-artisan-btn__page-icon" src="<?php echo $searchPageIcon['sizes']['medium_large'] ?> " alt="">
<?php echo __("Chercher une entreprise", "metiers-patrimoine-theme") ?>
</a>

View File

@ -43,13 +43,14 @@ function build_search_artisan_posts_cards($request)
)
);
$metaQuery = [];
if ($localisation && $localisation !== 'all') {
$localisationArray = explode(',', $localisation); // Séparer les localisations par des virgules
$metaQuery[] = array(
'key' => 'state',
'value' => $localisation,
'compare' => '='
'value' => $localisationArray,
'compare' => 'IN', // Comparer avec plusieurs valeurs
);
// write_log($metaQuery);
}

View File

@ -35,9 +35,8 @@ add_action('block_categories_all', 'metiers_patrimoine_add_block_categories', 25
function metiers_patrimoine_create_blocks_init()
{
// ACF
// register_block_type(dirname(__DIR__) . '/blocks/btn-search-artisan');
register_block_type(dirname(__DIR__) . '/blocks/search-artisan-btn');
register_block_type(dirname(__DIR__) . '/blocks/page-redirector');
}
add_action('init', 'metiers_patrimoine_create_blocks_init');

View File

@ -105,6 +105,17 @@
&__metiers-filters {
@apply border border-neutral-300 p-4 rounded-3xl my-4 w-full;
}
&__geographic-filters {
@apply hidden;
}
&:has(
#elements_batiments_checkbox:checked,
#metiers_checkbox:checked
) {
.metier-patrimoine-searchbar__geographic-filters {
@apply block;
}
}
&__elements-batiments-filters,
&__metiers-filters {

View File

@ -51,7 +51,7 @@ async function hydrateFields(formObjectDatas) {
// );
}
function handleHierarchicalCheckboxRelation(e) {
function handleHierarchicalTaxonomyCheckboxRelation(e) {
// If parent is checked, check all children
if (
e.target.checked &&
@ -99,6 +99,30 @@ function handleHierarchicalCheckboxRelation(e) {
}
}
function handleLocalisationCheckboxBehaviour(e) {
const AlllocalisationsCheckboxes = document.querySelector(
'.localisation-checkbox[value="all"]'
);
// If parent is checked, check all children
if (e.target.checked && e.target.value === 'all') {
const localisationCheckboxes =
document.querySelectorAll('.localisation-checkbox');
localisationCheckboxes.forEach((checkbox) => {
checkbox.checked = true;
});
}
if (
!e.target.checked &&
AlllocalisationsCheckboxes.checked === true
) {
AlllocalisationsCheckboxes.checked = false;
}
if (e.target.checked && e.target.value !== 'all') {
AlllocalisationsCheckboxes.checked = false;
}
}
function handleFormChange(e) {
e.preventDefault();
@ -106,7 +130,13 @@ function handleFormChange(e) {
e.target.type === 'checkbox' &&
e.target.classList.contains('taxonomy-checkbox')
) {
handleHierarchicalCheckboxRelation(e);
handleHierarchicalTaxonomyCheckboxRelation(e);
}
if (
e.target.type === 'checkbox' &&
e.target.classList.contains('localisation-checkbox')
) {
handleLocalisationCheckboxBehaviour(e);
}
const form = e.target.closest('form');
const formData = new FormData(form);

View File

@ -42,9 +42,11 @@ $adresse = get_field('adresse', $postID);
<?php endif; ?>
<?php if ($adresse): ?>
<p class="card-artisans__adresse"><?php echo $adresse['post_code'] . " " . $adresse['city'] ?></p>
<?php endif; ?>
<p class="card-artisans__adresse">
<?= ($adresse['post_code'] ?? '') . ' ' . ($adresse['city'] ?? '') ?>
</p>
<?php endif; ?>
<?php if ($phoneNumber): ?>
<a class="card-artisans__phone" href="tel:<?php echo $phoneNumber ?>"><?php echo $formattedPhoneNumber ?></a>

View File

@ -154,7 +154,6 @@ $pageIcon = get_field('page_icon', get_queried_object_id()) ?? null;
</ul>
</fieldset>
<fieldset class="metier-patrimoine-searchbar__geographic-filters">
<div class="fieldset-titling">
@ -164,27 +163,23 @@ $pageIcon = get_field('page_icon', get_queried_object_id()) ?? null;
<ul>
<li class="checkbox-choice">
<input type="checkbox" name="localisation[]" value="all">
<input class="localisation-checkbox" type="checkbox" name="localisation[]" value="all" checked>
<label> <?php echo __("Toute la Belgique", "metiers-patrimoine-theme") ?></label>
</li>
<li class="checkbox-choice">
<input type="checkbox" name="localisation[]" value="wallonia">
<label> <?php echo __("Wallonie", "metiers-patrimoine-theme") ?></label>
<input class="localisation-checkbox" type="checkbox" name="localisation[]" value="wallonia" checked>
<label><?php echo __("Wallonie", "metiers-patrimoine-theme") ?></label>
</li>
<li class="checkbox-choice">
<input type="checkbox" name="localisation[]" value="brussels" checked>
<input class="localisation-checkbox" type="checkbox" name="localisation[]" value="brussels" checked>
<label> <?php echo __("Bruxelles", "metiers-patrimoine-theme") ?></label>
</li>
<li class="checkbox-choice">
<input type="checkbox" name="localisation[]" value="flanders">
<input class="localisation-checkbox" type="checkbox" name="localisation[]" value="flanders" checked>
<label> <?php echo __("Flandre", "metiers-patrimoine-theme") ?></label>
</li>
</ul>
</fieldset>
<!-- <button type="submit">submit</button> -->
</form>
</aside>