如何获取当前类别 ID - OpenCart 2.0
How to get current category id - OpenCart 2.0
我有产品 tpl 的代码 如果类别 id=12 回显,我需要一个条件。下面的代码适用于 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 } ?>
这不再有效的原因是因为在 2.0> 中,模板是通过 Loader 对象呈现的,而不是 Controller 对象。
您需要将产品控制器中的 $cat_id
变量声明为数据变量。
所以让我们清理它并使其更有用。
在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
文件中,在底部的 javascript 区域添加:
<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>
然后将您现有的代码替换为:
<?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 } ?>
这应该可以让你到达那里,或者至少非常接近,我没有测试它,你可能需要调整 JS。
我有产品 tpl 的代码 如果类别 id=12 回显,我需要一个条件。下面的代码适用于 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 } ?>
这不再有效的原因是因为在 2.0> 中,模板是通过 Loader 对象呈现的,而不是 Controller 对象。
您需要将产品控制器中的 $cat_id
变量声明为数据变量。
所以让我们清理它并使其更有用。
在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
文件中,在底部的 javascript 区域添加:
<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>
然后将您现有的代码替换为:
<?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 } ?>
这应该可以让你到达那里,或者至少非常接近,我没有测试它,你可能需要调整 JS。