PDA

View Full Version : [PHP-MYSQL]Gestione categorie multiple multilingua


Alberto.b
02-12-2012, 11:09
Ciao a tutti, ho un problema: per un sito in php multilingua che sto sviluppando ho bisogno di un database (mysql) contenente prodotti di ogni qualsivoglia genere.
A tale proposito mi sono posto il problema della suddivisione delle categorie e sottocagegorie, e ho trovato una classe free per php adatta al mio scopo: Unlimited sub-categories.

La classe si appoggia su un unica tabella e tramite i suoi metodi è possibile creare categorie e sottocategorie senza limite di profondità.

Cercando ancora un pò ho trovato un file MOLTO utile al mio scopo, un file excel di ben 23MB contenente tutte le categorie e sottocategorie di ebay, fino ad una profondità di 6 livelli, per ben 13 paesi.

Il file si presenta così:
http://i.imgur.com/BQCEy.png

Come potete notare c'è una colonna all'inizio con l'ID della categoria poi 6 colonne in base alla profondità e alla fine due colonne per indicare la categoria principale e quella parent.
Inoltre per i file dei paesi non in lingua inglese c'è una colonna in più "Translation" dove viene appunto riportata la traduzione in inglese della categoria corrispondente alla riga selezionata.

A questo punto, io avevo pensanto di scrivere un semplice script in php che mi prendesse tutte le categorie e sottocategorie del foglio selezionato, usando la classe free Excel-Php reader, e le memorizzasse nel database MySql usando i metodi della classe Unlimited sub-categories, facendo una tabella "categorie" per ogni lingua diversa.

Il problema di tutto questo è che per avere un'implementazione relativamente semplice nel codice, ovvero fare un unico "campo stampa" per la categoria, che viene poi stampato nella lingua selezionata, tutte le categorie e le sottocatorie dovrebbero avere lo stesso ID in ogni tabella di lingua differente.

Questo è IL problema dato che l'ID category presente nel foglio excel è differente per quasi tutte le lingue. E anche cercando di usare come riferimento la colonna "Traduzione", prendendo prima tutte le categorie del foglio US, e poi per associazione di ID assegnato ad ognuna delle sue categorie, tramite la traduzione, andare ad assegnare lo stesso ID alle categorie di altre paesi, non funziona, perchè non tutti i paesi hanno le stesse categorie.

Avete qualche soluzione per ovviare a questo problema?
Ci sono molti siti che gestiscono categorie con diverse lingue, se avete qualche consiglio ve ne sarei molto grato.

Braccop
03-12-2012, 20:03
imho fai prima a lasciar perdere quel file. se gli id sono praticamente random finisci a perderci piu' tempo a cercare di farli quadrare che a trovare una soluzione alternativa

skyline90
05-12-2012, 11:40
Facile:

mentre leggi su excel ID inserisci "IT" alla fine del ID però prima togli la colonna translator e poi fai un nuovo upload e inserisci "EN" per le cose tradotte negli ID... dovrebbe bastare

cicciopasticcio1
05-12-2012, 19:16
Si, ma le categorie non sono identiche per ogni paese, sono differenti in numero e disposizione, e perciò non possono avere lo stesso id.

Visto che hai anche la traduzione in inglese puoi esportare tutto in csv (molto meglio che usare classi strambe), leggere il file, esploderlo, e crearti una bella tabella con la gerarchia, gli id, che eventualmente puoi anche ridefinire automaticamente per ordinarli ed accorciarli, traduzione in italiano ed in inglese.

Per il resto il gioco non vale la candela.