Airtable & Cloudinary II
Bentornati,
pronti per il codice? Tutta la parte di impostazione dei vari parametri e dei dati l'abbiamo vista nel tutorial precedente 👉 QUI , quindi se non lo hai fatto recupera tutte le informazioni prima di iniziare.
Come anticipato vedremo due metodi uno con clock più semplice e uno con dizionario leggermente più complesso ma solo perché presuppone la conoscenza almeno di base di questo componente.
1. CLOCK
Cosa ci servirà 😅 vediamo i componenti da aggiungere
- 1 clock , non spuntiamo le varie proprietà ed impostiamo su 150 il timer interval
- 1 button , oppure due se avete bisogno anche di pulire i campi ricavati
- 1 listview image and text , dove visualizzeremo i dati
- 1 spreadsheet , il nostro database
Passiamo al codice vero e proprio , uno dei possibili, partiamo con creare una variabile che chiameremo ID e ci dirà quale riga richiamare di volta in volta, e la inizializziamo a zero.
When button 1 click (quando premiamo il pulsante) è molto semplice e andrà ad attivare il clock portandolo nella posizione enabled true, quindi ogni 150 millisecondi farà qualcosa e lo andremo a vedere nel blocco specifico del clock.
When clock1 Timer al suo interno ha un controllo sulla variabile ID e nello specifico se è minore di 3, questa condizione è strettamente legata alla tabella dell'esempio visto che ha solo tre righe.
Al primo "rintocco" la nostra variabile è minore di tre e quindi entrando nella sezione then andremo ad aumentare di una unità la variabile che passa ad uno e richiamo proprio la riga numero uno, grazie a call Spreadsheet. get row, che in automatico attiva il suo blocco gemello When got row , cioè quando ho ricevuto la riga e questo avverrà ad ogni passaggio.
Sì perché il clock rimane attivo se non bloccato e dopo altri 150 millisecondi aziona il when clock.timer , verifica l'ID che adesso verrà portato a due chiamando la riga due della tabella e ancora dopo un altro giro verrà portato a tre chiamando per l'ultima volta il db.
Nel momento in cui ID assume valore tre il codice verrà deviato sull' else (infatti tre non è minore di tre) che ci permetterà di settare su false il clock fermandolo e impostare la variabile nuovamente a zero per un eventuale nuova chiamata al db.
Vediamo cosa succede invece alla ricezione della riga. When got row riceve la riga in formato di lista , un elemento per ogni colonna, quindi grazie al blocco call list view add item andremo a posizionare la prima colonna come immagine , la seconda come titolo e la terza come sottotitolo. Adesso se ci ricordiamo bene i valori che ho inserito nella tabella verrà facile capire che la prima colonna porta il link all'immagine, la seconda il prezzo e l'ultima il nome.Fatto , facile no? Bene il metodo iniziale era ancora più semplice ma non siamo riusciti a capire il motivo per cui gli elementi arrivano mescolati oppure posizionati male dalla list view, in quel caso avevo utilizzato il blocco add item from list che mi permetteva di eliminare molti blocchi 😓
Come anticipato il button 2 ripulisce i campi della list view se ne aveste bisogno, call clear list.
2. DIZIONARIO
Link all'estensione 👉 QUI
Vediamo ora il metodo con il dizionario che può tornare utile in più contesti, qui sopra ho lasciato il link all'estensione che useremo per trasformare la scrittura in Json ricevuta dal db in dizionario per poterlo manipolare con i blocchi nativi di kodular.
Questo è quello che ricaviamo grazie alla nostra estensione , ho volutamente mandato a capo ad ogni createdTime per farvi notare che il testo evidenziato si ripropone più volte e sempre con la solita struttura. I più attenti o pratici del codice scritto avranno notato che si ripropone tre volte, proprio come le nostre righe e infatti sono proprio loro scritte in formato dizionario, le parentesi graffe racchiudono "zone" più importanti mente virgolette e due punti identificano i vari elementi e il loro valore, quelli che poi ritroveremo come key e value. Ecco che compare Link , il nome della colonna , e il suo valore appunto il link dell'immagine, ma anche name e price e l'id della riga che non ha niente a che vedere con la variabile di prima ma identifica appunto la riga con un id assegnato da Airtable. Abbiamo quindi un info sulla data di creazione , l'introduzione a dei campi (fields) che ci fa accedere alle nostre colonne e relativi valori per quella determinata riga.
In questo modo avremo una lista con tutti i link, una con tutti i prezzi e una con tutti nomi e in tutte le liste l'elemento sarà salvato nella posizione uguale alla riga da cui è stato prelevato, elemento 1 dalla riga 1 , l'elemento 2 dalla riga 2 e così via.
Grande Raff bellissimo il paragone palazzo e piani,stanze...
RispondiElimina💪🏻 Grazie. Considerato l'orario in cui scrivo mi sento molto soddisfatto anche io 😂🤣
Elimina