Comportamento diverso a seconda del tipo di contenuto

2 contenuti / 0 new
Ultimo contenuto
Comportamento diverso a seconda del tipo di contenuto

Ciao a tutti,

premetto che sono alle prime armi con Drupal, per cui perdonatemi se chiedo cose basilari.

Sto modificando un modulo (DruTeX) per aggiungere in fondo ad una story dei link a determinate pagine (in questo caso alla versione PDF della story stessa). Ho implementato quindi la funzione

/**
* Implementation of hook_link().
*/
function drutex_link($type, $node = 0, $teaser = 0) {
if ($type == 'node'){
$links = array();

$attributes = array('title' => t("Display a PDF version of this article"));

$links['pdf'] = array('title' => t('PDF version'), 'href' => "drutex/pdf/$node->nid", 'attributes' => $attributes);

return $links;
}
}

Che fa proprio quello che mi aspettavo, se non che il link compare in fondo ad ogni nodo (sia esso story o meno). Come posso vincolare l'esecuzione al solo tipo di contenuto "story"?

Ho inoltre questa esigenza: vorrei creare due tipi diversi di dato, il primo convertibile in PDF, il secondo senza il pulsante di conversione. Mi sono un po' confuso perché mi pare che siano entrambi di tipo "story", ma non so come distinguere l'esecuzione nella funzione. Le mie domande sono quindi:

1) E' possibile/ragionevole creare due tipi di contenuto entrambi di tipo "story" e distinguere l'esecuzione a seconda del tipo?

2) Come faccio in una funzione a vedere il tipo di contenuto del nodo che mi viene passato?

Inoltre, una volta finita questa modifica, mi piacerebbe contattare gli sviluppatori di DruTeX per sottometterla, visto che mi pare una modifica utile. Qualcuno sa come posso contattarli?

Grazie mille!

Leo

Ho aggiunto con CCK un campo "pdf_version_available" al tipo "Articolo", che è una story; il campo è un Integer con due valori possibili, 0 e 1, e si presenta come una checkbox.

Nel codice ho aggiunto questo if

if($node->pdf_version_available){...}

La cosa però non funziona, il campo viene mostrato sopra il body: mi sa che CCk non centra...

Leonardo