Salve a tutti, utilizzo drupal 7 ed ho bisogno di un vostro aiuto per risolvere un problemino.
Ho creato all'interno di un contenuto un campo personalizzato Booleano (on/off) che si chiama field_attiva_vendita.
Volevo visualizzare una parte di contenuto di un nodo se questo campo aveva valore "1" e non visualizzarlo se aveva valore "0" (ovvero da on riportato su off). Ho utilizzato la funzione if come vi posto qui sotto:
<?php
if ($field_attiva_vendita):
?>
Opera in vendita!
Entra nella pagina dedicata per trovare tutti i riferimenti.
<?php
print $node_url;
?>
<?php
endif;
?>
Chiaramente cosi mi funziona solo quando il campo è pieno o vuoto, cioè pieno mi fa vedere il contenuto e vuoto non me lo fa vedere, ma quando sposto il valore da on a off il campo risulta sempre pieno, con valore "0".
Io vorrei invece vederlo quando il campo restituisce il valore "1" e non vederlo quando restituisce il valore "0".
Qualcuno mi sa consigliare come modificare il codice per ottenere questo?
Grazie per ora
Campi condizionali per Drupal 7 è una interfaccia utente per i nuovi membri API , oltre alla possibilità di modificare i campi aspetto e il comportamento in determinate condizioni durante la visualizzazione dei contenuti.
È possibile, ad esempio, definire un campo personalizzato "Articolo rompicapo" che viene mostrato solo se "ha teaser di" casella è selezionata.
Forse, è proprio quello che ti serve
https://www.drupal.org/project/conditional_fields
Penso però che puoi mettere il phpcode di questo tipo:
Nb:
1. è uno spunto che ho usato io, metti il nome del campo corretto e fai debug.
2. è opportuno che tu conosca il php
Grazie mille per l'aiuto prezioso che mi hai dato.
ho trovato la soluzione, è questa qui sotto. Un pelo più semplice di quello che mi hai postato tu... e se devo dire la verità non ho capito perchè deve essere presente l' "#items"
Codice da visualizzare se uguale a "1"
Grazie mille ancora!
Figurati!
Serve anche a me approfondire...
Drupal con il suo framework scrive gli oggetti (field html...) anche con array strutturati
Ad esempio la textarea dove sto scrivendo si chiama comment_body[und][0][value] (lo si evince con F12)
quindi da codice dovrebbe essere: $form['comment_body'][LANGUAGE_NONE][0][value]; da utilizzare in hook_form_alter sempre per fareun esempio. Ecco perchè #item: fa parte della struttura dell'elemento.
Ciao
Non si finisce mai d'imparare! A volte mi chiedo se CMS come wordpress o joomla hanno la stessa logica dietro.
Ma ormai dopo anni di drupal non ho più la forza di mollarlo per provare altre strade!