Created
March 12, 2020 03:58
-
-
Save smycek/30e3729e7790100975b7b121ded0c696 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Copyright © 2015 Magento. All rights reserved. | |
* See COPYING.txt for license details. | |
*/ | |
use Magento\Framework\App\Action\Action; | |
// @codingStandardsIgnoreFile | |
?> | |
<?php | |
/** | |
* Product list template | |
* | |
* @var $block \Magento\Catalog\Block\Product\ListProduct | |
*/ | |
?> | |
<?php | |
$_productCollection = $block->getLoadedProductCollection(); | |
$_helper = $this->helper('Magento\Catalog\Helper\Output'); | |
$_imagehelper = $this->helper('Magento\Catalog\Helper\Image'); | |
$_category_config = $this->helper('Smartwave\Porto\Helper\Data')->getConfig('porto_settings/category'); | |
$_category_grid_config = $this->helper('Smartwave\Porto\Helper\Data')->getConfig('porto_settings/category_grid'); | |
$_product_label_config = $this->helper('Smartwave\Porto\Helper\Data')->getConfig('porto_settings/product_label'); | |
$move_actions = ""; | |
$flex_grid = ""; | |
?> | |
<?php if (!$_productCollection->count()): ?> | |
<div class="message info empty"><div><?php echo __('We can\'t find products matching the selection.') ?></div></div> | |
<?php else: ?> | |
<?php echo $block->getToolbarHtml() ?> | |
<?php echo $block->getAdditionalHtml() ?> | |
<?php | |
if ($block->getMode() == 'grid') { | |
$viewMode = 'grid'; | |
$image = 'category_page_grid'; | |
$hover_image = 'category_page_grid-hover'; | |
$showDescription = false; | |
$templateType = \Magento\Catalog\Block\Product\ReviewRendererInterface::SHORT_VIEW; | |
$columns = 'columns'.$_category_grid_config['columns']; | |
$move_actions = $_category_grid_config['move_actions']; | |
if(isset($_category_grid_config['flex_grid']) && $_category_grid_config['flex_grid']) | |
$flex_grid = "flex-grid"; | |
} else { | |
$viewMode = 'list'; | |
$image = 'category_page_list'; | |
$hover_image = 'category_page_list-hover'; | |
$showDescription = true; | |
$templateType = \Magento\Catalog\Block\Product\ReviewRendererInterface::FULL_VIEW; | |
$columns = ''; | |
} | |
$image_width = ($_category_config['ratio_width'])?$_category_config['ratio_width']:300; | |
$image_height = ($_category_config['ratio_height'])?$_category_config['ratio_height']:300; | |
?> | |
<div class="products wrapper <?php echo $viewMode; ?> <?php echo $columns; ?> <?php echo $flex_grid; ?> products-<?php echo $viewMode; ?>"> | |
<?php $iterator = 1; ?> | |
<ol class="products list items product-items"> | |
<?php /** @var $_product \Magento\Catalog\Model\Product */ ?> | |
<?php foreach ($_productCollection as $_product): ?> | |
<?php echo($iterator++ == 1) ? '<li class="item product product-item">' : '</li><li class="item product product-item">' ?> | |
<div class="product-item-info" data-container="product-grid"> | |
<?php // Product Image ?> | |
<div class="product photo product-item-photo"> | |
<a href="<?php echo $_product->getProductUrl() ?>" tabindex="-1"> | |
<?php | |
if($_category_config['aspect_ratio']) | |
$productImage = $_imagehelper->init($_product, $image)->constrainOnly(FALSE)->keepAspectRatio(TRUE)->keepFrame(FALSE)->resize($image_width); | |
else | |
$productImage = $_imagehelper->init($_product, $image)->resize($image_width, $image_height); | |
$productImageUrl = $productImage->getUrl(); | |
?> | |
<img class="product-image-photo default_image" src="<?php echo $productImageUrl; ?>" alt="<?php echo $productImage->getLabel(); ?>"/> | |
<?php if($_category_config['alternative_image']): ?> | |
<?php | |
if($_category_config['aspect_ratio']) | |
$productHoverImage = $_imagehelper->init($_product, $hover_image)->constrainOnly(FALSE)->keepAspectRatio(TRUE)->keepFrame(FALSE)->resize($image_width); | |
else | |
$productHoverImage = $_imagehelper->init($_product, $hover_image)->resize($image_width, $image_height); | |
$productHoverImageUrl = $productHoverImage->getUrl(); | |
?> | |
<?php if($productImageUrl != str_replace("/thumbnail/","/small_image/",$productHoverImageUrl)): ?> | |
<img class="product-image-photo hover_image" src="<?php echo $productHoverImageUrl; ?>" alt="<?php echo $productHoverImage->getLabel(); ?>"/> | |
<?php endif; ?> | |
<?php endif; ?> | |
</a> | |
<?php | |
$product_label = ""; | |
if($_product_label_config['sale_label']) { | |
$orgprice = $_product->getFinalPrice(); | |
$specialprice = $_product->getSpecialPrice(); | |
$specialfromdate = $_product->getSpecialFromDate(); | |
$specialtodate = $_product->getSpecialToDate(); | |
$today = time(); | |
if(!$specialprice) | |
$specialprice = $orgprice; | |
if($specialprice < $orgprice) { | |
if((is_null($specialfromdate) && is_null($specialtodate)) || ($today >= strtotime($specialfromdate) && is_null($specialtodate)) || ($today <= strtotime($specialtodate) && is_null($specialfromdate)) || ($today >= strtotime($specialfromdate) && $today <= strtotime($specialtodate))){ | |
if($_product_label_config['sale_label_percent']) { | |
$save_percent = 100-round(($specialprice/$orgprice)*100); | |
$product_label .= '<div class="product-label sale-label">'.'-'.$save_percent.'%'.'</div>'; | |
} else { | |
$product_label .= '<div class="product-label sale-label">'.$_product_label_config['sale_label_text'].'</div>'; | |
} | |
} | |
} | |
} | |
if($_product_label_config['new_label']) { | |
$now = date("Y-m-d"); | |
$newsFrom= substr($_product->getData('news_from_date'),0,10); | |
$newsTo= substr($_product->getData('news_to_date'),0,10); | |
if ($newsTo != '' || $newsFrom != ''){ | |
if (($newsTo != '' && $newsFrom != '' && $now>=$newsFrom && $now<=$newsTo) || ($newsTo == '' && $now >=$newsFrom) || ($newsFrom == '' && $now<=$newsTo)) { | |
$product_label .= '<div class="product-label new-label">'.$_product_label_config['new_label_text'].'</div>'; | |
} | |
} | |
} | |
if($product_label) | |
echo '<div class="product-labels">'.$product_label.'</div>'; | |
?> | |
<?php if($_category_config['actions'] && $move_actions): ?> | |
<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" action="<?php echo $postParams['action']; ?>" method="post"> | |
<input type="hidden" name="product" value="<?php echo $postParams['data']['product']; ?>"> | |
<input type="hidden" name="<?php echo Action::PARAM_NAME_URL_ENCODED; ?>" value="<?php echo $postParams['data'][Action::PARAM_NAME_URL_ENCODED]; ?>"> | |
<?php echo $block->getBlockHtml('formkey')?> | |
<button type="submit" | |
title="<?php echo $block->escapeHtml(__('Add to Cart')); ?>" | |
class="action tocart primary"> | |
<span><?php echo __('Add to Cart') ?></span> | |
</button> | |
</form> | |
<?php else: ?> | |
<?php if ($_product->getIsSalable()): ?> | |
<div class="stock available"><span><?php echo __('In stock') ?></span></div> | |
<?php else: ?> | |
<div class="stock unavailable"><span><?php echo __('Out of stock') ?></span></div> | |
<?php endif; ?> | |
<?php endif; ?> | |
</div> | |
<?php if ($block->getMode() == 'grid'): ?> | |
<?php if($_category_config['addtowishlist']): ?> | |
<?php if ($this->helper('Magento\Wishlist\Helper\Data')->isAllow()): ?> | |
<a href="#" | |
class="action towishlist actions-secondary" | |
title="<?php echo $block->escapeHtml(__('Add to Wish List')); ?>" | |
aria-label="<?php echo $block->escapeHtml(__('Add to Wish List')); ?>" | |
data-post='<?php echo $block->getAddToWishlistParams($_product); ?>' | |
data-action="add-to-wishlist" | |
role="button"> | |
<span><?php echo __('Add to Wish List') ?></span> | |
</a> | |
<?php endif; ?> | |
<?php endif; ?> | |
<?php endif; ?> | |
<?php if($_category_config['addtocompare']): ?> | |
<?php | |
$compareHelper = $this->helper('Magento\Catalog\Helper\Product\Compare'); | |
?> | |
<a href="#" | |
class="action tocompare actions-secondary" | |
title="<?php echo $block->escapeHtml(__('Add to Compare')); ?>" | |
aria-label="<?php echo $block->escapeHtml(__('Add to Compare')); ?>" | |
data-post='<?php echo $compareHelper->getPostDataParams($_product); ?>' | |
role="button"> | |
<span><?php echo __('Add to Compare') ?></span> | |
</a> | |
<?php endif; ?> | |
</div> | |
</div> | |
<?php endif; ?> | |
</div> | |
<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="<?php echo $_product->getProductUrl() ?>"> | |
<?php echo $_helper->productAttribute($_product, $_product->getName(), 'name'); ?> | |
</a> | |
</strong> | |
<?php if($_category_config['rating_star']): ?> | |
<?php | |
$review_html = $block->getReviewsSummaryHtml($_product, $templateType); | |
?> | |
<?php if($review_html): ?> | |
<?php echo $review_html; ?> | |
<?php else: ?> | |
<div class="product-reviews-summary short"> | |
<div class="rating-summary"> | |
<span class="label"><span>Rating:</span></span> | |
<div class="rating-result" title="0%"> | |
<span style="width:0"><span>0%</span></span> | |
</div> | |
</div> | |
</div> | |
<?php endif; ?> | |
<?php endif; ?> | |
<?php if ($showDescription):?> | |
<div class="product description product-item-description"> | |
<?php echo $_helper->productAttribute($_product, $_product->getShortDescription(), 'short_description') ?> | |
<a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $_productNameStripped ?>" | |
class="action more"><?php echo __('Learn More') ?></a> | |
</div> | |
<?php endif; ?> | |
<?php if($_category_config['product_price']): ?> | |
<?php echo $block->getProductPrice($_product) ?> | |
<?php endif; ?> | |
<?php echo $block->getProductDetailsHtml($_product); ?> | |
<?php if($_category_config['actions'] && !$move_actions): ?> | |
<div class="product-item-inner"> | |
<div class="product actions product-item-actions"> | |
<?php if ($block->getMode() == 'grid'): ?> | |
<?php if($_category_config['addtowishlist']): ?> | |
<?php if ($this->helper('Magento\Wishlist\Helper\Data')->isAllow()): ?> | |
<a href="#" | |
class="action towishlist actions-secondary" | |
title="<?php echo $block->escapeHtml(__('Add to Wish List')); ?>" | |
aria-label="<?php echo $block->escapeHtml(__('Add to Wish List')); ?>" | |
data-post='<?php echo $block->getAddToWishlistParams($_product); ?>' | |
data-action="add-to-wishlist" | |
role="button"> | |
<span><?php echo __('Add to Wish List') ?></span> | |
</a> | |
<?php endif; ?> | |
<?php endif; ?> | |
<?php endif; ?> | |
<div class="actions-primary"> | |
<?php if ($_product->isSaleable()): ?> | |
<?php $postParams = $block->getAddToCartPostParams($_product); ?> | |
<form data-role="tocart-form" action="<?php echo $postParams['action']; ?>" method="post"> | |
<input type="hidden" name="product" value="<?php echo $postParams['data']['product']; ?>"> | |
<input type="hidden" name="<?php echo Action::PARAM_NAME_URL_ENCODED; ?>" value="<?php echo $postParams['data'][Action::PARAM_NAME_URL_ENCODED]; ?>"> | |
<?php echo $block->getBlockHtml('formkey')?> | |
<button type="submit" | |
title="<?php echo $block->escapeHtml(__('Add to Cart')); ?>" | |
class="action tocart primary"> | |
<span><?php echo __('Add to Cart') ?></span> | |
</button> | |
</form> | |
<?php else: ?> | |
<?php if ($_product->getIsSalable()): ?> | |
<div class="stock available"><span><?php echo __('In stock') ?></span></div> | |
<?php else: ?> | |
<div class="stock unavailable"><span><?php echo __('Out of stock') ?></span></div> | |
<?php endif; ?> | |
<?php endif; ?> | |
</div> | |
<?php if ($block->getMode() != 'grid'): ?> | |
<?php if($_category_config['addtowishlist']): ?> | |
<?php if ($this->helper('Magento\Wishlist\Helper\Data')->isAllow()): ?> | |
<a href="#" | |
class="action towishlist actions-secondary" | |
title="<?php echo $block->escapeHtml(__('Add to Wish List')); ?>" | |
aria-label="<?php echo $block->escapeHtml(__('Add to Wish List')); ?>" | |
data-post='<?php echo $block->getAddToWishlistParams($_product); ?>' | |
data-action="add-to-wishlist" | |
role="button"> | |
<span><?php echo __('Add to Wish List') ?></span> | |
</a> | |
<?php endif; ?> | |
<?php endif; ?> | |
<?php endif; ?> | |
<?php if($_category_config['addtocompare']): ?> | |
<?php | |
$compareHelper = $this->helper('Magento\Catalog\Helper\Product\Compare'); | |
?> | |
<a href="#" | |
class="action tocompare actions-secondary" | |
title="<?php echo $block->escapeHtml(__('Add to Compare')); ?>" | |
aria-label="<?php echo $block->escapeHtml(__('Add to Compare')); ?>" | |
data-post='<?php echo $compareHelper->getPostDataParams($_product); ?>' | |
role="button"> | |
<span><?php echo __('Add to Compare') ?></span> | |
</a> | |
<?php endif; ?> | |
</div> | |
</div> | |
<?php endif; ?> | |
</div> | |
</div> | |
<?php echo($iterator == count($_productCollection)+1) ? '</li>' : '' ?> | |
<?php endforeach; ?> | |
</ol> | |
</div> | |
<?php echo $block->getToolbarHtml() ?> | |
<?php if (!$block->isRedirectToCartEnabled()) : ?> | |
<script type="text/x-magento-init"> | |
{ | |
"[data-role=tocart-form], .form.map.checkout": { | |
"catalogAddToCart": {} | |
} | |
} | |
</script> | |
<?php endif; ?> | |
<?php if ($block->getMode() == 'grid'): ?> | |
<script type="text/javascript"> | |
require([ | |
'jquery' | |
], function ($) { | |
$('.main .products.grid .product-items li.product-item:nth-child(2n)').addClass('nth-child-2n'); | |
$('.main .products.grid .product-items li.product-item:nth-child(2n+1)').addClass('nth-child-2np1'); | |
$('.main .products.grid .product-items li.product-item:nth-child(3n)').addClass('nth-child-3n'); | |
$('.main .products.grid .product-items li.product-item:nth-child(3n+1)').addClass('nth-child-3np1'); | |
$('.main .products.grid .product-items li.product-item:nth-child(4n)').addClass('nth-child-4n'); | |
$('.main .products.grid .product-items li.product-item:nth-child(4n+1)').addClass('nth-child-4np1'); | |
$('.main .products.grid .product-items li.product-item:nth-child(5n)').addClass('nth-child-5n'); | |
$('.main .products.grid .product-items li.product-item:nth-child(5n+1)').addClass('nth-child-5np1'); | |
$('.main .products.grid .product-items li.product-item:nth-child(6n)').addClass('nth-child-6n'); | |
$('.main .products.grid .product-items li.product-item:nth-child(6n+1)').addClass('nth-child-6np1'); | |
$('.main .products.grid .product-items li.product-item:nth-child(7n)').addClass('nth-child-7n'); | |
$('.main .products.grid .product-items li.product-item:nth-child(7n+1)').addClass('nth-child-7np1'); | |
$('.main .products.grid .product-items li.product-item:nth-child(8n)').addClass('nth-child-8n'); | |
$('.main .products.grid .product-items li.product-item:nth-child(8n+1)').addClass('nth-child-8np1'); | |
}); | |
</script> | |
<?php endif; ?> | |
<?php endif; ?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment