0

我想在客户留下评论时显示船旗国

我这样做了:

  • 在 db table review 中添加了一行名为country_id
  • 在我补充说 catalog/model/catalog/review.phppublic function addReview(
    • , country_id = '" . (int)$this->config->get('config_country_id') . "'所以country_id如果他登录,它会存储用户的

现在我该如何调用它并从 Image/flag 中获取图像标志并放入review.tpl

http://forum.opencart.com/viewtopic.php?t=58425中有一个话题没有人能给出解决方案

有什么帮助吗?

4

1 回答 1

0

现在您已经存储了country_id,您可以在加载评论时根据该 id 简单地加载具体国家/地区(分别针对每个评论)。

当从 DB 加载评论时,catalog/controller/product/product.php在方法review()中,结果数组循环通过:

    foreach ($results as $result) {
        $this->data['reviews'][] = array(
            'author'     => $result['author'],
            'text'       => $result['text'],
            'rating'     => (int)$result['rating'],
            'reviews'    => sprintf($this->language->get('text_reviews'), (int)$review_total),
            'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added']))
        );
    }

现在你只需要加载国家来获取它的标志代码,所以你最终可能会得到这样的结果:

    $this->load->model('localisation/country');

    foreach ($results as $result) {
        $country = $this->model_localisation_country->getCountry($result['country_id']);

        $this->data['reviews'][] = array(
            'author'     => $result['author'],
            'text'       => $result['text'],
            'rating'     => (int)$result['rating'],
            'reviews'    => sprintf($this->language->get('text_reviews'), (int)$review_total),
            'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])),
            'flag'       => strtolower($country['iso_code_2']) . '.png'
        );
    }

现在flag索引应该包含类似de.png,gb.png等的值fr.png。只需确保您在模板中为标志图像键入正确的值,并且您拥有具有此类名称的标志图像...

于 2013-10-30T12:37:46.693 回答