regola per escludere campi in view con php (con qtip)

2 contenuti / 0 new
Ultimo contenuto
regola per escludere campi in view con php (con qtip)

Ciao, sto tentando di creare da sola una regola con php in modo da gestire la visualizzazione di tre campi in una view, ma mi sa che mi manca qualche pezzo.

Ho una tabella con tre campi: il titolo del film, una trama breve e una trama lunga. A seconda dei casi ci può essere solo una delle due trame, tutte e due oppure nessuna.

Io vorrei mostrare, seguendo una priorità:
- la trama lunga, se c'è [field_trama_lunga]
- in alternativa la trama corta [field_trama_corta]
- in alternativa il titolo del film [title]

Ma non è così semplice perché invece di mostrare trama corta e trama lunga così come sono, vorrei mostrare sempre il titolo, e una delle due trame come tooltip, usando il modulo qtip.

Il modulo qtip non mi permette di entrare nel campo della trama e stabilire che la trama va visualizzata nel tooltip che si apre con il clic. Quindi posso solo fare il contrario: escludere dalla vista il campo trama lunga, poniamo, e aggiungere un secondo campo titolo [title_1], in cui attivo qtip e gli dico che cliccando sul titolo compare la trama lunga.
Fatto in questo modo funziona: ho il campo titolo e quando c'è la trama lunga, cliccando sul titolo compare la trama in un tooltip.

Analogamente, ho un terzo campo titolo [title_2], che visualizza nel tooltip la trama corta, quando c'è.

Aggiungendo un campo php alla vista, stavo cercando di realizzare una cosa del genere:

- se esiste [field_trama_corta] stampa [title_2]
- se esiste [field_trama_lunga] stampa [title_1]
- in tutti gli altri casi stampa [title]

Posto che questo non risolve il caso in cui il nodo ha SIA trama corta che trama lunga (in quel caso per me prevalre la lunga), non riesco a farlo funzionare, pur avendo esploso l'array con devel e avendo trovato le variabili giuste.

Qualcuno potrebbe aiutarmi?

Drupal Version:

Sono riuscita a ottenere un parziale risultato con questo codice:

<?php
$title
= $row->title;
$titleC = $row->title_1;
$titleL = $row->title_2;
if (isset(
$data->field_field_trama_lunga['0']['raw']['safe_value'])) {print $titleL;}
elseif (isset(
$data->field_field_trama_corta['0']['raw']['safe_value'])) {print $titleC;}
else print
$title;
?>

ma il problema è che il php non becca le riscritture. Quindi i miei tre campi titolo per lui sono identici. Idee?

...enter at your own risk...