mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-03 17:27:29 +01:00
Aggiunta tabella em_lists_lang
This commit is contained in:
parent
9e0abc0d8a
commit
39b6c16345
@ -26,25 +26,39 @@ include_once __DIR__.'/../../core.php';
|
|||||||
|
|
||||||
switch (filter('op')) {
|
switch (filter('op')) {
|
||||||
case 'add':
|
case 'add':
|
||||||
$lista = Lista::build(filter('name'));
|
$lista = post('name');
|
||||||
$id_record = $lista->id;
|
|
||||||
|
|
||||||
flash()->info(tr('Nuova lista newsletter creata!'));
|
if ((new Lista())->getByName($lista)->id_record) {
|
||||||
|
flash()->error(tr('Esiste già una lista con questo nome.'));
|
||||||
|
} else {
|
||||||
|
$dbo->query('INSERT INTO `em_lists` (`created_at`) VALUES (NOW())');
|
||||||
|
$id_record = $dbo->lastInsertedID();
|
||||||
|
$dbo->query('INSERT INTO `em_lists_lang` (`name`, `id_record`, `id_lang`) VALUES ('.prepare($lista).', '.prepare($id_record).', '.prepare(setting('Lingua')).' )');
|
||||||
|
|
||||||
|
flash()->info(tr('Nuova lista aggiunta.'));
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'update':
|
case 'update':
|
||||||
$lista->name = filter('name');
|
$name = post('name');
|
||||||
$lista->description = filter('description');
|
$description = post('description');
|
||||||
|
$query = post('query');
|
||||||
|
|
||||||
$query = filter('query');
|
|
||||||
if (check_query($query)) {
|
if (check_query($query)) {
|
||||||
$lista->query = html_entity_decode($query);
|
$query = html_entity_decode($query);
|
||||||
}
|
}
|
||||||
|
|
||||||
$lista->save();
|
$dbo->update('em_lists', [
|
||||||
|
'query' => $query
|
||||||
|
], ['id' => $id_record]);
|
||||||
|
|
||||||
flash()->info(tr('Lista newsletter salvata!'));
|
$dbo->update('em_lists_lang', [
|
||||||
|
'name' => $name,
|
||||||
|
'description' => $description
|
||||||
|
], ['id_record' => $id_record, 'id_lang' => setting('Lingua')]);
|
||||||
|
|
||||||
|
flash()->info(tr('Informazioni salvate correttamente.'));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -18,9 +18,11 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
use Models\Module;
|
use Models\Module;
|
||||||
|
use Modules\ListeNewsletter\Lista;
|
||||||
|
|
||||||
include_once __DIR__.'/../../core.php';
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
|
$lista = Lista::find($id_record);
|
||||||
echo '
|
echo '
|
||||||
<form action="" method="post" id="edit-form">
|
<form action="" method="post" id="edit-form">
|
||||||
<input type="hidden" name="backto" value="record-edit">
|
<input type="hidden" name="backto" value="record-edit">
|
||||||
|
@ -22,7 +22,5 @@ use Modules\ListeNewsletter\Lista;
|
|||||||
include_once __DIR__.'/../../core.php';
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
if (isset($id_record)) {
|
if (isset($id_record)) {
|
||||||
$lista = Lista::find($id_record);
|
$record = $dbo->fetchOne('SELECT * FROM `em_lists` LEFT JOIN `em_lists_lang` ON (`em_lists`.`id` = `em_lists_lang`.`id_record` AND `em_lists_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `em_lists`.`id` = '.prepare($id_record));
|
||||||
|
|
||||||
$record = $lista->toArray();
|
|
||||||
}
|
}
|
||||||
|
@ -35,16 +35,6 @@ class Lista extends Model
|
|||||||
|
|
||||||
protected $table = 'em_lists';
|
protected $table = 'em_lists';
|
||||||
|
|
||||||
public static function build($name)
|
|
||||||
{
|
|
||||||
$model = new static();
|
|
||||||
$model->name = $name;
|
|
||||||
|
|
||||||
$model->save();
|
|
||||||
|
|
||||||
return $model;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function save(array $options = [])
|
public function save(array $options = [])
|
||||||
{
|
{
|
||||||
$result = parent::save($options);
|
$result = parent::save($options);
|
||||||
@ -130,4 +120,49 @@ class Lista extends Model
|
|||||||
{
|
{
|
||||||
return 'Liste';
|
return 'Liste';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ritorna l'attributo name della lista.
|
||||||
|
*
|
||||||
|
* @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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ritorna l'attributo description della lista.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getDescriptionAttribute()
|
||||||
|
{
|
||||||
|
return database()->table($this->table.'_lang')
|
||||||
|
->select('description')
|
||||||
|
->where('id_record', '=', $this->id)
|
||||||
|
->where('id_lang', '=', setting('Lingua'))
|
||||||
|
->first()->description;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ritorna l'id della lista a partire dal nome.
|
||||||
|
*
|
||||||
|
* @param string $name il nome da ricercare
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Support\Collection
|
||||||
|
*/
|
||||||
|
public function getByName($name)
|
||||||
|
{
|
||||||
|
return database()->table($this->table.'_lang')
|
||||||
|
->select('id_record')
|
||||||
|
->where('name', '=', $name)
|
||||||
|
->where('id_lang', '=', setting('Lingua'))
|
||||||
|
->first();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -98,7 +98,7 @@ switch ($resource) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'liste_newsletter':
|
case 'liste_newsletter':
|
||||||
$query = "SELECT `id`, CONCAT(`name`, ' (', (SELECT COUNT(*) FROM `em_list_receiver` WHERE `em_lists`.`id` = `em_list_receiver`.`id_list`), ' `destinatari`)') AS descrizione FROM `em_lists` |where| ORDER BY `name` ASC";
|
$query = "SELECT `em_lists`.`id`, CONCAT(`em_lists_lang`.`name`, ' (', COUNT(*), ' `destinatari`)') AS descrizione FROM `em_lists` LEFT JOIN `em_lists_lang` ON (`em_lists_lang`.`id_record` = `em_lists`.`id` AND `em_lists_lang`.`id_lang` = ".prepare(setting('Lingua')).") INNER JOIN `em_list_receiver` ON `em_lists`.`id` = `em_list_receiver`.`id_list` WHERE 1=1 |where| ORDER BY `name` ASC";
|
||||||
|
|
||||||
foreach ($elements as $element) {
|
foreach ($elements as $element) {
|
||||||
$filter[] = '`id`='.prepare($element);
|
$filter[] = '`id`='.prepare($element);
|
||||||
|
@ -1054,4 +1054,43 @@ ALTER TABLE `dt_tipiddt`
|
|||||||
|
|
||||||
ALTER TABLE `dt_tipiddt` CHANGE `id` `id` INT NOT NULL AUTO_INCREMENT;
|
ALTER TABLE `dt_tipiddt` CHANGE `id` `id` INT NOT NULL AUTO_INCREMENT;
|
||||||
|
|
||||||
ALTER TABLE `dt_tipiddt_lang` ADD CONSTRAINT `dt_tipiddt_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `dt_tipiddt`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;
|
ALTER TABLE `dt_tipiddt_lang` ADD CONSTRAINT `dt_tipiddt_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `dt_tipiddt`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;
|
||||||
|
|
||||||
|
-- Aggiunta tabella em_lists_lang
|
||||||
|
CREATE TABLE IF NOT EXISTS `em_lists_lang` (
|
||||||
|
`id` int NOT NULL,
|
||||||
|
`id_lang` int NOT NULL,
|
||||||
|
`id_record` int NOT NULL,
|
||||||
|
`name` VARCHAR(255) NOT NULL,
|
||||||
|
`description` VARCHAR(255) NOT NULL
|
||||||
|
);
|
||||||
|
ALTER TABLE `em_lists_lang`
|
||||||
|
ADD PRIMARY KEY (`id`);
|
||||||
|
|
||||||
|
ALTER TABLE `em_lists_lang`
|
||||||
|
MODIFY `id` int NOT NULL AUTO_INCREMENT;
|
||||||
|
|
||||||
|
INSERT INTO `em_lists_lang` (`id`, `id_lang`, `id_record`, `name`, `description`) SELECT NULL, (SELECT `id` FROM `zz_langs` WHERE `iso_code` = 'it'), `id`, `name`, `description` FROM `em_lists`;
|
||||||
|
|
||||||
|
ALTER TABLE `em_lists`
|
||||||
|
DROP `description`,
|
||||||
|
DROP `name`;
|
||||||
|
|
||||||
|
ALTER TABLE `em_lists` CHANGE `id` `id` INT NOT NULL AUTO_INCREMENT;
|
||||||
|
|
||||||
|
ALTER TABLE `em_lists_lang` ADD CONSTRAINT `em_lists_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `em_lists_lang`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;
|
||||||
|
|
||||||
|
-- Allineamento vista Liste newsletter
|
||||||
|
UPDATE `zz_modules` SET `options` = "
|
||||||
|
SELECT
|
||||||
|
|select|
|
||||||
|
FROM
|
||||||
|
`em_lists`
|
||||||
|
LEFT JOIN `em_lists_lang` ON (`em_lists_lang`.`id_record` = `em_lists`.`id` AND `em_lists_lang`.|lang|)
|
||||||
|
WHERE
|
||||||
|
1=1 AND deleted_at IS NULL
|
||||||
|
HAVING
|
||||||
|
2=2" WHERE `name` = 'Liste newsletter';
|
||||||
|
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`em_lists`.`id`' WHERE `zz_modules`.`name` = 'Liste newsletter' AND `zz_views`.`name` = 'id';
|
||||||
|
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`em_lists_lang`.`description`' WHERE `zz_modules`.`name` = 'Liste newsletter' AND `zz_views`.`name` = 'Descrizione';
|
||||||
|
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`em_lists_lang`.`name`' WHERE `zz_modules`.`name` = 'Liste newsletter' AND `zz_views`.`name` = 'Nome';
|
@ -82,6 +82,7 @@ return [
|
|||||||
'em_newsletters',
|
'em_newsletters',
|
||||||
'em_mansioni_template',
|
'em_mansioni_template',
|
||||||
'em_lists',
|
'em_lists',
|
||||||
|
'em_lists_lang',
|
||||||
'em_list_receiver',
|
'em_list_receiver',
|
||||||
'em_emails',
|
'em_emails',
|
||||||
'em_email_receiver',
|
'em_email_receiver',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user