Man Tecnico:CMS home page

From CDG Wiki
Jump to navigation Jump to search

Analisi dei requisiti

Si vuole gestire l'home page dell'applicativo in modo dinamico, con la possibilità per gli amministratori di inserire testi formattati e allegati. Si intende comunque mantenere semplicità nella gestione e coerenza con lo stile grafico dell'applicativo. Risulta necessario poter gestire i contenuti in maniera storicizzata per gli anni dio budget tramite una validità temporale per gli stessi. Si potrà decidere se un contenuto sarà presente per tutti gli anni di budget o solamente per uno o più anni, l'home page visualizzerà solamente i contenuti validi per l'anno selezionato.

Descrizione delle funzionalità

Le funzionalià identificate in fase di analisi verranno garantite da un'apposita sezione rappresentata da un tab nella pagina di configurazione del core. In questa sarà presente una grid con l'elenco di sezioni che compongono l'home page ed i relativi anni di validità. Inserendo una nuova sezione se ne potranno definire l'ordinamento in home page, la tipologia e gli anni di validità mentre modificandola se ne potrà definire il testo oppure allegare un file (ogni sezione può contenere un solo file), dipendentemente dalla tipologia della stessa.

Scelte implementative

Per l'implementazione delle funzionalità individuate vengono utilizzati i componenti standard del framework ffGrid ed ffRecord, e utilizzata la classe Helper per gli allegati per poter procedere con il caricamento ajax dei file.

Modello ER

cms_home_sezione

Campo Tipo Obbligatorio Note
ID Int Si (PK) Identificativo dell’allegato. Autoincrementale.
ordinamento Int No Ordine di visualizzazione in home page".
tipo Char No Tipologia della sezione.
testo text No Eventuale testo della sezione.
anno_inizio int No Anno di inizio validità della sezione.
anno_fine int No Anno di fine validità della sezione.

cms_home_sezione_allegato

Campo Tipo Obbligatorio Note
ID Int Si (PK) Identificativo dell’allegato. Autoincrementale.
ID_allegato Int No ID del record corrispondente nella tabella "allegato"".
ID_sezione Int No ID del record corrispondente nella tabella "cms_home_sezione"".
createdAt Datetime No Data e ora di creazione.

Modello Classi

class CmsHomeSezione extends Entity

Rappresenta una sezione nell'home page.

  • Attributi
  • protected static $tablename = "cms_home_sezione";
  • Metodi
  • public function isAllegato()
Valorizza ad "A" l'attributo "tipo" dell'istanza.
  • public function getTipoDescrizione()
Restituisce "ALLEGATO" o "HTML" dipendentemente dalla tipologia della sezione istanziata.
  • public function getTipoField($cm, $anno, $user)
Restituisce un ffField valorizzato opportunamente in base alla tipologia della sezione istanziata. Riceve l'oggetto cm, l'anno di bdget e l'utente come parametro.
  • public static function isValidRangeAnno($anno_introduzione, $anno_termine)
Restituisce true o false a seconda che gli anni di introduzione e termine passati come parametro costituiscano un intervallo temporale valido.
  • public function delete()
Vengono eliminati tutti i file allegati alla sezione istanziata, sia lato db che fisicamente su disco.

class CmsHomeSezioneAllegato extends Allegato

Rappresenta un allegato alla sezione in home page.

  • Attributi
  • public static $bridge_table_name = "cms_home_sezione_allegato";
  • Metodi
  • public static function getAll($filters = array())
Viene restituito un array di istanze della classe, corrispondenti a tutti i record della tabella "cms_home_sezione_allegato" in join con la tabella "allegato". Il parametro $filters è un array di array associativi "campo_db"=>valore che permette di limitare i risultati ai soli elementi corrispondenti alle condizioni impostate nel parametro che vengono applicati alla query di recupero dei dati.
  • public function save()
Inserimento / aggiornamento del record della tabella "allegato" del DB corrispondente all'oggetto.
  • public function hardDelete()
Eliminazione fisica del record della tabella "cms_home_sezione" sul DB corrispondente all'istanza ed eliminazione fisica su disco.