[Risolto] Esportare il contenuto di un nodo in csv

12 contenuti / 0 new
Ultimo contenuto
[Risolto] Esportare il contenuto di un nodo in csv

Salve,
ho l'esigenza di esportare in un file .csv i vari campi di un nodo creato tramite cck.
Immagino che creare un modulo custom sia la soluzione più indicata, ma sarei curioso di sapere se è possibile un'implementazione più semplice.
Come ad esempio fare l'override di una pagina template per mostrare un pulsante (es. Esporta in csv) che richiama una funzione php in cui carico i valori da db che concateno tramite implode.
Ringrazio in anticipo a chi saprà aiutarmi

Hai già valutato/esaminato Node Export? http://drupal.org/project/node_export

E sarebbe possibile farlo anche con:

oltre a tutti i possibili correlati. Se ti posso consigliare, userei questo, molto più flessibile.

Ciao
Marco
--
My blog
Working at @agavee

mavimo wrote:
E sarebbe possibile farlo anche con:

oltre a tutti i possibili correlati. Se ti posso consigliare, userei questo, molto più flessibile.


mi ero dimenticato del views data export, ottima soluzione per questo caso.

Ainur wrote:
mavimo wrote:
E sarebbe possibile farlo anche con:

oltre a tutti i possibili correlati. Se ti posso consigliare, userei questo, molto più flessibile.


mi ero dimenticato del views data export, ottima soluzione per questo caso.

Proverò entrambe le implementazioni e vi farò sapere, grazie dei consigli!

Da un primo utilizzo di Views data export e Views Bonus Pack mi sono accorto che hanno bisogno di una vista per poter funzionare. Ho fatto una prova con una vista esistente richiamando l'esportazione in csv al path ../path_vista/csv/ e tutto sembra funzionare correttamente.
Nel mio caso però, vorrei rendere disponibile la funzione di esportazione per ogni singolo nodo. E per quel poco che conosco le Views non mi pare che ci sia la possibilità di creare una vista per ogni nodo.

se non sbaglio le viste per l'export di xls, doc, csv, eccetera hanno un path.
ti basta costruire la vista usando l'argomento nodeID ed inserire un link in ciascun nodo (o addirittura inserire direttamente la vista con il suo pulsante già pronto).
del tipo:

tuosito/node/%/export

<a href="mailto:[email protected]" rel="nofollow">[email protected]</a> wrote:
se non sbaglio le viste per l'export di xls, doc, csv, eccetera hanno un path.
ti basta costruire la vista usando l'argomento nodeID ed inserire un link in ciascun nodo (o addirittura inserire direttamente la vista con il suo pulsante già pronto).
del tipo:
tuosito/node/%/export

Ho installato views_data_export e ho creato una vista che prende ciascun nodo tramite l'argomento nid ed è raggiungibile al path node/%/csv.
Adesso vorrei che il path per l'esportazione in csv fosse accessibile tramite un tab o un bottone alla visualizzazione del nodo.
Ho quindi creato un piccolo modulo che mostra un tab per uno specifico node type
- mettendo in hook_menu():
Quote:
$items['node/%export_tab/csv'] = array(
'title' => 'Esporta',
//'page callback' => 'my_callback',
'page arguments' => array(1),
'access callback' => TRUE,
'type' => MENU_LOCAL_TASK
);

- e creando una funzione che riconosce il node type:
function export_tab_load($arg) {
$node = node_load($arg);
if($node->type == 'scheda')
return $node;
return FALSE;
}

Ma proprio perché la chiave dell'item coincide con il path della vista creato in precedenza il tab non viene mostrato. Se cambio uno dei due il tab viene mostrato, ma comunque non ottengo ciò che voglio.
Come posso ovviare a questo problema?

non usare views_data_export.
usa views_bonus
crei un display di tipo feed con formato xls
e lo attacchi alla vista nodo
vedrai che ti esce il pulsante

<a href="mailto:[email protected]" rel="nofollow">[email protected]</a> wrote:
non usare views_data_export.
usa views_bonus
crei un display di tipo feed con formato xls
e lo attacchi alla vista nodo
vedrai che ti esce il pulsante

Si, è vero. Usando views_bonus ho creato una vista pagina e ad essa ho attaccato la vista feed di tipo csv ottenendo così un altro tab.
Grazie

Evoluzione del caso: vorrei marcare in qualche modo ogni nodo esportato in csv con un flag. Ho quindi creato un campo tramite cck chiamato esportato, che su db corrisponde al campo field_esportato_value nella tabella {content_type_scheda}.
Ho scritto una piccola action che prima controlla che il nodo sia di tipo scheda, ne ottiene il nid eppoi va a scrivere il valore 1 tramite nel campo suddetto tramite db_query.
Il prossimo passo è associare questa action al clic del pulsante che esporta il nodo in csv. Ho provato con rules e form rules, ma il pulsante non si trova all'interno di alcun form: in che modo posso legare questi due eventi?

Non riesco a venirne a capo. Qualcuno ha qualche suggerimento?