Aggiunta tabella zz_group_module_lang

This commit is contained in:
Pek5892 2024-03-12 17:16:07 +01:00
parent 032a60f653
commit 7fb94fde8f
7 changed files with 96 additions and 16 deletions

View File

@ -20,6 +20,7 @@
include_once __DIR__.'/../../core.php';
use Models\Module;
use Models\Clause;
switch (filter('op')) {
case 'update':
@ -102,7 +103,6 @@ switch (filter('op')) {
if (check_query($query)) {
$array = [
'name' => post('name')[$c],
'idgruppo' => post('gruppo')[$c],
'idmodule' => $id_record,
'clause' => $query,
@ -111,12 +111,23 @@ switch (filter('op')) {
if (!empty(post('id')[$c]) && !empty($query)) {
$id = post('id')[$c];
$dbo->update('zz_group_module', $array, ['id' => $id]);
$clause = Clause::find($id);
$clause->idgruppo = post('gruppo')[$c];
$clause->idmodulo = $id_record;
$clause->clause = $query;
$clause->position = !empty(post('position')[$c]) ? 'HVN' : 'WHR';
$clause->name = post('name')[$c];
$clause->save();
} elseif (!empty($query)) {
$dbo->insert('zz_group_module', $array);
$id = $dbo->lastInsertedID();
$clause = Clause::build();
$id_record = $dbo->lastInsertedID();
$clause->idgruppo = post('gruppo')[$c];
$clause->idmodulo = $id_record;
$clause->clause = $query;
$clause->position = !empty(post('position')[$c]) ? 'HVN' : 'WHR';
$clause->name = post('name')[$c];
$clause->save();
}
} else {
$rs = false;
@ -134,11 +145,9 @@ switch (filter('op')) {
case 'change':
$id = filter('id');
$rs = $dbo->fetchArray('SELECT enabled FROM zz_group_module WHERE id='.prepare($id));
$dbo->update('zz_group_module', [
'enabled' => !empty($rs[0]['enabled']) ? 0 : 1,
], ['id' => $id]);
$clause = Clause::find($id);
$clause->enabled = !empty($clause->enabled) ? 0 : 1;
$clause->save();
flash()->info(tr('Salvataggio completato!'));

View File

@ -18,6 +18,8 @@
*/
use Models\Module;
use Models\Clause;
use Models\View;
include_once __DIR__.'/../../core.php';
@ -101,8 +103,8 @@ if (!empty($options) && $options != 'custom' && $options != 'menu') {
echo '
<div class="nav-tabs-custom">
<ul class="nav nav-tabs nav-justified">
<li class="active"><a data-toggle="tab" href="#fields">'.tr('Campi').' <span class="badge">'.$dbo->fetchNum('SELECT * FROM `zz_views` LEFT JOIN `zz_views_lang` ON (`zz_views`.`id` = `zz_views_lang`.`id_record` AND `zz_views_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `id_module`='.prepare($record['id']).' ORDER BY `order` ASC').'</a></li>
<li><a data-toggle="tab" href="#filters">'.tr('Filtri').' <span class="badge">'.$dbo->fetchNum('SELECT * FROM `zz_group_module` WHERE `idmodule`='.prepare($record['id']).' ORDER BY `id` ASC').'</span></a></li>
<li class="active"><a data-toggle="tab" href="#fields">'.tr('Campi').' <span class="badge">'.View::where('id_module', $record['id'])->count().'</a></li>
<li><a data-toggle="tab" href="#filters">'.tr('Filtri').' <span class="badge">'.Clause::where('idmodule', $record['id'])->count().' </span></a></li>
</ul>
<div class="tab-content">

View File

@ -17,6 +17,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
use Models\Clause;
echo '
<form action="" method="post" role="form">
<input type="hidden" name="backto" value="record-edit">
@ -25,7 +27,7 @@ echo '
<div class="data">';
$num = 0;
$additionals = $dbo->fetchArray('SELECT * FROM zz_group_module WHERE idmodule='.prepare($record['id']).' ORDER BY `id` ASC');
$additionals = Clause::where('idmodule', $record['id'])->get();
if (!empty($additionals)) {
foreach ($additionals as $num => $additional) {

View File

@ -29,6 +29,14 @@ class Clause extends Model
protected $table = 'zz_group_module';
public static function build()
{
$model = new static();
$model->save();
return $model;
}
/* Relazioni Eloquent */
public function groups()
@ -45,4 +53,41 @@ class Clause extends Model
{
return Query::replacePlaceholder($value);
}
/**
* Ritorna l'attributo name della clausola.
*
* @return string
*/
public function getNameAttribute()
{
return database()->table($this->table.'_lang')
->select('name')
->where('id_record', '=', $this->id)
->where('id_lang', '=', setting('Lingua'))
->first()->name;
}
/**
* Imposta l'attributo name della clausola.
*/
public function setNameAttribute($value)
{
$table = database()->table($this->table.'_lang');
$translated = $table
->where('id_record', '=', $this->id)
->where('id_lang', '=', setting('Lingua'));
if ($translated->count() > 0) {
$translated->update([
'name' => $value
]);
} else {
$table->insert([
'id_record' => $this->id,
'id_lang' => setting('Lingua'),
'name' => $value
]);
}
}
}

View File

@ -135,7 +135,7 @@ class Modules
$additionals['WHR'] = [];
$additionals['HVN'] = [];
$results = $database->fetchArray('SELECT * FROM `zz_group_module` WHERE `idgruppo` = (SELECT `idgruppo` FROM `zz_users` WHERE `id` = '.prepare($user['id']).') AND `enabled` = 1 AND `idmodule` = '.prepare($module['id']));
$results = $database->fetchArray('SELECT * FROM `zz_group_module` LEFT JOIN `zz_group_module_lang` ON (`zz_group_module`.`id` = `zz_group_module_lang`.`id_record` AND `zz_group_module_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `idgruppo` = (SELECT `idgruppo` FROM `zz_users` WHERE `id` = '.prepare($user['id']).') AND `enabled` = 1 AND `idmodule` = '.prepare($module['id']));
foreach ($results as $result) {
if (!empty($result['clause'])) {
$result['clause'] = Query::replacePlaceholder($result['clause']);

View File

@ -2265,4 +2265,25 @@ ALTER TABLE `zz_groups_lang`
INSERT INTO `zz_groups_lang` (`id`, `id_lang`, `id_record`, `name`) SELECT NULL, (SELECT `id` FROM `zz_langs` WHERE `iso_code` = 'it'), `id`, `nome` FROM `zz_groups`;
ALTER TABLE `zz_groups_lang` ADD CONSTRAINT `zz_groups_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `zz_groups`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;
ALTER TABLE `zz_groups_lang` ADD CONSTRAINT `zz_groups_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `zz_groups`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;
-- Aggiunta tabella zz_group_module_lang
CREATE TABLE IF NOT EXISTS `zz_group_module_lang` (
`id` int NOT NULL,
`id_lang` int NOT NULL,
`id_record` int NOT NULL,
`name` VARCHAR(255) NOT NULL
);
ALTER TABLE `zz_group_module_lang`
ADD PRIMARY KEY (`id`);
ALTER TABLE `zz_group_module_lang`
MODIFY `id` int NOT NULL AUTO_INCREMENT;
INSERT INTO `zz_group_module_lang` (`id`, `id_lang`, `id_record`, `name`) SELECT NULL, (SELECT `id` FROM `zz_langs` WHERE `iso_code` = 'it'), `id`, `name` FROM `zz_group_module`;
ALTER TABLE `zz_group_module`
DROP `name`;
ALTER TABLE `zz_group_module_lang` ADD CONSTRAINT `zz_group_module_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `zz_group_module`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;

View File

@ -168,6 +168,7 @@ return [
'zz_groups',
'zz_groups_lang',
'zz_group_module',
'zz_group_module_lang',
'zz_group_segment',
'zz_group_view',
'zz_hooks',