La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Content type, view e rules – Mario Baioli GLAD (gruppo di lavoro drupal Sapienza)

Presentazioni simili


Presentazione sul tema: "Content type, view e rules – Mario Baioli GLAD (gruppo di lavoro drupal Sapienza)"— Transcript della presentazione:

1 Content type, view e rules – Mario Baioli GLAD (gruppo di lavoro drupal Sapienza) Corso Drupal advanced

2 Applicazione che gestisce le richieste di assistenza 04/02/2014Content type, view e rules - Mario BaioliPagina 2 Archiviazione delle richieste Gestione della richiesta Richiesta di assistenza

3 Fase 1 creare un Tipo di contenuto Prima di questa operazione verificare se nella distribuzione sono presenti i moduli: 1.Automatic node titles (7.x-1.0) 2.Field permissions (7.x-1.0-beta2) Qualora questi due moduli non fossero presenti vanno installati. Ahimè! Non ci sono nel nostro Acquia Dev Desktop 04/02/2014Content type, view e rules - Mario BaioliPagina 3

4 Scaricare il modulo Automatic Nodetitles "auto_nodetitle" è un modulo piccolo ed efficiente che permette di nascondere il campo del node title del form. Si può prevenire che il nome del titolo del content resti vuoto configurandolo per generare il titolo in una forma stabilita. 04/02/2014Content type, view e rules - Mario BaioliPagina 4 Versione DownloadsData 7.x-1.0 giugno 2011

5 Scaricare il modulo Field Permissions The Field Permissions module allows site administrators to set field-level permissions to edit, view and create fields on any entity. Enable field permissions on any entity, not just nodes. Role-based field permissions allowing different viewing patterned based on what access the user has. Author-level permissions allow viewing and editing of fields based on who the entity owner is. Permissions for each field are not enabled by default. Instead, administrators can enable these permissions explicitly for the fields where this feature is needed. 04/02/2014Content type, view e rules - Mario BaioliPagina 5 Versione DownloadsData 7.x-1.0-beta2 gennaio 2012

6 Richiesta di assistenza Ad evitare inutile spam, è abilitato a fare richieste di assistenza tecnica esclusivamente il personale di ruolo di Sapienza. Può essere quindi opportuno legare questo modulo ai ruoli provenienti da LDAP Sapienza per abilitare automaticamente i ruoli del personale strutturato docente, tecnico amministrativo e bibliotecario. Conosciamo già i ruoli interessati: Prof. Ordinario, Prof. Associato, Ricercatore e assimilato, Tecnico-Amministrativo, Area Biblioteche. 04/02/2014Content type, view e rules - Mario BaioliPagina 6

7 Richiesta di assistenza: cosa vogliamo? Il nostro obbiettivo è far compilare una scheda di richiesta di assistenza quanto più precisa possibile da parte di soggetti ben identificati (LDAP Sapienza). Lamministratore risponderà alla richiesta ad ogni cambio di stato descrivendo lintervento effettuato. (rules) Lo stato della richiesta viene gestito dal ruolo amministrativo con views tramite raggruppamenti di pertinenza. 04/02/2014Content type, view e rules - Mario BaioliPagina 7

8 Creazione di un tipo di contenuto Dal menu Tipi di contenuto: aggiungere un nuovo tipo di contenuto assegnare un nome al tipo di contenuto: richiesta assistenza (il nome interno sarà richiesta_assistenza) descrizione: fornire eventuali dettagli utili allutente connesso selezionare: Automatically generate the title and hide the title field (modulo automatic node titles) Pattern for the title: richiesta-assistenza-del-[node:created:noore] 04/02/2014Content type, view e rules - Mario BaioliPagina 8

9 Content type Campi per lutente Sede Luogo Ambito Descrizione Campi per lamministratore Intervento Stato Data 04/02/2014Content type, view e rules - Mario BaioliPagina 9

10 Campo Sede - tassonomia Da Struttura: Tassonomia Aggiungere un vocabolario con nome: Sede Inserire alcune voci nel vocabolario. Es. edificio1, edificio2, edificio3, edificio4, ecc. Rientrare sul CT Richiesta_assistenza, [gestisci i campi] e seleziona come tipo di campo [riferimento termine] che ha come widget [elenco di selezione] Vocabolario: Sede Lasciare di default le altre voci salvare 04/02/2014Content type, view e rules - Mario BaioliPagina 10

11 Campo Luogo - testo Per il luogo decidiamo di lasciare un campo a testo libero di max 70 caratteri per indicare il luogo della richiesta di assistenza. Quindi per il campo Luogo inizializzare una variabile, selezionare il tipo di campo (testo) che ha come widget (campo di testo) 04/02/2014Content type, view e rules - Mario BaioliPagina 11

12 Campo Ambito – lista testuale Per la descrizione dellambito di intervento usiamo la lista testuale per soli fini didattici, potrebbe essere utilmente usata la tassonomia come abbiamo visto per la sede. Quindi per il campo Ambito inizializzare una variabile, selezionare il tipo di campo (lista testuale) scegliere come widget (elenco di selezione ) Salvare 04/02/2014Content type, view e rules - Mario BaioliPagina 12

