0

opencart 2.0 について助けが必要です。トップメニュー。

メイン カテゴリにサブカテゴリが 1 つしかない場合は、コラージュ ページをスキップして、その 1 つのサブカテゴリのサムネイルに直接移動する必要があります。

私はPHPとopencartが初めてです。ヘッダー コントローラーとモデル カタログを変更しようとしましたが、どちらの変更も機能しません。

4

1 に答える 1

0

これに対する答えが必要な人は、catalog/controller/common/header.php と catalog/model/catalog/category.php を編集する必要がありました。

category.php にこの関数を追加しました

public function getCategoryFirstChildId($category_id) {
    $query = $this->db->query('SELECT category_id FROM '. DB_PREFIX .'category WHERE parent_id = '. (int)$category_id .' ORDER BY category_id ASC LIMIT 1');

    return $query->row['category_id'];
}

そしてheader.phpで、次のようにコードを変更しました

/* New Code starts  here  */

/*NEW =>*/  $category_total = $this->model_catalog_category->getTotalCategoriesByCategoryId($category['category_id']);

/*NEW =>*/  $first_child_id = $this->model_catalog_category->getCategoryFirstChildId($category['category_id']);

      if($category_total>1)
{

                // Level 1
                $data['categories'][] = array(
                    'name'     => $category['name'],
                    'children' => $children_data,
                    'column'   => $category['column'] ? $category['column'] : 1,
                    'href'     => $this->url->link('product/category', 'path=' . $category['category_id'])
                );
}

else

{
                           // Level 1
                $data['categories'][] = array(
                    'name'     => $category['name'],
                    'children' => $children_data,
                    'column'   => $category['column'] ? $category['column'] : 1,
                    'href'     => $this->url->link('product/category', 'path=' . $category['category_id']. '_' . $first_child_id)
                );

}

/* New Code ends here  */
于 2015-03-24T15:16:43.970 に答える