如何获取当前类别ID - OpenCart 2.0

时间:2015-05-15 08:45:01

标签: php opencart2.x

我有一个产品tpl的代码女巫我需要一个条件,如果类别id = 12 echo ..下面的代码适用于opencart 1.5.6.4,但2.0上没有生成任何东西。

<?php if(isset($this->request->get['path'])) {
$path = $this->request->get['path'];
$cats = explode('_', $path);
$cat_id = $cats[count($cats) - 1];
   }
 ?>
<?php if (isset($cat_id) && $cat_id == '108') { ?>
 <div style="text-align: right;"><a href = "javascript:void(0)" onclick ="document.getElementById('fade').style.display='block'" style="
color: rgb(221, 0, 23);">Mesurments table</a></div>
        <div id="fade" class="black_overlay"><a class="close" href = "javascript:void(0)" onclick = "document.getElementById('fade').style.display='none'"></a><img src="/image/data/misc/blugi.jpg"style="
width: 100%;"></div>
   ?php } ?>

1 个答案:

答案 0 :(得分:2)

这不再起作用的原因是因为在2.0&gt;模板通过Loader对象呈现,而不是Controller对象。

您需要将产品控制器中的catalog/controller/product/product.php变量声明为数据变量。

所以,让我们清理一下,让它更有用。

if (isset ($this->request->get['path'])) { $path = $this->request->get['path']; $cats = explode('_', $path); $data['cat_id'] = $cats[count($cats) - 1]; } 添加:

$cat_id

然后,在您的模板中,您可以根据需要访问product.tpl

在您的<script type="text/javascript"><!-- $('#fade-link').css({ color: rgb(221, 0, 23) }).on('click', function() { $('#fade').show(); }); $('#fade a.close').on('click', function(){ $('#fade').hide(); }); //--></script> 文件中,在底部的javascript区域添加:

<?php if ($cat_id && $cat_id == '108') { ?>
<div style="text-align: right;">
    <a id="fade-link">Measurements Table</a></div>
    <div id="fade" class="black_overlay">
        <a class="close"></a>
        <img src="/image/data/misc/blugi.jpg" style="width: 100%;">
    </div>
<?php } ?>

然后用以下代码替换现有代码:

{{1}}

这应该会让你到达那里,或者至少非常接近,我没有测试它,你可能需要调整JS。