CakeProducts/templates/element/Products/form.php

72 lines
2.4 KiB
PHP
Raw Normal View History

2025-04-01 08:00:09 +00:00
<?php
/**
* @var \App\View\AppView $this
* @var \Cake\Datasource\EntityInterface $product
* @var \Cake\Datasource\EntityInterface $productCategory
* @var \Cake\Collection\CollectionInterface|string[] $productCatalogs
* @var \Cake\Collection\CollectionInterface|string[] $productCategories
*/
?>
<h4 class="mb-4">Basic Info</h4>
<?php
echo $this->Form->control('name');
echo $this->Form->control('product_catalog_id', [
2025-04-01 08:24:18 +00:00
'empty' => 'Select a Catalog',
2025-04-01 08:00:09 +00:00
'options' => $productCatalogs,
2025-04-01 08:24:18 +00:00
'hx-trigger' => 'change, load delay:500ms',
2025-04-01 08:00:09 +00:00
'hx-get' => $this->Url->build([
'controller' => 'ProductCategories',
'action' => 'select',
'?' => ['form' => 'product'],
2025-04-01 08:00:09 +00:00
0 => $productCategory ? $productCategory->product_catalog_id : '',
]),
'hx-target' => '#product_category_id',
]);
echo $this->Form->control('product_category_id', [
2025-04-01 08:24:18 +00:00
'options' => [],
2025-04-01 08:00:09 +00:00
'empty' => true,
'id' => 'product_category_id',
2025-04-01 08:24:18 +00:00
'hx-trigger' => 'change, load delay:1s',
'hx-get' => $this->Url->build([
'controller' => 'ProductCategoryAttributes',
'action' => 'form',
'?' => ['form' => 'product'],
2025-04-01 08:24:18 +00:00
0 => $productCategory ? $productCategory->product_catalog_id : '',
]),
'hx-target' => '#product-attributes-container',
2025-04-01 08:00:09 +00:00
]);
echo $this->Form->control('product_type_id');
?>
<hr>
<h4 class="mb-4">Product Attributes</h4>
2025-09-20 06:34:04 +00:00
<div
id="product-attributes-container"
class="container"
<?php if ($product->isNew()) : ?>
hx-get="<?= $this->Url->build([
'controller' => 'ProductCategoryAttributes',
'action' => 'form',
]); ?>"
hx-trigger="change target:#product_category_id from:body"
hx-target="this"
hx-include="#form, #product_category_id"
hx-swap="innerHTML"
<?php endif; ?>
>
<?php if ($product->hasValue('product_attributes')) : ?>
<?php
2025-04-01 08:00:09 +00:00
$cnt = 0;
foreach ($product->product_attributes as $productAttribute) {
$prefix = 'product_attributes.' . $cnt . '.';
2025-09-20 06:34:04 +00:00
echo $this->element('ProductCategoryAttributes/product_form', [
'productCategoryAttribute' => $productAttribute->hasValue('product_category_attribute') ? $productAttribute->product_category_attribute : null,
'productAttribute' => $productAttribute,
'cnt' => $cnt,
]);
2025-04-01 08:00:09 +00:00
$cnt++;
} ?>
<?php endif; ?>
</div>