Gruppo di prodotti
Ho bisogno di realizzare con drupal un gruppo di prodotti (un centinaio) che siano divisi per categorie (una decina) che abbiano diversi dettagli (nome, codice, foto, dimensioni, peso...) per ogni prodotto.
I prodotti per il momento non necessitano di essere messi in un carrello, ma verranno solamente visualizzati (stile vetrina). Non è detto che in un futuro il sito non muti in un sito di e-commerce.
Tutto ciò deve essere ovviamente creato e modificato tramite interfaccia (tipo i dati utente in drupal 4.7rc1)
Qual è il miglior modo per fare ciò?
Risposte
Con il modulo flexinode e la tassonomia
Ciao,
La tua è una necessità molto comune, e quindi ci sono moduli già pronti che ti permettono di fare tutto quello che ti serve.
In particolare il modulo flexinode ti permette di definire nuovi tipi di contenuto (diversi dalla classica pagina o dalla storia) per i quali puoi specificare i campi che ti servono (di testo, immagine o altro).
Una volta fatto il tipo di contenuto non hai che da creare le categorie all'interno di un dizionario e gestire i tuoi prodotti come qualsiasi altro contenuto dentro drupal.
Non so se ti può essere utile, ma esiste anche un modulo "taxonomy_menu" che si occupa di creare in automatico i menu delle categorie partendo dalla tassonomia, quindi non devi neanche aggiungere le categorie nel menu a mano.
Per l'ecommerce, ancora non ho avuto modo di provare il modulo in maniera seria, ma mi dicono che sia ben fatto, quindi sicuramente potrai utilizzare un tipo di nodo esistente come prodotto, e gestire carrello, spedizioni e pagamenti con quello.
Spero di essere stato chiaro.
Ciao
francesco
---
Mi interessa il futuro perchè è la che passerò il resto della vita
Sembra abbastanza facile...
Io pensavo di dover smanettare a crearmi un modulo personalizzato...
Per quanto riguarda l'inserimento dei dati del prodotto, tutti i textfield associati ai dettagli del prodotto verranno gestiti dal flexinode, giusto?
Grazie 1000!
Flexinode per 4.7rc1
Ho provato ad installare flexinode 4.6.0 su 4.7rc1 ma (ovviamente) non funziona...
Non c'è una versione che funzioni pure sull'ultima release drupal?
sono cambiate le api per i form
Quindi finchè il modulo non verrà convertito non funzionerà, per il momento non conosco versioni funzionanti sulla 4.7.
Se ti serve la compatibilità con i moduli esistenti ti consiglio di usare ancora la 4.6.6, la 4.7 soffre di giovane età, è stabile e sembra funzionare molto bene, ma se devi installare moduli nuovi iniziano i guai...
Se invece vuoi investire tempo nella conversione puoi installare il modulo formupdater (http://drupal.org/node/37457), che a quel poco che ho potuto vedere è un modulo per 4.7 che accetta il codice dei moduli 4.6 e di quinda nella conversione delle form api.
Non ho idea di come si comporti il modulo ne del tempo che possa richiedere questa cosa...quindi vedi tu se vale la pena tenere la 4.7 o passare alla versione precedente, considerando che se avessi bisogno di altri moduli avresti lo stesso problema.
Ciao
---
Mi interessa il futuro perchè è la che passerò il resto della vita
Hai provato ad istallare la
Hai provato ad istallare la versione CVS di flexinode?
Flexinode per la 4.7.0 RC1
... già, la versione cvs mi sembra che funzioni abbastanza bene
c@.
Si vede che solitamente sono
Si vede che solitamente sono per le versioni stable eh?? al CVS non avevo proprio pensato :D
---
Mi interessa il futuro perchè è la che passerò il resto della vita
Wow... Sembra che funzioni!
Grazie 1000!
Io mi ero già installato anche la versione 4.6.6 in locale e installato il flexinode 4.6.0
Ora ho 2 versioni di drupal con rispettivamente 2 versioni di flexinode che funzionano!
Vabbè...
Ma quanto ci vorrà per una versione 4.7 stable con i moduli più importanti adattati?
Fra qualche giorno esce la
Fra qualche giorno esce la nuova 4.7 RC 2.
Molti moduli sono già usciti per la 4.7, quelli che ancora non l'hanno fatto, lo faranno nei prossimi giorni.
Penso che ormai siamo veramente vicini alla 4.7 definitiva. Secondo me verranno fatte solo 3 RC.
Mmm...
Funziona su 4.6.6 ma fa i capricci sulla 4.7
Non importa, l'importante era capire se la cosa era fattibile!
Grazie
Ok, mi sono sbizzarrito con
Ok, mi sono sbizzarrito con il modulo flexinode.
Ora però è "presentato" in maniera abbastanza barbara.
Come faccio ad associare al mio nuovo contenuto "prodotto" un layout del tipo prodotto.tpl.php che andrò a creare nella cartella del mio template, per far sì che il singolo prodotto abbia un layout come va bene a me?
Seconda cosa.
Quando voglio visualizzare l'insieme di prodotti non voglio che me li metta uno sotto l'altro con tutti i dettagli che sono presenti nell'intero prodotto, ma voglio solamente che siano affiancati l'uno all'altro (tipo float:left) e abbiano il nome e una piccola foto.
Devi creare il file con il
Devi creare il file con il nome node-flexinode-1.tpl.php (esempio per il flexinode 1).
In questo modo puoi mostrare come vuoi quel tipo di nodo.
Per quanto riguarda la lista è un po' più problematica la cosa visto che non è possibile definire un template per la lista.
Secondo me ti conviene crearti un tuo modulo di visualizzazione. Ad esempio la sezione downloads di questo sito usa un modulo che ho scritto io che mostra dei nodi flexinode.
Oppure crei una pagina e provi ad inserire del codice php, questo esempio è di grande aiuto.
Per quanto riguarda la lista
Per quanto riguarda la lista penso di aver capito... darò una seria occhiata alla pagina che mi hai dato.
Per quanto riguarda il singolo prodotto non ho afferrato.
Io ho creato il mio flexinode e l'ho chiamato "prodotto". Quindi devo chiamare il file del template node-flexinode-prodotto.tpl.php ???
mmm... penso di no...
Mi rispondo da solo
e scusa il disturbo...
http://drupal.org/node/45475
Ora vediamo se riesco a capirci qualcosa :-D
Il nome del nodo non conta,
Il nome del nodo non conta, i nodi flexinode vengono numerati da un id, il template relativo si deve chiamare node-flexinode-N.tpl.php dove N indica l'id del tipo che ti interessa. Puoi vedere l'id nell'elenco dei tipi di contenuto, passandoci sopra con il muose è l'ultimo numero dell'url.
Per quanto riguarda la lista o il contenuto completo, phptemplate mette a disposizione alcune variabili(a memoria una è $page, per le altre guarda il manuale) che ti permettono di capire se il nodo è visualizzato come pagine o come insieme della lista. Basta un semplice if sulla variabile per impostare due template, uno quando il nodo è visualizzato da solo, e uno quando è visualizzato insieme agli altri. In questo modo non puoi lavorare direttamente sulla lista come insieme, ma formattando i singoli elementi puoi comunque ottenere quello che vuoi. Puoi ad esempio infilarli in div che metti float left per averli affiancati, visualizzare solo alcuni campi, decidendo tu quali.
Piccolo particolare(che forse sai), in cui mi sono imbattuto poco fa, per accedere ai campi dei nodi creati con flexinode devi accedere alla variabile $node->flexinode_N dove n è il numero id del campo che ti interessa. Alcuni campi non restituiscono un valore secco, ma un oggetto con altre variabili (come ad esempio il campo di tipo file).
Per avere una stampata di tutte le possibili variabili alle quali puoi accedere ti basta dare un print_r($node), giusto per renderti conto di quali sono.
---
Mi interessa il futuro perchè è la che passerò il resto della vita
Grazie infinite, sei stato
Grazie infinite, sei stato chiaro e preciso.
Comunque molte cose di quelle che mi hai riportato tu sono scritte nelle pagine a cui facevo riferimento nel messaggio precedente!
Fortunatamente lavorando sulla visuale "preview" ($page == 0) non mi serve creare un nuovo modulo per la visualizzazione dell'insieme dei prodotti... SUPER!
P.S. Il modulo taxonomy menu è pazzesco!!! fa tutto lui... basta inserire i prodotti e metterli ognuno nella sua categoria (creata in maniera semplicissima) e lui ti crea le gerarchie belle che pronte da navigarci!
Si infatti ho visto il tuo
Si infatti ho visto il tuo ultimo messaggio dopo aver postato il mio.... magari sarà utile per qualche ricerca futura:D
Per il taxonomy_menu, io lo installo praticamente quasi sempre.
Ciao
---
Mi interessa il futuro perchè è la che passerò il resto della vita