Hi Everyone,
Just wondering if anyone could help me. On my website menu at
http://www.cukoo.co.uk/catalog/index.php
I have a list of categories in the left column which I'm trying to format as described below.
Men - A CAT. NAME - I WANT IT TO BE BOLD BUT NOT CLICKABLE
Breitling
Cartier
Citizen
- LINE BREAK
Women- SAME HERE
Breitling
Cartier
Citizen
I'm not that familiar with php so would love a few pointers if anyone knows if this is possible! Here is the code that is generating the list:
<?php
/*
$Id: all_categories.php,v 1.6 2002/04/22 20:34:00 clescuyer Exp $
osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com/
Copyright (c) 2002 Goélette
Christian Lescuyer <cl@goelette.net>
http://www.goelette.net/
http://oscommerce.goelette.net/
History: 1.1 Creation
1.2 Modified query for compatibility with older databases
1.3 Query in 1.2 was wrong for older databases
1.4 SHOW_COUNTS test corrected
1.5 Added COMPACT_CATEGORIES option to display all sub-categories on one line
1.6 Removed COMPACT_CATEGORIES option
Corrected the cpath generation
Bold categories "path" to selected category, an idea from Peter Fürsicht
Released under the GNU General Public License
*/
// Preorder tree traversal
function preorder($cid, $level, $foo, $cpath)
{
global $categories_string, $HTTP_GET_VARS;
// Display link
if ($cid != 0) {
for ($i=0; $i<$level; $i++)
$categories_string .= '';
$categories_string .= '<a href="' . tep_href_link(FILENAME_DEFAULT, 'cPath=' . $cpath . $cid) . '">';
// 1.6 Are we on the "path" to selected category?
$bold = strstr($HTTP_GET_VARS['cPath'], $cpath . $cid . '_') || $HTTP_GET_VARS['cPath'] == $cpath . $cid;
// 1.6 If yes, use <b>
if ($bold)
$categories_string .= '<b>';
$categories_string .= $foo[$cid]['name'];
if ($bold)
$categories_string .= '</b>';
$categories_string .= '</a>';
// 1.4 SHOW_COUNTS is 'true' or 'false', not true or false
if (SHOW_COUNTS == 'true') {
$products_in_category = tep_count_products_in_category($cid);
if ($products_in_category > 0) {
$categories_string .= '(' . $products_in_category . ')';
}
}
$categories_string .= '<br>';
}
// Traverse category tree
foreach ($foo as $key => $value) {
if ($foo[$key]['parent'] == $cid) {
// print "$key, $level, $cid, $cpath<br>";
preorder($key, $level+1, $foo, ($level != 0 ? $cpath . $cid . '_' : ''));
}
}
}
?>
<!-- all_categories //-->
<tr>
<td valign="top">
<br>
<br>
<?php
//////////
// Get categories list
//////////
// 1.2 Test for presence of status field for compatibility with older versions
$status = tep_db_num_rows(tep_db_query('describe categories status'));
$query = "select c.categories_id, cd.categories_name, c.parent_id
from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd
where c.categories_id = cd.categories_id";
// 1.3 Can't have 'where' in an if statement!
if ($status >0)
$query.= " and c.status = '1'";
$query.= " and cd.language_id='" . $languages_id ."'
order by sort_order, cd.categories_name";
$categories_query = tep_db_query($query);
// Stuff in an array
while ($categories = tep_db_fetch_array($categories_query)) {
$foo[$categories['categories_id']] = array('name' => $categories['categories_name'], 'parent' => $categories['parent_id']);
}
// Initiate tree traverse
$categories_string = '';
preorder(0, 0, $foo, '');
//////////
// Display box contents
//////////
$info_box_contents = array();
$info_box_contents[] = array('align' => 'left', 'text' => $categories_string);
new index($info_box_contents);
?>
</td>
</tr>
<!-- all_categories_eof //-->
Any help would be GREATLY appreciated!!
(Also I need all the menu items to align to the top - i've stuck valign="top" everywhere i can think of in the code and it doesn't seem to be having any effect!)
Lizzyd