Vorrei ottenere il percorso dell'immagine di un campo. Sono in un nodo e ho bisogno dell'URL dell'immagine per metterlo come immagine di sfondo in css in linea. Non riesco a trovare la soluzione. Mi potete aiutare?Drupal 7 Ottieni percorso campo immagine
risposta
per ottenere solo il percorso di un'immagine da esso è URI:
file_create_url($node->field_image['und'][0]['uri']);
Maggiori informazioni sul file_create_url() può essere trovato qui: http://api.drupal.org/api/drupal/includes%21file.inc/function/file_create_url/7
Per ottenere il percorso di un'immagine creata utilizzando uno stile di immagine dal suo uso URI:
image_style_url($style, $node->field_image['und'][0]['uri']);
Maggiori informazioni sul image_style_url() può essere trovato qui: http://api.drupal.org/api/drupal/modules!image!image.module/function/image_style_url/7
Io qualche volta uso questo:
$node = node_load($nid);
$img_url = $node->field_userimage['und'][0]['uri'];
<img src="<?php print image_style_url($style, $img_url) ?>" />
Puoi anche usare [theme_image_style()] (http://api.drupal.org/api/drupal/modules--image--image.module/function/theme_image_style/7) invece di hard- codificare i tag '' – Laxman13
utilizzando la funzione tema sarebbe molto preferito: 'theme ('stile_immagine', array ('style_name' => 'nome', 'percorso' => $ nodo-> campo_utenteimmagine ['und'] [ 0] ['uri'], 'alt' => 'Alt text')); ' – Clive
Sembra carino. Dovrei iniziare a usare quelle funzioni. – Kristoffer
ho paura, nessuna delle soluzioni di cui sopra siano corrette. Non seguono gli standard di Drupal.
// field_video_image is the name of the image field
// using field_get_items() you can get the field values (respecting multilingual setup)
$field_video_image = field_get_items('node', $node, 'field_video_image');
// after you have the values, you can get the image URL (you can use foreach here)
$image_url = file_create_url($field_video_image[0]['uri']);
Maggiori dettagli qui: http://www.computerminds.co.uk/articles/rendering-drupal-7-fields-right-way
Il codice sopra è perfetto. Generalmente la maggior parte delle persone non avrebbe bisogno di fare ciò come descritto sopra, ma se si desidera scrivere un codice che rispetti gli standard Drupal e non si rompa quando le cose sono cambiate o altro, non si può enfatizzare l'importanza di ciò. Fare riferimento a elementi in codice come $ oggetto ['und'] [0] ['elemento'] è una pratica estremamente negativa. Usa sempre field_get_items o un equivalente. –
È inoltre possibile utilizzare il modulo Image URL Formatter. Permette di cambiare il formato del campo al fine di ottenere solo l'URL:
Bonus: funziona con Vista così:
per ottenere stile di immagine url:
$field = field_get_items('node', $node, 'field_image');
$image_url = image_style_url('landingpage_slider', $field[0]['uri']);
mi ha salvato la vita. Grazie! –
Questo non tiene conto dei campi multilingue. Vedi la risposta di @Gergely qui sotto. Anche se pensi che il tuo sito "non avrà mai" bisogno di supportare le traduzioni, PER FAVORE non farlo. Per ulteriori informazioni, consultare http://www.computerminds.co.uk/articles/rendering-drupal-7-fields-right-way –
wonderful..it ha aiutato –