我正在为我的商店创建自定义类别页面。目前在页面上我有默认的产品列表,显示该类别中的所有产品,如下图所示:
我想知道是否有可能,如果我可以选择特定的产品来展示PHP,而不是显示该类别中的每个产品?像查询或其他我可以将产品ID用逗号分隔的东西?
有点像<?php query by product ids (24,153,2,51,765) { ?>
我知道上面的代码不起作用(当然),但只是希望能够展示我想要完成的事情。提前谢谢!
以下是显示产品的代码,如上图所示:
<?php if ($products) { ?>
<div class="product-filter">
<div class="limit"><b><?php echo $text_limit; ?></b>
<select onchange="location = this.value;">
<?php foreach ($limits as $limits) { ?>
<?php if ($limits['value'] == $limit) { ?>
<option value="<?php echo $limits['href']; ?>" selected="selected"><?php echo $limits['text']; ?></option>
<?php } else { ?>
<option value="<?php echo $limits['href']; ?>"><?php echo $limits['text']; ?></option>
<?php } ?>
<?php } ?>
</select>
</div>
<div class="sort"><b><?php echo $text_sort; ?></b>
<select onchange="location = this.value;">
<?php foreach ($sorts as $sorts) { ?>
<?php if ($sorts['value'] == $sort . '-' . $order) { ?>
<option value="<?php echo $sorts['href']; ?>" selected="selected"><?php echo $sorts['text']; ?></option>
<?php } else { ?>
<option value="<?php echo $sorts['href']; ?>"><?php echo $sorts['text']; ?></option>
<?php } ?>
<?php } ?>
</select>
</div>
</div>
<div class="product-compare"><a href="<?php echo $compare; ?>" id="compare-total"><?php echo $text_compare; ?></a></div>
<div class="product-list">
<?php foreach ($products as $product) { ?>
<div>
<?php if ($product['thumb']) { ?>
<div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" /></a></div>
<?php } ?>
<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>
<div class="description"><?php echo $product['description']; ?></div>
<?php if ($product['price']) { ?>
<div class="price">
<?php if (!$product['special']) { ?>
<?php echo $product['price']; ?>
<?php } else { ?>
<div class="price-old"><span>MSRP: <?php echo $product['price']; ?></span></div> <div class="price-new"><?php echo $product['special']; ?></div>
<?php } ?>
<?php if ($product['tax']) { ?>
<br />
<span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
<?php } ?>
</div>
<?php } ?>
<?php if ($product['rating']) { ?>
<div class="rating"><img src="catalog/view/theme/default/image/stars-<?php echo $product['rating']; ?>.png" alt="<?php echo $product['reviews']; ?>" /></div>
<?php } ?>
<div class="cart">
<input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />
</div>
<div class="free-shipping"></div>
<div class="wishlist"><a onclick="addToWishList('<?php echo $product['product_id']; ?>');"><?php echo $button_wishlist; ?></a></div>
<div class="compare"><a onclick="addToCompare('<?php echo $product['product_id']; ?>');"><?php echo $button_compare; ?></a></div>
</div>
<?php } ?>
</div>
<div class="pagination"><?php echo $pagination; ?></div>
<?php } ?>
<?php if (!$categories && !$products) { ?>
<div class="content"><?php echo $text_empty; ?></div>
<div class="buttons">
<div class="right"><a href="<?php echo $continue; ?>" class="button"><?php echo $button_continue; ?></a></div>
</div>
<?php } ?>
答案 0 :(得分:0)
硬编码产品过滤::)
在category.tpl中查找此行:〜第69行
<div class="product-list">
把这个吼叫:这里foreach循环开始......你只需要在那里添加其他条件。
<?php $ids=array(43,44,45); // array of product id's ?>
<?php foreach ($products as $product) { if(in_array($product['product_id'],$ids)) { ?>
......模板代码.......
然后,在循环端应该看起来像这样:
<?php } }?>
再添加一个'}',(如果条件必须正确关闭)。应行~119。
P.S。由于您只想在一个类别中进行过滤,我猜,应该更多一个条件(如果类别ID ==选择类别 - >过滤产品......)
PS2 - 不确定您的意图和期望的目标,而不是使用这种肮脏的黑客,使用开放式购物车内置功能(在管理面板中启用/禁用产品),或尝试(如果您的问题太具体)制作自定义模型/控制器方法......
答案 1 :(得分:0)
说实话,我真的不明白hwy要求这样的问题以programaticaly解决,因为当你有一个自定义类别并且只想显示一些具体的产品时,那么所需要的只是 unlink 此类别中不需要的产品。那就是全部!