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',
|
2025-04-02 07:29:05 +00:00
|
|
|
'?' => ['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',
|
2025-04-01 09:52:00 +00:00
|
|
|
'?' => ['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>
|