- Created Articles.php for rendering article views including full articles, miniature lists, and news sections. - Added Banners.php for handling banner displays. - Introduced Languages.php for rendering language options. - Implemented Menu.php for dynamic menu rendering. - Developed Newsletter.php for newsletter view rendering. - Created Scontainers.php for rendering specific containers. - Added ShopCategory.php for category descriptions and product listings. - Introduced ShopClient.php for managing client-related views such as address editing and order history. - Implemented ShopPaymentMethod.php for displaying payment methods in the basket. - Created ShopProduct.php for generating product URLs. - Added ShopSearch.php for rendering a simple search form. - Added .htaccess file 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>
|