网络营销电子商务研究中心  
How to buy the best prescription safety glasses in Canada? Let's study!
Go Back   网络营销电子商务研究中心 > 网站建设 > ZenCart
User Name
Password
 
FAQ Members List Calendar Cheap Glasses

Reply
 
Thread Tools Display Modes
  #1   IP: 117.95.89.159
Old 2016-04-09, 11:20 AM
Ryland Heights Ryland Heights is offline
初级会员
 
Join Date: 2014-02-10
Posts: 1
Ryland Heights 现在声名狼藉
Default Zencart诡异的子分类地址出错问题

世界末日估计真的要来了,不然怎么会有这么诡异的问题。

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同学自己通过网络教程将侧边的分类展开了,修改了includes/classes/category_tree.php里面的代码:

<span>if</span> (zen_not_null($cPath)) <span>{</span> 改为 <span>if</span> (zen_not_null($cPath) or 1) <span>{</span>

并且在下面两行代码之间

1.reset($cPath_array);
2.while (list($key, $value) = each($cPath_array)) {


插入了<span>$</span>cPath_array = array(#,#); 其中#是表示需要展开的分类的ID,最后在<span>while</span> (list($key, $value) = each($cPath_array)) <span>{</span>之前加入了代码:<span>$</span>new_path = ''<span>;</span>,最终使得让zencart默认不展开的侧边分类显示了子分类,但没想到的是居然导致子分类链接出错。

今天看到一解决方法,在includes/modules/category_row.php文件中类似以下代码的前面:

1.$list_box_contents[$row][$col] = array('params' =&gt; 'class="categoryListBoxContents"' . ' ' . 'style="width:' . $col_width . '%;"',
2. 'text' =&gt; '&lt;a href="' . zen_href_link(FILENAME_DEFAULT, $cPath_new). '"&gt;' . zen_image(DIR_WS_IMAGES . $categories-&gt;fields['categories_image'], $categories-&gt;fields['categories_name'], SUBCATEGORY_IMAGE_WIDTH, SUBCATEGORY_IMAGE_HEIGHT) . '&lt;br /&gt;' . $categories-&gt;fields['categories_name'] . '&lt;/a&gt;');


加入以下代码:

1.$str= zen_href_link(FILENAME_DEFAULT, $cPath_new);
2.$arrs=explode('-',$str);
3. $html_str=$arrs[sizeof($arrs)-1];
4. //echo '&lt;hr&gt;'.$html_str.'&lt;hr&gt;';
5. unset($arrs[sizeof($arrs)-1]);
6. $html_str_arr=explode('_',$html_str);
7. if(sizeof($html_str_arr)&gt;=2){
8. $html_str_arr_tmp=$current_category_id.'_'.$html_str_arr[sizeof($html_str_arr)-1];
9. $return=implode('-',$arrs).'-'.$html_str_arr_tmp;
10. $str= $return;
11. }


并将前面代码中的zen_href_link(FILENAME_DEFAULT, $cPath_new)改成 <span>$</span>str

可是貌似问题仍然无法解决。
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Prescription-glasses.com offers prescription glasses online at discount prices.
All times are GMT +8. The time now is 11:07 AM.


Powered by vBulletin Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.