diff --git a/addons/default/visiosoft/advs-module/resources/config/settings/sections.php b/addons/default/visiosoft/advs-module/resources/config/settings/sections.php index ba1dba8a1..592350017 100644 --- a/addons/default/visiosoft/advs-module/resources/config/settings/sections.php +++ b/addons/default/visiosoft/advs-module/resources/config/settings/sections.php @@ -98,7 +98,7 @@ return [ 'title' => 'visiosoft.module.advs::section.filter', 'fields' => [ 'hide_filter_section', 'hide_price_filter', 'hide_date_filter', 'hide_photo_filter', 'hide_map_filter', - 'hide_listing_header', 'user_filter_limit', + 'hide_listing_header', 'user_filter_limit','hide_out_of_stock_products_without_listing' ], ], 'translations' => [ diff --git a/addons/default/visiosoft/advs-module/resources/config/settings/settings.php b/addons/default/visiosoft/advs-module/resources/config/settings/settings.php index f41135af8..0a19456b3 100644 --- a/addons/default/visiosoft/advs-module/resources/config/settings/settings.php +++ b/addons/default/visiosoft/advs-module/resources/config/settings/settings.php @@ -479,5 +479,11 @@ return [ 'config' => [ 'default_value' => false, ] - ] + ], + 'hide_out_of_stock_products_without_listing' => [ + 'type' => 'anomaly.field_type.boolean', + 'config' => [ + 'default_value' => false, + ] + ], ]; diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/setting.php b/addons/default/visiosoft/advs-module/resources/lang/en/setting.php index 4dbae9fc8..d258617a8 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/setting.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/setting.php @@ -286,5 +286,9 @@ return [ 'show_input_flag' => [ 'name' => 'Show Flags on Input', 'instructions' => 'Show flag and description on translatable inputs' - ] + ], + 'hide_out_of_stock_products_without_listing' => [ + 'name' => 'Hide out of stock products without listing', + 'instructions' => 'Hides out-of-stock GET products from listing and homepage' + ], ]; diff --git a/addons/default/visiosoft/advs-module/resources/views/list/partials/ads.twig b/addons/default/visiosoft/advs-module/resources/views/list/partials/ads.twig index 5763937b5..24117dca6 100644 --- a/addons/default/visiosoft/advs-module/resources/views/list/partials/ads.twig +++ b/addons/default/visiosoft/advs-module/resources/views/list/partials/ads.twig @@ -34,7 +34,7 @@ {{ adv.name }} + alt="{{ adv.name }}" data-src="{{ adv.thumbnail }}"> diff --git a/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php b/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php index 988de0de8..fd1724579 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php +++ b/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php @@ -395,6 +395,15 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface $latest_advs = $this->model->currentAds() ->limit(setting_value('visiosoft.module.advs::latest-limit')) ->get(); + + if (setting_value('visiosoft.module.advs::hide_out_of_stock_products_without_listing')) { + $latest_advs = $latest_advs->filter( + function ($entry) { + return (($entry->is_get_adv == true && $entry->stock > 0) || ($entry->is_get_adv == false)); + } + ); + } + return $this->model->getLocationNames($latest_advs); } diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/AdvsController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/AdvsController.php index 5cbe78018..2989b683e 100644 --- a/addons/default/visiosoft/advs-module/src/Http/Controller/AdvsController.php +++ b/addons/default/visiosoft/advs-module/src/Http/Controller/AdvsController.php @@ -240,6 +240,14 @@ class AdvsController extends PublicController ), 301); } + if (setting_value('visiosoft.module.advs::hide_out_of_stock_products_without_listing')) { + $advs = $advs->filter( + function ($entry) { + return (($entry->is_get_adv == true && $entry->stock > 0) || ($entry->is_get_adv == false)); + } + ); + } + foreach ($advs as $index => $ad) { $advs[$index]->detail_url = $this->adv_model->getAdvDetailLinkByModel($ad, 'list'); $advs[$index] = $this->adv_model->AddAdsDefaultCoverImage($ad); @@ -1096,6 +1104,15 @@ class AdvsController extends PublicController $advModel = new AdvModel(); $advs = $repository->searchAdvs('map', $param, $customParameters); + + if (setting_value('visiosoft.module.advs::hide_out_of_stock_products_without_listing')) { + $advs = $advs->filter( + function ($entry) { + return (($entry->is_get_adv == true && $entry->stock > 0) || ($entry->is_get_adv == false)); + } + ); + } + foreach ($advs as $index => $ad) { $advs[$index]->seo_link = $advModel->getAdvDetailLinkByModel($ad, 'list'); $advs[$index] = $advModel->AddAdsDefaultCoverImage($ad);