Come passare dalla PRIMA NAZIONALE a CANDIDATO MAESTRO in 24 ORE risolvendo il problema della PAGINAZIONE in CODEIGNITER FRAMEWORK!

Scacco e poi Matto!

Come passare dalla PRIMA NAZIONALE a CANDIDATO MAESTRO in 24 ORE risolvendo il problema della PAGINAZIONE in CODEIGNITER FRAMEWORK!

Novembre 5, 2020 codeigniter 0
web design umbria

web designer umbriaSempre rimanendo in tema di agonismo scacchistico, non capita spesso di fare quattro su quattro nei tornei, di vincere per quattro volte consecutive (su 25 turni complessivi a simboleggiare i giorni ne ho perse diverse di battaglie ma l’importante é vincere la guerra e ottenere un RISULTATO DEFINITIVO) ma stavolta è andato davvero tutto bene: sono riuscito a conquistarmi sul campo la meritata categoria CM (con ingresso punteggio elo 1900) con la pratica quotidiana e dovendo spulciare decine e decine di siti in rete per cercare la risposta a molte domande legittime quando il NEWBIE non conosce la tecnologia (parliamo sempre di Codeigniter Framework). Strano perchè solo ieri mattina ero stato promosso a prima nazionale, per avere ragguagli sulle categorie degli scacchi e all’ avventura consultare ultimo articolo presente in https://www.umbriaway.eu. Dopo aver risolto dal 12 Ottobre problemi vari e assortiti tra cui lo studio del modello MVC, la frammentazione delle pagine, l’ottimizzazione del database, l’ottimizzazione di query complesse usando INNER JOIN, il recupero dei dati in GET, la pubblicazione reale su un server di produzione, la risoluzione del motore di ricerca sulla parte di funzionamento base, l’implementazione di sistemi di sicurezza sullo stesso motore rimaneva un ultimo scoglio da superare prima di essere promosso CM: dopo il famoso film cult la venticinquesima ora possiamo concludere questo primo ciclo di studio su Codeigniter con il venticinquesimo giorno. Risultato per me strabiliante, con tre domande postate in vari forum di cui una completamente ignorata e due che hanno prodotto un risultato e con una certa difficoltà a interpretare geroglifici non sempre intelleggibili. Posso considerare i giorni 2,3,4,5 assolutamente MAGICI perchè diciamocelo vedere qualcosa che funziona in maniera quasi perfetta (non ho inserito ROUTES perchè lo considero ancora un argomento ostico adatto a categorie magistrali, quindi argomento idoneo da approfondire per una successiva sessione di lavoro così come tutto il resto costituito da SESSIONI e DASHBOARD da implementare con sistemi di LOGIN) produce autostima, soprattutto perché se scavi e scavi alla fine qualcosa puoi migliorare anche sul profilo web developer (per correttezza un web master, nel senso che come spiegato in altre circostanze so tutto di tutto per non sapere nulla di niente, perché conoscere una sola tecnologia è molto dispendioso in termini di tempo e di impegno e servono molti mesi di esperienza su progetti reali!). Detto questo parliamo di PAGINAZIONE uno spauracchio mica da poco! Si intuisce che quando hai un DATABASE hai anche un numero di record totale da conteggiare se vuoi spezzare le pagine in modo da risolvere il problema dello SCROLL, si intuisce che un altro attore deve per forza chiamarsi NUMERO PER PAGINA oltre a CONTEGGIO TOTALE visto prima e che se ho cento record da dividere in dieci pagine per visualizzare dieci record cadauna inserirò una variabile di dieci da settare nella variabile di configurazione singola pagina perché dividendo conteggio totale per numero di pagina ottengo il numero di record frammentati corrispondente. Detto così sembra che andrà tutto bene ma mi ero già incagliato e litigato su questo problema. Per fortuna che dopo essermi acculturato ho scoperto l’esistenza della CLASSE PAGINAZIONE messa a disposizione da Codeigniter Framework che viene richiamata o nella funzione COSTRUTTORE del controller o nel file famoso AUTOLOAD.PHP presente dentro la cartella CONFIG sotto la voce libreria:

$this->load->library(“pagination”);

Uno scacchista non può che adorare questo modo di esprimersi perché il simbolo freccia negli scacchi sta a significare nei commenti alle partite con ATTACCO e ditemi voi dove stilisticamente con poche lettere di cui sopra si può ottenere un risultato a dir poco stupefacente? Con attacco in codeigniter sta a significare: “visto che con due sole frecce ti metto a disposizione un set di strumenti formidabili?”. Se non hai un gatto allora devi amare Codeigniter! Vediamo quindi come ho concluso in bellezza la settimana dopo che il giorno due ho messo un piede nei server di produzione, il giorno tre risolto il problema form statico e il giorno 4 novembre 2020 implementato misure di sicurezza sullo stesso form e naturalmente con la fine della guerra rappresentata dalla poderosa vittoria vs codeigner a livello base per Newbie sulla paginazione del giorno 5!

bisogna lavorare sulla query di ingresso della index quindi, visto che tutto l’applicativo costruisce filtri parziali e il problema della pagina che diventa un lenzuolo lo si ritrova solo in prima pagina. Ma avendo la fortuna di anticipare l’effetto che fa in localhost lo sviluppatore può prima provare in locale le sue creazioni e poi se funzionano traslarle in produzione. Grazie a questa situazione ho potuto constatare che con una inner join complessa in prima pagina il meccanismo d paginazione non arriva diritto allo scopo e a conti fatto questo desiderio di ottimizzazione del DB che così elimina dati in eccesso non è poi stato un gran guadagno, dal momento che i record sono pochi e che comunque l’unione di tre tabelle gratis lo sforzo non é lineare. Per testare dal vivo il meccanismo abbiamo messo su http://umbriawayformazione.altervista.org/index.php/home/pagination e http://umbriawayformazione.altervista.org/index.php/home/planner che sono un ottimo punto di partenza per perfezionare alcune magagne come per esempio la stilizzazione della barra di scorrimento costituita da UL e LI canonici mentre per i progetti successivi vista l’esperienza accumulata non è il caso di intestardirsi a fare del lavoro in pià inutile quando hai una tabellina che non supera i cento record. Lo script usato per il progetto nel CONTROLLER è recuperabile all’ indirizzo https://stackoverflow.com/questions/28788506/add-this-css-to-codeigniter-pagination, mentre indicazioni e risposte utili sono come al solito presenti nella bibbia base http://codeigniter.com/user_guide/libraries/pagination.html