Very Urgent

nine007

Member
Hallo all

Please help

I have a database of names in fabrik, I want to view it in detail view in multiple columns, say 4, but I can not use css3 because of ie8.

I want the data to appear in 4 columns in vertical alphabet order and not horizontal, like this

1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16

please help urgently.

thanx
 
Not quite sure what you mean.
You are running fabrik3?
You have a fabrik list linking to a database table containing names?
You want to show the list of names, but not as a "normal" list but in 4 columns?

I think you'll need a custom list template to pick the records and display in a HTML table or DIVs (horizontal ordering would be easier). You can use the div template as a start.
 
vertical ordering

Thank you for responding

The horizontal ordering is easier but the customer dont want it, he only wants vertical ordering, this is easy with css3 but does not work with ie8.

would really like some help

thanx
 
Depending on what you need exactly (filtering possible,...) and the amount of data ((several pages of them,...), it might be a tricky thing to do.
You definitively need a custom template to acheive that.
Do you have a graphical example (made with Photoshop for instance) of the expected result?
 
Well one of the things that you have to keep in mind is how many verticle rows and columns you want.

For instance if you are running alphabetically vertically at what point does the code decide to create the next column? If you want it to look nice and even and stay like this as you add new records then the template is going to have to do some calculation before it starts displaying the information.

So for instance at the moment you have around 50 entries. If you only want it to display four columns across the code will have to obtain the total count, so lets call it 50, divide by four, which is 12.5, round up or round down so using down with be 12.

Only at this point can the code run to display 12 records in the first column, 12 in columns 2 and 3 and the remainder in column 4.

You could use a table layout instead of CSS...... I'm sure somebody could do it for you for a small payment. :)
 
If you post the code you have so far, I'll see if it can be easily tweaked to do what you need.

I can't write this from scratch for you, as I'm too busy dealing with paying customers. if you wanted to up your subscription to Bronze, that would get you much higher up the support queue ...

-- hugh
 
Good Day

Thank you for the responces, The template I have is a normal div template with css3 codes
.columns{
-webkit-column-count: 4;
-webkit-column-gap: 10px;
-webkit-column-rule: 0px dotted black;
-moz-column-count: 4;
-moz-column-gap: 10px;
-moz-column-rule: 0px dotted black;
column-count: 4;
column-gap: 10px;
column-rule: 0px dotted black;
}

Wich works great with firefox and chrome but it does not work in ie.

The code I am looking at ist at this website
http://www.inkplant.com/code/mysql-vertical-sort.php

But I dont know how to implement it in a template.

thanx
 
I can't see a "normal div template" on your site (only f3_div_catalog....).
If you want to use the code of your link you have to start with a template displaying a HTML table (e.g. clone teh default template) and adapt it.

I think it's easier to modify you xxx_div_ template by adding an extra div for every column you want to display (float:left) and displaying x rows inside those divs without float.

As felixkat says: you'll have to compute the number of columns and rows depending on your number of records
and maybe you should subscribe for silver to get such individual work done.
 
orderd lists

Good Day

I have managed to use this code but it still only use 1 column and not 4 as specified, could anyone help?

<?php
$items = array($this->_row->data->artists___artist);//create an array with your data

// Default # of Columns
$numcols = 4;

// Number of Items
$numitems = count($items);

// Number of Rows
$numrows = ceil($numitems/$numcols);

echo '<table>';
for ($row=1; $row <= $numrows; $row++)
{
$cell = 0;
echo ' <tr>'."\n";
for ($col=1; $col <= $numcols; $col++)
{
echo ' <td>'."\n";

if ($col===1)
{
$cell += $row;
print $items[$cell - 1];
}
else {
$cell += $numrows;
print $items[$cell - 1];
}
echo ' </td>'."\n";
}
echo ' </tr>'."\n";
}
echo '</table>';
?>

thanx
 

Members online

No members online now.
Back
Top