Come faccio ad avere una pagina che abbia una lista di nodi di un certo tipo con possibilità di navigazione tra gli elementi?

3 contenuti / 0 new
Ultimo contenuto
Anonimo (non verificato)
Ritratto di Anonimo
Come faccio ad avere una pagina che abbia una lista di nodi di un certo tipo con possibilità di navigazione tra gli elementi?

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!