世界末日估计真的要来了,不然怎么会有这么诡异的问题。 C同学将原来用于测试的zencart商品分类进行了一系列的移动,将原来属于商品分类ID为6下面的子分类分别移动到商品分类ID为3和9的下面,于是诡异的问题出现了。 被移走的分类居然个个那么的不忘本,访问的地址居然会带着原来旧目录的ID,伪静态的地址里统一的加了c-6,于是属于分类3下的子分类地址是c-6_3,属于分类9下的子分类地址成了c-6_9。 这个问题本来大家都没发现,今天C同学突然说某个分类的归属出错了,表现出来的是面包屑导航出错了,路径前面多了一个没有关系的分类归属,于是我研究了一下,发现了上述问题,只要当时从分类id为6下的子分类移出去的全部都有类似问题,自动在面包屑导航前面加上了个已经没有关系的id为6的分类名。 于是我去掉了伪静态,发现问题一样,动态地址同样会自己扯上旧的分类ID;于是我删除了网站缓存,没有用;于是去删除了伪静态的缓存,发现问题任然没有解决;我又试了后台重新修改分类再保存,没有解决问题;我到数据库分类表格里去找,表格里ID归属正常,找不到问题;搜索数据库也无果……我郁闷了! 而且更诡异的是,在分类ID为3或9下的那些从6移过来的子分类的地址里,删除了6_,也就是手动将地址改为c-3或者c-9,居然能正常访问,面包屑导航出错的问题也得到解决…… 不写入数据库,和缓存没关系,我的zencart是最新的1.5.1版本的,这到底是怎么回事呢?哪个大侠给指点指点啊! Update 2012-12-21
因为备份的目录错误,鬼使神差的,原来C同学自己通过网络教程将侧边的分类展开了,修改了
并且在下面两行代码之间
reset($cPath_array);
while (list($key, $value) = each($cPath_array)) {
插入了
今天看到一解决方法,在
$list_box_contents[$row][$col] = array('params' => 'class="categoryListBoxContents"' . ' ' . 'style="width:' . $col_width . '%;"',
'text' => '<a href="' . zen_href_link(FILENAME_DEFAULT, $cPath_new). '">' . zen_image(DIR_WS_IMAGES . $categories->fields['categories_image'], $categories->fields['categories_name'], SUBCATEGORY_IMAGE_WIDTH, SUBCATEGORY_IMAGE_HEIGHT) . '<br />' . $categories->fields['categories_name'] . '</a>');
加入以下代码:
$str= zen_href_link(FILENAME_DEFAULT, $cPath_new);
$arrs=explode('-',$str);
$html_str=$arrs[sizeof($arrs)-1];
//echo '<hr>'.$html_str.'<hr>';
unset($arrs[sizeof($arrs)-1]);
$html_str_arr=explode('_',$html_str);
if(sizeof($html_str_arr)>=2){
$html_str_arr_tmp=$current_category_id.'_'.$html_str_arr[sizeof($html_str_arr)-1];
$return=implode('-',$arrs).'-'.$html_str_arr_tmp;
$str= $return;
}
并将前面代码中的 可是貌似问题仍然无法解决。 (责任编辑:最模板) |