Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何按产品ID显示OpenCart产品列表_Php_Opencart - Fatal编程技术网

Php 如何按产品ID显示OpenCart产品列表

Php 如何按产品ID显示OpenCart产品列表,php,opencart,Php,Opencart,我正在为我的商店创建自定义类别页面。目前在页面上,我有一个默认产品列表,显示类别中的所有产品,如下图所示: 我想知道,如果我可以选择特定的产品来显示PHP,是否有可能不显示类别中的每个产品?比如一个查询或者我可以用逗号分隔产品ID的地方 有点像 我知道上面的代码(当然)不起作用,但我只希望它能显示出我想要实现的目标。提前谢谢 下面是显示上图所示产品的代码: <?php if ($products) { ?> <div class="product-filter">

我正在为我的商店创建自定义类别页面。目前在页面上,我有一个默认产品列表,显示类别中的所有产品,如下图所示:

我想知道,如果我可以选择特定的产品来显示PHP,是否有可能不显示类别中的每个产品?比如一个查询或者我可以用逗号分隔产品ID的地方

有点像

我知道上面的代码(当然)不起作用,但我只希望它能显示出我想要实现的目标。提前谢谢

下面是显示上图所示产品的代码:

  <?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 } ?>

管理系统更新项目:

.png“alt=”“/>
硬编码产品筛选:)

在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)) {  ?>

老实说,我真的不明白为什么要用编程的方式来解决这样的问题,因为当你有一个自定义类别,只想显示一些具体的产品时,那么所需要的就是将不需要的产品从这个类别中取消链接。这就是全部!

我想你不想硬编码视图中的产品id?(这可能是最简单的解决方案:))我不太清楚你的意思,但在这一点上我想做点什么!哈哈:)好吧…如果在category.tpl中硬编码是一个选项-制作你想要显示的产品id数组。检查$product['product_id']存在于数组中,并显示它,就是这样。:)这听起来确实应该工作!假设我的产品ID是5、126、70和24…你能举一个例子说明我如何使用上面的代码吗?@JCBiggar,np,btw,现在我意识到-如果你不想显示它,为什么不在管理面板中禁用产品(临时)在分类页面上?您可以稍后轻松启用…:))LOL!@nevermind为什么要将代码包装到IF?您可以随时让我们继续。IF(!in_数组($product['product\u id',$ignoredProductIds))继续;这真的是一个糟糕的解决方案。不是将从数据库填充的结果数量限制为具体的ID,而是填充所有相关的产品并循环显示它们,然后只显示三个?有时我想知道人们在这里回答时是否会动脑筋……当然,在administ中禁用这些产品定量配给是第一手也是最简单的解决方案,“硬编码”是直接过滤SQL查询中的产品,以限制只填充想要的产品以节省资源…@shadyyx,是的,你是对的,我在这里回答时不是在用大脑,大多数时候我是在用胃。糟糕的笑话撇开“升华导师语气”不谈,我已经提到修改模板/视图不是一个很好的解决方案,而管理面板中的简单/启用-禁用产品将解决这个问题。定位和更改SQL查询更难,我不确定它是否是选项,因为它也会影响其他类别…)但是,我会删除我的answer也是。:)这并不是在冒犯你,也不是直接针对你,如果听起来是这样的话,很抱歉。但如果你能在回答中直接指出这是一个肮脏的解决方案,最好是其他解决方案,这样用户就不会认为他刚刚学到了一些漂亮的东西,并以这种方式不断发展:-)好的他的产品属于这个类别。但在我创建的这个特定页面上,我们只想显示某些要显示的产品?您是否有其他可行的解决方案?是的,创建一个子类别并仅将想要的产品链接到它。然后这个特定页面将指向该子类别,问题应该得到解决。
 <?php } }?>