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

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


Go to End
Reply


35 Posts   6718 Views

Avatar
Craftnet

Community Member, 58 Posts

2 August 2012 at 1:10pm

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

Avatar
colymba

Community Member, 26 Posts

3 August 2012 at 4:42am

Edited: 03/08/2012 4:43am

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;
			$parsedImages->push($img);
		}
		
		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 %>
				$Width
			<% 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.

Avatar
Liam

Community Member, 470 Posts

9 August 2012 at 8:02am

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.

Go to Top