PHP code example of enzoaccardo / ci4-adminkit-starter
1. Go to this page and download the library: Download enzoaccardo/ci4-adminkit-starter library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
enzoaccardo / ci4-adminkit-starter example snippets
$filterFields = [
'name' => ['type' => 'text', 'label' => 'Nome', 'column' => 'u.name'],
'email' => ['type' => 'text', 'label' => 'Email', 'column' => 'u.email'],
];
$columns = [
'name' => ['label' => 'Nome', 'sortable' => true, 'column' => 'u.name'],
'email' => ['label' => 'Email', 'sortable' => true, 'column' => 'u.email'],
'last_login_at' => ['label' => 'Ultimo accesso', 'sortable' => true, 'column' => 'u.last_login_at'],
'is_active' => ['label' => 'Stato'],
'_actions' => ['label' => '', 'class' => 'text-end'],
];
$filters = $this->getFilters($filterFields);
$sort = $this->getSort($columns, defaultKey: 'name', defaultDir: 'asc');
$page = $this->getPage();
$perPage = $this->getPerPage();
$builder = $this->userModel->queryForIndex(withDeleted: true);
$this->applyFilters($builder, $filterFields, $filters);
$this->applySort($builder, $columns, $sort);
return [
'action' => base_url('admin/users' . ($user ? "/{$user->id}" : '')),
'cancelUrl' => base_url('admin/users'),
'ajax' => true,
'sections' => [[
'fields' => [
'name' => ['type' => 'text', 'label' => 'Nome', ' 'hint' => $user ? 'Lascia vuoto per non cambiare.' : 'Minimo 8 caratteri.',
'widget' => 'pwstrength',
],
'role_id' => [
'type' => 'select',
'label' => 'Ruolo',
'options' => $this->roleModel->getActive(),
'empty' => '— nessun ruolo —',
'widget' => 'tomselect',
],
'is_active' => ['type' => 'switch', 'label' => 'Utente attivo', 'default' => 1],
],
]],
];
'tipo' => [
'type' => 'radio',
'options' => ['privato' => 'Privato', 'azienda' => 'Azienda'],
'affects' => [
['when' => 'azienda', 'show' => ['ragione_sociale', 'piva'], '
'citta' => [
'type' => 'select',
'widget' => 'tomselect',
'remote' => ['dependsOn' => 'provincia', 'provider' => 'citta'],
],
protected function optionsCitta(): array
{
$prov = (string) $this->request->getGet('provincia');
return $this->cittaPerProvincia($prov); // [['value' => ..., 'label' => ...], ...]
}
'paziente_id' => [
'type' => 'select',
'widget' => 'tomselect',
'options' => $this->pazienti(),
'createNew' => ['provider' => 'patient', 'label' => 'Crea nuovo', 'title' => 'Nuovo paziente'],
],
class Users extends AdminController
{
public static function routes(RouteCollection $routes): void
{
$routes->get('users', 'Admin\Users::index');
$routes->get('users/create', 'Admin\Users::create');
$routes->post('users', 'Admin\Users::store');
$routes->get('users/([0-9]{1,10})/edit', 'Admin\Users::edit/$1');
$routes->post('users/([0-9]{1,10})', 'Admin\Users::update/$1');
$routes->post('users/([0-9]{1,10})/delete', 'Admin\Users::delete/$1');
}
}
use AdminKit\Routing\Discovery;
$routes->get('/', 'Front\Home::index', ['filter' => 'auth']);
Discovery::discover($routes, 'App\Controllers\Front\Auth'); // login, reset password
Discovery::discover($routes, 'AdminKit\Mfa\Controllers'); // flusso del secondo fattore
Discovery::discover($routes, 'App\Controllers\Api', 'publicRoutes'); // API senza token
$routes->group('api/v1', ['filter' => 'jwt'], static function ($routes) {
Discovery::discover($routes, 'App\Controllers\Api'); // API protette
});
Discovery::adminGroup($routes, 'App\Controllers\Admin'); // pannello
bash
php spark migrate --all # applicazione e pacchetti
php spark db:seed DatabaseSeeder
php spark serve # http://localhost:8080
* * * * * cd /percorso/del/progetto && php spark tasks:run >> /dev/null 2>&1