0.19   Functions reference


Le funzioni di o2 sono di varia natura e possono essere usate per differenti scopi:

  1. Informative

    Ritornano informazioni riguardo ad oggetti e strutture di sistema, come, ad esempio, il contenuto dei repository, il menu impostato, informazioni di filesystem o le posizioni delle form. Le informazioni sono spesso riportate in forma di array.

  2. Esecutive

    Agiscono sulle caratteristiche dell'applicazione, modificandone il comportamento, oppure eseguono comandi di sistema. Possono essere usate per creare o eliminare tabelle di database, per agire sul filesystem, oppure per inviare un messaggio di posta elettronica.

  3. Per la manipolazione dei dati

    Ritornano forme specifiche dei valori passati: ad esempio, script javascript per l'esecuzione di comandi, valori formattati secondo un certo data model, oppure valori futuri o passati di data e ora.

Le funzioni possono essere usate all'interno di qualuque expression e verranno eseguite al momento della valutazione dell'espressione in cui sono contenute.

L'elenco delle funzioni è qui suddiviso secondo l'oggetto a cui tali funzioni si riferiscono.


0.19.1   Funzioni di runtime


Questo gruppo di funzioni si riferisce all'o2runtime in uso per l'applicazione e ritorna informative dipendenti dalla modalità di installazione della runtime e dalle impostazioni contenute nel file di configurazione o2/o2.ini.


0.19.1.1   o2rnt_alias()


Sintassi: o2rnt_alias()

Parameters: La funzione non prevede parametri

Returns: string

Ritorna il virtual host di o2runtime, così come configurato per il webserver, ovvero l'indirizzo HTTP della webroot di runtime, cioé della directory /o2/htdocs/.

La stringa ritornata sarà della forma http://www.someweb.com/o2/

o2rnt_root()

0.19.1.2   o2rnt_root()


Sintassi: o2rnt_root()

Parameters: La funzione non prevede parametri

Returns: string

Ritorna la directory root di o2runtime, ovvero il path completo della directory /o2/.

La stringa ritornata sarà della forma /somepath/o2/

o2rnt_alias(), o2rnt_dirthreads(), o2rnt_dircss()

0.19.1.3   o2rnt_dirthreads()


Sintassi: o2rnt_dirthreads()

Parameters: La funzione non prevede parametri

Returns: string

Ritorna la directory in cui vengono salvati i file di processo per le runtime in esecuzione, ovvero il path completo della directory /o2/threads/.

La stringa ritornata sarà della forma /somepath/o2/threads/

o2rnt_root()

0.19.1.4   o2rnt_dircss()


Sintassi: o2rnt_dircss()

Parameters: La funzione non prevede parametri

Returns: string

Ritorna la directory in cui sono contenuti i css della runtime, ovvero il path completo della directory /o2/htdocs/css/.

La stringa ritornata sarà della forma /somepath/o2/htdocs/css/

o2rnt_alias(), o2rnt_root()

0.19.2   Funzioni di applicazione


Questo gruppo di funzioni si riferisce all'applicazione e ritorna informative dipendenti dalla modalità di installazione, dal contenuto dei repository e dalle impostazioni contenute nel file di configurazione [app]/[app].ini.


0.19.2.1   o2app_alias()


Sintassi: o2app_alias()

Parameters: La funzione non prevede parametri

Returns: string

Ritorna il virtual host di applicazione, così come configurato per il webserver, ovvero l'indirizzo HTTP della webroot di applicazione, cioé della directory /[app]/htdocs/.

La stringa ritornata sarà della forma http://www.someweb.com/app/


0.19.2.2   o2app_createtables()


Sintassi: o2app_createtables()

Parameters: La funzione non prevede parametri

Returns: void

Crea tute le tabelle di database definite per la l'applicazione, cioé nel tables repository, che già non esistano.

La creazione delle tabelle viene automaticamente eseguita ad ogni accesso di un utente all'applicazione


0.19.2.3   o2app_css()


Sintassi: o2app_css()

Parameters: La funzione non prevede parametri

Returns: string

Ritorna il nome del file di CSS (Cascading Style Sheet) attualmente in uso per l'applicazione.


0.19.2.4   o2app_databases()


Sintassi: o2app_databases()

