- Migrate class.S → Shared\Helpers\Helpers (140+ files), remove 12 unused methods - Migrate class.Html → Shared\Html\Html - Migrate class.Email → Shared\Email\Email - Migrate class.Image → Shared\Image\ImageManipulator - Delete class.Log (unused), class.Mobile_Detect (outdated UA detection) - Remove grid library loading from admin (index.php, ajax.php) - Replace gridEdit usage in 10 admin templates with grid-edit-replacement.php - Fix grid-edit-replacement.php AJAX to send values as JSON (grid.js compat) - Remove mobile layout conditionals (m_html/m_css/m_js) from Site + LayoutsRepository - Remove \Log::save_log() calls from OrderAdminService, ShopOrder, Order Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
75 lines
2.0 KiB
PHP
75 lines
2.0 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 \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 \Tpl::view('shop-product/product-mini', [
|
|
'product' => \shop\Product::getFromCache( $product_id, $lang_id )
|
|
]);
|
|
endforeach;
|
|
endif; ?>
|
|
</div>
|
|
<?
|
|
if ($this->category_description) :
|
|
echo \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>
|