[PHP-MYSQL]Gestione categorie multiple multilingua

Albys

Nuovo Utente
4
1
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.
 

Kubler

Nuovo Utente
2
1
Aspetta aspetta, praticamente ti serve da creare un sistema di categorie e sottocategorie no?

Potresti semplicemente creare due tabelle in MySQL, ovvero:

Categorie ( ID | nome | translation )
Sottocategorie ( ID | nome | id_cat | translation )

In questo modo, ogni sottocategoria aggiunta nell' omonima tabella dovrà avere un ID (auto_increment, per riconoscerle unicamente), il nome, l' id della categoria madre e la traduzione opzionale.

Un esempio di come potrebbero esser compilate:

Categorie

1 | Abbigliamento | Clothes

Sottocategorie


1 | Pantaloni | 1 | Pants
2 | Magliette | 1 | Shirts
3 | Scarpe | 1 | Shoes
Per ogni categoria ovviamente dovrai eseguire una query per trovare le sue subcategorie, io ti consiglio di creare una funzione apposita nella quale prima controlli se esistono subscategorie relative ad essa, se non ci sono rimanda false (quindi con il controllo nella pagina vera e propria basterà fare: if(!NOMEFUNC($args)) ), altrimenti rimanda un array contenente le subcategorie.
 

Entra

oppure Accedi utilizzando