FANDOM


  • Ciao ragazzi, ho una wiki su Magic the Gathering da ormai diversi anni, ma non sono mai riuscito a inserire un cards filter per far ritrovare le carte più facilmente e fare delle ricerche mirate. Poi ho visto che esiste questa wiki inglese sull'ultimo gioco free-to-play basato su Magic che invece ne ha uno: https://magicarena.wikia.com/wiki/Cards

    Come faccio a riproporlo sulla mia wiki? Non sono pratico di codice, quindi per inserirlo avrei bisogno dell'assistenza di qualcuno veramente bravo!

      Editor in caricamento
    • Facilissimo. Bastava semplicemente importare e tradurre i templates della wiki americana. Visto che sembri non tanto pratico di queste cose, io li ho già importati e tradotti tutti:

      1. Template:Documentazione
      2. Template:CardListLink

      Inoltre ho pure creato una sandbox personale per cercare di rimetterti la stessa tabella della wiki inglese.

        Editor in caricamento
    • Mi spiegheresti come utilizzarlo? Perché non ci sto capendo molto. Anche io ho provato a fare copia/incolla, ma è un casino e i template che utilizza quella wiki sono totalmente diversi dai miei, così come le carte inserite. Tempo fa c'era Cresh che mi aiutava con il codice e mi stava aiutando a implementare il filter, ma è da parecchio tempo che non lo sento.

      Come dovrei utilizzare i due template? In cardlistlink dovrei mettere i link a tutte le carte inserite nella wiki?

        Editor in caricamento
    • Mi pare che il Cardlistlink sia solo per far funzionare il:

      • | width="20%"|{{CardListLink|Artifact}}
      • per creare la tabella del {| class="article-table mdw-cardlist-filter" ! class="mdw-filter-continued"|Types | width="20%"|{{CardListLink|Artifact}} | width="20%"|{{CardListLink|Creature}} | width="20%"|{{CardListLink|Land}} | width="20%"| | width="20%"| |-

      che avevo anche mostrato nella mia sandbox. Facendo così il codice {{CardListLink}} come template potrà funzionare facilmente per le tabelle e con questo ti basterebbe soltanto inserire il nome della carta come ad esempio {{CardListLink|Vampiro}}.

      Invece il Documentazione è solo un template di supporto per spiegare cosa sia il cardlist. Spero di essermi spiegato a questo punto.

        Editor in caricamento
    • Emh no, purtroppo non ho capito. Come fa il template CardListLink a sapere in che carte cercare e soprattutto, come fa a presentarmele in una pagina come appare in quell'altra wiki?

      Cercando nel codice dei link, ho visto che usano spesso la funzione "invoke". Ad esempio nel template: CardTable, c'è l'istruzione invoke:cards. Ma nella mia wiki questa funzione non esiste. Se io provo a utilizzare invoke:Carte all'interno di un template strutturato similmente a quello, non compare nulla. Anche perché usa anche GetsCardTable.

      Insomma, non credo si possa semplicemente fare un copia/incolla di qualche template. È proprio necessario mettersi e inserire nel codice delle funzioni apposite. Cosa che purtroppo non so fare (e non ho il tempo di imparare).

        Editor in caricamento
    • Partendo dalla struttura principale della pagina Cards abbiamo:

      {{CardListFilters}}
      ----
      {| class="CardRow article-table"
      {{CardTable}}
      |}

      Ci sono due template: CardListFilters e CardTable.
      (Le classi della tabella in questione e delle prossime le troverai tutte in MediaWiki:Wikia.css e servono solo per lo stile)

      Analizziamo il template: CardListFilters.
      Comprende la tabella con le tipologie di carte e la barra di ricerca.

      {| class="article-table mdw-cardlist-filter"
      ! class="mdw-filter-continued"|Types
      | width="20%"|{{CardListLink|Artifact}}
      | width="20%"|{{CardListLink|Creature}}
      | width="20%"|{{CardListLink|Land}}
      ...
      |}
      <inputbox>
      type=search
      </inputbox>
      ...

      Questo template fa uso a sua volta di un altro template: CardListLink.

      [[Cards/{{{1}}}|{{{2|{{{1}}}}}}]]

      Serve per linkare la sottopagina di "Cards". Cioè quando nella tabella selezioni "Artifact" passi da magicarena.wikia.com/wiki/Cards a magicarena.wikia.com/wiki/Cards/Artifact. In parole povere cambi pagina. È il semplice link interno [[pagina|testo]]. Potresti pure non utilizzarlo e fare:

      {| class="article-table mdw-cardlist-filter"
      ! class="mdw-filter-continued"|Types
      | width="20%"|[[Cards/Artifact|Artifact]]
      | width="20%"|[[Cards/Creature|Creature]]
      | width="20%"|[[Cards/Land|Land]]
      ...
      |}

      Serve per farti risparmiare qualche byte di codice, anche se secondo me si potrebbe fare a meno.

      Arrivato a questo punto puoi capire che dovrai crearti le sottopagine di "Cards", ma un copia e incolla e qualche aggiustamento risolve tutto.

      Ora passiamo alla parte difficile, il secondo template della pagina principale "Cards": CardTable.

      {{#invoke:Cards|GetCardsTable}}[[Category:Card List]]

      [[Category:...]] ti aggiunge semplicemente la categoria alle sottopagine.
      La parola #invoke serve a richiamarti i Moduli scritti con un particolare linguaggio, il Lua (vedi qui per approfondimenti dei moduli: Aiuto:Moduli).
      In pratica ti invoca il modulo "Cards" (che puoi trovare a magicarena.wikia.com/wiki/Module:Cards) e ti esegue la funzione GetCardsTable presente nel modulo. Semplice? No. XD
      Perche non è semplice? Perchè il modulo Cards richiama altri moduli, tra cui Module:CardService, Module:TemplateUtils, Module:Data/OtherRulings e Module:Data/Rulings. A sua volta CardService richiama Module:Data/Cards e Module:Data/OtherCards. Queste ultime due contengono la lista e descrizione di tutte le carte. Poi credo che ti serva anche il modulo Module:Data che fa uso del modulo Module:JSON

      Non so se ho dimenticato qualcosa ma ti aspetta un lavoraccio :P
      La soluzione sarebbe un copia e incolla e tradurre le descrizioni in esso (forse sono 4 moduli da tradurre).

      Infine per utilizzare "invoke" in ogni sottopagina dovrai scrivere al posto di {{CardTable}}: {{CardTable|Type$Artifact}} (se la sottopagina è Artifact)

        Editor in caricamento
    • Quindi i passaggi che potresti fare sono cerare:
      1) Template:CardListLink (ma come detto puoi saltarlo questo)
      2) Template:CardListFilters
      3) Creare i moduli: Modulo:Cards, Modulo:CardService, Modulo:TemplateUtils, Modulo:Data, Modulo:JSON, Modulo:Data/OtherRulings, Modulo:Data/Rulings, Modulo:Data/Cards e Modulo:Data/OtherCards.
      5) Tradurre i contenuti dei moduli (forse gli ultimi quattro elencati nel punto 3)
      4) Pagina e sottopagine di Carte: Carte, Carte/Artifact, Carte/Creature, Carte/Land e tutte le altre elencate nella tabella.

        Editor in caricamento
    • Ok, ho più o meno capito (facciamo meno), ma qui sorge un problema: nella wiki in questione ci saranno più o meno 200/300 carte. Nella mia wiki ne esistono più di 3200... capirai che il copia/incolla non sia poi così efficace...

      Non c'è un modo per sfruttare le pagine delle categorie? In modo tale che si possa fare tutto con un po' più di automatismo? Perché se i primi 4 punti del tuo elenco sono fattibili con un po' di lavoro, il 5 (che hai scritto come 4) sarebbe distruttivo e sfiancante.

      Dimmi che ci potrebbe essere una soluzione più automatica please... anche perché il numero di carte nella wiki aumenta ogni giorno

        Editor in caricamento
    • L'ultimo punto è uno di quelli più semplici (3 righe di codice per ogni sottopagina). Quello più impegnativo è il 3 perché, appunto, richiede l'inserimento delle carte aggiuntive nei moduli. Se noti, la wiki inglese non ha utilizzato un approccio 'automatico'. Ha implementato ogni singola carta con descrizioni, tipologie, manacost, colore, etc... (puoi veder un esempio qui). Quindi dire che c'è una soluzione semplice è difficile.

      Una soluzione non bella, ma che potresti fare in un'oretta, sarebbe quella di utilizzare la pagina della categoria Carte e includere tutte le tipologie al suo interno, creando delle sottocategorie. Con questo metodo avrai solo l'elenco dei nomi delle carte, senza immagini, descrizioni o altri tipi di dati.

      Comunque utilizzare le categorie direttamente tramite template o script, non so che risultato uscirebbe fuori. Forse otterrai solo del testo.

      Però ho una mezza alternativa. Ma dovrei pensarci un po'.

        Editor in caricamento
    • Sono aperto a ogni idea ;)

        Editor in caricamento
    • Ciao Ainer, scusami se non mi sono fatto sentire ma sono stato un po' impegnato ultimamente. Non ho tratto molte conclusioni, ho solamente trovato qualche articolo che potrebbe interessarti. Se nella tua wiki c'è qualcuno esperto potresti farlo vedere a lui e cercare di implementare qualcosa che fa al caso vostro. Le pagine che ho trovato sono:
      https://community.wikia.com/wiki/Help:DPL oppure https://dev.wikia.com/wiki/DPLquery.

      Comunque la mia idea iniziale era quella di implementare qualcosa simile al tabber, che ti permette di importare intere pagine, però diventa molto oneroso in termini di prestazioni caricando solamente 200 schede (immagina con 2000 e più...). Quindi ho bocciato subito questa soluzione.

        Editor in caricamento
    • Purtroppo non abbiamo esperti nella wiki. Mi sa che per ora abbandonerò questa idea purtroppo...

        Editor in caricamento
    • Un utente di FANDOM
        Editor in caricamento
Dai un Kudos a questo messaggio
Hai dato un Kudos a questo messaggio!
Vedi chi ha dato un Kudos a questo messaggio