2020-05-29 13:41:58 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace App\Model\Table;
|
|
|
|
|
|
|
|
use Cake\ORM\Table;
|
|
|
|
use Cake\Validation\Validator;
|
2020-06-21 23:53:38 +02:00
|
|
|
use Cake\Core\Configure;
|
|
|
|
use Cake\Core\Configure\Engine\PhpConfig;
|
2021-01-13 14:20:29 +01:00
|
|
|
use Cake\ORM\TableRegistry;
|
2020-05-29 13:41:58 +02:00
|
|
|
|
|
|
|
class AppTable extends Table
|
|
|
|
{
|
|
|
|
public function initialize(array $config): void
|
|
|
|
{
|
|
|
|
}
|
2021-01-13 14:20:29 +01:00
|
|
|
|
|
|
|
public function saveMetaFields($id, $input)
|
|
|
|
{
|
|
|
|
$this->MetaFields = TableRegistry::getTableLocator()->get('MetaFields');
|
2021-01-14 09:15:37 +01:00
|
|
|
$this->MetaTemplates = TableRegistry::getTableLocator()->get('MetaTemplates');
|
|
|
|
foreach ($input['metaFields'] as $templateID => $metaFields) {
|
|
|
|
$metaTemplates = $this->MetaTemplates->find()->where([
|
|
|
|
'id' => $templateID,
|
|
|
|
'enabled' => 1
|
|
|
|
])->contain(['MetaTemplateFields'])->first();
|
|
|
|
$fieldNameToId = [];
|
|
|
|
foreach ($metaTemplates->meta_template_fields as $i => $metaTemplateField) {
|
|
|
|
$fieldNameToId[$metaTemplateField->field] = $metaTemplateField->id;
|
2021-01-13 14:20:29 +01:00
|
|
|
}
|
2021-01-14 09:15:37 +01:00
|
|
|
foreach ($metaFields as $metaField => $values) {
|
|
|
|
if (!is_array($values)) {
|
|
|
|
$values = [$values];
|
|
|
|
}
|
|
|
|
foreach ($values as $value) {
|
|
|
|
if ($value !== '') {
|
|
|
|
$temp = $this->MetaFields->newEmptyEntity();
|
|
|
|
$temp->field = $metaField;
|
|
|
|
$temp->value = $value;
|
|
|
|
$temp->scope = $this->Table->metaFields;
|
|
|
|
$temp->parent_id = $id;
|
|
|
|
$temp->meta_template_id = $templateID;
|
|
|
|
$temp->meta_template_field_id = $fieldNameToId[$metaField];
|
|
|
|
$this->MetaFields->save($temp);
|
|
|
|
}
|
2021-01-13 14:20:29 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2020-05-29 13:41:58 +02:00
|
|
|
}
|