OSC2NUKE is PHPNUKE with OSCOMMERCE running as a module within PHPNUKE.
Because the menu needs to be presented within PHPNUKE, the code on the PHPNUKE block is different to that of OSCOMMERCE.
Here is the code for the PHPNUKE/OSC2NUKE block:
Code: Select all
<?php
if ( !defined('BLOCK_FILE') ) {
Header("Location: ../index.php");
die();
}
if ((USE_CACHE == 'true')) {
$content = tep_cache_categories_box();
}else{
global $foo, $categories_string, $id, $languages_id, $cPath;
function tep_show_category($counter) {
global $foo, $categories_string, $id;
for ($a=0; $a<$foo[$counter]['level']; $a++) {
$categories_string .= " ";
}
$categories_string .= '<a href="';
if ($foo[$counter]['parent'] == 0) {
$cPath_new = 'cPath=' . $counter;
} else {
$cPath_new = 'cPath=' . $foo[$counter]['path'];
}
$categories_string .= tep_href_link('index.php', $cPath_new);
$categories_string .= '">';
if ( ($id) && (in_array($counter, $id)) ) {
$categories_string .= '<b>';
}
$categories_string .= $foo[$counter]['name'];
if ( ($id) && (in_array($counter, $id)) ) {
$categories_string .= '</b>';
}
if (tep_has_category_subcategories($counter)) {
$categories_string .= '->';
}
$categories_string .= '</a>';
if (SHOW_COUNTS == 'true') {
$products_in_category = tep_count_products_in_category($counter);
if ($products_in_category > 0) {
$categories_string .= ' (' . $products_in_category . ')';
}
}
$categories_string .= '<br>';
if ($foo[$counter]['next_id']) {
tep_show_category($foo[$counter]['next_id']);
}
}
$categories_string = '';
$categories_query = mysql_query("select c.categories_id, cd.categories_name, c.parent_id from categories c, categories_description cd where c.parent_id = '0' and c.categories_id = cd.categories_id and cd.language_id='" . $languages_id ."' order by sort_order, cd.categories_name");
while ($categories = mysql_fetch_array($categories_query)) {
$foo[$categories['categories_id']] = array(
'name' => $categories['categories_name'],
'parent' => $categories['parent_id'],
'level' => 0,
'path' => $categories['categories_id'],
'next_id' => false
);
if (isset($prev_id)) {
$foo[$prev_id]['next_id'] = $categories['categories_id'];
}
$prev_id = $categories['categories_id'];
if (!isset($first_element)) {
$first_element = $categories['categories_id'];
}
}
if ($cPath) {
$new_path = '';
$id = split('_', $cPath);
reset($id);
while (list($key, $value) = each($id)) {
unset($prev_id);
unset($first_id);
$categories_query = mysql_query("select c.categories_id, cd.categories_name, c.parent_id from categories c, categories_description cd where c.parent_id = '" . $value . "' and c.categories_id = cd.categories_id and cd.language_id='" . $languages_id ."' order by sort_order, cd.categories_name");
$category_check = mysql_num_rows($categories_query);
if ($category_check > 0) {
$new_path .= $value;
while ($row = mysql_fetch_array($categories_query)) {
$foo[$row['categories_id']] = array(
'name' => $row['categories_name'],
'parent' => $row['parent_id'],
'level' => $key+1,
'path' => $new_path . '_' . $row['categories_id'],
'next_id' => false
);
if (isset($prev_id)) {
$foo[$prev_id]['next_id'] = $row['categories_id'];
}
$prev_id = $row['categories_id'];
if (!isset($first_id)) {
$first_id = $row['categories_id'];
}
$last_id = $row['categories_id'];
}
$foo[$last_id]['next_id'] = $foo[$value]['next_id'];
$foo[$value]['next_id'] = $first_id;
$new_path .= '_';
} else {
break;
}
}
}
tep_show_category($first_element);
$content = $categories_string;
}
?>
I'll post any solution in the OSC2NUKE forums, which I'm sure will bring in some sales for you guys.
Thanks,
Chris Barnett