diff --git a/README.md b/README.md index 63e1bab14..c97ea408a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ -# OpenClassify - Laravel Classified Script Platform +# OpenClassify - Laravel 8 Classified Script Platform + +OpenClassify is modular and most advanced open source classified platform build with Laravel 8 & PHP 7.3+ Supported. Included Pyrocms 3.9 + -OpenClassify is the extensible and most advanced open source classified app build with Laravel 8 and Pyrocms. [](https://scrutinizer-ci.com/g/openclassify/openclassify/?branch=master) [](https://scrutinizer-ci.com/g/openclassify/openclassify/build-status/master) @@ -25,7 +27,7 @@ Openclassify support 22+ languages. If you'd like to contribute translations, pl ## Server Requirements -- PHP => 7.3 +- PHP > 7.3+ - XML PHP Extension - PDO PHP Extension - cURL PHP Extension diff --git a/addons/default/visiosoft/advs-module/migrations/2021_04_27_143550_visiosoft.module.advs__change_product_options_value.php b/addons/default/visiosoft/advs-module/migrations/2021_04_27_143550_visiosoft.module.advs__change_product_options_value.php new file mode 100644 index 000000000..1351744ff --- /dev/null +++ b/addons/default/visiosoft/advs-module/migrations/2021_04_27_143550_visiosoft.module.advs__change_product_options_value.php @@ -0,0 +1,35 @@ +getDatabasePlatform()->registerDoctrineTypeMapping('point', 'string'); + } + + public function up() + { + if (!$field = $this->fields()->findBySlugAndNamespace('product_options_value', 'advs')) { + return; + } + + $field->setAttribute('type', 'visiosoft.field_type.multiple'); + + $this->fields()->save($field); + } + + public function down() + { + if (!$field = $this->fields()->findBySlugAndNamespace('product_options_value', 'advs')) { + return; + } + + $field->setAttribute('type', 'anomaly.field_type.multiple'); + + $this->fields()->save($field); + } +} 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 2c4ab7f5a..4ce7e632f 100644 --- a/addons/default/visiosoft/advs-module/resources/config/settings/sections.php +++ b/addons/default/visiosoft/advs-module/resources/config/settings/sections.php @@ -18,16 +18,18 @@ return [ 'tcmb_exchange_url', 'enabled_currencies', 'disable_sentry', + 'hide_ad_cat', ], ], 'ads' => [ 'title' => 'visiosoft.module.advs::section.ads', 'fields' => [ - 'detailed_product_options', + 'show_finish_and_publish_date', 'latest-limit', 'popular_ads_limit', 'ads_image_limit', 'default_view_type', + 'show_price_to_members_only', 'price_area_hidden', 'hide_listing_standard_price', 'hide_zero_price', @@ -38,6 +40,7 @@ return [ 'get_categories', 'listing_page_image', 'show_ads_count', + 'show_subcats_mobile', ], ], 'ads_detail' => [ @@ -50,6 +53,7 @@ return [ 'create_ad' => [ 'title' => 'visiosoft.module.advs::section.create_ad', 'fields' => [ + 'detailed_product_options', 'steps_color', 'create_ad_button_color', 'hide_standard_price_field', 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 9ae81b704..dd64714e4 100644 --- a/addons/default/visiosoft/advs-module/resources/config/settings/settings.php +++ b/addons/default/visiosoft/advs-module/resources/config/settings/settings.php @@ -437,4 +437,29 @@ return [ 'default_value' => true, ] ], + 'show_subcats_mobile' => [ + 'type' => 'anomaly.field_type.boolean', + 'config' => [ + 'default_value' => false, + ] + ], + 'show_price_to_members_only' => [ + 'type' => 'anomaly.field_type.boolean', + 'config' => [ + 'default_value' => false, + ] + ], + 'hide_ad_cat' => [ + 'type' => 'anomaly.field_type.boolean', + 'config' => [ + 'default_value' => false, + ] + ], + + 'show_finish_and_publish_date' => [ + 'type' => 'anomaly.field_type.boolean', + 'config' => [ + 'default_value' => false, + ], + ], ]; diff --git a/addons/default/visiosoft/advs-module/resources/css/list-new.scss b/addons/default/visiosoft/advs-module/resources/css/list-new.scss index b10b4fa9a..3abc7da39 100644 --- a/addons/default/visiosoft/advs-module/resources/css/list-new.scss +++ b/addons/default/visiosoft/advs-module/resources/css/list-new.scss @@ -55,8 +55,12 @@ ul { } } - & > label { - font-size: calc(14rem / 16); + &:last-child { + max-height: 11rem; + + label { + font-size: calc(14rem / 16); + } } } } @@ -95,6 +99,8 @@ ul { } #categoryList { + max-height: 24rem; + & > li { margin-bottom: .4rem; @@ -160,7 +166,7 @@ ul { /* End Location */ /* Price */ - #price { + #price, .range-filter { li { & + & { margin-left: 0.5em; @@ -223,6 +229,14 @@ ul { } /* End Map */ + /* Keyword */ + #keywordFilter, .text-filter { + input { + font-size: calc(14rem / 16); + } + } + /* End Keyword */ + /* Filter submit */ #filterSubmit { button { @@ -457,7 +471,7 @@ ul { background-color: #3F475F; font-weight: 400; font-size: calc(12rem / 16); - padding: .2rem; + padding: .2rem .5rem; &:first-child { border-top-left-radius: .25rem; @@ -481,7 +495,7 @@ ul { } td { - padding: .4rem 0; + padding: .4rem .5rem; & > a { img { @@ -511,13 +525,13 @@ ul { } .cat-data { - font-size: calc(12rem / 16); + font-size: calc(13rem / 16); color: rgba(34, 34, 34, .4); } .action-data { color: #A1A1A1; - font-size: calc(8rem / 16); + font-size: calc(10.7rem / 16); & > a { visibility: hidden; @@ -539,13 +553,12 @@ ul { } svg { - width: .4rem; + width: .45rem; height: auto; } } &.location-data, &.date-data { - width: 13%; font-size: calc(13rem / 16); color: #707070; } diff --git a/addons/default/visiosoft/advs-module/resources/css/list.css b/addons/default/visiosoft/advs-module/resources/css/list.css index 59d80e93d..3501befb7 100644 --- a/addons/default/visiosoft/advs-module/resources/css/list.css +++ b/addons/default/visiosoft/advs-module/resources/css/list.css @@ -258,4 +258,75 @@ a.sort-by-open-dropdown:hover { .navbar-collapse { padding-left: 15px !important; -} \ No newline at end of file +} + +@media (max-width: 576px) { + .mobile-sub-cats { + width: 100vw; + height: 100vh; + background: #fff; + padding: 0 !important; + left: 0; + position: fixed; + z-index: 999; + display: flex !important; + flex-direction: column; + justify-content: start; + list-style: none; + } + + .mobile-sub-cats { + background-color: #f3f0f0; + } + + .mobile-sub-cats ul { + background-color: #fff; + overflow-y: scroll; + overflow-x: hidden; + padding-top: 10px; + margin-bottom: 50px; + width: 100%; + border-top: 1px solid #ccc; + } + + .mobile-sub-cats .categories-list-li { + height: 48px; + line-height: 48px; + border-bottom: 1px solid #ccc; + padding: 0 15px; + } + + .mobile-sub-cats .categories-list-li img { + object-fit: contain; + } + + .mobile-sub-cats .categories-list-li .main-advs-count { + color: #1064bc !important; + } + .mobile-sub-cats .categories-list-li .advs-count{ + font-weight: 200; + color: #bcbbbb !important; + } + + .mobile-sub-cats .categories-list-li a { + margin-bottom: 10px; + width: 100%; + display: flex; + justify-content: space-between; + color: #000; + } + + .mobile-sub-cats .categories-list-li i{ + color: #bcbbbb !important; + } + + .mobile-sub-cats .categories-list-li a span:first-child{ + text-overflow: ellipsis; + overflow: hidden; + } + + .mobile-sub-cats .show-all { + font-weight: bolder; + color: #1064bc !important; + } +} diff --git a/addons/default/visiosoft/advs-module/resources/css/new-create-new.scss b/addons/default/visiosoft/advs-module/resources/css/new-create-new.scss new file mode 100644 index 000000000..ca1269cc7 --- /dev/null +++ b/addons/default/visiosoft/advs-module/resources/css/new-create-new.scss @@ -0,0 +1,262 @@ +/* Main styles */ +html { + font-size: 12px; + @media only screen and (min-width: 576px) { + font-size: 7.5789px; + } + @media only screen and (min-width: 768px) { + font-size: 10.1052px; + } + @media only screen and (min-width: 992px) { + font-size: 13.4736px; + } + @media only screen and (min-width: 1200px) { + font-size: 16px; + } +} + +label { + margin-bottom: 0; +} +/* End Main styles */ + +#pageTitle { + margin: 2rem 0; + @media only screen and (min-width: 576px) { + margin: 4rem 0; + } + + h1 { + font-weight: 700; + } + + h2 { + color: #707070; + font-size: calc(24rem / 16); + font-weight: 400; + } +} + +#contactInfo { + background-color: #FBFBFD; + padding: 1.4rem 1rem 1.5rem; + @media only screen and (min-width: 576px) { + padding: 2.4rem 4rem 5.5rem; + } + + h3 { + color: #6E5DDB; + font-size: calc(26rem / 16); + margin-bottom: 2rem; + } + + #reachInfo { + font-family: 'Poppins', sans-serif; + margin-bottom: 2rem; + + p { + color: #4A4A4A; + font-size: calc(14rem / 16); + font-weight: 600; + } + + div { + label { + color: #505050; + font-size: calc(18rem / 16); + font-weight: 500; + } + } + } + + #contactSummary { + font-family: 'Poppins', sans-serif; + margin-bottom: 1rem; + @media only screen and (min-width: 576px) { + margin-bottom: 2rem; + } + + label { + font-size: calc(14rem / 16); + color: #4A4A4A; + width: 100%; + font-weight: 600; + margin-bottom: 1rem; + @media only screen and (min-width: 576px) { + width: 32.4%; + margin-bottom: 0; + } + + input { + box-shadow: 0 calc(1rem / 16) calc(2rem / 16) rgba(0, 0, 0, .04); + font-size: calc(17rem / 16); + padding: 1.1rem 1.5rem; + color: #707070; + } + } + } + + #editContact { + button { + color: #0075FF; + background: none; + font-size: calc(18rem / 16); + + svg { + height: 1.08rem; + width: auto; + } + + span { + margin-left: .75rem; + } + } + } +} + +#mainInfo { + background-color: #FBFBFD; + padding: 1.4rem 1rem 2.3rem; + @media only screen and (min-width: 576px) { + padding: 2.4rem 4rem 4.3rem; + } + + h3 { + color: #6E5DDB; + font-size: calc(26rem / 16); + margin-bottom: 2rem; + } + + label { + font-family: 'Poppins', sans-serif; + font-size: calc(14rem / 16); + color: #4A4A4A; + font-weight: 600; + + input { + box-shadow: 0 calc(1rem / 16) calc(2rem / 16) rgba(0, 0, 0, .04); + font-size: calc(17rem / 16); + padding: 1.1rem 1.5rem; + color: #707070; + } + } + + #stockInput { + flex-wrap: wrap; + @media only screen and (min-width: 576px) { + flex-wrap: nowrap; + } + + & > label { + width: 100%; + @media only screen and (min-width: 576px) { + width: 47.5%; + } + + &:not(.d-none) + div { + top: .6rem; + } + + &.d-none + div { + margin-bottom: .5rem; + } + } + + div { + position: relative; + margin: 1rem 0; + @media only screen and (min-width: 576px) { + margin: 0; + width: 47.5%; + } + + svg { + width: 2.2rem; + height: auto; + } + + label { + position: relative; + top: .25rem; + font-weight: 500; + font-size: calc(16rem / 16); + } + } + } + + #priceInput { + & > div { + ::placeholder { + color: #B9C0CF; + opacity: 1; + } + + :-ms-input-placeholder { + color: #B9C0CF; + } + + ::-ms-input-placeholder { + color: #B9C0CF; + } + + input, select { + box-shadow: 0 calc(1rem / 16) calc(2rem / 16) rgba(0, 0, 0, .04); + font-size: calc(17rem / 16); + padding: 1.1rem 1.5rem; + color: #707070; + } + + &:first-child { + @media only screen and (min-width: 576px) { + width: 47.5%; + } + + input { + &.decimal-price { + width: 17%; + } + } + } + + &:last-child { + @media only screen and (min-width: 576px) { + width: 50.75%; + } + + select, .decimal-price { + width: 17%; + } + + select { + padding: 1.1rem 1rem; + } + } + } + } + + #simpleOptionsInput { + .select2-selection { + box-shadow: 0 calc(1rem / 16) calc(2rem / 16) rgba(0, 0, 0, .04); + font-size: calc(17rem / 16); + padding: 1.1rem 1.5rem; + color: #707070; + border: 0; + margin-top: 1rem; + + .select2-selection__rendered { + padding: 0; + display: flex; + margin: 0; + flex-wrap: wrap; + + .select2-selection__choice { + float: none; + } + + .select2-search__field { + padding: 0; + } + } + } + } +} \ No newline at end of file diff --git a/addons/default/visiosoft/advs-module/resources/css/new-create.css b/addons/default/visiosoft/advs-module/resources/css/new-create.css index a61a3beef..1ab14a941 100644 --- a/addons/default/visiosoft/advs-module/resources/css/new-create.css +++ b/addons/default/visiosoft/advs-module/resources/css/new-create.css @@ -1,3 +1,66 @@ .editContact { font-size: 13px; +} + +.input-group { + position: relative; + width: 100%; + display: flex; +} + +.input-group .form-control { + position: relative; + z-index: 2; + flex: 1; + margin-bottom: 0; +} + +.input-group .form-control:focus, .input-group .form-control:active, .input-group .form-control:hover { + z-index: 3; +} + +.input-group-addon:not(:first-child):not(:last-child), +.input-group-btn:not(:first-child):not(:last-child), +.input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; +} + +.input-group-addon, +.input-group-btn { + white-space: nowrap; + vertical-align: middle; +} + +.input-group-addon { + padding: 0.5rem 0.75rem; + margin-bottom: 0; + font-size: 1rem; + font-weight: normal; + line-height: 1.25; + color: #55595c; + text-align: center; + background-color: #eceeef; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.1rem; +} + +.input-group-addon.form-control-sm, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .input-group-addon.btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.1rem; +} + +.input-group-addon.form-control-lg, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .input-group-addon.btn { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; + border-radius: 0.25rem; +} + +.input-group-addon input[type=radio], +.input-group-addon input[type=checkbox] { + margin-top: 0; } \ No newline at end of file diff --git a/addons/default/visiosoft/advs-module/resources/images/create/contact-edit.svg b/addons/default/visiosoft/advs-module/resources/images/create/contact-edit.svg new file mode 100644 index 000000000..3364c1de2 --- /dev/null +++ b/addons/default/visiosoft/advs-module/resources/images/create/contact-edit.svg @@ -0,0 +1,3 @@ + diff --git a/addons/default/visiosoft/advs-module/resources/images/create/safe-cart.svg b/addons/default/visiosoft/advs-module/resources/images/create/safe-cart.svg new file mode 100644 index 000000000..f1b119b11 --- /dev/null +++ b/addons/default/visiosoft/advs-module/resources/images/create/safe-cart.svg @@ -0,0 +1,19 @@ + diff --git a/addons/default/visiosoft/advs-module/resources/images/listing/sample-cat-icon.svg b/addons/default/visiosoft/advs-module/resources/images/listing/sample-cat-icon.svg index d8122ec34..7d97bd086 100644 --- a/addons/default/visiosoft/advs-module/resources/images/listing/sample-cat-icon.svg +++ b/addons/default/visiosoft/advs-module/resources/images/listing/sample-cat-icon.svg @@ -1,16 +1,9 @@ -
- Save Search + {{ trans('visiosoft.module.advs::field.save_search') }} {{ img('visiosoft.module.advs::images/listing/save-search.svg').data|raw }} @@ -49,7 +49,7 @@ {% endfor %}| {{ trans('visiosoft.module.advs::field.ad_title') }} | - {% if listLocation %} -- {{ trans('visiosoft.module.advs::field.city.name') }} / {{ trans('visiosoft.module.advs::field.district.name') }} - | - {% endif %} -{{ trans('visiosoft.module.advs::field.listing_date') }} | -{{ trans('visiosoft.module.advs::field.price.name') }} | -||||
|---|---|---|---|---|---|---|---|
| {{ trans('visiosoft.module.advs::field.ad_title') }} | + + {% for cF in listingCFs %} +{{ cF.name }} | + {% endfor %} + + {% if listLocation %} ++ {{ trans('visiosoft.module.advs::field.city.name') }} + / {{ trans('visiosoft.module.advs::field.district.name') }} + | + {% endif %} + {% if setting_value('visiosoft.module.advs::market_place') and showDate %} +{{ trans('visiosoft.module.advs::field.date.name') }} | + {% endif %} +{{ trans('visiosoft.module.advs::field.price.name') }} | +|||
-
-
-
- |
-
- #{{ adv.id }} -- {{ adv.name }} -+ {% for adv in advs %} + | ||||||
+
+
+
+ |
+
+ + {{ adv.name }} ++ {% if not setting_value('visiosoft.module.advs::hide_ad_cat') %}{{ adv.cat1_name }} /{{ adv.cat2_name }} -
-
- {{ addBlock('list/extra-actions', {'ad': adv, 'vars': _context})|raw }}
-
-
- |
- {% if listLocation %}
-
- {{ adv.country_name }} -{{ adv.city_name }} - |
{% endif %}
+ {{ feature ? feature.custom_field_value : '-' }} | + {% endfor %} + + {% if listLocation %} +
+ {{ adv.country_name }} +{{ adv.city_name }} + |
+ {% endif %}
+ {% if setting_value('visiosoft.module.advs::market_place') and showDate%}
- {{ adv.publish_at.value|date('d F') }} +{{ adv.publish_at.value|date('d/m') }} {{ adv.publish_at.value|date('Y') }} |
-
- {% if not hideStandard %}
-
- |
+ {% if not hideStandard %}
- {{ adv.price != '0' ? currency_format(adv.price,adv.currency) : trans('visiosoft.module.advs::field.free') }}
+ |
-
{{ trans("visiosoft.module.advs::field.list") }}
- - {{ img('visiosoft.module.advs::images/listing/map.svg').data|raw }} -{{ trans("visiosoft.module.advs::field.map.name") }}
- + {% if setting_value('visiosoft.module.location::list_page_location') %} + + {{ img('visiosoft.module.advs::images/listing/map.svg').data|raw }} +{{ trans("visiosoft.module.advs::field.map.name") }}
+ + {% endif %}{{ trans("visiosoft.module.advs::field.filter_by_word") }}
+ {{ img('visiosoft.module.advs::images/listing/filter-arrow.svg').data|raw }} +