Drupal per sito di videogiochi multi-piattaforma
Salve a tutti! :)
Mi sono appena registrato su questo sito per chiedere aiuto con Drupal, dato che l'ho usato pochissimo e sono un completo principiante.
Ho bisogno di realizzare un sito in cui vengono presentati dei videogiochi multi-piattaforma. Ogni gioco ha un Titolo, Descrizione e, soprattutto, una lista di Piattaforme sulle quali è disponibile (ad esempio iOS, Android, ecc...). Vorrei che questa lista fosse rappresentata da delle iconcine che, se cliccate, reindirizzino sul sito dello store relativo (iTunes App Store, Google Play, ecc...).
Al momento ho creato un Content Type "Gioco", che contiene il campo "Titolo" e "Descrizione". Il problema è che non ho la più pallida idea di come fare la lista di Piattaforme. Qualcuno potrebbe cortesemente aiutarmi per favore?
Grazie in anticipo! :)
Risposte
Ciao, per le piattaforme usa
Ciao, per le piattaforme usa una tassonomia così che tu la possa "referenziare" all'interno del form di inserimento e della visualizzazione. E aggiungi un campo (multiplo) dedicato allo store di riferimento.
In Drupal 7 anche la tassonomia può avere dei campi (field) aggiuntivi: inseriscine uno dedicato alla icona dello store.
Poi devi lavorare a livello di hook_field_* per far si che al posto del nome della tassonomia venga fuori la sua icona.
Mi dispiace ma più di così non ti posso aiutare.
M.
Grazie mille per la tua
Grazie mille per la tua rapida risposta, non sapevo che anche la tassonomia potesse avere dei campi aggiuntivi!
Adesso ho creato una tassonomia chiamata "Piattaforme", che contiene i valori "iOS", "Android" e "Windows Phone", con la possibilità di selezionarne più di uno. Adesso vedrò di aggiungere un campo immagine alla tassonomia per avere le iconcine.
Ho ancora un dubbio: come posso fare in modo che se l'utente clicca su uno dei termini della tassonomia "Piattaforme" mentre sta visualizzando un contenuto di tipo "Gioco" specifico (facciamo finta che sia "Angry Birds") venga reindirizzato sulla pagina del gioco nello store indicato? Ad esempio se l'utente clicca su "iOS", il link sarà qualcosa tipo "itunes.apple.com/angry-birds", e così via per gli altri store.
E' possibile con la Tassonomia? O per avere questa funzionalità devo implementare le "iconcine" in maniera diversa (magari con un campo di tipo List)?
Grazie di nuovo! :)
Ciao, questa cosa del click
Ciao, questa cosa del click su icona e "vai allo store" lo devi fare graficamente nel senso che da template tu metterei l'icona della tassonomia dentro ad un HREF che punta allo store. Il valore di questo HREF è inserito all'inteno di uno dei campi del tipo di contenuto "gioco" e non all'interno della tassonomia.
Forse lo puoi fare anche a livello di hook_field_* nel momento che visualizzi l'icona al posto della scritta (della tassonomia), ma secondo ma fai prima a livello di grafica.
Cerca su internet "drupal 7 taxonomy icon" o qualche cosa di simile, perché sicuramente un modulo che ti permetta di associare una immagine ad un termine tassonomico esiste. E puo' essere un buon punto di partenza.
M.
Grazie per le dritte! :) Ho
Grazie per le dritte! :)
Ho trovato un modulo chiamato Taxonomy Image, che sembra fare proprio quello che voglio (ad eccezione del link allo store ovviamente). Ma purtroppo al momento non funziona con Drupal 7, non me lo vede proprio. Infatti ho trovato questo bug report in cui altri utenti dicono che non funziona su Drupal 7.22.
Nel frattempo vorrei cercare di fare in modo che il link allo store funzioni lo stesso, cliccando sul nome del Tag invece che su un'immagine. Sto cercando di capire come funzionano i template per fare come mi hai consigliato tu la modifica da template.
Nel template ho trovato questa sezione:
/**
* Implements theme_field__field_type().
*/
function bartik_field__taxonomy_term_reference($variables) {
$output = '';
// Render the label, if it's not hidden.
if (!$variables['label_hidden']) {
$output .= '<h3 class="field-label">' . $variables['label'] . ': </h3>';
}
// Render the items.
$output .= ($variables['element']['#label_display'] == 'inline') ? '<ul class="links inline">' : '<ul class="links">';
foreach ($variables['items'] as $delta => $item) {
$output .= '<li class="taxonomy-term-reference-' . $delta . '"' . $variables['item_attributes'][$delta] . '>' . drupal_render($item) . '</li>';
}
$output .= '</ul>';
// Render the top-level DIV.
$output = '<div class="' . $variables['classes'] . (!in_array('clearfix', $variables['classes_array']) ? ' clearfix' : '') . '"' . $variables['attributes'] .'>' . $output . '</div>';
return $output;
}
Suppongo di dover modificare il codice dentro al ciclo foreach. Come faccio a verificare quale tag del vocabolario sto iterando al momento? So che il tag che sto iterando è nella variabile $item, ma come distinguo se $item è "iOS", "Android", ecc? C'è una qualche variabile tipo $item->$titoloDelTag? Ho provato a fare degli esperimenti confrontando $item->$name con "iOS", ma nessun risultato. Ho provato anche a confrontare la stringa "iOS" con drupal_render($item), che sembra restituire come ouput proprio la stringa visualizzata, ma non ha funzionato lo stesso.
Scusa le domande da niubbo e grazie ancora per il tuo aiuto! :)