13 Campo Ambito – lista testuale Drupal in automatico duplica letichetta, chi vuole può modificare letichetta che è una delle due voci, credo la seconda. audio|audio computer|computer lan|lan wifi|wifi videoproiettori|videoproiettori altro|altro 04/02/2014Content type, view e rules - Mario BaioliPagina 13

14 Campo Descrizione – testo long Per il campo Descrizione inizializzare una variabile con tipo [testo long] con widget [area di testo (righe multiple)] Ricordarsi che ogni volta che si crea un nuovo campo va salvato il CT. 04/02/2014Content type, view e rules - Mario BaioliPagina 14

15 Campo Intervento – testo long È uguale al campo descrizione, in seguito dovremo assegnare questo campo ad un ruolo specifico in quanto il richiedente potrà solo leggere il testo della descrizione dellintervento, ma non potrà modificarlo. 04/02/2014Content type, view e rules - Mario BaioliPagina 15

16 Campo data di chiusura - date Per il campo Data di chiusura inizializzare una variabile con tipo [date] con widget [Pop-up calendar] 04/02/2014Content type, view e rules - Mario BaioliPagina 16

17 Campo Stato – lista testuale Anche per il campo Stato della richiesta di assistenza usiamo una lista testuale: Aperta (default) In lavorazione Chiusa Quindi come per lambito inizializziamo una variabile di tipo [lista testuale] con widget [elenco di valori] ed inseriamo i tre valori: aperta|aperta in lavorazione|in lavorazione chiusa|chiusa 04/02/2014Content type, view e rules - Mario BaioliPagina 17

18 Un campo per contare le richieste: computed Potrebbe essere utile avere un codice univoco di riferimento, chissà se lo fa drupal per noi… Inizializziamo un campo di tipo [computed] con widget [computed] Nella pagina di gestione del campo inserire il seguente codice php if (!$entity_field){ $entity_field[0]['value'] ="ra-".substr(md5(time()), 3,5).substr(mt_rand(), 3,3); }else{ $entity_field[0]['value']=$entity_field[0]['value']; } Valorizzare il checkbox in fondo alla pagina: Index computed values in the database (Does not apply to text or longtext fields.) 04/02/2014Content type, view e rules - Mario BaioliPagina 18

19 Ora occorrerà fare qualche vista: views Dal menu [viste] creare una nuova vista Dopo aver inizializzato la vista con il nome selezionare il [contenuto] da mostrare del tipo [richiesta assistenza] ordinato in maniera decrescente, cioè vogliamo vedere per prime le richieste più vecchie, cioè che aspettano da un tempo maggiore… Vogliamo vedere i dati Display format sotto forma di tabella di campi, visualizzando 15 voci ed usando il paginatore. 04/02/2014Content type, view e rules - Mario BaioliPagina 19

20 Inserimento dei campi nella vista Ora occorre inserire i campi che vogliamo visualizzare: Contenuto: Sede (Sede) Contenuto: Luogo (Luogo) Contenuto: Ambito (Ambito) Contenuto: Descrizione (Descrizione) Contenuto: Intervento (Intervento) Contenuto: data di chisura (data di chisura) Contenuto: Data di inserimento (Data di inserimento) Contenuto: n richiesta (n richiesta) Contenuto: Stato (Stato) 04/02/2014Content type, view e rules - Mario BaioliPagina 20

21 Criteri di filtro nella vista FILTER CRITERIA Contenuto: Pubblicato (Si) Contenuto: Tipo (= richiesta assistenza) Aggiungere: Expose this filter to visitors, to allow them to change it Contenuto: Stato (esposto) Contenuto: Ambito (esposto) 04/02/2014Content type, view e rules - Mario BaioliPagina 21

22 Qualche altro settaggio: tagliamo la lunghezza di un campo Vogliamo leggere dalla vista dal campo descrizione del problema, ma sappiamo che è molto lungo quindi va troncato… REWRITE RESULTS Taglia questo campo alla lunghezza massima: 15 Aggiungi un ellisse, se selezionato saranno aggiunti "..." nel caso in cui il campo venga tagliato. 04/02/2014Content type, view e rules - Mario BaioliPagina 22

23 Chi è lautore? Ci occorre conoscere lautore del contenuto. Dalla terza colonna: AvanzateAvanzate RELAZIONI inserire lautore del contenuto e poi aggiungere il campo autore dove sono legati insieme: spuntare collega questo campo al suo utente 04/02/2014Content type, view e rules - Mario BaioliPagina 23

24 Riordinare i campi con drag & drop Contenuto: n richiesta n richiesta (autore) Utente: Nome Segnalato da: Contenuto: Titolo Titolo Contenuto: Sede Sede Contenuto: Luogo Luogo Contenuto: Ambito Ambito Contenuto: Descrizione Descrizione Contenuto: Intervento Intervento Contenuto: Data di inserimento Data di inserimento Contenuto: data di chisura data di chisura Contenuto: Stato Stato Ora occorre aggiungere il pulsante modifica per poter editare il contenuto, quindi aggiungere il link: Contenuto: Link modifica Provide a simple link to edit the content. 04/02/2014Content type, view e rules - Mario BaioliPagina 24

