gino CMS  2.5.0
gino è un CMS scritto in PHP che offre tutti gli strumenti necessari per poter creare un sito web e gestire i contenuti al suo interno in maniera semplice ed efficace, svincolando l'amministratore da conoscenze tecniche di programmazione
AdminTable Class Reference

Gestisce l'interfaccia di amministrazione di un modello con inserimento, modifica ed eliminazione. More...

Inheritance diagram for AdminTable:

Public Member Functions

 __construct ($controller, $opts=array())
 Costruttore. More...
 
 setModelForm ($class)
 Imposta una classe personalizzata che estende Gino.ModelForm. More...
 
 backOffice ($model_class_name, $options_view=array(), $options_form=array(), $options_field=array())
 Gestisce il backoffice completo di un modello (wrapper) More...
 
 delete ($model, $options)
 Eliminazione di un record (richiesta di conferma soltanto da javascript) More...
 
 action ($model_form, $options_form, $options_field)
 Azione del form. More...
 
 adminList ($model, $options_view=array())
 Lista dei record del modello. More...
 
 permission ($options, $fname)
 Permessi di modifica dei campo. More...
 

Data Fields

 $_request
 
 $_db
 
 $_session
 
 $_edit_deny
 
 $_delete_deny
 
 $_list_remove
 

Protected Member Functions

 setSessionSearch ($model)
 Setta le variabili di sessione usate per filtrare i record nella lista amministrativa. More...
 
 setSessionSearchAdd ($model, $filters)
 Setta le variabili di sessione usate per filtrare i record nella lista amministrativa (riferimento ai filtri non automatici) More...
 
 addWhereClauses (&$query_where, $model)
 Aggiunge le condizioni where usate per filtrare i record nella admin list all'argomento $query_where passato per reference. More...
 
 formFilters ($model, $options)
 Form per filtraggio record. More...
 
 editUrl ($add_params=array(), $remove_params=array())
 Costruisce il percorso per il reindirizzamento. More...
 

Protected Attributes

 $_controller
 
 $_registry
 
 $_view
 
 $_allow_insertion
 
 $_filter_fields
 
 $_filter_join
 
 $_filter_add
 
 $_list_display
 
 $_ifp
 

Private Member Functions

 adminListOrder ($order_dir, $table, $name)
 Definisce l'ordinamento della query. More...
 
 addWhereJoin ($model, $class_name, $fname)
 Elementi che concorrono a determinare le condizioni di ricerca dei campi automatici. More...
 
 addWhereExtra ($class_name)
 Definizione delle condizioni di ricerca aggiuntive a quelle sui campi automatici. More...
 
 formFiltersAdd ($filters, $fname, $class_name)
 Input form dei filtri aggiuntivi. More...
 
 clean ($name, $options=null)
 Ripulisce l'input di un form di ricerca. More...
 

Private Attributes

 $_model_form
 

Detailed Description

Gestisce l'interfaccia di amministrazione di un modello con inserimento, modifica ed eliminazione.

Fornisce gli strumenti per gestire la parte amministrativa di un modulo, mostrando gli elementi e interagendo con loro (inserimento, modifica, eliminazione).
Nel metodo backOffice() viene ricercato automaticamente il parametro 'id' come identificatore del record sul quale interagire. Non utilizzare il parametro 'id' per altri riferimenti.

Il campo di nome instance viene trattato diversamente dagli altri campi: non compare nel form e il valore gli viene passato direttamente dall'istanza.

Filtri/Ordinamento

Per attivare i filtri di ricerca nella pagina di visualizzazione dei record occorre indicare i campi sui quali applicare il filtro nella chiave filter_fields (opzioni della vista).
Nella tabella di visualizzazione dei record i campi sui quali è possibile ordinare i risultati sono quelli per i quali la tipologia è "ordinabile", ovvero il metodo Gino.Field::canBeOrdered() ritorna il valore true.

Gestione dei permessi

