- Created `Articles` class for rendering article views including full articles, miniature lists, and news sections. - Added `Banners` class for handling banner displays. - Introduced `Languages` class for rendering language options. - Implemented `Menu` class for rendering page and menu structures. - Developed `Newsletter` class for newsletter rendering. - Created `Scontainers` class for rendering specific containers. - Added `ShopCategory` class for managing shop category views and pagination. - Implemented `ShopClient` class for client-related views including address management and login forms. - Created `ShopPaymentMethod` class for displaying payment methods in the basket. - Added `ShopProduct` class for generating product URLs. - Introduced `ShopSearch` class for rendering a simple search form. - Added `.htaccess` file in the plugins directory to enhance security by restricting access to sensitive files and directories.
75 lines
2.1 KiB
PHP
75 lines
2.1 KiB
PHP
<? global $lang_id; ?>
|
|
<? if ($this->query) : ?>
|
|
<div class="box-title">
|
|
<?= \Shared\Helpers\Helpers::lang('wyniki-wyszukiwania-dla-zapytania') . ': <strong>' . $this->query . '</strong>'; ?>
|
|
</div>
|
|
<? endif; ?>
|
|
<?
|
|
if ($this->category_additional_text) :
|
|
echo \Shared\Tpl\Tpl::view('shop-category/_partials/category-additional-text', [
|
|
'category' => $this->category
|
|
]);
|
|
endif;
|
|
?>
|
|
<div class="category-content">
|
|
<? if (is_array($this->products)) : foreach ($this->products as $product_id) :
|
|
echo \Shared\Tpl\Tpl::view('shop-product/product-mini', [
|
|
'product' => (new \Domain\Product\ProductRepository($GLOBALS['mdb']))->findCached( $product_id, $lang_id )
|
|
]);
|
|
endforeach;
|
|
endif; ?>
|
|
</div>
|
|
<?
|
|
if ($this->category_description) :
|
|
echo \Shared\Tpl\Tpl::view('shop-category/category-description', [
|
|
'category' => $this->category
|
|
]);
|
|
endif;
|
|
?>
|
|
<script type="text/javascript" class="footer">
|
|
$(document).ready(function() {
|
|
let offset = 0;
|
|
const limit = 8;
|
|
let isLoading = false;
|
|
const $categoryContent = $('.category-content');
|
|
|
|
function loadProducts() {
|
|
if (isLoading) {
|
|
return;
|
|
}
|
|
|
|
isLoading = true;
|
|
$.ajax({
|
|
type: 'POST',
|
|
cache: false,
|
|
url: '/shopProduct/lazy_loading_products',
|
|
data: {
|
|
offset: offset,
|
|
category_id: <?= $this -> category['id'] ?>
|
|
},
|
|
beforeSend: function() {
|
|
|
|
},
|
|
success: function( response ) {
|
|
response = jQuery.parseJSON( response );
|
|
if ( response.html.length > 0 ) {
|
|
$categoryContent.append( response.html );
|
|
offset += limit;
|
|
isLoading = false;
|
|
} else {
|
|
$( document) .off( 'scroll', checkScroll );
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
function checkScroll() {
|
|
if( $(window).scrollTop() >= $('.category-content').offset().top + $('.category-content').outerHeight() - window.innerHeight - 250 ) {
|
|
loadProducts();
|
|
}
|
|
}
|
|
|
|
$( document ).on( 'scroll', checkScroll );
|
|
loadProducts();
|
|
});
|
|
</script>
|