25 E la prima vista è fatta … La vista per la gestione delle richieste da parte dellamministratore è pronta, ora occorre predisporre una vista di dettaglio per il richiedente. Cosa facciamo ricominciamo daccapo? Ci viene incontro la funzione clona direttamente dal menu viste 04/02/2014Content type, view e rules - Mario BaioliPagina 25

26 Vista di dettaglio per il richiedente Il nostro obbiettivo è di far apparire questa vista solo se lautore coincide con lutente loggato. In cima alla terza colonna della vista ci sono le funzioni Avanzate e tra queste i CONTEXTUAL FILTERS Avanzate Aggiungiamo : Author uid Poi dobbiamo specificare: WHEN THE FILTER VALUE IS NOT IN THE URL Selezionare: Provide default value Quindi scegliere dal menu a tendina ID Utente degli utenti autenticati 04/02/2014Content type, view e rules - Mario BaioliPagina 26

27 Vista di dettaglio per il richiedente A questo punto poiché abbiamo selezionato una opzione default nel valore filtro (WHEN THE FILTER VALUE IS IN THE URL OR A DEFAULT IS PROVIDED) Specificare un criterio di validazione e dal menu a tendina validatore selezionare Utente cioè il campo che ci serve agganciare. Type of user filter value to allow: spuntare il radiobutton: Only allow numeric UIDs Restrict user based on role: Spuntiamo i ruoli interessati a vedere la vista di dettaglio: il personale tecnico e se vogliamo abilitarli gli altri ruoli del personale strutturato. 04/02/2014Content type, view e rules - Mario BaioliPagina 27

28 E adesso rules Il modulo rules permette agli amministratori del sito di definire lesecuzione di azioni basate sullavverarsi di una condizione o di un evento. Dopo aver scaricato il modulo abilitarlo e salvare la configurazione. 04/02/2014Content type, view e rules - Mario BaioliPagina 28 Versione DownloadsData 7.x-2.3 marzo 2013

29 Inviare di notifica allautore e administrator Creiamo una azione con rules e la chiamiamo: NotificaNuovaRichiestaAssistenza Levento è il salvataggio di un nuovo contenuto Condizione: selezionare il tipo di contenuto dal menu data selector: node Tipi di contenuto: Valore (selezionare il CT) richiesta assistenza 04/02/2014Content type, view e rules - Mario BaioliPagina 29

30 azioni Azione sending an A: node:author:mail Oggetto: Notifica Apertura Richiesta Assistenza From: non rispondere 04/02/2014Content type, view e rules - Mario BaioliPagina 30

31 messaggio uid); ?> Gentile mail;?> abbiamo correttamente ricevuto in data [node:created] la tua segnalazione. Di seguito rimettiamo il riepilogo dei dati inseriti: Sede: [node:field-ra-sede] Luogo: [node:field-ra-luogo] Ambito: [node:field-ra-ambito] Descrizione: [node:field-ra-descrizione] E' possibile controllare lo stato della lavorazione della tua segnalazione tra le proprie segnalazioni all'indirizzo: /assistenza/richieste/dettaglio Quando la tua segnalazione sarà evasa riceverai una notifica via mail. N.B. Non rispondere a questo messaggio. Questa notifica è stata generata da un indirizzo di servizio che non è in grado di ricevere messaggi. Saluti, Lo staff 04/02/2014Content type, view e rules - Mario BaioliPagina 31

32 Inviare notifica del cambio di stato al richiedente nuovo rules: NotificaModificaRichiestaAssistenza Evento: After updating existing content Come per il rules precedente, Condizione: selezionare il tipo di contenuto dal menu data selector: node Tipi di contenuto: Valore (selezionare il CT) richiesta assistenza 04/02/2014Content type, view e rules - Mario BaioliPagina 32

33 A: [node:author:mail] Oggetto: Modifica Richiesta Assistenza Messaggio: Gentile [node:author], in data [node:changed] è stata modificata la richiesta di assistenza da te segnalata il [node:created]. Di seguito un riepilogo della segnalazione: Stato:[node:field_ra_stato] Sede: [node:field_ra_sede] Luogo: [node:field_ra_luogo] Ambito: [node:field_ra_ambito] Descrizione: [node:field_ra_descrizione] //…..continua…. 04/02/2014Content type, view e rules - Mario BaioliPagina 33

34 ancora dal messaggio field_ra_data_chiusura['und']['0']['value'])){ echo "Data Chiusura: ".$node->field_ra_data_chiusura['und']['0']['value']; } ?> field_ra_intervento['und']['0']['value'])){ echo "Intervento:"; } ?> field_ra_intervento['und']['0']['value'])){ print $node->field_ra_intervento['und']['0']['value']; } ?> Saluti, Lo Staff del CeSMA 04/02/2014Content type, view e rules - Mario BaioliPagina 34

35 04/02/2014Content type, view e rules - Mario BaioliPagina 35


Scaricare ppt "Content type, view e rules – Mario Baioli GLAD (gruppo di lavoro drupal Sapienza)"

Presentazioni simili


Annunci Google