creare contenuto da database

7 contenuti / 0 new
Ultimo contenuto
creare contenuto da database

Ciao a tutti di nuovo.
Sto ancora cercando di risolvere il problema che ormai mi assilla da qualche giorno...
ora vorrei sapere se è possibile far creare automaticamente dei nodi a drupal prendendo i dati da una tabella del database.
Il discorso è questo:
io ricevo dei dati da un ftp sotto forma di foglio xml, i dati sono relativi ad una rubrica che contiene nome cognome e numero di telefono.
Faccio il parse del foglio xml e inserisco i dati in una tabella del mio database che ha i campi "nome","cognome","telefono".
Precedentemente ho creato il tipo di contenuto "rubrica" con i campi "nome","cognome","telefono".
Come posso procedere per far in modo che drupal mi crei un nuovo contenuto di tipo rubrica per ogni riga della tabella "rubrica" del mio database?
Non chiedo la soluzione ma solo se sapete più o meno in che muro dovrei andare a sbattere la testa...
:D

grazie a tutti!
...ma soprattutto a chi mi risponderà!
:P

ertone wrote:
Faccio il parse del foglio xml e inserisco i dati in una tabella del mio database che ha i campi "nome","cognome","telefono".
Precedentemente ho creato il tipo di contenuto "rubrica" con i campi "nome","cognome","telefono".
Come posso procedere per far in modo che drupal mi crei un nuovo contenuto di tipo rubrica per ogni riga della tabella "rubrica" del mio database?

Quello che vuoi realizzare è molto semplice e lo risolvi con la realizzazione di un piccolo modulo, che gestisce la creazione del content "rubrica", l'upload del file, il parsing dell'xml e l'insert ad eccezione del parsing XML di cui non sono sicuro ci siano API apposite il resto lo gestisci tramite gli hook di Drupal.

Questo è il link alla guida ufficiale per la creazione di un modulo che ad eccezzione del semplice parser XML che dovrai scriverti ti permette di creare quanto hai richiesto.

Spulciando un pò il forum ho trovato questo:
http://www.lullabot.com/articles/drupal-data-imports-migrate-and-table-w...
l'ho provato e fa proprio al caso mio...
Sapete dirmi se è possibile farlo in automatico?
Dire al mio sito che alla tal ora deve eseguire il table wizard...
Praticamente dovrebbe controllare giornalmente la tabella del database e creare i nodi relativi.

non ditemi che devo per forza mettere mano al codice e creare un modulo...
:(

ertone wrote:

non ditemi che devo per forza mettere mano al codice e creare un modulo...
:(

Puoi usare http://drupal.org/project/feeds ma devi studiare abbastanza (la documentazione comunque non manca). Può darsi che l'importazione XML non sia ancora supportata nativamente, noi l'abbiamo dovuta scrivere per un nostro progetto ma non è ancora stabile: http://drupal.org/project/feeds_xmlparser . In ogni caso per le tue necessità è perfetta anche un'origine dati in CSV, e quindi basta che tu arrivi in qualche modo ad avere il file in formato CSV anzichè caricare i dati nel database. All'importazione periodica pensa sempre feeds, automaticamente.

per il parse dal foglio xml non ci sono problemi, ho già studiato il modo di mettere i dati in una tabella apposita del mio database. Ora ho bisogno di realizzare un nodo per ogni riga della tabella in modo che drupal mi legga i contenuti...

Non capisco proprio perché tu debba sporcare il database inserendo una tabella che non è di Drupal e che contiene dati destinati alla copia in Drupal; adattando la procedura che converte XML in database ottieni facilmente un CSV che puoi leggere con Feeds, e questo mi sembra il modo più pulito di fare le cose in Drupal. Ovviamente sei sempre libero di scegliere la strada che preferisci, ma più ti distacchi dal modo canonico di fare le cose e più devi lavorare. Con il modo canonico devi lavorare lo stesso (perché studiare Feeds comunque non è banale) ma arrivi a una soluzione più robusta. Comunque scegli tu in base ai tuoi gusti.

ora mi documento un pò perchè non conoscevo questa possibilità...
guardando un pò su google mi pare che la creazione di un file csv da xml sia anche piuttosto semplice da fare in php.
grazie del consiglio!
:D