1

Opencart v1.5.4.1の製品ページで、製品のカテゴリparent_idを取得する方法はありますか? カテゴリparent_idに基づいてボタンのhrefを変更しようとしているのは何ですか..parent_id = 20の場合、ボタンにはhref1が必要です.

これまでのところ、私はこれを行ってきましたが、うまくいきません。

$this->load->model('tool/image');" "の前に追加

$product_cat = $this->model_catalog_product->getCategories($product_id);      
$product_cat_parent = $this->model_catalog_category->getCategory($product_cat[0]['category_id']);
            if ($product_cat_parent['parent_id'] == '20') {
                $this->data['sizeguide'] = $this->url->link('faq/faq/info', 'fpath=12');
            } else {
                $this->data['sizeguide'] = $this->url->link('faq/faq/info', 'fpath=13');
            }

テンプレートファイル:

<a class="button2 sizeguidebox" href="<?php echo $sizeguide; ?>"><?php echo $text_sizeguide; ?></a>
4

1 に答える 1

1

これはより複雑に見えますが、実際にはよりシンプルで効率的なチェック方法です。現在の製品に関連するすべてのカテゴリを選択し、すべてのカテゴリ情報を検索し、parent_id が 20 のカテゴリをフィルタリングします。クエリに結果がある場合 (つまり、カテゴリの 1 つが ID 20 のカテゴリのサブカテゴリである場合) ) その後、それに応じて faq 情報を設定します

$product_cat = $this->model_catalog_product->getCategories($product_id);
$result = $this->db->query("
SELECT
    `c`.`parent_id`
FROM
    `" . DB_PREFIX . "category` `c`
LEFT JOIN
    `" . DB_PREFIX . "product_to_category` `p2c`
ON
    `c`.`category_id` = `p2c`.`category_id`
WHERE
    `c`.`parent_id` = '20'
AND
    `p2c`.`product_id` = '" . (int) $product_id . "'
");

if($result->num_rows > 0) {
    $this->data['sizeguide'] = $this->url->link('faq/faq/info', 'fpath=12');
} else {
    $this->data['sizeguide'] = $this->url->link('faq/faq/info', 'fpath=13');
}

これはテストされていませんが、理論的には機能するはずです。

于 2012-12-15T23:22:16.737 に答える