Stampa

Man Tecnico:CMS home page

Pagina esportata da MediaWiki e resa come HTML statico.

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 di 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 degli allegati (AllegatoHelper) per poter procedere con il caricamento ajax dei file.

Modello ER

cms_home_sezione

CampoTipoObbligatorioNote
IDIntSi(PK) Identificativo dell’allegato. Autoincrementale.
ordinamentoIntNoOrdine di visualizzazione in home page".
tipoCharNoTipologia della sezione.
testotextNoEventuale testo della sezione.
anno_iniziointNoAnno di inizio validità della sezione.
anno_fineintNoAnno di fine validità della sezione.

cms_home_sezione_allegato

CampoTipoObbligatorioNote
IDIntSi(PK) Identificativo dell’allegato. Autoincrementale.
ID_allegatoIntNoID del record corrispondente nella tabella "allegato"".
ID_sezioneIntNoID del record corrispondente nella tabella "cms_home_sezione"".
createdAtDatetimeNoData 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 static function getSezioneAnno(AnnoBudget $anno_budget) ::Restituisce un array contenente oggetti di tipo CmsHomeSezione rappresentanti le sezioni attive per l'anno passato come parametro :*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($array_row) ::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.