Forums / Setup & design / Only show image table if the image exists?

"Please Note:
  • At the specific request of Ibexa we are changing this projects name to "Exponential" or "Exponential (CMS)" effective as of August, 11th 2025.
  • This project is not associated with the original eZ Publish software or its original developer, eZ Systems or Ibexa".

Only show image table if the image exists?

Author Message

Trond Åge Kvalø

Monday 15 March 2004 12:43:44 am

I have altered the Folder class a bit to include an image. Then I've made a template that shows the image in a right justified table.

Problem is that the image is not required, and now I want to check to see if there's an image before I show the table.

At the moment I'm also assuming a fixed size on this image. But that is bit strict. Could someone help me with how to scale the image proportionally to a fixed with?

here's the code for my image table:

{section loop=$children}
	<TABLE border='0' cellspacing='0' cellpadding='0' align='right' CLASS='image-right'>
		<tr><TD width='155'><img src='{$:item.object.data_map.bilde.content[reference].full_path}' width='155' height='88'></TD>
		</tr><tr><TD CLASS='space10px'>&nbsp;</TD></TR>
	</TABLE>

best regards
trondåge

trondåge

Trond Åge Kvalø

Monday 15 March 2004 12:54:03 am

Ehhrm.... it was actually in the docs..... How bizarre. That's the last place I'd look ;-o

http://ez.no/ez_publish/download/changelogs/ez_publish_3_3/new_image_system

well, well. Now I'll try to make it work....

trondåge

trondåge

Trond Åge Kvalø

Monday 15 March 2004 1:21:40 am

The docs says:

"A filter entry in the image alias consist of the name of the filter and the filter parameters separated with a =, each parameter is separated with a semicolon (;)"

But how about giving us an example?

It's quite annoying when the documentation guides you <b>almost</b> to the solution. Compare it to reading a crime novel where the last chapters are missing....

From what I understand from the docs this is how I should do it:

{$:item.object.data_map.bilde.content.url.geometry/scalewidth=155}

But I have a feeling that this is not entirely correct... please show me how to do this

best regards
trondåge

trondåge

Tore Skobba

Monday 15 March 2004 1:57:41 am

Hi

As I understand it you have two problems. Need to scale image and conditional template code for displaying folders with and without an image.

Image scaling is set up in the settings/override/image.ini.append. There you will find lots of stuff. Basically you must make an filter for your image. For example:

# Scale images to 230;110. NOT keeping aspect ratio
[ingress]
Reference=reference
Filters[]=geometry/scaleexact=230;110

# Scale images larger than 460;460 down to keeping aspect ratio.. I.e the image is simply NEVER widther og heigher than 460 px.
[xlarge]
Reference=reference
Filters[]=geometry/scaledownonly=460;460

Then in your template you must use code to view images:

{section show=$item.data_map.bilde.content.is_valid}
{* Image is available *}
<a href={$item.data_map.bilde.content.orginial.url|ezroot}>{attribute_view_gui attribute=$item.data_map.bilde image_class="ingress"}</a>
{* Image size is controlled by using image class="filtername", where filter name is in image.ini.append.
{section-else}
{* There is no image *}
{/section}

PS: Replace $item with $node if not within an sectin loop.

Cheers
Tore

Trond Åge Kvalø

Monday 15 March 2004 3:39:57 am

Thank you, Tore!

Much appreciated :-)

As far as I've understood, I also have to specify an AliasList[]=my_new_filter_name in the [AliasSettings] section , right?

And what does the Reference=reference line do?

trondåge

trondåge

Tore Skobba

Monday 15 March 2004 4:10:08 am

>I also have to specify an AliasList[]=my_new_filter_name in the [AliasSettings] >section , right?

Maybee, maybee not. If the default AliasList does not suit your needs then you define your own in the design/override/image.ini.append file.

>And what does the Reference=reference line do?

Beats me, probably somehting to do with some advanced functionality.. I just keep it there.. I.e when making an new filter I use copy&paste.