PROGETTO CALENDARIO EVENTI WRESTLING
Lista complete degli hack / customizzazioni effettuate al componente Joomla "JEvents"
WrestlingRevolution.it - Link del prodotto finito
FUNZIONI GENERALI (Vista annuale/mensile/settimanale/giornaliera/categoria)
- Tramutato il campo "Informazioni extra" (un campo che permetteva di inserire ulteriori dettagli su un evento) in un campo "Immagine Evento" che viene poi richiamata all'interno di un tag html "img", permettendo così di assegnare a un evento un Logo. Esatto, la possibilità di inserire un logo (che a cose fatte sembra l'ABC) inizialmente non era nemmeno contemplata!
- Tramutato il campo "Contatti" in un campo che funge da "Dettagli messa in onda/reperibilità dell'evento"
- Rivisti completamente i Layout di tutte le viste (che in origine erano a dir poco obrobriosi) per stile grafico, font, colori, spaziature, etc. - Immagini prima/dopo più sotto.
- Aggiunte le frecce di navigazione che portano all'anno/mese/settimana/giorno precedente/successivo, e le "doppie frecce di navigazione" che portano ad esempio allo stesso mese dell'anno precedente/successivo o allo stesso giorno del mese precedente/successivo. Le frecce di navigazione erano presente solo in un layout alternativo e il codice è stato portato e riadattato manualmente nel nostro.
- Aggiunta la funzione "Salta al mese" che permette di saltare a un mese/anno a scelta. Come per le "frecce di navigazione", il codice per questa funzione è stato portato e riadattato manualmente da un layout alternativo, che era strutturato in maniera completamente diversa quindi è stato un casino. Inoltre migliorata manualmente la funzione di modo che permetta di saltare solo tra l'intervallo di anni visibili nel calendario (nel nostro caso attualmente 2014-2016), così anche da non far visualizzare i link degli altri anni ai motori di ricerca, e di modo che saltando a un certo mese si rimanga nella visualizzazione corrente (mensile/settimanale/giornaliera), mentre prima portava automaticamente in ogni caso a quella mensile.
- Aggiunta la funzione "Immagine Categoria" (funzione che è presente solo nella versione per Joomla 2.5 e successive del componente) andando a prendere i codici nei vari file della versione 2.5 e portandoli manualmente nei nostri, oltre ad inserire una nuovo campo nel database che permettesse di inserirla e salvarla.
- Modificato il formato della data utilizzato in tutte le viste di modo che sia per esteso "Giorno XX Mese YYYY" (ad esempio "Lunedì 25 Maggio 2015")
- Fatto in modo che in tutte le visualizzazioni (annuale/mensile/settimanale/per categoria) sia possibile cliccare sulla data per visualizzare tutti gli eventi di quel giorno. Prima le date erano incoerentemente cliccabili in alcune visualizzazioni e in altre no...
MIGLIORAMENTI FILTRO CATEGORIA
- Aggiunta la possibilità di filtrare gli eventi per categoria anche nella vista mensile e annuale.
In un secondo momento ho poi ulteriormente migliorato la funzione di modo che filtrando non si perdano i parametri della data dunque rimanendo nello stesso mese che si sta visualizzando (nella mia prima implementazione tornava sempre al mese corrente appena si faceva il filtro).
- Fatto in modo che il filtro per categoria venga resettato quando si passa in visualizzazione settimanale o giornaliera, perchè se si clicca su un giorno si vuole vedere la lista di tutti gli eventi di quel giorno, senza filtro per categoria
- Modificato il comportamento del menu a tendina del filtro di modo che mostri le sottocategorie "indentate" sotto la categoria madre, mentre prima ripeteva anche il nome di tutte le categorie madri in tutte le voci (esempio: un lunghissimo e obrobrioso "WWE: World Wrestling Entertainment -> WWE NXT -> WWE NXT Specials" scritto tutto su una riga)
- Customizzato lo stile del menu a tendina del filtro per categoria (che prima era bianco e default)
VISTA MENSILE
- Interamente rifatto il layout del calendario mensile, per stile, grafica e colori. Ho preso ispirazione al calendario della modalità WWE Universe di WWE 2K14 per la grafica delle celle. Inoltre le celle vengono evidenziate in rosso al passaggio del mouse, dando un senso di interattività.
- Riscritto completamente il comportamento delle "celle" giorno della vista mensile del calendario. Era programmata per mostrare semplicemente il Titolo (tra l'altro pure mozzato se eccedeva la grandezza della celletta) di un tot. di eventi uno sotto l'altro con uno sfondo del relativo colore dell'evento, e di mostrare solo un link con una icona orripilante a forma di "X" per i restanti eventi oltre a un certo limite. Ho riscritto praticamente tutto il codice di modo che:
- Se un giorno contiene solo 1 evento, mostra il logo dell'evento cliccabile
- Se un giorno contiene più di 1 evento, mostra i loghi degli eventi in alternanza
- Impostato il massimo di eventi mostrabili qui a 3, se ci sono 4 eventi in un giorno il quarto per importanza non viene visualizzato nella vista mensile (UPDATE: aumentato il limite 4 dopo l'aggiunta della ROH al mercoledì!)
- Riscritto da zero il codice delle celle del calendario mensile (tutte quelle che seguono sono state operazioni più difficili di quanto sembrino), e perfezionato man mano nel tempo, di modo che:
- I loghi siano centrati orizzontalmente e verticalmente
- I loghi "sforino" leggermente la cella venendo tagliati ai lati, di modo da poter metterli un pò più grandi rispetto a doverli fare stare dentro la cella
- Passando sopra ad un logo con il mouse (quindi selezionandolo), esso si ingrandisca ulteriormente mostrandosi interamente ed uscendo dai margini della cella, oltre a far apparire sotto al logo un bordo del colore dell'evento
- In caso di eventi multipli in un giorno gli eventi si alternino "dissolvendosi" uno dentro l'altro e l'alternanza si fermi al passaggio del mouse (con script jQuery)
- Il logo del giorno corrente (oggi) sia automaticamente ingrandito e visualizzato interamente. Inoltre la cella del giorno corrente (oggi) è contornata di rosso.
- Sia possibile possibile accedere alla visualizzazione giornaliera cliccando sul numerino del giorno, oppure cliccando sull'intera cella di un giorno vuoto (che può essere vuoto anche per via di un filtro ma che non necessariamente non contiene eventi)
- Il numerino del giorno sia sempre in primo piano davanti al logo
- Layout Prima/Dopo:

VISTA ANNUALE
- Modificata la vista annuale di modo che suddivida gli eventi per giorno e che mostri il giorno dell'evento. Sembra basilare ma non lo è, inizialmente la vista annuale era programmata per mostrare gli eventi solo suddivisi per mese senza specificare le date esatte! Inoltre è stato anche difficile capire come fare per fargli raggruppare insieme gli eventi dello stesso giorno sotto la stessa intestazione della data, portando il codice dalle altre visualizzioni che avevano già questa funzionalità.
- Creata funzione che permettesse di generare i link di anno successivo/precedente per la vista annuale, cosa che per qualche motivo non esisteva a differenza delle altre visualizzazioni
- Interamente rifatto il Layout:

VISTA PER CATEGORIA
- Richiamata l'Immagine Categoria (funzione portata dalla versione 2.5 come detto sopra) come banner in cima a ogni categoria nella vista per categoria. Analogalmente a "Immagine Evento", il campo viene richiamato all'interno di un tag html "img". Inoltre, impostato che se non è presente un'immagine per una certa categoria, viene mostrato il titolo.
- Interamente rifatto il Layout:

CERCA
- Modificata la funzione Cerca Eventi di modo che permetta di cercare un evento anche per location e per "dettagli messa in onda", mentre prima era possibile cercare solo per titolo dell'evento o descrizione.
- Aggiunto il modulo di ricerca anche sotto alla vista mensile e sotto alla vista dettaglio evento, oltre che nella pagina a sé stante.
- Sistemato il layout del modulo in caso non ci siano risultati di ricerca.
- Fixato un bug nel plugin Cerca Eventi che mostrava le eccezioni degli eventi ripetuti (come ad esempio Raw Old School, Raw Slammy Awards etc. per le puntate di Raw) tutte con le date della prossima edizione dell'evento, anzichè con le date effettive delle eccezioni. Ho scoperto che il bug era fixato nella versione per Joomla 2.5, dalla quale ho preso dunque il relativo codice e l'ho portato e sostituito nella nostra.
- Interamente rifatto il Layout:

GESTIONE URL
- Inserito prefisso "/eventi-wrestling/"
- Modificati i prefissi degli URL delle varie visualizzazioni:
- "eventsbyyear" -> "calendario-annuale"
- "monthcalendar" -> "calendario-mensile"
- "eventsbyweek" -> "calendario-settimanale"
- "eventsbyday" -> "giorno"
- "eventsbycategory" -> "categorie"
- "search_form" -> "cerca"
- "search_results" -> "cerca-evento"
-
Impedito che i parametri giorno/mese/anno dell'URL vengano convertiti in URL SEF, facendoli dunque con parametri normali dell'URL (esempio: "?year=2015&month=05&day=25").
- Questo ha evitato che venissero generati migliaia e migliaia di URL "SEF" (tra virgolette perchè non diventavano altro che "/2015/05/25/", non aveva un granchè senso in ogni caso) diversi per ogni singolo giorno/settimana/mese/anno che sarebbero stati completamenti inutili ed uno spreco di spazio.
- Inoltre in questo modo l'utente può saltare alla data desiderata anche semplicemente modificando i parametri nell'URL stesso (per esempio cambiando "&month=05" in "&month=08"), cosa che non sarebbe stata sempre possibile se questi parametri fossero stati convertiti in SEF, perchè i link non avrebbero funzionato se non prima generati.
- Cosa ancora migliore, questo ha permesso di avere dei link "universali" che mostreranno SEMPRE il momento corrente per ogni vista, ad esempio il link "/calendario-settimanale/" senza parametri mostrerà SEMPRE la settimana attuale aggiornandosi di settimana in settimana, così come ad esempio il link "/giorno/" senza parametri mostrerà SEMPRE il giorno di oggi aggiornandosi in tempo reale. Stessa cosa ovviamente per mese ed anno.
- Create nuove funzioni che permettessero di mostrare nell'URL della vista annuale solo il parametro "?year=", e nell'URL della vista mensile solo i parametri "?year=&month=", mentre prima comparivano tutti i parametri (?year=&month=&day=) negli URL in queste visualizzazioni, cosa che non serviva e non aveva senso. Inoltre
- Interamente customizzato il modo in cui gli URL SEF della Vista Dettaglio Evento vengono generati, passando da "eventdetail/ID_evento/ID_categoria/nome-evento" (esempio: "eventdetail/164/151/wwe-raw") a semplicemente "nome-evento" (esempio: "wwe-raw"). Questo in modo da avere un solo URL e una sola pagina dedicata all'evento WWE Raw per esempio, anzichè una pagina diversa per ogni singolo episodio di ogni singolo evento, cosa che sarebbe stata ingestibile, oltre che a generare anche in questo caso centinaia e centinaia di inutili URL SEF con contenuto identico e duplicato che avrebbero solo confuso i motori di ricerca uccidendo completamente l'indicizzazione.
- Impedito che gli URL delle pagine di modifica/cancellazione/gestione eventi (da parte degli amministratori) vengano convertiti in URL SEF. Anche qui stesso discorso... per ogni singola operazione di moderazione possibile per ogni singolo evento si sarebbero creati centinaia e centinaia di URL SEF, completamente inutili che non sarebbero stati altro che uno spreco di spazio.
- Rimossa la possibilità per l'utente di selezionare il numero di elementi da visualizzare per pagina nella visualizzazione annuale/per categoria. E' un pò superflua, ma l'avrei anche lasciata se avessi trovato un modo di impedire agli URL della paginazione di venire convertiti in SEF (con dunque il numero di elementi che sarebbe rimasto un parametro dell'URL) ma purtroppo non è stato possibile, quindi l'ho rimossa perchè con gli URL SEF non avrebbe funzionato correttamente.
- Ripuliti da parametri superflui gli URL che vengono generati dal filtro per categoria e dai risultati di ricerca, di modo da avere appunto link più puliti e semplici con solo i parametri essenziali (ad esempio entrambe le visualizzazioni presentavano anno, mese e giorno nei parametri, quando in questo caso non servono a niente)
- Fatto in modo che i link che portano alle altre visualizzazioni a partire della Vista Dettaglio Evento siano sempre riferiti alla data odierna
- Fatto diversi altri perfezionamenti per evitare duplicati con gli URL SEF generati per gli eventi:
- Impedito il generamento di un URL diverso se lo stesso evento viene visto da una voce di menu diversa
- Impedito il generamento di un URL diverso se lo stesso evento viene visto con il filtro categoria attivo
- Impedito il generamento di un URL diverso se lo stesso evento viene visto dal modulo laterale "Prossimi Eventi"
- Fatte ulteriori rifinimenti ai link direttamente tramite database
SEO (OTTIMIZZAZIONE PER MOTORI DI RICERCA)
- Customizzato il comportamento del meta tag "robots" (il meta tag che determina quali pagine i motori di ricerca debbano indicizzare) nella maniera più ideale. Il componente offriva tre opzioni: "indicizza tutto", "non indicizzare niente", "indicizza solo le pagine degli eventi", e nessuna di queste opzioni andava bene, quindi ho dovuto andare a modificare
il codice a monte di modo che:
- Indicizzi tutte le pagine degli eventi
- Indicizzi tutti i mesi della visualizzazione mensile
- Indicizzi tutti gli anni della visualizzazione annuale
- Indicizzi tutte le categorie
- NON indicizzi le settimane (sarebbero state troppe e superflue), ma soltanto la pagina della settimana odierna ("/calendario-settimanale/")
- NON indicizzi i giorni (manco a dirlo, un'enormità di URL inutili e ridondanti per i motori di ricerca), ma soltanto la pagina del giorno odierno ("/giorno/")
- Creato codice che genera Meta Title e Description per tutte le visualizzazioni. Prima non c'era niente di tutto questo e il componente mostrava come Page Title (il titolo visualizzato in alto nella finestra browser e nelle ricerche sui motori) di OGNI PAGINA solamente il nome del calendario, quindi in questo caso "Calendario Eventi Wrestling", fine. In tutte le pagine, comprese quelle degli eventi, il titolo era solo "Calendario Eventi Wrestling". Inutile, anzi deleterio, per i motori di ricerca... Ora invece (i dati indicati sono ovviamente esempi) vengono così generati:
- Vista annuale: Calendario Eventi Wrestling - Anno: 2015
- Vista mensile: Calendario Eventi Wrestling - Maggio 2015
- Vista settimanale: Calendario Eventi Wrestling - 25 Maggio 2015 - 31 Maggio 2015
- Vista giornaliera: Calendario Eventi Wrestling - Venerdì 29 Maggio 2015
- Vista per categoria: Categoria: WWE Monday Night Raw - Calendario Eventi Wrestling
- Vista Dettaglio Evento: WWE Royal Rumble - Calendario Eventi Wrestling
- Cerca: Cerca Evento - Calendario Eventi Wrestling
- Risultati Ricerca: Cerca evento: Summerslam - Calendario Eventi Wrestling
- Personalizzate inoltre allo stesso modo anche le Meta Description di tutte le visualizzazioni ed i restanti Meta Title delle speciali visualizzazioni linkate a menu
- Implementati i Rich Snippets di Google nei layout della lista eventi nella vista annuale/settimanale/giornaliera/categoria e nelle pagine stesse degli eventi. Cosa sono? Sono dei codici particolari che aggiunti al layout permettono a Google di capire che tipo di dati queste pagine contengono, nel nostro caso Eventi, indicandogli quale parte del codice contiene il titolo di un evento, quale contiene la data, quale contiene la location, e così via... Motivo? Far saltare fuori nei risultati di ricerca cose fighe tipo questa:

o questa:

- Infine, migliorata drasticamente anche la funzione "Cerca" del sito, di modo che abbia URL migliori ma soprattutto mostri la parola chiave che è stata ricercata sia nel Page Title, che come intestazione H1 in cima alla pagina, modifiche atte a far indicizzare dai motori di ricerca anche i risultati di ricerca del nostro sito (mentre prima il Page Title della funzione era semplicemente sempre e soltanto "Risultati ricerca", senza altro), che nel progetto calendario sono entrati in gioco per linkare una lista ad esempio di tutti i report o tutti i coverage di un determinato PPV nella rispettiva pagina dettaglio evento, come ad esempio: http://www.wrestlingrevolution.it/ricerca/ordine-crescente?searchphrase=exact&searchword=PPV+Coverage+-+WWE+SummerSlam
ALTRE MODIFICHE
- Riviste e migliorate le traduzioni in italiano di tutte le stringhe di testo, sia quelle pubbliche sia quelle del pannello di amministrazione
- Aggiunti i pulsanti Social per condividere ogni pagina su Facebook/Twitter
- Impostato e customizzato il layout del modulo "Prossimi Eventi" della colonna laterale
- Aggiunto in cima alla "Vista Dettaglio Evento" (le pagine dei singoli eventi) un link che rimanda alla categoria di appartenenza dell'evento, per accedere direttamente alla vista categoria con lista degli episodi/eventi della stesso tipo
- Rimossi alcuni elementi:
- La legenda delle categorie che veniva mostrata in fondo alla vista mensile (non più necessaria)
- Un filtro aggiuntivo presente a fondo pagina solo per gli amministratori (non più necessario)
- L'opzione "Inoltra via mail" e l'opzione "Stampa" (chi le usa nel 2015? Inoltre il layout di stampa sarebbe stato da ricustomizzare da zero perchè di default era orribile come gli altri
AMMINISTRAZIONE
- Customizzata e migliorata la visualizzazione degli eventi nell'amministrazione del sito (lo so, lo so... mio sfizio personale), con l'aggiunta della colonna dei loghi degli eventi, oltre ad aver dato una sistemata generale al layout e ad aver modificato e riordinato le colonne visualizzate.

- Customizzata e migliorata anche la pagina di modifica degli eventi (sempre per gli amministratori)
WrestlingRevolution.it