Привет! поставил это http://www.oscommerce.com/community/contributions,885 дополнение. Работает, но в нем есть баг - подкатегории 3-его уровня не сортируются, т.е. выводятся в порядке их id. В пхп не силен, помогите пожалуйста правильно составить запрос к бд (с сортировкой). В этом дополнении всего один файл includes/boxes/categories.php, вот кусочек кода этого файла, проблемную часть я выделил комментарием. Посмотрите плиз!
категория 1у
- категория 2у
- категория 3у. Подкатегории этой категории не сортируются.
<?php
$status = tep_db_num_rows(tep_db_query('describe ' . TABLE_CATEGORIES . ' status'));
$query = "select c.categories_id, cd.categories_name, c.parent_id, c.categories_image
from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd
where c.categories_id = cd.categories_id";
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);
$categories_string = '';
$info_box_contents = array();
$row = 0;
$col = 0;
while ($categories = tep_db_fetch_array($categories_query)) {
if ($categories['parent_id'] == 0) {
$temp_cPath_array = $cPath_array;
unset($cPath_array);
$cPath_new = tep_get_path($categories['categories_id']);
$text_subcategories = '';
$subcategories_query = tep_db_query($query);
while ($subcategories = tep_db_fetch_array($subcategories_query)){
if ($subcategories['parent_id'] == $categories['categories_id']){
$cPath_new_sub = "cPath=" . $categories['categories_id'] . "_" . $subcategories['categories_id'];
$text_subcategories .= '<a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_new_sub, 'NONSSL') . '" class="menusubcateg">' . ' ' . tep_image(DIR_WS_IMAGES . 'pointer_blue_light.gif', '') . $subcategories['categories_name'] . '</a>';
if (SHOW_COUNTS == 'true') {
$products_in_category = tep_count_products_in_category($subcategories['categories_id']);
if ($products_in_category > 0) {
$text_subcategories .= ' (' . $products_in_category . ')';
}
}
$q2= "select * from categories where parent_id=" . $subcategories['categories_id'];
$rec2 = mysql_query($q2);
/////////////////////////////////////
// Как запросить сортировку здесь?
/////////////////////////////////////
while ($rq2 = mysql_fetch_array($rec2)) {
$snd_sub_category = $rq2['categories_id'];
$q3= "select categories_name from categories_description where categories_id=" . $snd_sub_category;
$rec3 = mysql_query($q3);
$rq3 = mysql_fetch_array($rec3);
$snd_categories_name = $rq3[categories_name];
$cPath_new_sub = "cPath=" . $categories['categories_id'] . "_" . $subcategories['categories_id'] . "_" . $snd_sub_category;
$text_subcategories .= '' . '<a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_new_sub, 'NONSSL') . '" class="menusubcategsec">' . tep_image(DIR_WS_IMAGES . 'pointer_blue.gif', '') . $snd_categories_name . '</a>' . "";
}
/////////////////////////////////////
}
}
$buildtext = '<div class="menucateg"><span style="background: #231f20;">' . $categories['categories_name'] . '</span></div>';
if (SHOW_COUNTS == 'true') {
$products_in_category = tep_count_products_in_category($categories['categories_id']);
if ($products_in_category > 0) {
$buildtext .= ' (' . $products_in_category . ')';
}
}
$buildtext .= '</b></a>' . $text_subcategories;
$info_box_contents[$row] = array('align' => 'left',
'params' => 'class="smallText" width="130" valign="top"',
'text' => $buildtext); //befordch show category count
$col ++;
if ($col > 0){
$col = 0;
$row ++;
}
$cPath_array = $temp_cPath_array;
}
}
new noborderBox2($info_box_contents, true);
?>