2016-04-19 9 views
0

ich gesucht und gefunden, Module und Lösung, aber alle sind für offenen Wagen 1, ich will für offenen Wagen 2.OpenCart 2 - anzeigen Kategorie Titel auf Produktseite

in product.tpl

<ul class="list-unstyled"> 
    <?php if ($manufacturer) { ?> 
    <li><?php echo $text_manufacturer; ?> <a href="<?php echo $manufacturers; ?>"><?php echo $manufacturer; ?></a></li> 
    <?php } ?> 
    <li><?php echo $text_model; ?> <?php echo $model; ?></li> 
    <?php if ($reward) { ?> 
    <li><?php echo $text_reward; ?> <?php echo $reward; ?></li> 
    <?php } ?> 
    <li><?php echo $text_stock; ?> <?php echo $stock; ?></li> 
    </ul> 

Ich möchte den Kategorietitel in dieser Liste anzeigen. Ich konnte diese Option nicht im Admin-Panel finden, dann entschied ich, es manuell zu tun. Ich weiß, muss etwas in product.php tun, aber keine Ahnung, wie Produktname

$data['category_title'] = $this->request->get['category_title']; 

Dank im Voraus

+0

Haben Sie eine Kategorie-ID in der Produktseite? –

+0

@SankarV nein, '/index.php? Route = Produkt/Produkt & Produkt_ID = 55' nur Produkt 'ID' –

+0

Dann müssen Sie eine Modellfunktion schreiben, um alle Produktkategorien abzurufen. –

Antwort

0

Pedram, Ihre Website-URL sollte

index.php?route=product/product&path=20_27&product_id=41 

Hier ist der Pfad erhalten = 20 → category_id

Aber Ihre URL hat nicht Pfad Variable, weil Sie direkt auf der Suchseite gehen oder Startseite Produktliste. Wenn Sie den Titel der Kategorie erhalten möchten, müssen Sie Code über die Produkt-ID entwickeln.

Hier Code zu bekommen Kategorie Titel

product.php → controller file

$Categories = $this->model_catalog_category->getCategoryName($this->request->get['product_id']); 

category.php → Model file

public function getCategoryName($product_id) { 
     $query = $this->db->query("SELECT DISTINCT(cd.name),p2c.product_id,cd.category_id FROM " . DB_PREFIX . "product_to_category p2c, " . DB_PREFIX . "category_description cd WHERE p2c.product_id = '".$product_id."' AND cd.category_id = p2c.category_id AND cd.category_id != 1");  
     return $query->rows; 
} 

Wenn Ihr Produkt unter mehr als einer Kategorie auswählen, dann wird es Reihe von Ergebnis gibt sonst wird es ein Ergebnis geben.

+0

Danke für die Antwort, aber nach dem Hinzufügen dieser Codes, wie kann ich diese Variable in product.tpl Echo? –

0

Pedram, Wenn Sie das Produkt nicht in mehrere Kategorien auswählen möchten, ändern Sie den folgenden Code.

product.php (Controller)

$data['category_title'] = $this->model_catalog_category->getCategoryName($this->request->get['product_id']); 

category.php (Modell)

public function getCategoryName($product_id) { 
$query = $this-db-query("SELECT DISTINCT(cd.name),p2c.product_id,cd.category_id FROM " . DB_PREFIX . "product_to_category p2c, " . DB_PREFIX . "category_description cd WHERE p2c.product_id = '".$product_id."' AND cd.category_id = p2c.category_id AND cd.category_id != 1");  

return $query-row;} 

product.tpl (Ansicht)

<?php echo $category_title;?> 
+0

'Hinweis: Undefinierte Variable: Kategorie_Titel in /homepages/5/d394528336/htdocs/Shop/catalog/view/theme/default/template/product/product.tpl in Zeile 142' –

+0

Ich füge Ihren Code aber über Fehler erhalten. Sollte ich diesen Code in bestimmte Zeile einfügen? oder egal wie man diese einfügt? –

+0

Welche Version verwenden Sie? –

0

Ich weiß, spät zu beantworten, aber ich könnte anderen helfen. Getestet in Opencart 2.3.0.2

Um Kategorie auf der Produktseite anzuzeigen.

Sie müssen einige der Opencart-Dateien bearbeiten. Gehen Sie zu Controllers> Produkt> Produkt.php

Finden Sie die folgende Zeile

$ product_info = $ this-> model_catalog_product-> getProduct ($ product_id);

Als wir die Kategorie für die Produktliste benötigen müssen wir die product_id für jeden Artikel in der Liste

$this->load->model('catalog/category'); 
$categories = $this->model_catalog_category->getCategoryName($this->request->get['product_id']); if ($categories) 
            { 
                  $categories_info= $this->model_catalog_category->getCategory($categories[0]['category_id']); 
                  $data['category_title'] = $categories_info['name']; 
                  $data['category_text'] = "Category : "; 
                  //print_r($categories_info['name']); 
                  // $this->data['category_title'] = $categories_info['name']; 
            } 

Jetzt Modell Gehe> Katalog> Kategorie und Sie müssen eine neue Funktion getCategoryName erstellen, die wir in Controller

verwendet
public function getCategoryName($product_id) { 
            $query = $this->db->query("SELECT DISTINCT(cd.name),p2c.product_id,cd.category_id FROM " . DB_PREFIX . "product_to_category p2c, " . DB_PREFIX . "category_description cd WHERE p2c.product_id = '".$product_id."' AND cd.category_id = p2c.category_id AND cd.category_id != 1");  
                return $query->rows; 
        } 

Jetzt zu ansehen gehen zu> Thema> THEME> template> Produkt> product.tpl und fügen Sie folgende Zeile, in der Kategorie

zeigen wollen
<?php echo $category_text; ?><?php echo $category_title; ?> 
Verwandte Themen