booking form category show fix

This commit is contained in:
2026-01-25 10:26:12 +01:00
parent 3a7dd84992
commit 02169a89f6
3 changed files with 184 additions and 78 deletions
@@ -59,37 +59,72 @@
<div class="serviceCol serviceCheckCol"></div>
</div>
<?php
$prevousCategory = '';
function canon_cat($s) {
$s = html_entity_decode((string)$s, ENT_QUOTES | ENT_HTML5, 'UTF-8');
$s = strip_tags($s); // removes "<p class=" junk etc.
return trim($s); // removes trailing/leading spaces
}
if(is_array($services)){
foreach($services as $serviceItem){
if($serviceItem->service_category != $prevousCategory){
if (is_array($services) && count($services) > 0) {
// Build groups in first-seen order
$groups = []; // label => [items]
$order = []; // labels in order of first appearance
foreach ($services as $serviceItem) {
$label = canon_cat($serviceItem->service_category ?? '');
if ($label === '') $label = 'Other';
if (!isset($groups[$label])) {
$groups[$label] = [];
$order[] = $label;
}
$groups[$label][] = $serviceItem;
}
// Render
foreach ($order as $label) {
?>
<div class="serviceRow">
<div class="serviceCol" style="width: 100%">
<h4><?php echo $serviceItem->service_category;?></h4>
<h4><?php echo $label; ?></h4>
</div>
</div>
<?php
foreach ($groups[$label] as $serviceItem) {
?>
<div class="serviceRow">
<div class="serviceCol serviceNameCol" id="serviceName_<?php echo $serviceItem->service_id; ?>">
<?php echo $serviceItem->service_name; ?>
</div>
<div class="serviceCol">
<input type="time" class="serviceTime" id="time_<?php echo $serviceItem->service_id; ?>" value="<?php echo $serviceItem->service_time; ?>"/>
</div>
<div class="serviceCol servicePriceCol" id="servicePrice_<?php echo $serviceItem->service_id; ?>">
<?php echo $serviceItem->service_price; ?>
</div>
<div class="serviceCol serviceInfoCol">
<div class="serviceInfoIcon">
<i class="fas fa-info-circle"></i>
<div class="serviceInfoLabel"><?php echo $serviceItem->service_description; ?></div>
</div>
</div>
<div class="serviceCol serviceCheckCol">
<input type="hidden" name="service_<?php echo $serviceItem->service_id; ?>" value="0"/>
<input type="checkbox"
class="service <?php echo $serviceItem->serv_cat_slug; ?>"
id="<?php echo $serviceItem->service_id; ?>"
name="service_<?php echo $serviceItem->service_id; ?>"
value="1"/>
</div>
</div>
<?php
}
?>
<div class="serviceRow">
<div class="serviceCol serviceNameCol" id="serviceName_<?php echo $serviceItem->service_id;?>"><?php echo $serviceItem->service_name;?></div>
<div class="serviceCol"><input type="time" class="serviceTime" id="time_<?php echo $serviceItem->service_id;?>" value="<?php echo $serviceItem->service_time;?>"/></div>
<div class="serviceCol servicePriceCol" id="servicePrice_<?php echo $serviceItem->service_id;?>"><?php echo $serviceItem->service_price;?></div>
<div class="serviceCol serviceInfoCol">
<div class="serviceInfoIcon">
<i class="fas fa-info-circle"></i><div class="serviceInfoLabel"><?php echo $serviceItem->service_description;?></div>
</div>
</div>
<div class="serviceCol serviceCheckCol">
<input type="hidden" name="service_<?php echo $serviceItem->service_id;?>" value="0"/>
<input type="checkbox" class="service <?php echo $serviceItem->serv_cat_slug;?>" id="<?php echo $serviceItem->service_id;?>" name="service_<?php echo $serviceItem->service_id;?>" value="1"/>
</div>
</div>
<?php
$prevousCategory = $serviceItem->service_category;
}
}
?>
@@ -59,36 +59,72 @@
<div class="serviceCol serviceCheckCol"></div>
</div>
<?php
$prevousCategory = '';
function canon_cat($s) {
$s = html_entity_decode((string)$s, ENT_QUOTES | ENT_HTML5, 'UTF-8');
$s = strip_tags($s); // removes "<p class=" junk etc.
return trim($s); // removes trailing/leading spaces
}
if(is_array($services)){
foreach($services as $serviceItem){
if($serviceItem->service_category != $prevousCategory){
if (is_array($services) && count($services) > 0) {
// Build groups in first-seen order
$groups = []; // label => [items]
$order = []; // labels in order of first appearance
foreach ($services as $serviceItem) {
$label = canon_cat($serviceItem->service_category ?? '');
if ($label === '') $label = 'Other';
if (!isset($groups[$label])) {
$groups[$label] = [];
$order[] = $label;
}
$groups[$label][] = $serviceItem;
}
// Render
foreach ($order as $label) {
?>
<div class="serviceRow">
<div class="serviceCol" style="width: 100%">
<h4><?php echo $serviceItem->service_category;?></h4>
<h4><?php echo $label; ?></h4>
</div>
</div>
<?php
foreach ($groups[$label] as $serviceItem) {
?>
<div class="serviceRow">
<div class="serviceCol serviceNameCol" id="serviceName_<?php echo $serviceItem->service_id; ?>">
<?php echo $serviceItem->service_name; ?>
</div>
<div class="serviceCol">
<input type="time" class="serviceTime" id="time_<?php echo $serviceItem->service_id; ?>" value="<?php echo $serviceItem->service_time; ?>"/>
</div>
<div class="serviceCol servicePriceCol" id="servicePrice_<?php echo $serviceItem->service_id; ?>">
<?php echo $serviceItem->service_price; ?>
</div>
<div class="serviceCol serviceInfoCol">
<div class="serviceInfoIcon">
<i class="fas fa-info-circle"></i>
<div class="serviceInfoLabel"><?php echo $serviceItem->service_description; ?></div>
</div>
</div>
<div class="serviceCol serviceCheckCol">
<input type="hidden" name="service_<?php echo $serviceItem->service_id; ?>" value="0"/>
<input type="checkbox"
class="service <?php echo $serviceItem->serv_cat_slug; ?>"
id="<?php echo $serviceItem->service_id; ?>"
name="service_<?php echo $serviceItem->service_id; ?>"
value="1"/>
</div>
</div>
<?php
}
?>
<div class="serviceRow">
<div class="serviceCol serviceNameCol" id="serviceName_<?php echo $serviceItem->service_id;?>"><?php echo $serviceItem->service_name;?></div>
<div class="serviceCol"><input type="time" class="serviceTime" id="time_<?php echo $serviceItem->service_id;?>" value="<?php echo $serviceItem->service_time;?>"/></div>
<div class="serviceCol servicePriceCol" id="servicePrice_<?php echo $serviceItem->service_id;?>"><?php echo $serviceItem->service_price;?></div>
<div class="serviceCol serviceInfoCol">
<div class="serviceInfoIcon">
<i class="fas fa-info-circle"></i><div class="serviceInfoLabel"><?php echo $serviceItem->service_description;?></div>
</div>
</div>
<div class="serviceCol serviceCheckCol">
<input type="hidden" name="service_<?php echo $serviceItem->service_id;?>" value="0"/>
<input type="checkbox" class="service <?php echo $serviceItem->serv_cat_slug;?>" id="<?php echo $serviceItem->service_id;?>" name="service_<?php echo $serviceItem->service_id;?>" value="1"/>
</div>
</div>
<?php
$prevousCategory = $serviceItem->service_category;
}
}
?>
@@ -59,37 +59,72 @@
<div class="serviceCol serviceCheckCol"></div>
</div>
<?php
$prevousCategory = '';
function canon_cat($s) {
$s = html_entity_decode((string)$s, ENT_QUOTES | ENT_HTML5, 'UTF-8');
$s = strip_tags($s); // removes "<p class=" junk etc.
return trim($s); // removes trailing/leading spaces
}
if(is_array($services)){
foreach($services as $serviceItem){
if($serviceItem->service_category != $prevousCategory){
if (is_array($services) && count($services) > 0) {
// Build groups in first-seen order
$groups = []; // label => [items]
$order = []; // labels in order of first appearance
foreach ($services as $serviceItem) {
$label = canon_cat($serviceItem->service_category ?? '');
if ($label === '') $label = 'Other';
if (!isset($groups[$label])) {
$groups[$label] = [];
$order[] = $label;
}
$groups[$label][] = $serviceItem;
}
// Render
foreach ($order as $label) {
?>
<div class="serviceRow">
<div class="serviceCol" style="width: 100%">
<h4><?php echo $serviceItem->service_category;?></h4>
<h4><?php echo $label; ?></h4>
</div>
</div>
<?php
foreach ($groups[$label] as $serviceItem) {
?>
<div class="serviceRow">
<div class="serviceCol serviceNameCol" id="serviceName_<?php echo $serviceItem->service_id; ?>">
<?php echo $serviceItem->service_name; ?>
</div>
<div class="serviceCol">
<input type="time" class="serviceTime" id="time_<?php echo $serviceItem->service_id; ?>" value="<?php echo $serviceItem->service_time; ?>"/>
</div>
<div class="serviceCol servicePriceCol" id="servicePrice_<?php echo $serviceItem->service_id; ?>">
<?php echo $serviceItem->service_price; ?>
</div>
<div class="serviceCol serviceInfoCol">
<div class="serviceInfoIcon">
<i class="fas fa-info-circle"></i>
<div class="serviceInfoLabel"><?php echo $serviceItem->service_description; ?></div>
</div>
</div>
<div class="serviceCol serviceCheckCol">
<input type="hidden" name="service_<?php echo $serviceItem->service_id; ?>" value="0"/>
<input type="checkbox"
class="service <?php echo $serviceItem->serv_cat_slug; ?>"
id="<?php echo $serviceItem->service_id; ?>"
name="service_<?php echo $serviceItem->service_id; ?>"
value="1"/>
</div>
</div>
<?php
}
?>
<div class="serviceRow">
<div class="serviceCol serviceNameCol" id="serviceName_<?php echo $serviceItem->service_id;?>"><?php echo $serviceItem->service_name;?></div>
<div class="serviceCol"><input type="time" class="serviceTime" id="time_<?php echo $serviceItem->service_id;?>" value="<?php echo $serviceItem->service_time;?>"/></div>
<div class="serviceCol servicePriceCol" id="servicePrice_<?php echo $serviceItem->service_id;?>"><?php echo $serviceItem->service_price;?></div>
<div class="serviceCol serviceInfoCol">
<div class="serviceInfoIcon">
<i class="fas fa-info-circle"></i><div class="serviceInfoLabel"><?php echo $serviceItem->service_description;?></div>
</div>
</div>
<div class="serviceCol serviceCheckCol">
<input type="hidden" name="service_<?php echo $serviceItem->service_id;?>" value="0"/>
<input type="checkbox" class="service <?php echo $serviceItem->serv_cat_slug;?>" id="<?php echo $serviceItem->service_id;?>" name="service_<?php echo $serviceItem->service_id;?>" value="1"/>
</div>
</div>
<?php
$prevousCategory = $serviceItem->service_category;
}
}
?>