Commit c383eca3 by lmf

增加产品列表置顶排序功能

parent a10cf96d
...@@ -19,6 +19,7 @@ use Magento\Framework\App\Action\Action; ...@@ -19,6 +19,7 @@ use Magento\Framework\App\Action\Action;
$_productCollection = $block->getLoadedProductCollection(); $_productCollection = $block->getLoadedProductCollection();
/** @var \Magento\Catalog\Helper\Output $_helper */ /** @var \Magento\Catalog\Helper\Output $_helper */
$_helper = $block->getData('outputHelper'); $_helper = $block->getData('outputHelper');
$sort_by = key_exists("sort_by",$_REQUEST) ? $_REQUEST["sort_by"] : false;
?> ?>
<?php if (!$_productCollection->count()): ?> <?php if (!$_productCollection->count()): ?>
<div class="message info empty"> <div class="message info empty">
...@@ -49,6 +50,9 @@ $_helper = $block->getData('outputHelper'); ...@@ -49,6 +50,9 @@ $_helper = $block->getData('outputHelper');
<ol class="products list items product-items"> <ol class="products list items product-items">
<?php /** @var $_product \Magento\Catalog\Model\Product */ ?> <?php /** @var $_product \Magento\Catalog\Model\Product */ ?>
<?php foreach ($_productCollection as $_product): ?> <?php foreach ($_productCollection as $_product): ?>
<?php
if ($sort_by && $sort_by == $_product->getUrlKey()): ?>
?>
<li class="item product product-item"> <li class="item product product-item">
<div class="product-item-info" <div class="product-item-info"
id="product-item-info_<?= /* @noEscape */ $_product->getId() ?>" id="product-item-info_<?= /* @noEscape */ $_product->getId() ?>"
...@@ -177,6 +181,121 @@ $_helper = $block->getData('outputHelper'); ...@@ -177,6 +181,121 @@ $_helper = $block->getData('outputHelper');
'product-item-info_' . $_product->getId() . ' div.product-item-actions' 'product-item-info_' . $_product->getId() . ' div.product-item-actions'
) : '' ?> ) : '' ?>
</li> </li>
<?php endif; ?>
<?php endforeach; ?>
<?php foreach ($_productCollection as $_product): ?>
<?php
if (!$sort_by || $sort_by != $_product->getUrlKey() ): ?>
?>
<li class="item product product-item">
<div class="product-item-info"
id="product-item-info_<?= /* @noEscape */ $_product->getId() ?>"
data-container="product-<?= /* @noEscape */ $viewMode ?>">
<?php
$productImage = $block->getImage($_product, $imageDisplayArea);
if ($pos != null) {
$position = 'left:' . $productImage->getWidth() . 'px;'
. 'top:' . $productImage->getHeight() . 'px;';
}
?>
<?php // Product Image ?>
<a href="<?= $escaper->escapeUrl($_product->getProductUrl()) ?>"
class="product photo product-item-photo"
tabindex="-1">
<?= $productImage->toHtml() ?>
</a>
<div class="product details product-item-details">
<?php $_productNameStripped = $block->stripTags($_product->getName(), null, true); ?>
<strong class="product name product-item-name">
<a class="product-item-link"
href="<?= $escaper->escapeUrl($_product->getProductUrl()) ?>">
<?=/* @noEscape */ $_helper->productAttribute($_product, $_product->getName(), 'name')?>
</a>
</strong>
<?= $block->getReviewsSummaryHtml($_product, $templateType) ?>
<?= /* @noEscape */ $block->getProductPrice($_product) ?>
<?= $block->getProductDetailsHtml($_product) ?>
<div class="product-item-inner">
<div class="product actions product-item-actions">
<div class="actions-primary">
<?php if ($_product->isSaleable()):?>
<?php $postParams = $block->getAddToCartPostParams($_product); ?>
<form data-role="tocart-form"
data-product-sku="<?= $escaper->escapeHtml($_product->getSku()) ?>"
action="<?= $escaper->escapeUrl($postParams['action']) ?>"
method="post">
<?php $options = $block->getData('viewModel')->getOptionsData($_product); ?>
<?php foreach ($options as $optionItem): ?>
<input type="hidden"
name="<?= $escaper->escapeHtml($optionItem['name']) ?>"
value="<?= $escaper->escapeHtml($optionItem['value']) ?>">
<?php endforeach; ?>
<input type="hidden"
name="product"
value="<?= /* @noEscape */ $postParams['data']['product'] ?>">
<input type="hidden"
name="<?= /* @noEscape */ Action::PARAM_NAME_URL_ENCODED ?>"
value="<?=
/* @noEscape */ $postParams['data'][Action::PARAM_NAME_URL_ENCODED]
?>">
<?= $block->getBlockHtml('formkey') ?>
<button type="submit"
title="<?= $escaper->escapeHtmlAttr(__('Add to Cart')) ?>"
class="action tocart primary"
disabled>
<span><?= $escaper->escapeHtml(__('Add to Cart')) ?></span>
</button>
</form>
<?php else:?>
<?php if ($_product->isAvailable()):?>
<div class="stock available">
<span><?= $escaper->escapeHtml(__('In stock')) ?></span></div>
<?php else:?>
<div class="stock unavailable">
<span><?= $escaper->escapeHtml(__('Out of stock')) ?></span></div>
<?php endif; ?>
<?php endif; ?>
</div>
<?= ($pos && strpos($pos, $viewMode . '-primary')) ?
/* @noEscape */ $secureRenderer->renderStyleAsTag(
$position,
'product-item-info_' . $_product->getId() . ' div.actions-primary'
) : '' ?>
<div data-role="add-to-links" class="actions-secondary">
<?php if ($addToBlock = $block->getChildBlock('addto')): ?>
<?= $addToBlock->setProduct($_product)->getChildHtml() ?>
<?php endif; ?>
</div>
<?= ($pos && strpos($pos, $viewMode . '-secondary')) ?
/* @noEscape */ $secureRenderer->renderStyleAsTag(
$position,
'product-item-info_' . $_product->getId() . ' div.actions-secondary'
) : '' ?>
</div>
<?php if ($showDescription): ?>
<div class="product description product-item-description">
<?= /* @noEscape */ $_helper->productAttribute(
$_product,
$_product->getShortDescription(),
'short_description'
) ?>
<a href="<?= $escaper->escapeUrl($_product->getProductUrl()) ?>"
title="<?= /* @noEscape */ $_productNameStripped ?>"
class="action more"><?= $escaper->escapeHtml(__('Learn More')) ?></a>
</div>
<?php endif; ?>
</div>
</div>
</div>
<?= ($pos && strpos($pos, $viewMode . '-actions')) ?
/* @noEscape */ $secureRenderer->renderStyleAsTag(
$position,
'product-item-info_' . $_product->getId() . ' div.product-item-actions'
) : '' ?>
</li>
<?php endif; ?>
<?php endforeach; ?> <?php endforeach; ?>
</ol> </ol>
</div> </div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment