Benutzerdefinierte Header -Bild für Kategorie in OpenCart
Frage
Ich habe 4 Hauptkategorien in einer OpenCart -Website.
Ich möchte ein anderes Header -Bild für die 4 separaten Kategorien haben. Wie kann ich den aktuellen Kategoriennamen erhalten und eine IF -Anweisung einlegen, um das Bild für den Header auszuwählen?
Aktueller Header -Bildcode:
<div id="headerWrapper">
<div id="header">
<div class="div1">
<div class="div2">
<?php if ($logo) { ?>
<a href="<?php echo str_replace('&', '&', $home); ?>"><img src="<?php echo $logo; ?>" title="<?php echo $store; ?>" alt="<?php echo $store; ?>" /></a>
<?php } ?>
</div>
</div>
</div>
Lösung
Sie müssen herausfinden, ob der Pfad festgelegt ist und die Route zu Beginn Produkt/Kategorie ist, um zu überprüfen, ob Sie sich sogar auf einer Kategorie -Seite befinden. Anschließend müssen Sie diese Informationen wirklich in einem Switch verwenden (anstatt eine große, wenn sie sonst auflistet). Können Sie mehr Details darüber geben, was Sie im obigen Code ändern möchten? Ist es das Logo oder möchten Sie dem Header, den Sie dann verwenden können, eine Klasse hinzufügen, die Sie dann über Ihr Stylesheet stylen können?
Um herauszufinden, ob Sie in der Kategorie sind, verwenden Sie dies in der index()
Methode in catalog/controller/common/header.php
$get = $this->request->get;
$this->data['cat_id'] = false;
$this->data['cat_name'] = '';
if(!empty($get['route']) && $get['route'] == 'product/category' && !empty($get['path'])) {
$cats = explode('_', $get['path']);
$cat_id = array_pop($cats);
$cat_id = (int) $cat_id;
if($cat_id) {
$this->load->model('catalog/category');
$result = $this->model_catalog_category->getCategory($cat_id);
$this->data['cat_id'] = $cat_id;
$this->data['cat_name'] = $result['name'];
}
}
Auf diese Weise erhalten Sie zwei Variablen, die Sie in der Common/Header.tpl -Datei Ihrer Vorlage verwenden können
$cat_id
und $cat_name
$cat_id
ist die aktuelle Kategorie -ID oder falsch, wenn es sich nicht um eine Kategorie -Seite handelt
$cat_name
Hat den aktuellen Kategorienamen, wenn einer existiert, oder eine leere Zeichenfolge, wenn dies nicht der Fall ist