Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
creare_un_nuovo_strumento [02/07/2010 14:51] |
creare_un_nuovo_strumento [05/06/2013 17:08] 127.0.0.1 modifica esterna |
||
---|---|---|---|
Linea 28: | Linea 28: | ||
Ci sono poi dei files e delle cartelle che vengono create solo se lo strumento ne richiede l'utilizzo, come la cartella //home/app/apis/CALENDAR/VIEWS// con i file //.tpl// delle viste relative alle api.\\ | Ci sono poi dei files e delle cartelle che vengono create solo se lo strumento ne richiede l'utilizzo, come la cartella //home/app/apis/CALENDAR/VIEWS// con i file //.tpl// delle viste relative alle api.\\ | ||
All'interno di //home/app/views/CALENDAR// vanno inseriti i file //.tpl// che gestiscono la vista dei componenti dello strumento (come ad esempio edit.tpl, create.tpl, addstep.tpl etc...); questi file quindi dipendono dalla struttura dello strumento stesso.\\ | All'interno di //home/app/views/CALENDAR// vanno inseriti i file //.tpl// che gestiscono la vista dei componenti dello strumento (come ad esempio edit.tpl, create.tpl, addstep.tpl etc...); questi file quindi dipendono dalla struttura dello strumento stesso.\\ | ||
- | \\ | + | |
+ | ---- | ||
\\ | \\ | ||
Per la creazione di un nuovo strumento è utile sapere anche quali sono le //funzioni// che, indipendentemente dal tipo di strumento, vanno implementate; queste sono le funzioni di //permission//, ovvero quelle che gestiscono i permessi, riportate di seguito:\\ | Per la creazione di un nuovo strumento è utile sapere anche quali sono le //funzioni// che, indipendentemente dal tipo di strumento, vanno implementate; queste sono le funzioni di //permission//, ovvero quelle che gestiscono i permessi, riportate di seguito:\\ | ||
\\ | \\ | ||
- | * PERMISSION GET OBJECTS per lo strumento AGENDA - produce un array con all'interno tutte le agende prodotte dal modulo agenda. | + | * Es. PERMISSION GET OBJECTS per lo strumento AGENDA - produce un array con all'interno tutte le agende prodotte dal modulo agenda. |
function permissionsGetObjects() { | function permissionsGetObjects() { | ||
Linea 49: | Linea 50: | ||
} | } | ||
\\ | \\ | ||
- | * PERMISSION GET ACTIONS per lo strumento AGENDA - produce un array di stringhe contenente tutte le azioni prodotte dal modulo agenda. | + | * Es. PERMISSION GET ACTIONS per lo strumento AGENDA - produce un array di stringhe contenente tutte le azioni prodotte dal modulo agenda. |
function permissionsGetActions() { | function permissionsGetActions() { | ||
Linea 65: | Linea 66: | ||
} | } | ||
\\ | \\ | ||
- | * PERMISSION GET ROLES per lo strumento AGENDA - produce un array dove sono definiti i ruoli del modulo agenda. | + | * Es. PERMISSION GET ROLES per lo strumento AGENDA - produce un array dove sono definiti i ruoli del modulo agenda. |
function permissionsGetRoles() { | function permissionsGetRoles() { | ||
$roles['moderator']['label'] = $this->s('AGENDA_MODERATOR'); | $roles['moderator']['label'] = $this->s('AGENDA_MODERATOR'); | ||
- | $roles['moderator']['values'] = array( 'admin' => 'deny', | + | $roles['moderator']['values'] = array( 'admin' =>'deny', |
- | 'edit' => 'allow', | + | 'edit' =>'allow', |
- | 'delete' => 'deny' | + | 'delete'=>'deny' |
- | ); | + | ); |
$roles['administrator']['label'] = $this->s('AGENDA_ADMINISTRATOR'); | $roles['administrator']['label'] = $this->s('AGENDA_ADMINISTRATOR'); | ||
- | $roles['administrator']['values'] = array( 'admin' => 'allow', | + | $roles['administrator']['values'] = array( 'admin' =>'allow', |
- | 'edit' => 'allow', | + | 'edit' =>'allow', |
- | 'delete' => 'allow' | + | 'delete' => 'allow' |
- | ); | + | ); |
return $roles; | return $roles; | ||
} | } | ||
+ | |||
+ | \\ | ||
+ | Oltre alle funzioni che gestiscono i permessi, se il nuovo strumento fa parte della classe degli strumenti deliberativi - come ad esempio lo strumento di //consultazione certificata// -, è fondamentale inserire il metodo //toolinfo//, che restituisce un array con le informazioni sullo strumento: | ||
+ | \\ | ||
+ | * Es. TOOLINFO dello strumento Consultazione Certificata: | ||
+ | |||
+ | function toolInfo() { | ||
+ | |||
+ | $info['owner'] = 'Polls'; | ||
+ | $info['toolName'] = $this->s('POLLS_NAME'); | ||
+ | $info['toolDescription'] = $this->s('POLL_TOOL_DESCRIPTION'); | ||
+ | $info['createApiMethod'] = 'toolCreate'; | ||
+ | $info['editPath'] = '/polls/edit/%d'; | ||
+ | $info['viewPath'] = '/polls/view/%d'; | ||
+ | $info['accessPermission'] = 'view'; | ||
+ | |||
+ | $info['resultPath'] = '/polls/showresults/%d'; | ||
+ | $info['resultPermission'] = 'view_results'; | ||
+ | |||
+ | return $info; | ||
+ | } | ||
+ | \\ | ||
+ | Tutte queste funzioni sono gestite tramite gli [[gli eventi|eventi]] e riportate nei file XML all'interno delle api di ogni strumento. | ||
+ | |||
+ | ---- | ||
+ | \\ | ||
+ | |||
+ | All'interno del controller che gestisce il nuovo strumento, per utilizzare le API relative agli strumenti con i quali relazionarsi, basta richiamare le stesse attraverso la funzione "loadApi()". | ||
+ | Riportiamo qui di seguito l'esempio di come lo strumento 'Infodisc' richiama le API del modulo wikitool:\\ | ||
+ | |||
+ | [...] | ||
+ | $this->loadApi('Wikitool'); | ||
+ | $wiki=$this->WikitoolApi->getWikiFor('Infodisc',$id); | ||
+ | $this->set('wiki',$wiki ); | ||
+ | [...] | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
\\ | \\ | ||
+ | [[gli strumenti | indietro]] - [[il modello generale | avanti]] |