SKYNET è un framework pensato per lo sviluppo di applicativi gestionali su WEB.

STRUMENTI DI SVILUPPO UTILIZZATI:
SKYNET è stato scritto in PHP 5 e utilizza un database MYSQL 5 per funzionare.
Il server web che lo ospita deve essere in grado di far girare PHP.

PRINCIPALI FUNZIONI DI SKYNET:
Appena installato SKYNET sarete in grado di :
- Gestire gli utenti che si collegheranno al vostro gestionale WEB (Creazione,
gestione, eliminazione, gestione dei tipi utenti, login degli utenti al sistema)

- Gestione dei programmi che saranno presenti all'interno del sistema (Creazione,
gestione, eliminazione, abilitazione)

- Gestione delle abilitazioni dei programmi (potrete decidere quali utenti e/o
quali tipi di utenti potranno vedere determinati programmi)

- Gestione dei menu (struttura del menu con sottocartelle con un numero "n" di livelli e
collegamento ai programmi attivi nel sistema e abilitati all'utente loggato. Possibilità
di creare più profili menu)

- Gestione dei logs (avrete subito a disposizione la possibilità di gestire un perfetto
sistema di logs indicizzato)

- Gestione delle forms (avrete la possibilità di costruire e gestire in maniera completamente
visuale le interfacce dei vostri applicativi. SKYNET mette a disposizione un completo sistema
di interfaccia CODICE <-> FORM che permette con pochissime linee di codice di creare
complessi applicativi)

- Gestione degli SKINS (Avrete la possibilità di rivoluzionare completamente l'interfaccia del
vostro gestionale semplicemente puntando ad un determinato SKINS; Gli skins possono
essere cambiati anche durante l'esecuzione del programma e personalizzati per tipo utente)

- Debug rapido (Abilitando la modalità DEBUG potrete avere rapido accesso ai LOGS degli errori
PHP ed SQL del vostro applicativo; è inoltre possibile vedere passo passo tutto quello che ha
fatto il programma in background)

- File di configurazione (Utilizzo pratico dei files INI per configurare i vostri applicativi)

- Funzioni di virtualizzazione (possibilità di simulare l'accesso come un altro utente senza chiudere
la vostra sessione di lavoro)

- Gestione messaggistica di sistema

COME LO INSTALLO:

1) Inserisci la cartella di SKYNET direttamente nella cartella del server WEB (Es: Apache: Htdocs)
2) Il database è un dump quindi basta fare il load su MYSQL
3) Configura il file .INI che trovi nella cartella "SKYNET" impostando nome utente e psw per
l'accesso al database.
4) Collegati tramite il browser !!

STRUTTURA DEL SISTEMA:

---------------
/
───classi
│ └───SKYNET
───funzioni
│ └───SKYNET
───immagini
│ └───SKYNET
───programmi
───admin
│ └───default
└───skins
└───main
index.php

In CLASSI potete mettere tutte le classi dei programmi che vengono utilizzate a livello globale nel sistema ma
che nulla hanno a che fare con SKYNET.

In CLASSI / SKYNET sono presenti tutte le classi utilizzate a livello globale nel sistema e che riguardano le
funzionalità messe a disposizione dal sistema.

In FUNZIONI potete mettere tutte le funzioni JAVASCRIPT che vengono utilizzate a livello globale nel sistema
ma che non hanno nulla a che fare con SKYNET.

In FUNZIONI / SKYNET sono presenti tutte le funzioni utilizzate a livello globale nel sistema e che riguardano
le funzionalità messe a disposizione del sistema.

In IMMAGINI potete mettere tutte le immagini usate a livello globale dal sistema ma non relative al framework.

In IMMAGINI / SKYNET sono presenti tutte le immagini messe a disposizione dal framework

In PROGRAMMI dovete inserire tutte le cartelle dei vostri programmi (a cartella corrisponde un programma e
contiene tutti i files necessari a deseguirlo (di default sarà presente sempre ADMIN (programma di amministrazione
del framework e un programma che corrisponde alla pagina di default).

In SKINS sono presenti tutte le cartelle che contengono i file relativi agli SKINS di SKYNET (SKIN di default
nella cartella MAIN.

La INDEX.PHP è l'unica pagina alla quali il CLIENT deve fare riferimento per qualsiasi chiamata al sistema.

COME FUNZIONA:

Generalemente un applicativo WEB resituisce delle pagine che vengono richiamate da un client tramite un URL.
Ad ogni pagina (Nel caso di un applicativo gestionale potremmo definirlo PROGRAMMA) corrisponde una pagina WEB (
PHP o ASP, ecc..).

Es:
www.miosito.it/prog1.php?dati=1
www.miosito.it/prog2.php?dati=2&tipo=x

SKYNET funziona in modo diverso... tutte le chimate sono dirette alla pagina di DEFAULT (index.php) che trovate nella
root ; qui vengono effettuate tutte le validazioni sulle abilitazioni e permessi dell'utente loggato in quel
momento e se questi controlli hanno esito positivo (per un utente non loggato potremmo avere dei programmi
pubblici) il "kernel" effettua una chimata al programma.
L'unica pagina che puo rispondere ad un client in tutto il sistema è la index.php poichè i programmi non sono
altro che delle classi con un metodo che ne restituisce il loro codice HTML la cui chiamata avviene solo dal
kernel (index.php) e dunque se richiamate direttamente non restituiscono alcun output.
Con questo meccanismo è possibile definire delle risorse a livello di programma o di kernel.
Di default SKYNET instanzia a livello di kernel (quindi quando viene chiamata la index.php) le funzionalità di
connessione al database, il gestore dei logs, il gestore delle forms, il gestore dei files INI, gestore di accesso
ai programmi, controllore delle abilitazioni ai programmi e visualizzazione menu, il gestore degli SKINS, gestore
messaggistica di sistema (utilizzato ad esempio per notifiche di sistema, ma gestibile anche dall'utente),
funzionalità di debug.

PRIMO APPROCCIO AL FRAMEWORK - i comandi di base

Per cominciare a muovervi nel framework sappiate che avrete a disposizone una serie di comandi standard;
questi dovranno essere passati tramite querystring o POST al sistema:

sk_lp
SKYNET load program : dice al framework di chiamare un determinato programma (potete passargli il PK
del programma (tabella programmi) o il valore che avete specificato nel campo
pr_command (tabella programmi)

sk_q
SKYNET quit : LogOUT dell'utente loggato al sistema

sk_kill_virt
SKYNET kill virtuality : Esce dalla modalità virtualizzazione utente

sk_system_over_skin :
Permette di specificare quale SKIN si vuole utilizzare (passategli il nome della cartella dello SKIN contenuto IN /SKIN/)

sk_system_message :
Potete visualizzare un messaggio di sistema contenente il testo associato

Le stesse variabili possono essere gestite lato SERVER in questo modo (esempio):

LATO CLIENT: http://miosito.it/index.php?sk_system_message=messaggio uno
LATO SERVER: Nel codice PHP instanziate la variabile globale $sk_system_message e valorizzatela.