Rendera bilds url från field_image

Events happening in the community are now at Drupal community events on www.drupal.org.
victorv's picture

Det jag vill göra är att skriva ut en bilds url till originalet och thumbnailen i en speciell doctype.

I node--test.tpl behöver jag få ut URL:en till originalet i en länk tillsammans med fältet "title" utskrivet och som klickbar länk behövs thumbnailen. De guider jag kikat på saknar info om hur jag printar en thumbnail i node--XXX.tpl och/eller hur man skriver ut specifika delar av image_field där url är en del.

Så är det någon som vet hur man går tillväga för att skriva ut en bilds URL i node.tpl (från field_image) samt dess thumbnail?

Guider jag kikat på är bl.a. http://drupal.org/node/1115204

EDIT: Kom på en workaround som dock inte känns ok... I CKEditor kan man klicka i title på länkar och i länkarna lägga in bilder. Det är dock lite omständigt och borde gå att jobba sig runt på ett snyggare sätt.

Comments

Content Template is easier

carlmcdade's picture

I would use the content template module instead. If you click on the body area you get a list of possibilities for output to screen. Easier than trying to figure out the variables yourself. Use CCK imagefield and imagecache to make the variables available in the content template module.

Edit: This is a D6 answer. I have not studied content template in D7 yet.

Thanks

victorv's picture

I'll check out the use of a module separate for this, however I do use Drupal 7 and I want most functions in my own code and not in additional modules.

/Victor

The Code way

carlmcdade's picture

The code way ( which I think is best 99% of the time BTW ) is to use var_dump or print_r on the $content variable or $node variable (depends on the Drupal version) to get the whereabouts of the values needed. Then use <?php print render($content['body']); ?> to place the values in your HTML or PHP output.

Det låter som att det du

JockeL's picture

Det låter som att det du försöker göra går att lösa med views och eva.

Men om du vill använda node.tpl.php så kan du först göra en preprocess i template.php och skapa ett par nya variabler.

<?php
THEMENAME_preprocess_node
(&$vars) {
  if (
$vars['type'] == 'NODETYPE') {
   
$uri = $vars['field_image'][0]['uri'];
   
$url = file_create_url($uri);
   
$vars['image_url'] = l($url, $url);
   
$vars['image_thumbnail'] = l(theme_image_style(array('path' => $uri, 'style_name' => 'thumbnail', )), $url, array('html' => TRUE));
  }
}
?>

Och sedan kan du använda $image_url och $image_thumbnail i din node.tpl.php

<?php
 
echo $image_thumbnail;
  echo
$image_url;
?>

Funktionerna jag har använt kan du läsa mer om här: l, file_create_url, theme_image_style

Glöm inte att ändra THEMENAME till namnet på ditt tema NODETYPE till namnet på din nodtyp. Du kan också behöva ändra $vars['field_image'][0]['uri'] så att det passar ditt fälts namn, aktivt språk m.m. Använd devel för att få ut vad du har att jobba med.

Som Joakim säger kan du lösa

pontus_nilsson's picture

Som Joakim säger kan du lösa det med en template funktion, views + eva och jag tror även Display Suite kan fixa det där. Eller kanske ännu enklare använda Panels för att ta över visningen av sidan och där i lägga till fältet två gånger med olika formatering. tpl-filer blir lite jobbigt i längden att underhålla när du vill förändra befintligt beteende imo.

//Pontus Nilsson, Digitalist

Tackar för hjälpen

victorv's picture

Tack så mycket. Har börjat jobba med views nu.

Sweden

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: