CakeProducts/templates/element/Products/form.php

72 lines
2.4 KiB
PHP

<?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', [
'empty' => 'Select a Catalog',
'options' => $productCatalogs,
'hx-trigger' => 'change, load delay:500ms',
'hx-get' => $this->Url->build([
'controller' => 'ProductCategories',
'action' => 'select',
'?' => ['form' => 'product'],
0 => $productCategory ? $productCategory->product_catalog_id : '',
]),
'hx-target' => '#product_category_id',
]);
echo $this->Form->control('product_category_id', [
'options' => [],
'empty' => true,
'id' => 'product_category_id',
'hx-trigger' => 'change, load delay:1s',
'hx-get' => $this->Url->build([
'controller' => 'ProductCategoryAttributes',
'action' => 'form',
'?' => ['form' => 'product'],
0 => $productCategory ? $productCategory->product_catalog_id : '',
]),
'hx-target' => '#product-attributes-container',
]);
echo $this->Form->control('product_type_id');
?>
<hr>
<h4 class="mb-4">Product Attributes</h4>
<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
$cnt = 0;
foreach ($product->product_attributes as $productAttribute) {
$prefix = 'product_attributes.' . $cnt . '.';
echo $this->element('ProductCategoryAttributes/product_form', [
'productCategoryAttribute' => $productAttribute->hasValue('product_category_attribute') ? $productAttribute->product_category_attribute : null,
'productAttribute' => $productAttribute,
'cnt' => $cnt,
]);
$cnt++;
} ?>
<?php endif; ?>
</div>