我更改了一些osCommerce代码,以显示左侧边栏上的所有类别和子类别,并且它已成功运行。
不幸的是,它隐藏了主页上的产品。在osCommerce网站的默认主页上,我们获得了本月的产品,并显示了所有产品。
如果我从下面所做的更改中跳过第2步,它会显示产品,但左侧导航不会显示所有类别和子类别。
步骤:
index.php - 在第37行附近更改:
if ($category_depth == 'nested') {
致:
if ($category_depth == 'nested' && isset($HTTP_GET_VARS['cPath'])) {
包含/ application_top.php - 更改第437行:
$cPath = '';
致:
$cPath = '22';
包含/ modules / boxes / bm_categories.php - 查找第99行:
$parent_id = $categories['categories_id'];
添加:
$dbs[] = $categories['categories_id'];
包含/ modules / boxes / bm_categories.php - 在第109行附近更改:
while (list($key, $value) = each($cPath_array)) {
致:
while (list($key, $value) = each($dbs)) {
为什么会出现问题?
答案 0 :(得分:1)
function single_genealogy($category, $level = 0){
global $tree, $categories_string;
// the sons of the current node = the IDs that are matched with this parentid
$q = "select c.categories_id, cd.categories_name, c.parent_id from categories c , categories_description cd
where c.parent_id ='".$category."' and c.categories_id = cd.categories_id order by sort_order , cd.categories_name";
$r = mysql_query($q); //or die/mail/echo mysql_error()
$level++;
$categories_string .= "<ul>";
while($d = mysql_fetch_row($r)){
$cPath_new = 'cPath='.$d[0];
$categories_string .= '<li><a href='.tep_href_link(FILENAME_DEFAULT, $cPath_new).'>'.$d[1].'</a>';
//displaying current node : $d[1]
//recursive call :
$this->single_genealogy($d[0], $level);
echo "</li>";
}
$categories_string .= "</ul>";
}
You need to put this function in bm_categories and call this function in getData()
and you simply find your all categories tree of product.
And now for applying navigation effect using css and jquery you can use www.htmldrive.net
答案 1 :(得分:0)
将第二步更改为以下内容:
$cPath = '0';
您现在拥有的内容,$cPath = '22';
是指无效的类别ID。
如果您将默认类别路径ID设置为顶部,即零(0),这将解决问题,并默认显示该月的新产品。
如果您将该值更改为子类别ID,则该类别的产品将成为主页上的默认值。