Files
CSiCoDB2/app/Controllers/Admin.php
2026-05-06 11:04:41 +02:00

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