Discussioni modulo:Wikidata: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
→_getClaims : Come controllare se non esiste la proprietà?: nuova sezione |
|||
Riga 430:
:::::: Pensavo di aver sistemato con l'ultima modifica, ma non basta, perché che deve funzionare anche per filtrare i qualificatori (il cui unico utilizzo con includelang/excludelang è per la didascalia in italiano delle immagini lette da Wikidata, caso ancora poco usato ma che c'è e deve funzionare). Mi richiede ancora un po' di lavoro. Inoltre ho trovato che anche per i qualificatori c'è una selezione in base al parametro "nq" che è rimasta nella parte di formattazione, e va spostata per lo stesso motivo. Appena ho fatto ti riaggiorno il modulo, il funzionamento rimane sempre identico. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 23:57, 6 gen 2018 (CET)
::::::: Ho ritrovato l'origine del fatto per cui la selezione dei qualificatori (possibile solo con il parametro nq o con includelang/excludelang) era fatta nella parte di formattazione. I qualificatori fino ai parametri nq/includelang/excludelang non avevano la possibilità di essere filtrati, ma solo visualizzati, con la dovuta formattazione, o non visualizzati. Quindi esisteva solo la funzione formatQualifiers. Andrebbe invece aggiunta anche una getQualifiers (rimuovendo di conseguenza il parametro "claim" di formatQualifiers). È una modifica un po' lunga, che necessita l'aggiornamento di un paio di altri moduli che usano formatQualifiers, ma penso che valga la pena di farla per rendere anche più flessibile il codice a future aggiunte di parametri che agiscono sulla selezione dei qualificatori. La metto in cantiere, non so ancora esattamente quanto ci vorrà. --[[Utente:Rotpunkt|Rotpunkt]] ([[Discussioni utente:Rotpunkt|msg]]) 12:23, 7 gen 2018 (CET)
== _getClaims : Come controllare se non esiste la proprietà? ==
In [[Modulo:Sandbox/ValterVB/Tracklist]] uso la funzione </br>
<code>wdBasatoSu = mWikidata._getClaims('P144', { from = ddato })</code> </br>
per recuperare una proprietà e poi con </br>
<code>if wdBasatoSu then</code> </br>
controllo se la proprietà è presente oppure no. Il problema è che anche se il dato non è presente mi passa sempre il test e quindi prosegue all'interno dell'if. Se invece faccio il testo con </br>
<code>if next(wdBasatoSu) ~= nil then </code> </br>
il test funziona correttamente e rileva correttamente il <code>nil</code>. E' cambiato qualcosa? un po' di tempo fa il primo if era sufficiente per controllare la tabella. --[[Utente:ValterVB|ValterVB]] ([[Discussioni utente:ValterVB|msg]]) 10:02, 27 gen 2018 (CET)
|