mirror of
https://github.com/devcode-it/openstamanager.git
synced 2024-12-22 13:26:38 +01:00
Completo supporto ai plugin (campi personalizzati)
This commit is contained in:
parent
70d574249a
commit
58bbe8f417
50
actions.php
50
actions.php
@ -268,43 +268,51 @@ if (Modules::getPermission($permesso) == 'r' || Modules::getPermission($permesso
|
||||
}
|
||||
|
||||
// Operazioni generiche per i campi personalizzati
|
||||
if (post('op') != null && post('op') != 'delete') {
|
||||
$customs = $dbo->fetchArray('SELECT `id`, `name` FROM `zz_fields` WHERE `id_module` = '.prepare($id_module));
|
||||
|
||||
$values = [];
|
||||
foreach ($customs as $custom) {
|
||||
if (isset($post[$custom['name']])) {
|
||||
$values[$custom['id']] = $post[$custom['name']];
|
||||
}
|
||||
if (post('op') != null) {
|
||||
$query = 'SELECT `id`, `name` FROM `zz_fields` WHERE ';
|
||||
if (!empty($id_plugin)) {
|
||||
$query .= '`id_plugin` = '.prepare($id_plugin);
|
||||
} else {
|
||||
$query .= '`id_module` = '.prepare($id_module);
|
||||
}
|
||||
$customs = $dbo->fetchArray($query);
|
||||
|
||||
// Inserimento iniziale
|
||||
if (post('op') == 'add') {
|
||||
foreach ($values as $key => $value) {
|
||||
$dbo->insert('zz_field_record', [
|
||||
if (!starts_with(post('op'), 'delete')) {
|
||||
$values = [];
|
||||
foreach ($customs as $custom) {
|
||||
if (isset($post[$custom['name']])) {
|
||||
$values[$custom['id']] = $post[$custom['name']];
|
||||
}
|
||||
}
|
||||
|
||||
// Inserimento iniziale
|
||||
if (starts_with(post('op'), 'add')) {
|
||||
foreach ($values as $key => $value) {
|
||||
$dbo->insert('zz_field_record', [
|
||||
'id_record' => $id_record,
|
||||
'id_field' => $key,
|
||||
'value' => $value,
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Aggiornamento
|
||||
elseif (post('op') == 'update') {
|
||||
foreach ($values as $key => $value) {
|
||||
$dbo->update('zz_field_record', [
|
||||
// Aggiornamento
|
||||
elseif (starts_with(post('op'), 'update')) {
|
||||
foreach ($values as $key => $value) {
|
||||
$dbo->update('zz_field_record', [
|
||||
'value' => $value,
|
||||
], [
|
||||
'id_record' => $id_record,
|
||||
'id_field' => $key,
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Eliminazione
|
||||
elseif (post('op') == 'delete') {
|
||||
$dbo->query('DELETE FROM `zz_field_record` WHERE `id_record` = '.prepare($id_record).' AND `id_field` IN (SELECT `id` FROM `zz_fields` WHERE `id_module` = '.prepare($id_module).')');
|
||||
// Eliminazione
|
||||
elseif (!empty($customs)) {
|
||||
$dbo->query('DELETE FROM `zz_field_record` WHERE `id_record` = '.prepare($id_record).' AND `id_field` IN ('.implode(array_column($customs, 'id')).')');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
17
add.php
17
add.php
@ -38,18 +38,27 @@ echo '
|
||||
echo '
|
||||
|
||||
<div class="hide" id="custom_fields_top-add">
|
||||
{( "name": "custom_fields", "id_module": "'.$id_module.'", "position": "top", "place": "add" )}
|
||||
{( "name": "custom_fields", "id_module": "'.$id_module.'", "id_plugin": "'.$id_plugin.'", "position": "top", "place": "add" )}
|
||||
</div>
|
||||
|
||||
<div class="hide" id="custom_fields_bottom-add">
|
||||
{( "name": "custom_fields", "id_module": "'.$id_module.'", "position": "bottom", "place": "add" )}
|
||||
{( "name": "custom_fields", "id_module": "'.$id_module.'", "id_plugin": "'.$id_plugin.'", "position": "bottom", "place": "add" )}
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
$("#form_'.$id_module.'-'.$id_plugin.' form:first").prepend($("#custom_fields_top-add").html());
|
||||
var form = $("#custom_fields_top-add").parent().find("form").first();
|
||||
|
||||
$("#form_'.$id_module.'-'.$id_plugin.' form:first .panel").last().after($("#custom_fields_bottom-add").html());
|
||||
// Campi a inizio form
|
||||
form.prepend($("#custom_fields_top-add").html());
|
||||
|
||||
// Campi a fine form
|
||||
var last = form.find(".panel").last();
|
||||
if (!last.length) {
|
||||
last = form.find(".row").eq(-2);
|
||||
}
|
||||
|
||||
last.after($("#custom_fields_bottom-add").html());
|
||||
});
|
||||
</script>';
|
||||
|
||||
|
17
editor.php
17
editor.php
@ -105,19 +105,28 @@ if (empty($records)) {
|
||||
// Campi personalizzati
|
||||
echo '
|
||||
|
||||
<div class="hide" id="custom_fields_top">
|
||||
<div class="hide" id="custom_fields_top-edit">
|
||||
{( "name": "custom_fields", "id_module": "'.$id_module.'", "id_record": "'.$id_record.'", "position": "top" )}
|
||||
</div>
|
||||
|
||||
<div class="hide" id="custom_fields_bottom">
|
||||
<div class="hide" id="custom_fields_bottom-edit">
|
||||
{( "name": "custom_fields", "id_module": "'.$id_module.'", "id_record": "'.$id_record.'" )}
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
$("#tab_0 form:first").prepend($("#custom_fields_top").html());
|
||||
var form = $("#custom_fields_top-edit").parent().find("form").first();
|
||||
|
||||
$("#tab_0 form:first .panel").last().after($("#custom_fields_bottom").html());
|
||||
// Campi a inizio form
|
||||
form.prepend($("#custom_fields_top-edit").html());
|
||||
|
||||
// Campi a fine form
|
||||
var last = form.find(".panel").last();
|
||||
if (!last.length) {
|
||||
last = form.find(".row").eq(-2);
|
||||
}
|
||||
|
||||
last.after($("#custom_fields_bottom-edit").html());
|
||||
});
|
||||
</script>';
|
||||
|
||||
|
@ -19,32 +19,28 @@ if (!empty($info['script'])) {
|
||||
|
||||
return;
|
||||
} else {
|
||||
// Caricamento helper modulo (verifico se ci sono helper personalizzati)
|
||||
// Caricamento helper plugin (verifico se ci sono helper personalizzati)
|
||||
if (file_exists($docroot.'/plugins/'.$info['directory'].'/custom/modutil.php')) {
|
||||
include_once $docroot.'/plugins/'.$info['directory'].'/custom/modutil.php';
|
||||
} elseif (file_exists($docroot.'/plugins/'.$info['directory'].'/modutil.php')) {
|
||||
include_once $docroot.'/plugins/'.$info['directory'].'/modutil.php';
|
||||
}
|
||||
|
||||
// Lettura risultato query del modulo
|
||||
// Lettura risultato query del plugin
|
||||
if (file_exists($docroot.'/plugins/'.$info['directory'].'/custom/init.php')) {
|
||||
include $docroot.'/plugins/'.$info['directory'].'/custom/init.php';
|
||||
} elseif (file_exists($docroot.'/plugins/'.$info['directory'].'/init.php')) {
|
||||
include $docroot.'/plugins/'.$info['directory'].'/init.php';
|
||||
}
|
||||
|
||||
// Esecuzione delle operazioni del modulo
|
||||
if (file_exists($docroot.'/plugins/'.$info['directory'].'/custom/actions.php')) {
|
||||
include $docroot.'/plugins/'.$info['directory'].'/custom/actions.php';
|
||||
} elseif (file_exists($docroot.'/plugins/'.$info['directory'].'/actions.php')) {
|
||||
include $docroot.'/plugins/'.$info['directory'].'/actions.php';
|
||||
}
|
||||
// Esecuzione delle operazioni del plugin
|
||||
include $docroot.'/actions.php';
|
||||
|
||||
if (empty($records)) {
|
||||
echo '
|
||||
<p>'.tr('Record non trovato').'.</p>';
|
||||
} else {
|
||||
// Lettura template modulo (verifico se ci sono template personalizzati, altrimenti uso quello base)
|
||||
// Lettura template plugin (verifico se ci sono template personalizzati, altrimenti uso quello base)
|
||||
if (file_exists($docroot.'/plugins/'.$info['directory'].'/custom/edit.php')) {
|
||||
include $docroot.'/plugins/'.$info['directory'].'/custom/edit.php';
|
||||
} elseif (file_exists($docroot.'/plugins/'.$info['directory'].'/custom/edit.html')) {
|
||||
@ -54,6 +50,34 @@ if (!empty($info['script'])) {
|
||||
} elseif (file_exists($docroot.'/plugins/'.$info['directory'].'/edit.html')) {
|
||||
include $docroot.'/plugins/'.$info['directory'].'/edit.html';
|
||||
}
|
||||
|
||||
// Campi personalizzati
|
||||
echo '
|
||||
|
||||
<div class="hide" id="custom_fields_top-plugin">
|
||||
{( "name": "custom_fields", "id_plugin": "'.$id_plugin.'", "id_record": "'.$id_record.'", "position": "top" )}
|
||||
</div>
|
||||
|
||||
<div class="hide" id="custom_fields_bottom-plugin">
|
||||
{( "name": "custom_fields", "id_plugin": "'.$id_plugin.'", "id_record": "'.$id_record.'" )}
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
var form = $("#custom_fields_top-plugin").parent().find("form").first();
|
||||
|
||||
// Campi a inizio form
|
||||
form.prepend($("#custom_fields_top-plugin").html());
|
||||
|
||||
// Campi a fine form
|
||||
var last = form.find(".panel").last();
|
||||
if (!last.length) {
|
||||
last = form.find(".row").eq(-2);
|
||||
}
|
||||
|
||||
last.after($("#custom_fields_bottom-plugin").html());
|
||||
});
|
||||
</script>';
|
||||
}
|
||||
|
||||
redirectOperation($id_module, $id_parent);
|
||||
@ -73,7 +97,6 @@ if (!empty($info['script'])) {
|
||||
</script>
|
||||
|
||||
<?php
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -6,31 +6,36 @@ $operazione = filter('op');
|
||||
|
||||
switch ($operazione) {
|
||||
case 'addreferente':
|
||||
$nome = filter('nome');
|
||||
$mansione = filter('mansione');
|
||||
$telefono = filter('telefono');
|
||||
$email = filter('email');
|
||||
$idsede = filter('idsede');
|
||||
$dbo->insert('an_referenti', [
|
||||
'idanagrafica' => $id_parent,
|
||||
'nome' => $post['nome'],
|
||||
'mansione' => $post['mansione'],
|
||||
'telefono' => $post['telefono'],
|
||||
'email' => $post['email'],
|
||||
'idsede' => $post['idsede'],
|
||||
]);
|
||||
$id_record = $dbo->lastInsertedID();
|
||||
|
||||
if (isset($nome) && isset($idsede)) {
|
||||
$query = 'INSERT INTO `an_referenti` (`nome`, `mansione`, `telefono`, `email`, `idanagrafica`, `idsede`) VALUES ('.prepare($nome).', '.prepare($mansione).', '.prepare($telefono).', '.prepare($email).', '.prepare($id_parent).', '.prepare($idsede).')';
|
||||
|
||||
$dbo->query($query);
|
||||
$_SESSION['infos'][] = tr('Aggiunto nuovo referente!');
|
||||
}
|
||||
$_SESSION['infos'][] = tr('Aggiunto nuovo referente!');
|
||||
|
||||
break;
|
||||
|
||||
case 'updatereferente':
|
||||
$query = 'UPDATE `an_referenti` SET `nome`='.prepare($post['nome']).', `mansione`='.prepare($post['mansione']).', `telefono`='.prepare($post['telefono']).', `email`='.prepare($post['email']).', `idsede`='.prepare($post['idsede']).' WHERE `id`='.prepare($id_record);
|
||||
$dbo->query($query);
|
||||
$dbo->update('an_referenti', [
|
||||
'idanagrafica' => $id_parent,
|
||||
'nome' => $post['nome'],
|
||||
'mansione' => $post['mansione'],
|
||||
'telefono' => $post['telefono'],
|
||||
'email' => $post['email'],
|
||||
'idsede' => $post['idsede'],
|
||||
], ['id' => $id_record]);
|
||||
|
||||
$_SESSION['infos'][] = tr('Salvataggio completato!');
|
||||
|
||||
break;
|
||||
|
||||
case 'deletereferente':
|
||||
$dbo->query("DELETE FROM `an_referenti` WHERE `id`=".prepare($id_record));
|
||||
$dbo->query('DELETE FROM `an_referenti` WHERE `id`='.prepare($id_record));
|
||||
|
||||
$_SESSION['infos'][] = tr('Referente eliminato!');
|
||||
|
||||
|
@ -6,7 +6,7 @@ $operazione = filter('op');
|
||||
|
||||
switch ($operazione) {
|
||||
case 'addsede':
|
||||
$array = [
|
||||
$dbo->insert('an_sedi', [
|
||||
'idanagrafica' => $id_parent,
|
||||
'nomesede' => $post['nomesede'],
|
||||
'indirizzo' => $post['indirizzo'],
|
||||
@ -18,9 +18,8 @@ switch ($operazione) {
|
||||
'telefono' => $post['telefono'],
|
||||
'email' => $post['email'],
|
||||
'idzona' => $post['idzona'],
|
||||
];
|
||||
|
||||
$dbo->insert('an_sedi', $array);
|
||||
]);
|
||||
$id_record = $dbo->lastInsertedID();
|
||||
|
||||
$_SESSION['infos'][] = tr('Aggiunta una nuova sede!');
|
||||
|
||||
@ -55,7 +54,7 @@ switch ($operazione) {
|
||||
break;
|
||||
|
||||
case 'deletesede':
|
||||
$dbo->query("DELETE FROM `an_sedi` WHERE `id`=".prepare($id_record));
|
||||
$dbo->query('DELETE FROM `an_sedi` WHERE `id`='.prepare($id_record));
|
||||
|
||||
$_SESSION['infos'][] = tr('Sede eliminata!');
|
||||
|
||||
|
@ -21,19 +21,15 @@ class FieldManager implements ManagerInterface
|
||||
$query = 'SELECT `zz_fields`.*'.(isset($options['id_record']) ? ', `zz_field_record`.`value`' : '').' FROM `zz_fields`';
|
||||
|
||||
if (isset($options['id_record'])) {
|
||||
$query .= ' LEFT JOIN `zz_field_record` ON `zz_fields`.`id` = `zz_field_record`.`id_field`';
|
||||
$query .= ' LEFT JOIN `zz_field_record` ON `zz_fields`.`id` = `zz_field_record`.`id_field` AND `zz_field_record`.`id_record` = '.prepare($options['id_record']);
|
||||
}
|
||||
|
||||
$query .= ' WHERE ';
|
||||
|
||||
if (isset($options['id_plugin'])) {
|
||||
$query .= ' `id_plugin` = '.prepare($options['id_plugin']);
|
||||
if (!empty($options['id_plugin'])) {
|
||||
$query .= '`id_plugin` = '.prepare($options['id_plugin']);
|
||||
} else {
|
||||
$query .= ' `id_module` = '.prepare($options['id_module']);
|
||||
}
|
||||
|
||||
if (isset($options['id_record'])) {
|
||||
$query .= ' AND `id_record` = '.prepare($options['id_record']);
|
||||
$query .= '`id_module` = '.prepare($options['id_module']);
|
||||
}
|
||||
|
||||
if (isset($options['place']) && $options['place'] == 'add') {
|
||||
@ -52,49 +48,53 @@ class FieldManager implements ManagerInterface
|
||||
// Spazio per evitare problemi con la sostituzione del tag
|
||||
$result = ' ';
|
||||
|
||||
// Costruzione dei campi
|
||||
foreach ($fields as $key => $field) {
|
||||
if ($key % 3 == 0) {
|
||||
$result .= '
|
||||
if (!empty($fields)) {
|
||||
$result .= '
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">'.tr('Campi aggiuntivi').'</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="panel-body">';
|
||||
|
||||
// Costruzione dei campi
|
||||
foreach ($fields as $key => $field) {
|
||||
if ($key % 3 == 0) {
|
||||
$result .= '
|
||||
<div class="row">';
|
||||
}
|
||||
}
|
||||
|
||||
$field['value'] = isset($field['value']) ? $field['value'] : '';
|
||||
$field['value'] = isset($field['value']) ? $field['value'] : '';
|
||||
|
||||
$replace = [
|
||||
$replace = [
|
||||
'value' => $field['value'],
|
||||
'label' => $field['name'],
|
||||
'name' => $field['html_name'],
|
||||
];
|
||||
|
||||
foreach ($replace as $key => $value) {
|
||||
$field['content'] = str_replace('|'.$key.'|', $value, $field['content']);
|
||||
}
|
||||
foreach ($replace as $key => $value) {
|
||||
$field['content'] = str_replace('|'.$key.'|', $value, $field['content']);
|
||||
}
|
||||
|
||||
$result .= '
|
||||
$result .= '
|
||||
<div class="col-xs-4">
|
||||
'.$field['content'].'
|
||||
</div>';
|
||||
|
||||
if (($key + 1) % 3 == 0) {
|
||||
if (($key + 1) % 3 == 0) {
|
||||
$result .= '
|
||||
</div>';
|
||||
}
|
||||
}
|
||||
|
||||
if (($key + 1) % 3 != 0) {
|
||||
$result .= '
|
||||
</div>';
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($fields) && ($key + 1) % 3 != 0) {
|
||||
$result .= '
|
||||
</div>';
|
||||
}
|
||||
|
||||
$result .= '
|
||||
</div>
|
||||
</div>';
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user