La gestione delle autorizzazioni a operare sulle funzionalità del modulo avviene impostando opportunamente le opzioni allow_insertion, edit_deny, delete_deny quando si istanzia la classe adminTable().
Esempio:

// se gruppo1 $edit_deny = 'all'
// se gruppo2 $edit_deny = array(2);
// altrimenti $edit_deny = null;
$admin_table = new adminTable($this, array('allow_insertion'=>true, 'delete_deny'=>'all'));

La gestione fine delle autorizzazioni a operare sui singoli campi della tabella avviene indicando i gruppi autorizzati nell'array delle opzioni della funzionalità utilizzando la chiave permission.
Il formato è il seguente:

$buffer = $admin_table->backOffice('elearningCtg',
array(
'list_display' => array('id', 'name'),
'add_params_url'=>array('block'=>'ctg')
),
array(
'permission'=>array(
'view'=>group,
'fields'=>array(
'field1'=>group,
'field2'=>group
)
)
)
);

dove group (mixed) indica il o i gruppi autorizzati a una determinata funzione/campo.
La chiave view contiene il permesso di accedere alla singola funzionalità (view, edit, delete), e per il momento non viene utilizzata.

Author
marco guidotti guido.nosp@m.ttim.nosp@m.@gmai.nosp@m.l.co.nosp@m.m
abidibo abidi.nosp@m.bo@g.nosp@m.mail..nosp@m.com

Constructor & Destructor Documentation

__construct (   $controller,
  $opts = array() 
)

Costruttore.

Parameters
\Gino\Controller$controlleristanza di Gino.Controller che gestisce il backend
array$optsarray associativo di opzioni
  • view_folder (string): percorso della directory contenente la vista da caricare
  • allow_insertion (boolean): indica se permettere o meno l'inserimento di nuovi record
  • edit_deny (mixed): indica quali sono gli ID dei record che non posssono essere modificati
    • string, 'all' -> tutti
    • array, elenco ID
  • delete_deny (mixed): indica quali sono gli ID dei record che non posssono essere eliminati
    • string, 'all' -> tutti
    • array, elenco ID
Returns
istanza di Gino.AdminTable

Member Function Documentation

action (   $model_form,
  $options_form,
  $options_field 
)

Azione del form.

Parameters
object$model_formoggetto Gino.ModelForm
array$options_formarray associativo di opzioni
  • link_return (string): indirizzo al quale si viene rimandati dopo un esito positivo del form (se non presente viene costruito automaticamente)
array$options_field
Returns
response or redirect
addWhereClauses ( $query_where,
  $model 
)
protected

Aggiunge le condizioni where usate per filtrare i record nella admin list all'argomento $query_where passato per reference.

See also
self::addWhereJoin()
self::addWhereExtra()
Parameters
array$query_wherereference all'array di where clauses già impostate
\Gino\Model$modelistanza di Gino.Model
Returns
void
addWhereExtra (   $class_name)
private

Definizione delle condizioni di ricerca aggiuntive a quelle sui campi automatici.

La condizione da inserire nella query di ricerca viene definita nel metodo indicato come valore della chiave filter. Il metodo deve essere creato di volta in volta.

Parameters
string$class_namenome della classe
Returns
array di condizioni
addWhereJoin (   $model,
  $class_name,
  $fname 
)
private

Elementi che concorrono a determinare le condizioni di ricerca dei campi automatici.

Ci può essere una solo campo input di tipo join.

Parameters
object$modelmodello
string$class_namenome della classe
string$fnamenome del campo della tabella al quale associare le condizioni aggiuntive
Returns
array di condizioni o null
adminList (   $model,
  $options_view = array() 
)

Lista dei record del modello.

