93 lines
3.4 KiB
PHP
93 lines
3.4 KiB
PHP
<?php namespace App\Controllers;
|
|
|
|
|
|
use App\Models\Lavoratori_Model;
|
|
use App\Models\Clienti_Model;
|
|
|
|
|
|
class Admin extends BaseController{
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------
|
|
|
|
|
|
|
|
// visualizza e permette il CRUD della tabella indicata:
|
|
public function crud($tab = 'Clienti'){
|
|
$data['title'] = "CRUD della tabella: $tab";
|
|
helper(['tools','form']);
|
|
|
|
return view('test', $data);
|
|
}//function clienti()
|
|
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------
|
|
|
|
|
|
|
|
// visualizza e permette il CRUD della tabella Clienti:
|
|
public function clienti($order_field = null, $order_direction = null) {
|
|
// Tab: Clienti = ['clIDcliente', 'clNome', 'clInfo', 'clCreatedAt', 'clUpdatedAt', 'clDeletedAt'];
|
|
|
|
helper(['tools','form']);
|
|
$data['tab'] = 'admin';
|
|
|
|
// Verifico sessione e livello:
|
|
if (!CheckLevel(3)) { return redirect()->to('/dashboard'); }
|
|
|
|
// gestisco ordinamento:
|
|
if (null==$order_field){ $order_field = 'clIDcliente'; }
|
|
if (null==$order_direction){ $order_direction = 'DESC'; }
|
|
|
|
// Imposto i parametri per la pagina parametrica:
|
|
$data['title'] = 'Elenco clienti della CSiCo:'; // titolo della pagina
|
|
$data['cmd_tab'] = [ // Elenco dei comandi per l'intera tabella
|
|
'add' => 'clienti/add', // - inserimento nuovo record
|
|
'exp_csv' => 'clienti/export_csv', // - esportazione in csv dei records
|
|
];
|
|
$data['cmd_rec'] = [ // Elenco dei comandi per ciascun records
|
|
'edit' => 'clienti/edit', // - editazione del record
|
|
'delete' => 'clienti/delete', // - cancellazione del record
|
|
//'select' => 'clienti/select', // - selezione del record
|
|
];
|
|
$data['fields'] = [ // campi che voglio riportare sulla tabella (nell'ordine voluto)
|
|
'clIDcliente' => 'ID', // - coppia Key -> Label dove key è l'identificativo del campo sul database, e label è il testo che vogliamo visualizzare.
|
|
'clNome' => 'Nome', // - coppia Key -> Label
|
|
'clInfo' => 'Info', // - coppia Key -> Label
|
|
'clCreatedAt' => 'CreatedAt', // - coppia Key -> Label
|
|
'clUpdatedAt' => 'UpdatedAt', // - coppia Key -> Label
|
|
'clDeletedAt' => 'DeletedAt' // - coppia Key -> Label
|
|
];
|
|
$data['id'] = 'clIDcliente'; // identificativo del campo che fa ta ID della tabella
|
|
$data['sort'] = [ // ordinamento della tabella
|
|
'calbck' => 'admin/clienti', // funzione di call back per il riordino
|
|
'field' => $order_field, // Colonna utilizzata per l'ordinamento
|
|
'val' => $order_direction, // Tipo di ordinamento (ascendente o discendente)
|
|
];
|
|
|
|
// Ricavo i dati da visualizzare:
|
|
$model = new Clienti_Model();
|
|
// imposto l'ordinamento selezionato
|
|
if (isset($data['sort'])){
|
|
$order_field = $data['sort']['field'];
|
|
$order_direction =$data['sort']['val'];
|
|
$model->orderBy($order_field, $order_direction);
|
|
}
|
|
// eseguo la query con paginazione:
|
|
$data['dataset'] = $model->paginate(session()->get('pager_num'));
|
|
$data['pager'] = $model->pager;
|
|
|
|
return view('pages/crud', $data);
|
|
}//function clienti()
|
|
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------
|
|
|
|
|
|
|
|
}//class Admin
|