Başka bir yolla yaparım. Düğüm ön işlem işlevinizde:
use Drupal\image\Entity\ImageStyle; // Don't forget this use.
function THEMENAME_preprocess_node__NODETYPE(&$variables){
$node = $variables['node'];
if(isset($node->get('field_image')->entity)){
$image_style = 'large'; // Or whatever your image style's machine name is.
$style = ImageStyle::load($style);
$variables['image'] = $style->buildUrl($node->get('field_image')->entity->getFileUri()); // Generates file url.
}
}
Ardından, şablonunuzda (düğüm - NODETYPE.html.twig), resmi şu şekilde oluşturun:
{% if image %}
<img src="{{ image }}" />
{% endif %}
Her ne kadar büyük miktarda görüntü oluşturmak zorunda kalırsanız da, her görüntüye geçmeden önce stilleri bir diziye yüklemenizi öneririm. Ciddi yükleme süresi problemleriyle karşılaştım çünkü 300'den fazla resim yüklemek zorunda kaldım ve her resim için, daha önce hepsini yüklemek yerine stili tek tek yüklüyordum, işte bir örnek, yukarıdakiyle aynı temel:
use Drupal\image\Entity\ImageStyle; // Don't forget this use.
function THEMENAME_preprocess_node__NODETYPE(&$variables){
$node = $variables['node'];
if(isset(node->get('field_images')[0]->entity)){ // Notice how, this time, I check if the FIRST image is set (if it's true, then u'll allow the loop for at least 1 element)
$images_styles = [
'large' => ImageStyle::load('large'),
'thumbnail' => ImageStyle::load('thumbnail')
];
$count = 0;
foreach($node->get('field_images') as $image){
$variables['images'][$count]['large'] = $images_styles['large']->buildUrl($image->getFileUri());
$variables['images'][$count]['thumbnail'] = $images_styles['thumbnail']->buildUrl($image->getFileUri());
$count++;
}
}
}
Sonra tekrar, şablonunuzda (düğüm - NODETYPE.html.twig), görüntüleri şu şekilde yapın:
{% if images %}
<ul>
{% for image in images %}
<li>
<img src="{{ image.large }}" /> // Large image url.
<img src="{{ image.thumbnail }}" /> // Thumbnail image url.
</li>
{% endfor %}
</ul>
{% endif %}
Gerçekten test etmedim ve tüm bunları kafamdan alıyorum, bu yüzden hatalar içerebilir, beni uyarmaktan çekinmeyin, bu yüzden düzelteceğim :-).