At 09:54 PM 3/25/2003 -0800, you wrote:
Hi, Using IC4.8.5 on Redhat 7.2, default db, foundation. I'm having trouble finding a solution to this problem using the [item-alternate] tag. I use it on the results page to display 4 items per row, like this [item-alternate 4]: Category#1 X X X X X X X X Category#2 X X X X X X X X etc. However, I have several categories and less than 4 items in some categories. This causes it to alternate leaving white space, for example, Category#2 starts out with item#4, so it alternates, as it should: Category#1 X X X Category#2 X X X X X X X etc. I need to alternate *only* if I am in the 4th column *unless* the category changes. How is this best overcome? I have been trying to implement some sort of counter using [calc] and [scratch] testing for column number 4, etc., but I just can't get it, and it seems too slow. I have looked into the looping tags but I don't quite understand them all. I've checked the mail archives but I am not sure what tag I should be using or what term to search on. Below is an example of my standard and 'counting column' code.
I think you are running into order of interpolation issues, and some of your code was in disrepair. Try the (untested) changes I made below. Also, you might try out [table-organize], I have found it very useful.
Best, Dan
Thanks to anyone who can offer any help!
SKR
_________________________________
Here is my standard working code:
<table>
[search-list]
[item-change 1][condition][item-field
category][/condition]
<tr>
<td colspan="4">[item-field category]</td>
</tr>
<tr valign="bottom">
[/item-change 1]
<th><IMG SRC="thumb/[item-code]_b.jpg"></th>
[item-alternate 4]</tr><tr valign="bottom"><td
colspan="4"></td></tr>
<tr valign="bottom">[else][/else][/item-alternate]
[/search-list]
</tr>
</table>
Here is my attempt at counting columns. I think it
would work if it ever compared to < 4 correctly:
<table>
[search-list]
[item-change 1][condition][item-field
category][/condition]
<tr>
<td colspan="4">[item-field category]</td>
</tr>
<tr valign="bottom">
<!-- reset column counter on new category-->
[seti col_count]0[/seti]
- [seti col_count]0[/seti]
+ [item-calc]$Scratch->{col_count} = 0; return;[/item-calc]
[/item-change 1] <!-- add 1 to the counter which indicates column # --> [seti col_count][calc][scratch col_count] + 1[/calc][/seti]
Change this to [item-calc] as well.
<th><IMG SRC="thumb/[item-code]_b.jpg"></th>
<!-- if column # is equal to 4, terminate the row,
else -->
[if type=data term="[scratch col_count]" op="<"
compare="4"][else]</tr><tr valign="bottom"><td
colspan="4"></td>
</tr>
<tr valign="bottom">[seti
col_count]0[/seti][/else][/if]
This would be
[item-calc]
if ( $Scratch->{col_count} < 4 ) {
# Do nothing?
} else {
$Scratch->{col_count} = 0;
# return html stuff
}
[/item-calc]
--
/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\
| Dan Browning, Kavod Technologies, <suppressed> |
| 6700 NE 162nd Ave, Suite 210, Vancouver, WA (360) 843-4074 x217 |
\~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/
A large number of installed systems work by fiat. That is, they work
by being declared to work.
-- Anatol Holt
_______________________________________________
interchange-users mailing list
suppressed
http://www.icdevgroup.org/mailman/listinfo/interchange-users
Mail converted by mhonarc 2.6.15
This archive provided courtesy of JSW4.NET, Internet Hosting Services for Small Business.