Correct use of the "or" operator?

Author Message

Fraser Hore

Sunday 16 October 2005 2:33:21 pm

I'm using a fetch of the attributes of a class to be able to use the attribute names as column headers of a table. The trick bit is i'd like to be able to set the attributes that are printed and therefore the columns that are created. With an if eq statement I can get a match on one attribute identifier (see below), but i'd like to be able to test against the array of desired attributes/columns. I tried to use the or operator (see commented out line) but i'm not sure exactly how it works. Any suggestions?

{*gather attributes for a node object’s class and assign to $attributes variable*}
{def $attributes=fetch( 'content', 'class_attribute_list', hash( 'class_id', $class.object.contentclass_id ) )}

{*start the table*}
<table border="1">

{*create the headers row using each attribute name as a column header*}
<th>
<tr>
{foreach $attributes as $attribute}
{if eq( $attribute.identifier, 'organization_name')}
{*if or( $attribute.identifier [, organization_name' [, 'org_type']])*}
<td>
{$attribute.name|wash}
</td>
{/if}
{/foreach}
</tr>
</th>

Thanks!

Fraser

Bruce Morrison

Sunday 16 October 2005 5:26:14 pm

Hi Fraser

I think you are after something like:

{*gather attributes for a node object's class and assign to $attributes variable*}
{def $attributes=fetch( 'content', 'class_attribute_list', hash( 'class_id', $class.object.contentclass_id ) )}

{*start the table*}
<table border="1">

{*create the headers row using each attribute name as a column header*}
<th>
<tr>
{foreach $attributes as $attribute}
  {if or(eq( $attribute.identifier, 'organization_name'),eq( $attribute.identifier ,'org_type'))}
<td>
{$attribute.name|wash}
</td>
  {/if}
{/foreach}
</tr>
</th>

Cheers
Bruce

My Blog: http://www.stuffandcontent.com/
Follow me on twitter: http://twitter.com/brucemorrison
Consolidated eZ Publish Feed : http://friendfeed.com/rooms/ez-publish

Fraser Hore

Monday 17 October 2005 10:30:02 am

Brilliant! Thanks Bruce it worked!

The examples in the documentation for the "or" operator really threw me off. I couldn't figure out what was being compared and assumed it was the first parameter. Your code makes a lot more sense.

Cheers,

Fraser

Powered by eZ Publish™ CMS Open Source Web Content Management. Copyright © 1999-2014 eZ Systems AS (except where otherwise noted). All rights reserved.

eZ debug

Timing: Jan 19 2025 01:20:12
Script start
Timing: Jan 19 2025 01:20:12
Module start 'layout'
Timing: Jan 19 2025 01:20:12
Module start 'content'
Timing: Jan 19 2025 01:20:13
Module end 'content'
Timing: Jan 19 2025 01:20:13
Script end

Main resources:

Total runtime0.8809 sec
Peak memory usage4,096.0000 KB
Database Queries57

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0067 590.1641152.6250
Module start 'layout' 0.00670.0033 742.789139.4609
Module start 'content' 0.01000.8693 782.2500548.6016
Module end 'content' 0.87930.0015 1,330.851612.1563
Script end 0.8808  1,343.0078 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00330.3699160.0002
Check MTime0.00130.1485160.0001
Mysql Total
Database connection0.00160.181210.0016
Mysqli_queries0.815592.5799570.0143
Looping result0.00070.0753550.0000
Template Total0.843395.720.4216
Template load0.00210.238920.0011
Template processing0.841195.490420.4206
Template load and register function0.00010.012910.0001
states
state_id_array0.00220.246010.0022
state_identifier_array0.00230.266020.0012
Override
Cache load0.00180.2070370.0000
Sytem overhead
Fetch class attribute can translate value0.00070.083020.0004
Fetch class attribute name0.00150.171050.0003
XML
Image XML parsing0.00130.149020.0007
class_abstraction
Instantiating content class attribute0.00000.001560.0000
General
dbfile0.00120.1317220.0001
String conversion0.00000.000840.0000
Note: percentages do not add up to 100% because some accumulators overlap

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1node/view/full.tplfull/forum_topic.tplextension/sevenx/design/simple/override/templates/full/forum_topic.tplEdit templateOverride template
3content/datatype/view/ezimage.tpl<No override>extension/sevenx/design/simple/templates/content/datatype/view/ezimage.tplEdit templateOverride template
3content/datatype/view/ezxmltext.tpl<No override>extension/community_design/design/suncana/templates/content/datatype/view/ezxmltext.tplEdit templateOverride template
7content/datatype/view/ezxmltags/paragraph.tpl<No override>extension/ezwebin/design/ezwebin/templates/content/datatype/view/ezxmltags/paragraph.tplEdit templateOverride template
4content/datatype/view/ezxmltags/line.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/line.tplEdit templateOverride template
1content/datatype/view/ezxmltags/literal.tpl<No override>extension/community/design/standard/templates/content/datatype/view/ezxmltags/literal.tplEdit templateOverride template
1print_pagelayout.tpl<No override>extension/community/design/community/templates/print_pagelayout.tplEdit templateOverride template
 Number of times templates used: 20
 Number of unique templates used: 7

Time used to render debug report: 0.0001 secs