Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

General Questions

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, biapar, Willr, Ingo, swaiba, simon_w

[SOLVED] SS3 Upload many files/images [SOLVED] Resize image if it's larger than a certain width


35 Posts   5221 Views


2 August 2012 at 1:10pm Community Member, 58 Posts

I added your question to topic.
Maybe more people look in this topic and someone solve your issue :)


3 August 2012 at 4:42am (Last edited: 3 August 2012 4:43am), Community Member, 25 Posts

for some reason the function call doesn't work within the loop when used with $Up...
so here is an alternative... maybe not the best solution but seems to work this time.

Add this to your controller:

public function GetImages()
      $images = $this->Images();
      $parsedImages = new ArrayList();
      foreach ($images as $img)
         if($img->getWidth() > 800) $img->LargerThan800 = true;
      return $parsedImages;

and use it like this in your template

<% loop $GetImages %>
         <% if $LargerThan800 %>
            <a href="$SetWidth(800).URL" class="itemPhotos <% if MultipleOf(5) %> itemPhotosLast <% end_if %>" title="$Title">$CroppedImage(158,158)</a>
         <% else %>
         <% end_if %>
      <% end_loop %>

basically it goes through the attached images and add a variable if larger than 800px which is then available in the template. You can do other test in the same way if needed.


9 August 2012 at 8:02am Community Member, 470 Posts

Yup that works.

Thanks for taking the time to look into it and get a working solution, even after all this time.

I changed <% loop $GetImages %> to <% loop GetImages %> for it to work in case anybody following this topic needs it.