2017-02-20 26 views
0

У меня есть шаблон Smarty, который в настоящее время вставляет изображение продукта. То, что я хотел бы сделать, это изменить этот код, чтобы он дал мне только src изображения.Получить img src с шаблоном Smarty

Шаблон включает файл «product_icon.tpl» и от того, что я понимаю, что это соответствующий код из этого файла:

{capture name="main_icon"} 
    <a href="{"$product_detail_view_url"|fn_url}"> 
     {include file="common/image.tpl" obj_id=$obj_id_prefix images=$product.main_pair image_width=$settings.Thumbnails.product_lists_thumbnail_width image_height=$settings.Thumbnails.product_lists_thumbnail_height} 
    </a> 
{/capture} 

Затем файл «image.tpl», который был включен там содержится это (обрезается в соответствующей части для краткости):

{capture name="product_image_object"} 
{** Sets image displayed in product list **} 
{hook name="products:product_image_object"} 
    <img class="ty-pict {$valign} {$class} {if $lazy_load}lazyOwl{/if} {if $generate_image}ty-spinner{/if} cm-image" {if $obj_id && !$no_ids}id="det_img_{$obj_id}"{/if} {if $generate_image}data-ca-image-path="{$image_data.image_path}"{/if} {if $lazy_load}data-{/if}src="{if $generate_image}{$images_dir}/icons/spacer.gif{else}{$image_data.image_path}{/if}" alt="{$image_data.alt}" title="{$image_data.alt}" {if $image_onclick}onclick="{$image_onclick}"{/if} {if $image_width || $image_height} style="min-width: {$image_data.width}px; min-height: {$image_data.height}px; "{/if}/> 
    {if $image_data.alt}<span class="stonestreets-caption">{$image_data.alt}</span>{/if} 
{/hook} 
{/capture} 

Могут ли эти фрагменты кода будут объединены и упрощены до вывода только в ГКЗ измененного изображения?

ответ

1

Вы всегда можете использовать prin_r в TPL, чтобы проверить переменные

{$product.main_pair|print_r} 

будет отображаться что-то подобное с различными путями

Array 
(
    [pair_id] => 1072 
    [image_id] => 0 
    [detailed_id] => 1285 
    [position] => 0 
    [detailed] => Array 
     (
      [object_id] => 247 
      [object_type] => product 
      [image_path] => http://localhost/cs-cart-git-dev/images/detailed/1/nokia_n1_perspectives_-_app.jpg 
      [alt] => 
      [image_x] => 5000 
      [image_y] => 3096 
      [http_image_path] => http://localhost/cs-cart-git-dev/images/detailed/1/nokia_n1_perspectives_-_app.jpg 
      [https_image_path] => https://localhost/cs-cart-git-dev/images/detailed/1/nokia_n1_perspectives_-_app.jpg 
      [absolute_path] => /Applications/MAMP/htdocs/cs-cart-git-dev/images/detailed/1/nokia_n1_perspectives_-_app.jpg 
      [relative_path] => detailed/1/nokia_n1_perspectives_-_app.jpg 
     ) 
) 

Теперь более легче обнаружить то, что вам нужно

<img src="{$product.main_pair.detailed.image_path}" width="{$product.main_pair.detailed.image_x}" height="{$product.main_pair.detailed.image_y}" alt="{$product.main_pair.detailed.alt}" /> 

Чтобы изменить размер изображения e на лету, пожалуйста, используйте

{$image_data=$product.main_pair|fn_image_to_display:$image_width:$image_height} 
<img src="{$image_data.detailed.image_path}" width="{$image_data.detailed.image_x}" height="{$image_data.detailed.image_y}" alt="{$image_data.detailed.alt}" /> 
+0

Это действительно удобно. Но это дает мне оригинальный размер. Как определить путь к размерному изображению? – user500665

+0

Простите, что не дает мне ничего? – user500665

+0

Вы изменили $ image_width: $ image_height со своими собственными значениями? – Hungryweb