Salve a tutti,
è il mio primo post qui e complimenti a tutti per il grande lavoro che state facendo con drupal.
Ecco il mio problema:
ho parecchi file pdf che voglio rendere disponibili agli utenti di un sito drupal quindi ho creato un tipo di contenuto chiamato pdf con flexinode e poi con questo codice php ho creato una page che visualizza tutti i nodi di tipo pdf.
/**
* This php snippet displays content of a specified type, with teasers
*
* To change the type of content listed, change the $content_type.
*
* Works with drupal 4.6
*
*flexinode-2 è il nome del nodo di tipo pdf
*/
$content_type = 'flexinode-2';
$result1 = pager_query(db_rewrite_sql("SELECT n.nid, n.created FROM {node} n WHERE n.type = '$content_type' AND n.status = 1 ORDER BY n.created DESC"));
while ($node = db_fetch_object($result1)) {
$output .= node_view(node_load(array('nid' => $node->nid)), 1);
}
print $output;
Ora in questo modo funziona tutto il problema è che quando avrò 200 nodi di tipo pdf avrò una lista lunghissima tutta in una pagina.. quindi come posso fare?
Io vorrei aggiungere una barra di navigazione in fondo tipo <1><2>... MA COME SI FA ?!?
Inoltre: voi fareste così per risolvere questo tipo di problema o usereste la tassonomia o qualcos'altro?
Attendo fiducioso!
Sono un tantino disperato!
Bye,
Filippo
Ti suggerirei di scopiazzare il codice dal modulo node (node.module) base di Drupal.
Guarda come è scritta la funzione node_page_default()
Di diverso dal tuo codice c'è il fatto che la query ha come parametro anche il numero di nodi (prendendolo dal default usato in cfg), e che prima di stampare l'outputl, viene fatta una call:
$output .= theme('pager', NULL, variable_get('default_nodes_main', 10));
che aggiunge il menu di paginazione in fondo alla pagina.
Fammi sapere, e facci avere lo snippet di codice finito...
Matteo
Grazie mille!
Basta aggiungere quella riga che mi hai passato prima della print e va tutto a posto!
Ciao!