Parameters: La funzione non prevede parametri

Returns: array

Ritorna l'elenco dei nomi dei database definiti per l'applicazione, ovvero contenuti nel servers & databases repository (default [app_root]/prgs/db_repository.inc), in forma di array con indici numerici.

Sample

Array
(
  [0] => default
  [1] => mysql_local
  [2] => mydata
)


0.19.2.5   o2app_developer()


Sintassi: o2app_developer()

Parameters: La funzione non prevede parametri

Returns: string

Ritorna il nome del developer attualmente loggato all'applicazione oppure "" se nessuno sviluppatore è stato indicato.


0.19.2.6   o2app_dir_css()


Sintassi: o2app_dir_css()

Parameters: La funzione non prevede parametri

Returns: string

Ritorna il path completo alla cartella contenente i CSS (Cascading Style Sheet) dell'applicazione.

o2dir_list()

0.19.2.7   o2app_dir_cvsprgs()


Sintassi: o2app_dir_cvsprgs()

Parameters: La funzione non prevede parametri

Returns: string

Ritorna il path completo all'attuale cartella di CVS (Team development), contenente i programmi e i repository attualmente in check out per lo sviluppatore indicato alla runtime.

o2app_developer(), o2dir_list()

0.19.3   Funzioni di utente


Questo gruppo di funzioni si riferisce alle credenziali possedute dall'utente attualmente loggato, cioé passato come parametro o2user alla prima request all'applicazione. Se nessun utente è stato indicato o se l'utente richiesto non è stato validato, le credenziali adottate dal sistema saranno quelle dell'utente "default".


0.19.3.1   o2user_has()


Sintassi: o2user_has($right_code)

Parameters:

Returns: boolean

Ritorna "true" se l'utente correntemente loggato possiede il diritto $right_code, altrimenti "false".

La funzione o2user_has() può risultare particolarmente utile per condizionare l'esecuzione di comandi o per condizionare visibilità e modificabilità di controlli, in modo da limiterne l'uso ai soli possessori di un certo diritto.

o2user_rights()

0.19.3.2   o2user_is()


Sintassi: o2user_is($role_name)

Parameters:

Returns: boolean

Ritorna "true" se l'utente correntemente loggato riveste il ruolo (appartiene al gruppo) $role_name, altrimenti "false".

La funzione o2user_is() può risultare particolarmente utile per condizionare l'esecuzione di comandi o per condizionare visibilità e modificabilità di controlli, in modo da limiterne l'uso ai soli appertenenti ad un certo ruolo (gruppo).

o2user_roles()

0.19.3.3   o2user_rights()


Sintassi: o2user_rights()

Parameters: La funzione non prevede parametri

Returns: array

Ritorna, in forma di array con indici numerici, l'elenco dei rights posseduti dall'utente loggato.

o2user_has()

0.19.3.4   o2user_roles()


Sintassi: o2user_roles()

Parameters: La funzione non prevede parametri

Returns: array

Ritorna, in forma di array con indici numerici, l'elenco dei roles rivestiti dall'utente loggato, ovvero dei gruppi a cui appartiene.

o2user_roles()

0.19.4   Funzioni di filesystem



0.19.4.1   o2dir_create()


Sintassi: o2dir_create($dir_path)

Parameters:

Returns: boolean

Crea la directory $dir_path su filesystem, se l'application server possiede le credenziali necessarie. Ritorna "true" se la creazione ha esito positivo.

ATTENZIONE!

Deve esistere la directory [$dir_path]/...

o2dir_delete(), o2file_exists()

0.19.4.2   o2dir_delete()


Sintassi: o2dir_delete($dir_path)

Parameters:

Returns: boolean

Elimina la directory $dir_path su filesystem, tutti i file eventualmente contenuti e tutte le sottocartelle, se l'application server possiede le credenziali necessarie. Ritorna "true" se l'eliminazione ha esito positivo.

o2dir_create(), o2dir_list(), o2file_exists()

0.19.4.3   o2dir_list()


Sintassi: o2dir_list($dir_path, [$file_match="*"])

Parameters:

Returns: array

Ritorna il contenuto della directory $dir_path su filesystem, in accordo con l'espressione $file_match eventualmente passata, come array con indice numerico. I valori contenuti nei singoli elementi dell'array corrispondono al path completo dei file e delle cartelle contenute.

Sample

$list_local = o2dir_list(o2app_dir_home());
Assumendo che la home dell'applicazione sia la directory /o2app/myapp/, $list_local potrebbe avere la seguente forma:
Array
(
  [0] => /o2app/myapp/data
  [1] => /o2app/myapp/doc
  [2] => /o2app/myapp/htdocs
  [3] => /o2app/myapp/logs
  [4] => /o2app/myapp/models
  [5] => /o2app/myapp/myapp.ini
  [6] => /o2app/myapp/prgs
  [7] => /o2app/myapp/users
)

o2dir_delete(), o2file_exists()

0.19.4.4   o2file_basename()


Sintassi: o2file_basename($file_path)

Parameters:

Returns: string

Ritorna il solo nome, privo di path ed estensione, del file $file_path.

Sample

$name_local = o2file_basename("c:\programmi\php5\php.exe");
$name_local conterrà la stringa "php".

o2file_dir(), o2file_ext(), o2file_fullname(), o2file_rename()

0.19.4.5   o2file_copy()


Sintassi: o2file_copy($file_path, $new_file)

Parameters:

Returns: boolean

Copia il file $file_path sul file $new_file, sovrascrivendolo se già esistente.

ATTENZIONE!

Il file $file_path e la directory [$new_file]/.. devono esistere.

o2file_delete(), o2file_exists(), o2file_rename()

0.19.4.6   o2file_date()


Sintassi: o2file_date($file_path)

Parameters:

Returns: string

Ritorna la data di ultima modifica del file $file_path nella forma YYYYMMDD.

Sample

$date_local = o2file_date("c:\programmi\php5\php.exe");
$date_local conterrà la stringa "20060816".

o2file_exists(), o2file_size(), o2file_time()

0.19.4.7   o2file_delete()


Sintassi: o2file_delete($file_path)

Parameters:

Returns: boolean

Elimina il file $file_path su filesystem, se l'application server possiede le credenziali necessarie. Ritorna "true" se l'eliminazione ha esito positivo.

o2file_copy(), o2file_exists(), o2file_rename()

0.19.4.8   o2file_dir()


Sintassi: o2file_dir($file_path)

Parameters:

Returns: string

Ritorna il solo path del file $file_path.

Sample

$dir_local = o2file_dir("c:\programmi\php5\php.exe");
$dir_local conterrà la stringa "c:\programmi\php5\".

o2dir_delete(), o2dir_list(), o2file_basename(), o2file_ext(), o2file_fullname()

0.19.4.9   o2file_exists()


Sintassi: o2file_exists($file_path)

Parameters:

Returns: boolean

Verifica se esiste il file $file_path su filesystem e ritorna "true" se esiste, altrimenti "false".

o2dir_create(), o2dir_list(), o2file_copy(), o2file_delete()

0.19.4.10   o2file_ext()


Sintassi: o2file_ext($file_path)

Parameters:

Returns: string