See also
self::backOffice()
Parameters
object$model
array$options_viewarray associativo di opzioni
  • filter_fields (array): campi sui quali applicare il filtro per la ricerca automatica
  • filter_join (array): contiene le proprietà degli input form da associare ai campi ai quali viene applicato il filtro; i valori in arrivo da questi input concorrono alla definizione delle condizioni dei campi ai quali sono associati
    • field (string): nome del campo di riferimento; l'input form viene posizionato dopo questo campo
    • name (string): nome dell'input
    • label (string): nome della label
    • data (array): elementi che compongono gli input form radio e select
    • default (string): valore di default
    • input (string): tipo di input form, valori validi: radio (default), select
    • where_clause (string): nome della chiave da passare alle opzioni del metodo addWhereClauses(); per i campi data: operator inoltre contiene le opzioni da passare al metodo clean
    • value_type (string): tipo di dato (default string)
    • method (array): default $this->_request->POST
    • escape (boolean): default true
      Esempio:
      array(
      'field'=>'date_end',
      'label'=>'',
      'name'=>'op',
      'data'=>array(1=>'<=', 2=>'=', 3=>'>='),
      'where_clause'=>'operator'
      )
  • filter_add (array): contiene le proprietà degli input form che vengono aggiunti come filtro per la ricerca automatica
    • field (string): nome del campo che precede l'input form aggiuntivo nel form di ricerca
    • name (string): nome dell'input
    • label (string): nome della label
    • data (array): elementi che compongono gli input form radio e select
    • default (string): valore di default
    • input (string): tipo di input form, valori validi: radio (default), select
    • filter (string): nome del metodo da richiamare per la condizione aggiuntiva; il metodo dovrà essere creato in una classe che estende adminTable() inoltre contiene le opzioni da passare al metodo clean
    • value_type (string): tipo di dato (default string)
    • method (array): default $this->_request->POST
    • escape (boolean): default true
      Esempio:
      array(
      'field'=>'date_end',
      'label'=>_("Scaduto"),
      'name'=>'expired',
      'data'=>array('no'=>_("no"), 'yes'=>_("si")),
      'filter'=>'filterWhereExpired'
      ),
      array(
      'field'=>'date_end',
      'label'=>_("Filiali"),
      'name'=>'cod_filiale',
      'data'=>$array_filiali,
      'input'=>'select',
      'filter'=>'filterWhereFiliale'
      )
  • list_display (array): nomi dei campi da mostrare nella lista (se vuoto mostra tutti); al posto del nome di un campo è possibile indicare un array con le seguenti chiavi
    • member (string): nome del metodo del modello da richiamare e il cui output verrà mostrato nelle righe della colonna
    • label (string): intestazione della colonna
  • list_remove (array): campi da non mostrare nella lista (default: instance)
  • items_for_page (integer): numero di record per pagina
  • list_title (string): titolo
  • list_description (string): descrizione sotto il titolo (informazioni aggiuntive)
  • list_where (array): condizioni della query che estrae i dati dell'elenco
  • link_fields (array): campi sui quali impostare un collegamento, nel formato nome_campo=>array('link'=>indirizzo, 'param_id'=>'ref')
    • link (string), indirizzo del collegamento
    • param_id (string), nome del parametro identificativo da aggiungere all'indirizzo (default: id[=valore_id]) esempio: array('link_fields'=>array('codfisc'=>array('link'=>$this->_registry->router->link($this->_instance_name, 'view')))
  • add_params_url (array): parametri aggiuntivi da passare ai link delle operazioni sui record
  • add_buttons (array): bottoni aggiuntivi da anteporre a quelli di modifica ed eliminazione, nel formato array(array('label'=>('group'), 'link'=>indirizzo, 'param_id'=>'ref'))
    • label (string), nome del bottone
    • link (string), indirizzo del collegamento
    • param_id (string), nome del parametro identificativo da aggiungere all'indirizzo (default: id[=valore_id])
  • view_export (boolean): attiva il collegamento per l'esportazione dei record (default false)
  • name_export (string): nome del file di esportazione
  • export (integer): valore che indica la richiesta del file di esportazione (il parametro viene passato dal metodo backOffice)