Ritorna la sola estensione (la stringa a destra dell'ultimo "." contenuto nel nome) del file $file_path.

Sample

$ext_local = o2file_ext("c:\programmi\php5\php.exe");
$ext_local conterrà la stringa "exe".

o2file_basename(), o2file_dir(), o2file_fullname(), o2file_ico()

0.19.4.11   o2file_fullname()


Sintassi: o2file_fullname($file_path)

Parameters:

Returns: string

Ritorna il nome completo, con path esplicito e ben formato, del file $file_path.

Sample

$file_local = o2file_fullname("c:\programmi\php5\php.exe");
$file_local conterrà la stringa "c:\programmi\php5\php.exe".

o2file_basename(), o2file_dir(), o2file_exists(), o2file_ext()

0.19.4.12   o2file_ico()


Sintassi: o2file_ico($file_path, [$large=false])

Parameters:

Returns: string

Ritorna il puntamento web all'immagine icona appropriata per la tipologia di file di $file_path, cercando di ricavare la tipologia dal MIME-TYPE del file (quando possibile) o dalla sua estensione. Se viene passato a "true" il secondo parametro $large verrà ritornato il puntamento all'icona in formato PNG 256x256 px, altrimenti il puntamento all'icona PNG 16x16 px.

Sample

$ico_local = o2file_ico("c:\programmi\php5\php.exe");
$ico_local conterrà la stringa "/o2/img/fs/exe.png".

o2file_ext(), o2file_type()

0.19.4.13   o2file_rename()


Sintassi: o2file_rename($file_path, $new_name)

Parameters:

Returns: boolean

Rinomina il file $file_path col nome file $new_name, sovrascrivendolo se già esistente.

ATTENZIONE!

Il file $file_path e la directory [$new_name]/.. devono esistere.

o2file_copy(), o2file_exists(), o2file_rename()

0.19.4.14   o2file_size()


Sintassi: o2file_size($file_path)

Parameters:

Returns: integer

Ritorna la dimensione in byte del file $file_path.

Sample

$size_local = o2file_size("c:\programmi\php5\php.exe");
$size_local conterrà il valore "28725".

o2file_date(), o2file_exists(), o2file_time()

0.19.4.15   o2file_time()


Sintassi: o2file_time($file_path)

Parameters:

Returns: string

Ritorna l'ora di ultima modifica del file $file_path nella forma HHMMSS.

Sample

$time_local = o2file_time("c:\programmi\php5\php.exe");
$time_local conterrà la stringa "003422".

o2file_date(), o2file_exists(), o2file_size()

0.19.4.16   o2file_type()


Sintassi: o2file_type($file_path)

Parameters:

Returns: string

Ritorna "D" se il file $file_path è una directory, altrimenti "F".

Sample

$ype_local = o2file_type("c:\programmi\php5\php.exe");
$type_local conterrà la stringa "F".

o2dir_delete(), o2file_delete(), o2file_exists(), o2file_ext()

0.19.5   Funzioni di database server


Questo gruppo di funzioni riguarda i due elementi di base della connettività: i server e i database su essi definiti, come definiti dal contenuto del servers & databases repository (default [app_root]/prgs/db_repository.inc).


0.19.5.1   o2dbs_commit()


Sintassi: o2db_commit($server_name)

Parameters:

Returns: boolean

Esegue il COMMIT SQL delle transazioni avviate sul server $server_name. Una nuova transazione verrà automaticamente avviata alla prossima richiesta di esecuzione per il server. Ritorna "true" se il COMMIT è stato eseguito con successo.

o2dbs_exe(), o2db_server()

0.19.5.2   o2dbs_engine()


Sintassi: o2dbs_engine($server_name)

Parameters:

Returns: string

Ritorna il tipo di motore SQL ("sqlite", "mysql", "mssql", "postgres", "oracle", ...) per il server $server_name, così come definito alla voce Engine della definizione dei Server.

o2dbs_name(), o2dbs_password(), o2dbs_user()

0.19.5.3   o2dbs_exe()


Sintassi: o2dbs_exe($server_name, $sql_cmd)

Parameters:

Returns: boolean

Esegue il comando SQL $sql_cmd direttamente sul server $server_name e ritorna "true" se eseguito correttamente.

ATTENZIONE!

Questa funzione può compromettere la portabilità dell'applicazione, in quanto la sintassi del comando $sql_cmd può variare da una tipologia di server ad un'altra. Si sconsiglia l'uso di questa funzione, a favore delle normali tecniche o2 di accesso e gestione delle connettività.

o2dbs_engine(), o2db_server(), o2dbs_commit()

0.19.5.4   o2dbs_name()


Sintassi: o2dbs_name($server_name)

Parameters:

Returns: string

Ritorna il nome host o l'indirizzo IP del server $server_name, così come definito alla voce Physical name della definizione dei Server.

o2dbs_engine(), o2dbs_password(), o2dbs_user()

0.19.5.5   o2dbs_password()


Sintassi: o2dbs_password($server_name)

Parameters:

Returns: string

Ritorna la password indicata per l'utente di accesso al server $server_name, così come definita alla voce Password della definizione dei Server.

o2dbs_engine(), o2dbs_name(), o2dbs_user()

0.19.5.6   o2dbs_user()


Sintassi: o2dbs_user($server_name)

Parameters:

Returns: string

Ritorna il nome dell'utente di accesso al server $server_name, così come definito alla voce User della definizione dei Server.

o2dbs_engine(), o2dbs_name(), o2dbs_password()

0.19.5.7   o2db_name()


Sintassi: o2db_name($db_name)

Parameters:

Returns: string

Ritorna il nome fisico del database $db_name, come definito alla colonna Physical name della definizione dei Database.

o2db_schema(), o2db_server()

0.19.5.8   o2db_schema()


Sintassi: o2db_schema($db_name)

Parameters:

Returns: string

Ritorna lo schema utilizzato per l'accesso al database $db_name, come definito alla colonna Schema della definizione dei Database.

o2db_name(), o2db_server()

0.19.5.9   o2db_server()


Sintassi: o2db_server($db_name)

Parameters:

Returns: string

Ritorna il nome logico (o2) del server su cui è definito il database $db_name, come indicato nella colonna Server della definizione dei Database.

Il nome logico di server ritornato da questa funzione può essere passato come primo parametro alle funzioni o2dbs_*().

o2dbs_engine(), o2dbs_name(), o2db_name(), o2db_schema()

0.19.5.10   o2db_tables()


Sintassi: o2db_tables($db_name)

Parameters:

Returns: array

Ritorna l'elenco delle tabelle fisicamente esistenti sul database $db_name in forma di array con indici numerici.

o2dbs_engine(), o2db_name(), o2db_schema(), o2db_server()

0.19.6   Funzioni di datamodel

0.19.7   Funzioni di tabelle e campi

0.19.8   Funzioni di view


0.19.9   Funzioni di form


Le funzioni contenute in questa sezione riguardano informative ed esecuzioni relative a form definite per un programma.

0.19.9.1   o2ctrl_focus()


Sintassi: o2form_focus($form_name, $ctrl_name)

Parameters:

Returns: void

Imposta il focus per il controllo $ctrl_name della form $form_name. Per poter ricevere il focus il controllo deve essere visibile, altrimenti si risolverà in un errore di javascript.


0.19.9.2   o2form_height()


Sintassi: o2form_height($form_name, [$level=0])

Parameters:

Returns: integer

Ritorna il valore dell'altezza in px della form $form_name.

Sample

$h_local = o2form_height("main_win");
Ritorna l'altezza della form main_win definita nel programma corrente.

$h_local = o2form_height("detail", count(o2app_prg()) - 1);
Ritorna l'altezza della form detail definita nel programma che ha chiamato il programma corrente.

o2form_width(), o2form_x(), o2form_y()

0.19.9.3   o2form_width()


Sintassi: o2form_width($form_name, [$level=0])

Parameters:

Returns: integer

Ritorna il valore della larghezza in px della form $form_name.

Sample

$w_local = o2form_width("main_win");
Ritorna la larghezza della form main_win definita nel programma corrente.

$w_local = o2form_width("detail", count(o2app_prg()) - 1);
Ritorna la larghezza della form detail definita nel programma che ha chiamato il programma corrente.

o2form_height(), o2form_x(), o2form_y()

0.19.9.4   o2form_x()


Sintassi: o2form_x($form_name, [$level=0])

Parameters:

Returns: integer

Ritorna il valore in px della coordinata orizzontale dell'angolo superiore sinistro della form $form_name.

Sample

$x_local = o2form_x("main_win");
Ritorna la coordinata orizzontale della form main_win definita nel programma corrente.

$x_local = o2form_x("detail", count(o2app_prg()) - 1);
Ritorna la coordinata orizzontale della form detail definita nel programma che ha chiamato il programma corrente.

o2form_height(), o2form_width(), o2form_y()

0.19.9.5   o2form_y()


Sintassi: o2form_y($form_name, [$level=0])

Parameters:

Returns: integer

Ritorna il valore in px della coordinata verticale dell'angolo superiore sinistro della form $form_name.

Sample

$y_local = o2form_y("main_win");
Ritorna la coordinata verticale della form main_win definita nel programma corrente.

$y_local = o2form_y("detail", count(o2app_prg()) - 1);
Ritorna la coordinata verticale della form detail definita nel programma che ha chiamato il programma corrente.

o2form_height(), o2form_width(), o2form_x()

0.19.10   Funzioni di client browser

0.19.11   Funzioni di programma

0.19.12   Funzioni di menu

0.19.13   Funzioni miscellanee