Returns
lista record paginata e ordinabile
adminListOrder (   $order_dir,
  $table,
  $name 
)
private

Definisce l'ordinamento della query.

Parameters
string$order_dir
string$table
string$name
Returns
order clause
backOffice (   $model_class_name,
  $options_view = array(),
  $options_form = array(),
  $options_field = array() 
)

Gestisce il backoffice completo di un modello (wrapper)

See also
Translation::manageTranslation()
ModelForm::form()
self::action()
self::delete()
self::adminList()
Parameters
string$model_class_namenome della classe del modello
array$options_viewopzioni della vista (comprese le autorizzazioni a visualizzare singoli campi)
array$options_formopzioni del form (comprese le autorizzazioni a mostrare l'input di singoli campi e a salvarli)
array$options_fieldopzioni degli elementi nel form
Returns
interfaccia di amministrazione
clean (   $name,
  $options = null 
)
private

Ripulisce l'input di un form di ricerca.

Parameters
string$namenome dell'input form
array$optionsarray associativo di opzioni
  • value_type (string)
  • method (array)
  • escape (boolean)
Returns
valore ripulito
delete (   $model,
  $options 
)

Eliminazione di un record (richiesta di conferma soltanto da javascript)

See also
self::backOffice()
Parameters
\Gino\Model$modelmodello da eliminare
array$options_formarray associativo di opzioni
  • link_delete (string): indirizzo al quale si viene rimandati dopo la procedura di eliminazione del record (se non presente viene costruito automaticamente)
Returns
Gino.Http.Redirect
editUrl (   $add_params = array(),
  $remove_params = array() 
)
protected

Costruisce il percorso per il reindirizzamento.

Parameters
array$add_paramselenco parametri da aggiungere al path (Gino.Http.Request::path) (formato chiave=>valore)
array$remove_paramselenco parametri da rimuovere dal path (Gino.Http.Request::path)
Returns
url ricostruito
formFilters (   $model,
  $options 
)
protected

Form per filtraggio record.

See also
self::permission()
self::formFiltersAdd()
Gino.Build::formFilter()
Parameters
\Gino\Model$modelistanza di Gino.Model
array$optionsautorizzazioni alla visualizzazione dei singoli campi
Returns
form html
formFiltersAdd (   $filters,
  $fname,
  $class_name 
)
private

Input form dei filtri aggiuntivi.

Parameters
array$filterselenco dei filtri
string$fnamenome del campo della tabella al quale far seguire gli eventuali filtri aggiuntivi
string$class_namenome della classe
Returns
elementi del form in html
permission (   $options,
  $fname 
)

Permessi di modifica dei campo.

Todo:
Implementare il metodo che restituisce TRUE se l'utente ha il permesso di agire sul campo, FALSE altrimenti.
Parameters
array$optionsarray associativo di opzioni
string$fnamenome del campo
Returns
TRUE
setModelForm (   $class)

Imposta una classe personalizzata che estende Gino.ModelForm.

Parameters
string$classnome della classe da istanziare
Returns
void
setSessionSearch (   $model)
protected

Setta le variabili di sessione usate per filtrare i record nella lista amministrativa.

Parameters
\Gino\Model$modelistanza di Gino.Model
Returns
void
setSessionSearchAdd (   $model,
  $filters 
)
protected

Setta le variabili di sessione usate per filtrare i record nella lista amministrativa (riferimento ai filtri non automatici)

Parameters
\Gino\Model$modelistanza di Gino.Model
array$filterselenco dei filtri
Returns
void

Field Documentation

$_allow_insertion
protected
$_controller
protected
$_db
$_delete_deny
$_edit_deny
$_filter_add
protected
$_filter_fields
protected
$_filter_join
protected
$_ifp
protected
$_list_display
protected
$_list_remove
$_model_form
private
$_registry
protected
$_request
$_session
$_view
protected

The documentation for this class was generated from the following file: