diff --git a/addons/default/visiosoft/advs-module/migrations/2018_09_25_211039_visiosoft.module.advs__create_advs_stream.php b/addons/default/visiosoft/advs-module/migrations/2018_09_25_211039_visiosoft.module.advs__create_advs_stream.php
index dfb48c899..440a82f92 100644
--- a/addons/default/visiosoft/advs-module/migrations/2018_09_25_211039_visiosoft.module.advs__create_advs_stream.php
+++ b/addons/default/visiosoft/advs-module/migrations/2018_09_25_211039_visiosoft.module.advs__create_advs_stream.php
@@ -4,6 +4,11 @@ use Anomaly\Streams\Platform\Database\Migration\Migration;
class VisiosoftModuleAdvsCreateAdvsStream extends Migration
{
+ public function __construct()
+ {
+ \Illuminate\Support\Facades\DB::getDoctrineSchemaManager()
+ ->getDatabasePlatform()->registerDoctrineTypeMapping('point', 'string');
+ }
/**
* The stream definition.
diff --git a/addons/default/visiosoft/advs-module/migrations/2020_11_27_072549_visiosoft.module.advs__alter_index_to_all_table.php b/addons/default/visiosoft/advs-module/migrations/2020_11_27_072549_visiosoft.module.advs__alter_index_to_all_table.php
index 06465ed17..519cc8852 100644
--- a/addons/default/visiosoft/advs-module/migrations/2020_11_27_072549_visiosoft.module.advs__alter_index_to_all_table.php
+++ b/addons/default/visiosoft/advs-module/migrations/2020_11_27_072549_visiosoft.module.advs__alter_index_to_all_table.php
@@ -8,11 +8,15 @@ class VisiosoftModuleAdvsAlterIndexToAllTable extends Migration
{
public function up()
{
- Schema::table('advs_productoptions_translations', function (Blueprint $table) {
+ Schema::table('advs_productoptions_value_translations', function (Blueprint $table) {
+ $table->index('entry_id');
+ });
+
+ Schema::table('advs_advs_translations', function (Blueprint $table) {
$table->index('entry_id');
});
- Schema::table('advs_productoptions_value_translations', function (Blueprint $table) {
+ Schema::table('advs_productoptions_translations', function (Blueprint $table) {
$table->index('entry_id');
});
}
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 b54f66702..ff2f5c9f1 100644
--- a/addons/default/visiosoft/advs-module/resources/config/settings/sections.php
+++ b/addons/default/visiosoft/advs-module/resources/config/settings/sections.php
@@ -7,6 +7,7 @@ return [
'general' => [
'title' => 'visiosoft.module.advs::section.general',
'fields' => [
+ 'favicon',
'market_place',
'show_lang_url',
'iban_numbers',
@@ -36,6 +37,13 @@ return [
'show_ads_count',
],
],
+ 'ads_detail' => [
+ 'title' => 'visiosoft.module.advs::section.ads_detail',
+ 'fields' => [
+ 'ads_date_hidden',
+ 'hide_seller_info',
+ ]
+ ],
'create_ad' => [
'title' => 'visiosoft.module.advs::section.create_ad',
'fields' => [
@@ -78,7 +86,8 @@ return [
'filter' => [
'title' => 'visiosoft.module.advs::section.filter',
'fields' => [
- 'hide_price_filter', 'hide_date_filter', 'hide_photo_filter', 'hide_map_filter', 'user_filter_limit'
+ 'hide_filter_section', 'hide_price_filter', 'hide_date_filter', 'hide_photo_filter', 'hide_map_filter',
+ 'hide_listing_header', 'user_filter_limit',
],
],
'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 32f70c98f..484b4981d 100644
--- a/addons/default/visiosoft/advs-module/resources/config/settings/settings.php
+++ b/addons/default/visiosoft/advs-module/resources/config/settings/settings.php
@@ -381,4 +381,31 @@ return [
},
],
],
+ 'favicon' => [
+ 'type' => 'anomaly.field_type.file',
+ ],
+ 'ads_date_hidden' => [
+ 'type' => 'anomaly.field_type.boolean',
+ 'config' => [
+ 'default_value' => false,
+ ]
+ ],
+ 'hide_listing_header' => [
+ 'type' => 'anomaly.field_type.boolean',
+ 'config' => [
+ 'default_value' => false,
+ ]
+ ],
+ 'hide_filter_section' => [
+ 'type' => 'anomaly.field_type.boolean',
+ 'config' => [
+ 'default_value' => false,
+ ]
+ ],
+ 'hide_seller_info' => [
+ 'type' => 'anomaly.field_type.boolean',
+ 'config' => [
+ 'default_value' => false,
+ ]
+ ]
];
diff --git a/addons/default/visiosoft/advs-module/resources/css/admin/filter-user.css b/addons/default/visiosoft/advs-module/resources/css/admin/filter-user.css
new file mode 100644
index 000000000..93119c7b0
--- /dev/null
+++ b/addons/default/visiosoft/advs-module/resources/css/admin/filter-user.css
@@ -0,0 +1,3 @@
+select[name=filter_user] + .select2 {
+ min-width: 20rem;
+}
diff --git a/addons/default/visiosoft/advs-module/resources/css/custom.css b/addons/default/visiosoft/advs-module/resources/css/custom.css
index c00e602ef..ddf7bbb6a 100644
--- a/addons/default/visiosoft/advs-module/resources/css/custom.css
+++ b/addons/default/visiosoft/advs-module/resources/css/custom.css
@@ -41,11 +41,6 @@
.select2-container--default .select2-selection--single .select2-selection__arrow {
top: unset;
}
-
-select[name=filter_User] + .select2 {
- min-width: 20rem;
-}
-
.navbar-collapse {
padding-left: 15px !important;
}
\ No newline at end of file
diff --git a/addons/default/visiosoft/advs-module/resources/images/user_section_back.png b/addons/default/visiosoft/advs-module/resources/images/user_section_back.png
index 44ca35dc3..eeb45fbb7 100644
Binary files a/addons/default/visiosoft/advs-module/resources/images/user_section_back.png and b/addons/default/visiosoft/advs-module/resources/images/user_section_back.png differ
diff --git a/addons/default/visiosoft/advs-module/resources/js/admin/advanced.js b/addons/default/visiosoft/advs-module/resources/js/admin/advanced.js
index c94938966..b7b832bab 100644
--- a/addons/default/visiosoft/advs-module/resources/js/admin/advanced.js
+++ b/addons/default/visiosoft/advs-module/resources/js/admin/advanced.js
@@ -24,9 +24,9 @@ if (getUrlParameter('view') === "advanced") {
}
crudAjax({
- 'advanced_column': advanced_column,
- 'advanced_entry_id': advanced_entry_id,
- 'advanced_value': advanced_value
+ 'edit_column': advanced_column,
+ 'edit_entry_id': advanced_entry_id,
+ 'edit_value': advanced_value
}, advanced_update_url, 'POST')
})
}
\ No newline at end of file
diff --git a/addons/default/visiosoft/advs-module/resources/js/admin/filter-user.js b/addons/default/visiosoft/advs-module/resources/js/admin/filter-user.js
new file mode 100644
index 000000000..740cbe991
--- /dev/null
+++ b/addons/default/visiosoft/advs-module/resources/js/admin/filter-user.js
@@ -0,0 +1,25 @@
+$(document).ready(function () {
+
+// User filter
+ $("select[name=filter_user]").select2({
+ placeholder: $('select[name=filter_user] option:first-child').text(),
+ ajax: {
+ url: '/api/profile/query-users',
+ dataType: 'json',
+ processResults: function (data) {
+ let formattedData = [];
+
+ Object.keys(data).forEach(function (id) {
+ formattedData.push({
+ 'id': id,
+ 'text': data[id]
+ })
+ });
+
+ return {
+ results: formattedData
+ }
+ }
+ }
+ });
+});
\ No newline at end of file
diff --git a/addons/default/visiosoft/advs-module/resources/js/cats.js b/addons/default/visiosoft/advs-module/resources/js/cats.js
index ba40a71b2..afec5d5e4 100644
--- a/addons/default/visiosoft/advs-module/resources/js/cats.js
+++ b/addons/default/visiosoft/advs-module/resources/js/cats.js
@@ -2,9 +2,6 @@ function showLoader() {
$('body').append('
- {% if isActive('packages') and setting_value('visiosoft.module.packages::move_the_buy_package_to_the_end') %}
+ {% if isActive('packages') and setting_value('visiosoft.module.packages::move_the_buy_package_to_the_end') and (auth_user().isAdmin or not auth_user().hasPermission('visiosoft.module.packages::packages.no_read')) %}
{% set continueLink = url_route('visiosoft.module.packages::add_package', [adv.id]) %}
{% elseif isActive('dopings') %}
{% set continueLink = url_route('add_doping', [adv.id]) %}
diff --git a/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php b/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php
index 0488277d7..6975d7973 100644
--- a/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php
+++ b/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php
@@ -71,7 +71,7 @@ class AdvModel extends AdvsAdvsEntryModel implements AdvInterface
public function userAdv($nullable_ad = false, $checkRole = true)
{
- if (Auth::user()->hasRole('admin') && $checkRole) {
+ if ($user = Auth::user() and $user->hasRole('admin') && $checkRole) {
return $this->getAdv(null, $nullable_ad);
} else {
return $this->getAdv(null, $nullable_ad)
@@ -411,4 +411,9 @@ class AdvModel extends AdvsAdvsEntryModel implements AdvInterface
'publish_at' => date('Y-m-d H:i:s')
]);
}
+
+ public function changeStatus($status)
+ {
+ $this->update(['status' => $status]);
+ }
}
diff --git a/addons/default/visiosoft/advs-module/src/Adv/AdvObserver.php b/addons/default/visiosoft/advs-module/src/Adv/AdvObserver.php
index b16e6d295..55f23f0c8 100644
--- a/addons/default/visiosoft/advs-module/src/Adv/AdvObserver.php
+++ b/addons/default/visiosoft/advs-module/src/Adv/AdvObserver.php
@@ -1,15 +1,33 @@
dispatch(new AddSlug($entry));
+
+ parent::updating($entry);
+ }
+
public function deleting(EntryInterface $entry)
{
$this->dispatch(new DeleteOptionConfiguration($entry));
+ event(new DeletingAd($entry));
+
parent::deleting($entry);
}
+
+ public function deleted(EntryInterface $entry)
+ {
+ event(new DeletedAd($entry));
+ parent::deleted($entry);
+ }
}
diff --git a/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php b/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php
index 64de7520b..a0460eade 100644
--- a/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php
+++ b/addons/default/visiosoft/advs-module/src/Adv/AdvRepository.php
@@ -63,7 +63,7 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface
});
}
}
- if (!setting_value('visiosoft.module.location::hide_location_filter') and isset($param['country'])) {
+ if (!setting_value('visiosoft.module.location::hide_location_filter')) {
$country = !empty($param['country']) ? $param['country'] : setting_value('visiosoft.module.location::default_country');
if ($country) {
$query = $query->where('country_id', $country);
@@ -459,7 +459,9 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface
$advs = $this->newQuery()->where('id', $allAds);
}
$newDate = date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s') . ' + ' . setting_value('visiosoft.module.advs::default_published_time') . ' day'));
- return $advs->update(['finish_at' => $newDate]);
+ return $advs
+ ->where('slug', '!=', '')
+ ->update(['finish_at' => $newDate]);
}
public function getByUsersIDs($usersIDs, $status = 'approved', $withDraft = false)
diff --git a/addons/default/visiosoft/advs-module/src/Adv/Command/AddSlug.php b/addons/default/visiosoft/advs-module/src/Adv/Command/AddSlug.php
new file mode 100644
index 000000000..cfc6c42e5
--- /dev/null
+++ b/addons/default/visiosoft/advs-module/src/Adv/Command/AddSlug.php
@@ -0,0 +1,23 @@
+ad = $ad;
+ }
+
+ public function handle()
+ {
+ if (!$this->ad->slug && $this->ad->name) {
+ $this->ad->update([
+ 'slug' => Str::slug($this->ad->name)
+ ]);
+ }
+ }
+}
diff --git a/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvInterface.php b/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvInterface.php
index 3c6374283..06f037a75 100644
--- a/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvInterface.php
+++ b/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvInterface.php
@@ -87,4 +87,6 @@ interface AdvInterface extends EntryInterface
public function getStatus();
public function approve();
+
+ public function changeStatus($status);
}
diff --git a/addons/default/visiosoft/advs-module/src/Adv/Event/DeletedAd.php b/addons/default/visiosoft/advs-module/src/Adv/Event/DeletedAd.php
index 95f5ce482..3dcbcc78d 100644
--- a/addons/default/visiosoft/advs-module/src/Adv/Event/DeletedAd.php
+++ b/addons/default/visiosoft/advs-module/src/Adv/Event/DeletedAd.php
@@ -13,5 +13,9 @@ class DeletedAd
{
return $this->ad;
}
-}
+ public function getEntry()
+ {
+ return $this->ad;
+ }
+}
diff --git a/addons/default/visiosoft/advs-module/src/Adv/Event/DeletingAd.php b/addons/default/visiosoft/advs-module/src/Adv/Event/DeletingAd.php
new file mode 100644
index 000000000..8c9dd17ef
--- /dev/null
+++ b/addons/default/visiosoft/advs-module/src/Adv/Event/DeletingAd.php
@@ -0,0 +1,17 @@
+entry = $entry;
+ }
+
+ public function getEntry()
+ {
+ return $this->entry;
+ }
+}
diff --git a/addons/default/visiosoft/advs-module/src/Adv/Event/ReadySimpleAdvFormFields.php b/addons/default/visiosoft/advs-module/src/Adv/Event/ReadySimpleAdvFormFields.php
new file mode 100644
index 000000000..527533f0a
--- /dev/null
+++ b/addons/default/visiosoft/advs-module/src/Adv/Event/ReadySimpleAdvFormFields.php
@@ -0,0 +1,18 @@
+fields = $fields;
+ }
+
+ public function getFields()
+ {
+ return $this->fields;
+ }
+}
diff --git a/addons/default/visiosoft/advs-module/src/Adv/Form/AdvFormBuilder.php b/addons/default/visiosoft/advs-module/src/Adv/Form/AdvFormBuilder.php
index ef1e7e90e..99ff60fc1 100644
--- a/addons/default/visiosoft/advs-module/src/Adv/Form/AdvFormBuilder.php
+++ b/addons/default/visiosoft/advs-module/src/Adv/Form/AdvFormBuilder.php
@@ -63,7 +63,9 @@ class AdvFormBuilder extends FormBuilder
protected $rules = [];
- protected $skips = [];
+ protected $skips = [
+ 'slug'
+ ];
protected $actions = [];
diff --git a/addons/default/visiosoft/advs-module/src/Adv/Form/SimpleAdvFormBuilder.php b/addons/default/visiosoft/advs-module/src/Adv/Form/SimpleAdvFormBuilder.php
index ca1ee4662..87b4b36ad 100644
--- a/addons/default/visiosoft/advs-module/src/Adv/Form/SimpleAdvFormBuilder.php
+++ b/addons/default/visiosoft/advs-module/src/Adv/Form/SimpleAdvFormBuilder.php
@@ -7,36 +7,7 @@ use Visiosoft\AdvsModule\Adv\AdvModel;
class SimpleAdvFormBuilder extends FormBuilder
{
protected $model = AdvModel::class;
-
- protected $fields = [
- "created_by_id" => [
- 'label' => 'visiosoft.module.advs::field.owner',
- 'instructions' => 'visiosoft.module.advs::field.default_owner_instruction',
- "type" => "anomaly.field_type.relationship",
- "config" => [
- "related" => UserModel::class,
- "mode" => "lookup",
- ]
- ],
- 'name',
- 'price',
- 'currency',
- 'advs_desc',
- 'cat1',
- 'cat2',
- 'cat3',
- 'cat4',
- 'cat5',
- 'cat6',
- 'cat7',
- 'cat8',
- 'cat9',
- 'cat10',
- 'is_get_adv',
- 'stock',
- 'files',
- ];
-
+
protected $assets = [
'scripts.js' => [
'visiosoft.module.advs::js/simple.js'
diff --git a/addons/default/visiosoft/advs-module/src/Adv/Form/SimpleAdvFormFields.php b/addons/default/visiosoft/advs-module/src/Adv/Form/SimpleAdvFormFields.php
new file mode 100644
index 000000000..d6f737e10
--- /dev/null
+++ b/addons/default/visiosoft/advs-module/src/Adv/Form/SimpleAdvFormFields.php
@@ -0,0 +1,48 @@
+all()->pluck('name', 'slug')->all();
+
+ $form_fields = [
+ 'name',
+ 'price',
+ 'currency',
+ 'advs_desc',
+ 'cat1',
+ 'cat2',
+ 'cat3',
+ 'cat4',
+ 'cat5',
+ 'cat6',
+ 'cat7',
+ 'cat8',
+ 'cat9',
+ 'cat10',
+ 'is_get_adv',
+ 'stock',
+ 'status' => [
+ 'type' => 'anomaly.field_type.select',
+ "config" => [
+ "options" => $statuses,
+ "mode" => "search",
+ ]
+ ],
+ 'files',
+ ];
+
+ $eventFields = event(new ReadySimpleAdvFormFields($form_fields));
+
+ foreach ($eventFields as $field_array) {
+ $form_fields = array_merge($field_array);
+ }
+
+ $builder->setFields($form_fields);
+
+ }
+}
diff --git a/addons/default/visiosoft/advs-module/src/Adv/Form/SimpleAdvFormHandler.php b/addons/default/visiosoft/advs-module/src/Adv/Form/SimpleAdvFormHandler.php
index c78c58c3f..176bc5632 100644
--- a/addons/default/visiosoft/advs-module/src/Adv/Form/SimpleAdvFormHandler.php
+++ b/addons/default/visiosoft/advs-module/src/Adv/Form/SimpleAdvFormHandler.php
@@ -18,7 +18,7 @@ class SimpleAdvFormHandler
$builder->saveForm();
$ad = $advRepository->find($builder->getFormEntryId());
- if ($ad->status !== 'approved') {
+ if (!$builder->getFormValue('status') && $ad->status !== 'approved') {
$ad->approve();
}
diff --git a/addons/default/visiosoft/advs-module/src/Adv/Table/AdvTableBuilder.php b/addons/default/visiosoft/advs-module/src/Adv/Table/AdvTableBuilder.php
index 74f9db6e2..364106ebe 100644
--- a/addons/default/visiosoft/advs-module/src/Adv/Table/AdvTableBuilder.php
+++ b/addons/default/visiosoft/advs-module/src/Adv/Table/AdvTableBuilder.php
@@ -6,13 +6,6 @@ use Visiosoft\AdvsModule\Adv\Table\Views\unfinished;
class AdvTableBuilder extends TableBuilder
{
-
- /**
- * The table views.
- *
- * @var array|string
- */
-
protected $views = [
'all' => [
'view' => All::class,
@@ -31,25 +24,8 @@ class AdvTableBuilder extends TableBuilder
];
- /**
- * The table columns.
- *
- * @var array|string
- */
- protected $columns = [];
-
- /**
- * The table buttons.
- *
- * @var array|string
- */
protected $buttons = [];
- /**
- * The table actions.
- *
- * @var array|string
- */
protected $actions = [
'delete' => [
'handler' => \Visiosoft\AdvsModule\Adv\Table\Handler\Delete::class,
@@ -72,26 +48,19 @@ class AdvTableBuilder extends TableBuilder
],
];
- /**
- * The table options.
- *
- * @var array
- */
protected $options = [
'order_by' => [
'id' => 'DESC',
]
];
- /**
- * The table assets.
- *
- * @var array
- */
protected $assets = [
'scripts.js' => [
- 'visiosoft.module.advs::js/admin/advanced.js'
+ 'visiosoft.module.advs::js/admin/advanced.js',
+ 'visiosoft.module.advs::js/admin/filter-user.js',
+ ],
+ 'styles.css' => [
+ 'visiosoft.module.advs::css/admin/filter-user.css',
],
];
-
}
diff --git a/addons/default/visiosoft/advs-module/src/Adv/Table/AdvTableButtons.php b/addons/default/visiosoft/advs-module/src/Adv/Table/AdvTableButtons.php
index d8bd59c4c..cb7f228ce 100644
--- a/addons/default/visiosoft/advs-module/src/Adv/Table/AdvTableButtons.php
+++ b/addons/default/visiosoft/advs-module/src/Adv/Table/AdvTableButtons.php
@@ -1,13 +1,12 @@
setButtons([
+ $buttons = [
'status' => [
'text' => function (EntryInterface $entry) {
$text_type = ($entry->getStatus() == 'approved') ? 'decline' : 'approve';
@@ -25,11 +24,19 @@ class AdvTableButtons
return ($entry->getStatus() == 'approved') ? "danger" : "success";
},
],
- 'edit',
'settings' => [
'text' => false,
'href' => false,
'dropdown' => [
+ 'edit' => [
+ 'icon' => null,
+ 'href' => function (EntryInterface $entry) {
+ return route('visiosoft.module.advs::edit_adv', [$entry->id]);
+ },
+ ],
+ 'fast_edit' => [
+ 'href' => '/admin/advs/edit/{entry.id}'
+ ],
'change_owner' => [
'data-toggle' => 'modal',
'data-target' => '#modal',
@@ -44,7 +51,11 @@ class AdvTableButtons
'href' => route('visiosoft.module.advs::configrations.create') . "?ad={entry.id}"]
]
]
- ]);
+ ];
+
+ $builder->setButtons($buttons);
+
+ return $buttons;
}
}
diff --git a/addons/default/visiosoft/advs-module/src/Adv/Table/AdvTableFilters.php b/addons/default/visiosoft/advs-module/src/Adv/Table/AdvTableFilters.php
index 909f3ebe6..b257d48a6 100644
--- a/addons/default/visiosoft/advs-module/src/Adv/Table/AdvTableFilters.php
+++ b/addons/default/visiosoft/advs-module/src/Adv/Table/AdvTableFilters.php
@@ -40,7 +40,7 @@ class AdvTableFilters
'query' => CategoryFilterQuery::class,
'options' => $categories,
],
- 'User' => [
+ 'user' => [
'exact' => true,
'filter' => 'select',
'query' => UserFilterQuery::class,
diff --git a/addons/default/visiosoft/advs-module/src/AdvsModuleSeeder.php b/addons/default/visiosoft/advs-module/src/AdvsModuleSeeder.php
index 3af51f7f2..c66b4ace5 100644
--- a/addons/default/visiosoft/advs-module/src/AdvsModuleSeeder.php
+++ b/addons/default/visiosoft/advs-module/src/AdvsModuleSeeder.php
@@ -1,10 +1,12 @@
call(StatusSeeder::class);
}
}
\ No newline at end of file
diff --git a/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php b/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php
index 6f6c7a5d3..cbb633c1f 100644
--- a/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php
+++ b/addons/default/visiosoft/advs-module/src/AdvsModuleServiceProvider.php
@@ -3,6 +3,7 @@
use Anomaly\FilesModule\File\FileModel;
use Anomaly\Streams\Platform\Addon\AddonCollection;
use Anomaly\Streams\Platform\Addon\AddonServiceProvider;
+use Anomaly\Streams\Platform\Model\Advs\AdvsStatusEntryModel;
use Anomaly\Streams\Platform\Model\Location\LocationVillageEntryModel;
use Anomaly\Streams\Platform\Ui\Table\Event\TableIsQuerying;
use Visiosoft\AdvsModule\Adv\Contract\AdvRepositoryInterface;
@@ -21,6 +22,9 @@ use Visiosoft\AdvsModule\Productoption\Contract\ProductoptionRepositoryInterface
use Visiosoft\AdvsModule\Productoption\ProductoptionRepository;
use Visiosoft\AdvsModule\ProductoptionsValue\Contract\ProductoptionsValueRepositoryInterface;
use Visiosoft\AdvsModule\ProductoptionsValue\ProductoptionsValueRepository;
+use Visiosoft\AdvsModule\Status\Contract\StatusRepositoryInterface;
+use Visiosoft\AdvsModule\Status\StatusModel;
+use Visiosoft\AdvsModule\Status\StatusRepository;
use Visiosoft\LocationModule\Village\Contract\VillageRepositoryInterface;
use Visiosoft\LocationModule\Village\VillageRepository;
use Visiosoft\LocationModule\Village\VillageModel;
@@ -46,8 +50,8 @@ class AdvsModuleServiceProvider extends AddonServiceProvider
'uses' => 'Visiosoft\AdvsModule\Http\Controller\Admin\AdvsController@assetsClear',
],
'admin/advs-users/choose/{advId}' => 'Visiosoft\AdvsModule\Http\Controller\Admin\AdvsController@choose',
- 'admin/advs/ajax/advanced/advanced-update' => [
- 'as' => 'visiosoft.module.advs::ajax_advanced_update',
+ 'admin/ajax/multiple/multiple-update' => [
+ 'as' => 'visiosoft.module.advs::ajax_multiple_update',
'uses' => 'Visiosoft\AdvsModule\Http\Controller\Admin\AdvsController@advancedUpdate',
],
'admin/class/actions/{id}/{type}' => 'Visiosoft\AdvsModule\Http\Controller\Admin\AdvsController@actions',
@@ -220,10 +224,21 @@ class AdvsModuleServiceProvider extends AddonServiceProvider
'uses' => 'Visiosoft\AdvsModule\Http\Controller\OptionConfigurationController@confAddCart',
],
+ 'api/conf/add-cart' => [
+ 'as' => 'configuration::api_add_conf_cart',
+ 'uses' => 'Visiosoft\AdvsModule\Http\Controller\OptionConfigurationController@ajaxConfAddCart',
+ ],
+
// Admin ProductoptionsController
'admin/advs/product_options' => 'Visiosoft\AdvsModule\Http\Controller\Admin\ProductoptionsController@index',
'admin/advs/product_options/create' => 'Visiosoft\AdvsModule\Http\Controller\Admin\ProductoptionsController@create',
'admin/advs/product_options/edit/{id}' => 'Visiosoft\AdvsModule\Http\Controller\Admin\ProductoptionsController@edit',
+
+ // StatusController
+ 'ad/{ad_id}/change-status/{status_id}' => [
+ 'as' => 'visiosoft.module.advs::ad.change.status',
+ 'uses' => 'Visiosoft\AdvsModule\Http\Controller\StatusController@change'
+ ],
];
protected $middleware = [
@@ -240,6 +255,7 @@ class AdvsModuleServiceProvider extends AddonServiceProvider
protected $bindings = [
LocationVillageEntryModel::class => VillageModel::class,
AdvsAdvsEntryModel::class => AdvModel::class,
+ AdvsStatusEntryModel::class => StatusModel::class,
'my_form' => AdvFormBuilder::class,
];
@@ -252,6 +268,7 @@ class AdvsModuleServiceProvider extends AddonServiceProvider
ProductoptionRepositoryInterface::class => ProductoptionRepository::class,
OptionConfigurationRepositoryInterface::class => OptionConfigurationRepository::class,
ProductoptionsValueRepositoryInterface::class => ProductoptionsValueRepository::class,
+ StatusRepositoryInterface::class => StatusRepository::class,
];
public function boot(AddonCollection $addonCollection, FileModel $fileModel,CategoryRepositoryInterface $categoryRepository)
diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/AdvsController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/AdvsController.php
index 6962e2e4c..8491d6b38 100644
--- a/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/AdvsController.php
+++ b/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/AdvsController.php
@@ -43,15 +43,6 @@ class AdvsController extends AdminController
$table->addAsset("styles.css", "visiosoft.module.advs::css/custom.css");
$table->addAsset('scripts.js', 'visiosoft.module.advs::js/list.js');
- if ($this->model->is_enabled('recommendedads')) {
- $table->addButton('add_recommended', [
- 'type' => 'default',
- 'icon' => 'fa fa-gg',
- 'text' => 'Add Recommended',
- 'href' => '/admin/recommendedads/create/{entry.id}',
- ]);
- }
-
return $table->render();
}
@@ -207,10 +198,10 @@ class AdvsController extends AdminController
public function advancedUpdate()
{
- if ($this->request->has('advanced_column') and $this->request->has('advanced_entry_id') and $this->request->has('advanced_value')) {
- $entry_id = $this->request->get('advanced_entry_id');
- $column = $this->request->get('advanced_column');
- $value = $this->request->get('advanced_value');
+ if ($this->request->has('edit_column') and $this->request->has('edit_entry_id') and $this->request->has('edit_value')) {
+ $entry_id = $this->request->get('edit_entry_id');
+ $column = $this->request->get('edit_column');
+ $value = $this->request->get('edit_value');
if ($entry = $this->advRepository->find($entry_id)) {
$entry->setAttribute($column, $value);
$entry->save();
diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/StatusController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/StatusController.php
index e61072dd4..6dfe80dd2 100644
--- a/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/StatusController.php
+++ b/addons/default/visiosoft/advs-module/src/Http/Controller/Admin/StatusController.php
@@ -1,43 +1,32 @@
render();
}
- /**
- * Create a new entry.
- *
- * @param StatusFormBuilder $form
- * @return \Symfony\Component\HttpFoundation\Response
- */
public function create(StatusFormBuilder $form)
{
return $form->render();
}
- /**
- * Edit an existing entry.
- *
- * @param StatusFormBuilder $form
- * @param $id
- * @return \Symfony\Component\HttpFoundation\Response
- */
- public function edit(StatusFormBuilder $form, $id)
+ public function edit(StatusFormBuilder $form, StatusRepositoryInterface $statusRepository, $id)
{
+ $status = $statusRepository->find($id);
+
+ if ($status->is_system) {
+ $form->skipField('user_access');
+ }
+
+ $form->skipField('slug');
+
return $form->render($id);
}
}
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 37d84e363..c501e0825 100644
--- a/addons/default/visiosoft/advs-module/src/Http/Controller/AdvsController.php
+++ b/addons/default/visiosoft/advs-module/src/Http/Controller/AdvsController.php
@@ -1,6 +1,5 @@
adv_repository->getListItemAdv($id);
}
- if ($adv && ((!$adv->expired() && $adv->getStatus() === 'approved') || $adv->created_by_id === \auth()->id())) {
+ if ((auth()->user() and auth()->user()->hasRole('admin')) or ($adv && ((!$adv->expired() && $adv->getStatus() === 'approved') || $adv->created_by_id === \auth()->id()))) {
// Check if created by exists
- if (!$adv->created_by) {
+ if ((auth()->user() and !auth()->user()->hasRole('admin')) and !$adv->created_by) {
$this->messages->error('visiosoft.module.advs::message.this_ad_is_not_valid_anymore');
return $this->redirect->route('visiosoft.module.advs::list');
}
@@ -544,7 +542,8 @@ class AdvsController extends PublicController
}
}
- $metaTitle = $adv->name . " " . end($categories)['name'] . ' ' . setting_value('streams::domain');
+ $metaCatName = end($categories) ? end($categories)['name'] : '|';
+ $metaTitle = $adv->name . " " . $metaCatName . ' ' . setting_value('streams::domain');
$metaDesc = strip_tags($adv->advs_desc, '');
if (is_module_installed('visiosoft.module.seo')) {
@@ -654,8 +653,8 @@ class AdvsController extends PublicController
$this->messages->error(trans('visiosoft.module.advs::message.delete_author_error'));
}
- $advs->softDeleteAdv($id);
- $this->messages->error(trans('visiosoft.module.advs::message.success_delete'));
+ $ad->delete();
+ $this->messages->success(trans('visiosoft.module.advs::message.success_delete'));
return back();
}
@@ -1052,22 +1051,20 @@ class AdvsController extends PublicController
public function addCart(Request $request)
{
- if (\auth()->check()) {
- $id = $request->id;
- $quantity = $request->quantity;
- $name = $request->name;
- $thisModel = new AdvModel();
- $adv = $thisModel->isAdv($id);
- $response = array();
- if ($adv) {
- $cart = $thisModel->addCart($adv, $quantity, $name);
- $response['status'] = "success";
- } else {
- $response['status'] = "error";
- $response['msg'] = trans('visiosoft.module.advs::message.error_added_cart');
- }
+ $id = $request->id;
+ $quantity = $request->quantity;
+ $name = $request->name;
+ $thisModel = new AdvModel();
+ $adv = $thisModel->isAdv($id);
+ $response = array();
+ if ($adv) {
+ $cart = $thisModel->addCart($adv, $quantity, $name);
+ $response['status'] = "success";
+ $count = $cart->getItems()->count;
+ $response['count'] = $count;
} else {
- $response['status'] = "guest";
+ $response['status'] = "error";
+ $response['msg'] = trans('visiosoft.module.advs::message.error_added_cart');
}
return $response;
}
diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/OptionConfigurationController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/OptionConfigurationController.php
index b3f4ce198..14d1b456c 100644
--- a/addons/default/visiosoft/advs-module/src/Http/Controller/OptionConfigurationController.php
+++ b/addons/default/visiosoft/advs-module/src/Http/Controller/OptionConfigurationController.php
@@ -42,20 +42,41 @@ class OptionConfigurationController extends PublicController
public function confAddCart()
{
-
if($conf = $this->optionConfigurationRepository->find($this->request->configuration))
{
$conf->name = $conf->getName();
- $this->adv_model->authControl();
-
if ($conf->stock < $this->request->quantity){
- return redirect()->back()->with('warning', [trans('visiosoft.module.carts::message.error1in2')]);
+ return redirect()->back()->with('warning', [trans('visiosoft.module.carts::message.error1in2')]);
}else{
- $cart = $this->dispatch(new GetCart());
+ $cart = $this->dispatch(new GetCart());
$cart->add($conf, $this->request->quantity);
return $this->redirect->to(route('visiosoft.module.carts::cart'));
}
}
}
+
+ public function ajaxConfAddCart()
+ {
+ if (\auth()->check()) {
+ if($conf = $this->optionConfigurationRepository->find($this->request->configuration))
+ {
+ $conf->name = $conf->getName();
+
+ $this->adv_model->authControl();
+
+ if ($conf->stock < $this->request->quantity){
+ return $this->response->json(['status' => 'error', 'msg' => trans('visiosoft.module.carts::message.error1in2')]);
+ }else{
+ $cart = $this->dispatch(new GetCart());
+ $cart->add($conf, $this->request->quantity);
+
+ $count = $cart->getItems()->count;
+ return $this->response->json(['status'=> 'success', 'count' => $count]);
+ }
+ }
+ return $this->response->json(['status' => 'error', 'msg' => trans('visiosoft.module.carts::message.error2')]);
+ }
+ return $this->response->json(['status' => 'guest']);
+ }
}
diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/StatusController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/StatusController.php
new file mode 100644
index 000000000..2ba44ab41
--- /dev/null
+++ b/addons/default/visiosoft/advs-module/src/Http/Controller/StatusController.php
@@ -0,0 +1,37 @@
+advRepository = $advRepository;
+ $this->statusRepository = $statusRepository;
+ }
+
+ public function change($adID, $statusID)
+ {
+ $ad = $this->advRepository->find($adID);
+ $status = $this->statusRepository->find($statusID);
+
+ if (!$ad || !$status) {
+ abort(404);
+ }
+
+ $ad->changeStatus($status->slug);
+
+ $this->messages->success(trans(
+ 'visiosoft.module.advs::message.status_change',
+ ['status' => $status->name]
+ ));
+
+ return redirect()->back();
+ }
+}
diff --git a/addons/default/visiosoft/advs-module/src/Status/Contract/StatusRepositoryInterface.php b/addons/default/visiosoft/advs-module/src/Status/Contract/StatusRepositoryInterface.php
index fe7c6a517..6d6833b4a 100644
--- a/addons/default/visiosoft/advs-module/src/Status/Contract/StatusRepositoryInterface.php
+++ b/addons/default/visiosoft/advs-module/src/Status/Contract/StatusRepositoryInterface.php
@@ -4,5 +4,5 @@ use Anomaly\Streams\Platform\Entry\Contract\EntryRepositoryInterface;
interface StatusRepositoryInterface extends EntryRepositoryInterface
{
-
+ public function getUserAccessibleStatuses();
}
diff --git a/addons/default/visiosoft/advs-module/src/Status/Form/StatusFormBuilder.php b/addons/default/visiosoft/advs-module/src/Status/Form/StatusFormBuilder.php
index 426d3110d..0d08b64f0 100644
--- a/addons/default/visiosoft/advs-module/src/Status/Form/StatusFormBuilder.php
+++ b/addons/default/visiosoft/advs-module/src/Status/Form/StatusFormBuilder.php
@@ -4,63 +4,11 @@ use Anomaly\Streams\Platform\Ui\Form\FormBuilder;
class StatusFormBuilder extends FormBuilder
{
+ protected $skips = [
+ 'is_system',
+ ];
- /**
- * The form fields.
- *
- * @var array|string
- */
- protected $fields = [];
-
- /**
- * Additional validation rules.
- *
- * @var array|string
- */
- protected $rules = [];
-
- /**
- * Fields to skip.
- *
- * @var array|string
- */
- protected $skips = [];
-
- /**
- * The form actions.
- *
- * @var array|string
- */
- protected $actions = [];
-
- /**
- * The form buttons.
- *
- * @var array|string
- */
protected $buttons = [
'cancel',
];
-
- /**
- * The form options.
- *
- * @var array
- */
- protected $options = [];
-
- /**
- * The form sections.
- *
- * @var array
- */
- protected $sections = [];
-
- /**
- * The form assets.
- *
- * @var array
- */
- protected $assets = [];
-
}
diff --git a/addons/default/visiosoft/advs-module/src/Status/StatusRepository.php b/addons/default/visiosoft/advs-module/src/Status/StatusRepository.php
index fab83372a..7d54161c0 100644
--- a/addons/default/visiosoft/advs-module/src/Status/StatusRepository.php
+++ b/addons/default/visiosoft/advs-module/src/Status/StatusRepository.php
@@ -5,21 +5,15 @@ use Anomaly\Streams\Platform\Entry\EntryRepository;
class StatusRepository extends EntryRepository implements StatusRepositoryInterface
{
-
- /**
- * The entry model.
- *
- * @var StatusModel
- */
protected $model;
- /**
- * Create a new StatusRepository instance.
- *
- * @param StatusModel $model
- */
public function __construct(StatusModel $model)
{
$this->model = $model;
}
+
+ public function getUserAccessibleStatuses()
+ {
+ return $this->newQuery()->where(['is_system' => 0, 'user_access' => 1])->get();
+ }
}
diff --git a/addons/default/visiosoft/advs-module/src/Status/StatusSeeder.php b/addons/default/visiosoft/advs-module/src/Status/StatusSeeder.php
index bb2748686..cd0a290c7 100644
--- a/addons/default/visiosoft/advs-module/src/Status/StatusSeeder.php
+++ b/addons/default/visiosoft/advs-module/src/Status/StatusSeeder.php
@@ -1,15 +1,41 @@
'Approved',
+ 'slug' => 'approved',
+ ],
+ [
+ 'name' => 'Declined',
+ 'slug' => 'declined',
+ ],
+ [
+ 'name' => 'Passive',
+ 'slug' => 'passive',
+ ],
+ [
+ 'name' => 'Pending User',
+ 'slug' => 'pending_user',
+ ],
+ ];
+
+ foreach ($systemStatuses as $status) {
+ if (!$statusRepository->findBy('slug', $status['slug'])) {
+ $statusRepository->create([
+ 'name' => $status['name'],
+ 'slug' => $status['slug'],
+ 'is_system' => true,
+ 'user_access' => false,
+ ]);
+ }
+ }
}
}
diff --git a/addons/default/visiosoft/advs-module/src/Status/Table/StatusTableBuilder.php b/addons/default/visiosoft/advs-module/src/Status/Table/StatusTableBuilder.php
index 950e729f0..a9f061c9a 100644
--- a/addons/default/visiosoft/advs-module/src/Status/Table/StatusTableBuilder.php
+++ b/addons/default/visiosoft/advs-module/src/Status/Table/StatusTableBuilder.php
@@ -4,60 +4,11 @@ use Anomaly\Streams\Platform\Ui\Table\TableBuilder;
class StatusTableBuilder extends TableBuilder
{
-
- /**
- * The table views.
- *
- * @var array|string
- */
- protected $views = [];
-
- /**
- * The table filters.
- *
- * @var array|string
- */
- protected $filters = [];
-
- /**
- * The table columns.
- *
- * @var array|string
- */
- protected $columns = [
- 'name',
- ];
-
- /**
- * The table buttons.
- *
- * @var array|string
- */
protected $buttons = [
'edit'
];
- /**
- * The table actions.
- *
- * @var array|string
- */
protected $actions = [
'delete'
];
-
- /**
- * The table options.
- *
- * @var array
- */
- protected $options = [];
-
- /**
- * The table assets.
- *
- * @var array
- */
- protected $assets = [];
-
}
diff --git a/addons/default/visiosoft/advs-module/src/Status/Table/StatusTableColumns.php b/addons/default/visiosoft/advs-module/src/Status/Table/StatusTableColumns.php
new file mode 100644
index 000000000..9184d4381
--- /dev/null
+++ b/addons/default/visiosoft/advs-module/src/Status/Table/StatusTableColumns.php
@@ -0,0 +1,28 @@
+ [
+ 'value' => function (EntryInterface $entry) use ($yes, $no) {
+ return $entry->is_system ? $yes : $no;
+ }
+ ],
+ 'user_access' => [
+ 'value' => function (EntryInterface $entry) use ($yes, $no) {
+ return $entry->user_access ? $yes : $no;
+ }
+ ],
+ ];
+
+ $builder->setColumns($columns);
+ }
+}
diff --git a/addons/default/visiosoft/base-theme/resources/css/intlTelInput.css b/addons/default/visiosoft/base-theme/resources/css/intlTelInput.css
index eebd0d0ee..08523be6a 100644
--- a/addons/default/visiosoft/base-theme/resources/css/intlTelInput.css
+++ b/addons/default/visiosoft/base-theme/resources/css/intlTelInput.css
@@ -916,7 +916,7 @@
.iti__flag {
height: 15px;
box-shadow: 0px 0px 1px 0px #888;
- background-image: url('{{ img("visiosoft.theme.base::images/flags.png").url }}');
+ background-image: url('{{ img("visiosoft.theme.base::images/flags.png").path }}');
background-repeat: no-repeat;
background-color: #DBDBDB;
background-position: 20px 0; }
diff --git a/addons/default/visiosoft/base-theme/resources/lang/az/button.php b/addons/default/visiosoft/base-theme/resources/lang/az/button.php
index c594a5914..31983bd54 100644
--- a/addons/default/visiosoft/base-theme/resources/lang/az/button.php
+++ b/addons/default/visiosoft/base-theme/resources/lang/az/button.php
@@ -2,10 +2,10 @@
return [
'post_ad' => [
- 'name' => 'Elan göndər',
+ 'name' => 'Elan əlavə et',
],
'login' => 'Daxil ol',
- 'register' => 'Qeydiyyatdan keçin',
+ 'register' => 'Qeydiyyat',
'continue' => 'Davam edin',
'reset_password' => 'Parolu sıfırlamak',
'email' => 'Elektron poçt',
diff --git a/addons/default/visiosoft/base-theme/resources/lang/az/errors.php b/addons/default/visiosoft/base-theme/resources/lang/az/errors.php
new file mode 100644
index 000000000..cc800df49
--- /dev/null
+++ b/addons/default/visiosoft/base-theme/resources/lang/az/errors.php
@@ -0,0 +1,9 @@
+ 'Tapılmadı',
+ '403_title' => 'Qadağandır',
+ '404_message' => 'Axtardığınız səhifə tapılmadı.',
+ '403_message' => 'Saytdakı bu mənbələrə giriş qadağandır!',
+ 'home_page' => 'Əsas səhifəyə keçin',
+];
\ No newline at end of file
diff --git a/addons/default/visiosoft/base-theme/resources/lang/bg/addon.php b/addons/default/visiosoft/base-theme/resources/lang/bg/addon.php
new file mode 100644
index 000000000..766e4fa77
--- /dev/null
+++ b/addons/default/visiosoft/base-theme/resources/lang/bg/addon.php
@@ -0,0 +1,7 @@
+ 'BaseTheme',
+ 'name' => 'BaseTheme',
+ 'description' => 'BaseTheme'
+];
diff --git a/addons/default/visiosoft/base-theme/resources/lang/bg/button.php b/addons/default/visiosoft/base-theme/resources/lang/bg/button.php
new file mode 100644
index 000000000..ab9ea09b8
--- /dev/null
+++ b/addons/default/visiosoft/base-theme/resources/lang/bg/button.php
@@ -0,0 +1,15 @@
+ [
+ 'name' => 'Публикувай реклама',
+ ],
+ 'login' => 'Влизам',
+ 'register' => 'Регистрирам',
+ 'continue' => 'продължи',
+ 'reset_password' => 'Нулиране на паролата',
+ 'email' => 'електронна поща',
+ 'phone' => 'Телефон',
+ 'show_all' => 'Покажи всичко',
+ 'hide_all' => 'Скрий всичко',
+];
\ No newline at end of file
diff --git a/addons/default/visiosoft/base-theme/resources/lang/bg/errors.php b/addons/default/visiosoft/base-theme/resources/lang/bg/errors.php
new file mode 100644
index 000000000..c094ee774
--- /dev/null
+++ b/addons/default/visiosoft/base-theme/resources/lang/bg/errors.php
@@ -0,0 +1,9 @@
+ 'Не е намерен',
+ '403_title' => 'Забранен',
+ '404_message' => 'Страницата, която търсите, не е намерена.',
+ '403_message' => 'Достъпът до тези ресурси на сайта е отказан!',
+ 'home_page' => 'Отидете в началната страница',
+];
\ No newline at end of file
diff --git a/addons/default/visiosoft/base-theme/resources/lang/bg/field.php b/addons/default/visiosoft/base-theme/resources/lang/bg/field.php
new file mode 100644
index 000000000..b5be7a3b1
--- /dev/null
+++ b/addons/default/visiosoft/base-theme/resources/lang/bg/field.php
@@ -0,0 +1,59 @@
+ 'Последни реклами',
+ 'show_all' => 'Покажи всичко',
+ 'login' => [
+ 'name' => 'Влизам',
+ ],
+ 'logout' => [
+ 'name' => 'Излез от профила си',
+ ],
+ 'profile' => 'Профил',
+ 'email' => 'Имейл адрес',
+ 'phone' => 'Телефонен номер',
+ 'reset_code' => 'Нулиране на кода',
+ 'password_confirmation' => 'Потвърждение на парола',
+ 'password' => 'Парола',
+ 'first_name' => 'Първо име',
+ 'last_name' => 'Фамилия',
+ 'remember_me' => 'Помни ме',
+ 'not_a_member_yet' => 'Все още не е член',
+ 'not_a_member_yet_message' => 'Регистрирайте се за нашите членове, за да се възползвате от нашата специална услуга',
+ 'forgot_password' => 'Забравих паролата си',
+ 'email_or_phone_number' => 'Имейл адрес или телефонен номер',
+ 'phone_number' => 'Телефонен номер',
+
+ // Registration instructions
+ 'personal_registration_header' => 'Какви са предимствата на индивидуалното членство?',
+ 'personal_registration_body' => 'Продавайте и наемайте дома си, автомобила, продавайте неизползваните си вещи, взимайте нови.',
+ 'personal_registration_list_1' => 'Публикувайте безплатна реклама,',
+ 'personal_registration_list_2' => 'Добавете рекламите, които ви интересуват, проследете промените в цените, след като ги добавите към любимите си, създайте любими търсения, които отговарят на вашите критерии,',
+ 'personal_registration_list_3' => 'Изпращайте съобщения до собствениците на реклами на сайта.',
+ 'register_information_note' => 'Информацията на тази страница е взета за ' . env('APPLICATION_DOMAIN') . ' членство. Подробна информация за защитата на личните данни можете да намерите тук.',
+
+ // Register page
+ 'phone_validation_error' => 'Този телефонен номер се използва от друг член.',
+
+ // Forgot Password
+ 'create_new_password' => 'Създайте нова парола',
+
+ // Login page
+ 'or' => 'или',
+ 'login_with_phone_number' => 'Влезте с телефонен номер',
+ 'login_with_email_address' => 'Влезте с имейл адрес',
+
+ // Side menu links
+ 'company_directory' => 'Фирмен указател',
+ 'popular_ads' => 'Популярни реклами',
+ 'last_48_hours' => 'Последните 48 часа',
+ 'secure_e-commerce_ads' => 'Сигурни реклами за електронна търговия',
+ 'sms' => 'Изпращане на текстово съобщение (SMS)',
+ 'mail' => 'Изпрати писмо',
+
+ // Register instruction seed
+ 'register_instructions' => 'Инструкции за регистрация',
+ 'list' => 'Списък',
+ 'instruction_description' => 'Инструкция Описание',
+ 'instruction_list' => 'Списък с инструкции',
+];
\ No newline at end of file
diff --git a/addons/default/visiosoft/base-theme/resources/lang/bg/message.php b/addons/default/visiosoft/base-theme/resources/lang/bg/message.php
new file mode 100644
index 000000000..0e690a40d
--- /dev/null
+++ b/addons/default/visiosoft/base-theme/resources/lang/bg/message.php
@@ -0,0 +1,6 @@
+ 'SMS, изпратен на вашия регистриран телефон. Моля те, провери.',
+ 'found_phone' => 'Телефонният номер, регистриран в системата, не е намерен.',
+];
diff --git a/addons/default/visiosoft/base-theme/resources/lang/bg/section.php b/addons/default/visiosoft/base-theme/resources/lang/bg/section.php
new file mode 100644
index 000000000..3f8ea9554
--- /dev/null
+++ b/addons/default/visiosoft/base-theme/resources/lang/bg/section.php
@@ -0,0 +1,8 @@
+ [
+ 'name' => 'Каталожен режим',
+ ],
+ 'template' => 'Шаблон',
+];
\ No newline at end of file
diff --git a/addons/default/visiosoft/base-theme/resources/lang/bg/setting.php b/addons/default/visiosoft/base-theme/resources/lang/bg/setting.php
new file mode 100644
index 000000000..2a382e608
--- /dev/null
+++ b/addons/default/visiosoft/base-theme/resources/lang/bg/setting.php
@@ -0,0 +1,46 @@
+ [
+ 'name' => 'Заглавие на навигацията',
+ ],
+ 'navigation_action' => [
+ 'name' => 'Навигационно действие',
+ ],
+ 'country_fields' => [
+ 'name' => 'Държавни полета',
+ ],
+ 'date_fields' => [
+ 'name' => 'Полета за дата',
+ ],
+ 'price_fields' => [
+ 'name' => 'Ценови полета',
+ ],
+ 'breadcrumbs' => [
+ 'name' => 'Галета',
+ ],
+ 'ad_details' => [
+ 'name' => 'Подробности за рекламата',
+ ],
+ 'ad_details_tab' => [
+ 'name' => 'Раздел „Подробности за рекламата“',
+ ],
+ 'latest_and_view_all_btn' => [
+ 'name' => 'Най-новите и Вижте всички Btn',
+ ],
+ 'register_page_instruction_logo' => [
+ 'name' => 'Регистрация на страницата с инструкции Лого',
+ ],
+ 'register_page_alert_link' => [
+ 'name' => 'Връзка за предупреждение на страницата за регистрация',
+ ],
+ 'style' => [
+ 'name' => 'Стил (CSS)',
+ ],
+ 'home_page_sub_categories_limit' => [
+ 'name' => 'Подкатегории на началната страница Ограничение',
+ ],
+ 'default_country' => [
+ 'name' => 'Страница за регистрация, държава по подразбиране за телефона',
+ ]
+];
\ No newline at end of file
diff --git a/addons/default/visiosoft/base-theme/resources/lang/bn/errors.php b/addons/default/visiosoft/base-theme/resources/lang/bn/errors.php
new file mode 100644
index 000000000..ab0e6aeca
--- /dev/null
+++ b/addons/default/visiosoft/base-theme/resources/lang/bn/errors.php
@@ -0,0 +1,9 @@
+ 'খুঁজে পাওয়া যায়নি',
+ '403_title' => 'নিষিদ্ধ',
+ '404_message' => 'আপনি যে পৃষ্ঠার সন্ধান করেছেন তা পাওয়া যায় নি।',
+ '403_message' => 'সাইটে এই সংস্থানগুলিতে অ্যাক্সেস অস্বীকার করা হয়েছে!',
+ 'home_page' => 'হোমপেজে যান',
+];
\ No newline at end of file
diff --git a/addons/default/visiosoft/base-theme/resources/lang/fa/errors.php b/addons/default/visiosoft/base-theme/resources/lang/fa/errors.php
new file mode 100644
index 000000000..6a2d9d633
--- /dev/null
+++ b/addons/default/visiosoft/base-theme/resources/lang/fa/errors.php
@@ -0,0 +1,9 @@
+ 'پیدا نشد',
+ '403_title' => 'ممنوع',
+ '404_message' => 'صفحه مورد نظر شما پیدا نشد.',
+ '403_message' => 'دسترسی به این منابع در سایت ممنوع است!',
+ 'home_page' => 'به صفحه اصلی بروید',
+];
\ No newline at end of file
diff --git a/addons/default/visiosoft/base-theme/resources/lang/hi/errors.php b/addons/default/visiosoft/base-theme/resources/lang/hi/errors.php
new file mode 100644
index 000000000..6cc33de75
--- /dev/null
+++ b/addons/default/visiosoft/base-theme/resources/lang/hi/errors.php
@@ -0,0 +1,10 @@
+ 'Nahin Mila',
+ '403_title' => 'Mana kiya hua',
+ '404_message' => 'Vah prshth jise aap khoj rahe the, vah nahin mila.',
+ '403_message' => 'Site par is sansaadhanon tak pahunch se vanchit hai!',
+ 'home_page' => 'Mukhaprshth pr jaen
+',
+];
\ No newline at end of file
diff --git a/addons/default/visiosoft/base-theme/resources/lang/id/addon.php b/addons/default/visiosoft/base-theme/resources/lang/id/addon.php
new file mode 100644
index 000000000..766e4fa77
--- /dev/null
+++ b/addons/default/visiosoft/base-theme/resources/lang/id/addon.php
@@ -0,0 +1,7 @@
+ 'BaseTheme',
+ 'name' => 'BaseTheme',
+ 'description' => 'BaseTheme'
+];
diff --git a/addons/default/visiosoft/base-theme/resources/lang/id/button.php b/addons/default/visiosoft/base-theme/resources/lang/id/button.php
new file mode 100644
index 000000000..99a9ceaf5
--- /dev/null
+++ b/addons/default/visiosoft/base-theme/resources/lang/id/button.php
@@ -0,0 +1,15 @@
+ [
+ 'name' => 'Pasang Iklan',
+ ],
+ 'login' => 'Gabung',
+ 'register' => 'Daftar',
+ 'continue' => 'Terus',
+ 'reset_password' => 'Atur Ulang Kata Sandi',
+ 'email' => 'Surel',
+ 'phone' => 'Telepon',
+ 'show_all' => 'Tunjukkan semua',
+ 'hide_all' => 'Sembunyikan semua',
+];
\ No newline at end of file
diff --git a/addons/default/visiosoft/base-theme/resources/lang/id/errors.php b/addons/default/visiosoft/base-theme/resources/lang/id/errors.php
new file mode 100644
index 000000000..bbf719048
--- /dev/null
+++ b/addons/default/visiosoft/base-theme/resources/lang/id/errors.php
@@ -0,0 +1,9 @@
+ 'Tidak ditemukan',
+ '403_title' => 'Terlarang',
+ '404_message' => 'Halaman yang Anda cari tidak ditemukan.',
+ '403_message' => 'Akses ke sumber daya ini di situs ditolak!',
+ 'home_page' => 'Pergi ke Halaman Utama',
+];
\ No newline at end of file
diff --git a/addons/default/visiosoft/base-theme/resources/lang/id/field.php b/addons/default/visiosoft/base-theme/resources/lang/id/field.php
new file mode 100644
index 000000000..344ffae2b
--- /dev/null
+++ b/addons/default/visiosoft/base-theme/resources/lang/id/field.php
@@ -0,0 +1,59 @@
+ 'Iklan Terbaru',
+ 'show_all' => 'Tunjukkan semua',
+ 'login' => [
+ 'name' => 'Gabung',
+ ],
+ 'logout' => [
+ 'name' => 'Keluar',
+ ],
+ 'profile' => 'Profil',
+ 'email' => 'Alamat email',
+ 'phone' => 'Nomor telepon',
+ 'reset_code' => 'Atur Ulang Kode',
+ 'password_confirmation' => 'Konfirmasi kata kunci',
+ 'password' => 'Kata sandi',
+ 'first_name' => 'Nama depan',
+ 'last_name' => 'Nama keluarga',
+ 'remember_me' => 'Ingat saya',
+ 'not_a_member_yet' => 'Belum menjadi anggota',
+ 'not_a_member_yet_message' => 'Daftar anggota kami untuk mendapatkan keuntungan dari layanan khusus kami',
+ 'forgot_password' => 'Saya Lupa Kata Sandi',
+ 'email_or_phone_number' => 'Alamat Email atau Nomor Telepon',
+ 'phone_number' => 'Nomor telepon',
+
+ // Registration instructions
+ 'personal_registration_header' => 'Apa Keuntungan Keanggotaan Perorangan?',
+ 'personal_registration_body' => 'Jual dan sewa rumah, mobil, jual barang yang tidak terpakai, dapatkan yang baru.',
+ 'personal_registration_list_1' => 'Pasang iklan gratis,',
+ 'personal_registration_list_2' => 'Tambahkan iklan yang Anda minati, ikuti perubahan harga setelah menambahkannya ke favorit Anda, buat pencarian favorit yang memenuhi kriteria Anda,',
+ 'personal_registration_list_3' => 'Kirim pesan ke pemilik iklan di situs.',
+ 'register_information_note' => 'Informasi di halaman ini diambil untuk ' . env('APPLICATION_DOMAIN') . ' keanggotaan. Anda dapat menemukan informasi rinci tentang perlindungan data pribadi di sini.',
+
+ // Register page
+ 'phone_validation_error' => 'Nomor telepon ini sedang digunakan oleh anggota lain.',
+
+ // Forgot Password
+ 'create_new_password' => 'Buat Kata Sandi Baru',
+
+ // Login page
+ 'or' => 'atau',
+ 'login_with_phone_number' => 'Login dengan Nomor Telepon',
+ 'login_with_email_address' => 'Login dengan Alamat Email',
+
+ // Side menu links
+ 'company_directory' => 'Direktori perusahaan',
+ 'popular_ads' => 'Iklan Populer',
+ 'last_48_hours' => '48 Jam Terakhir',
+ 'secure_e-commerce_ads' => 'Amankan Iklan e-Commerce',
+ 'sms' => 'Kirim Pesan Teks (SMS)',
+ 'mail' => 'Kirim Surat',
+
+ // Register instruction seed
+ 'register_instructions' => 'Daftar Instruksi',
+ 'list' => 'Daftar',
+ 'instruction_description' => 'Deskripsi Instruksi',
+ 'instruction_list' => 'Daftar Instruksi',
+];
\ No newline at end of file
diff --git a/addons/default/visiosoft/base-theme/resources/lang/id/message.php b/addons/default/visiosoft/base-theme/resources/lang/id/message.php
new file mode 100644
index 000000000..ab7ffd2e6
--- /dev/null
+++ b/addons/default/visiosoft/base-theme/resources/lang/id/message.php
@@ -0,0 +1,6 @@
+ 'SMS dikirim ke ponsel Anda yang terdaftar. Silakan periksa.',
+ 'found_phone' => 'Nomor telepon yang terdaftar di sistem tidak ditemukan.',
+];
diff --git a/addons/default/visiosoft/base-theme/resources/lang/id/section.php b/addons/default/visiosoft/base-theme/resources/lang/id/section.php
new file mode 100644
index 000000000..22368c32b
--- /dev/null
+++ b/addons/default/visiosoft/base-theme/resources/lang/id/section.php
@@ -0,0 +1,8 @@
+ [
+ 'name' => 'Mode Katalog',
+ ],
+ 'template' => 'Template',
+];
\ No newline at end of file
diff --git a/addons/default/visiosoft/base-theme/resources/lang/id/setting.php b/addons/default/visiosoft/base-theme/resources/lang/id/setting.php
new file mode 100644
index 000000000..b93245148
--- /dev/null
+++ b/addons/default/visiosoft/base-theme/resources/lang/id/setting.php
@@ -0,0 +1,46 @@
+ [
+ 'name' => 'Judul Navigasi',
+ ],
+ 'navigation_action' => [
+ 'name' => 'Tindakan Navigasi',
+ ],
+ 'country_fields' => [
+ 'name' => 'Bidang Negara',
+ ],
+ 'date_fields' => [
+ 'name' => 'Bidang Tanggal',
+ ],
+ 'price_fields' => [
+ 'name' => 'Bidang Harga',
+ ],
+ 'breadcrumbs' => [
+ 'name' => 'Remah roti',
+ ],
+ 'ad_details' => [
+ 'name' => 'Detail Iklan',
+ ],
+ 'ad_details_tab' => [
+ 'name' => 'Tab Detail Iklan',
+ ],
+ 'latest_and_view_all_btn' => [
+ 'name' => 'Terbaru dan Lihat Semua Btn',
+ ],
+ 'register_page_instruction_logo' => [
+ 'name' => 'Daftar Logo Instruksi Halaman',
+ ],
+ 'register_page_alert_link' => [
+ 'name' => 'Daftarkan Tautan Peringatan Halaman',
+ ],
+ 'style' => [
+ 'name' => 'Gaya (CSS)',
+ ],
+ 'home_page_sub_categories_limit' => [
+ 'name' => 'Batas Sub Kategori Beranda',
+ ],
+ 'default_country' => [
+ 'name' => 'Halaman daftar, negara default untuk telepon',
+ ]
+];
\ No newline at end of file
diff --git a/addons/default/visiosoft/base-theme/resources/lang/ku/button.php b/addons/default/visiosoft/base-theme/resources/lang/ku/button.php
index efaf5b0fb..d7c3684fc 100644
--- a/addons/default/visiosoft/base-theme/resources/lang/ku/button.php
+++ b/addons/default/visiosoft/base-theme/resources/lang/ku/button.php
@@ -7,10 +7,11 @@ return [
],
'login' => 'چوونەژوورەوە',
'register' => 'تۆمارکردن',
- 'continue' => 'بەردەوام بوون',
- 'reset_password' => 'ڕێکخستنەوەی تێپەڕەوشە',
+ 'continue' => 'بەردەوام بە
+',
+ 'reset_password' => 'وشەی نهێنیەکە ڕێکخستنەوە',
'email' => ' ئی مەیل',
'phone' => 'تەلەفۆن',
- 'show_all' => ' هەموو پیشانبدە',
+ 'show_all' => 'هەموو نیشاندە',
'hide_all' => 'هەموو بشارەوە',
];
\ No newline at end of file
diff --git a/addons/default/visiosoft/base-theme/resources/lang/ku/errors.php b/addons/default/visiosoft/base-theme/resources/lang/ku/errors.php
index 9b3a4164e..9e2088002 100644
--- a/addons/default/visiosoft/base-theme/resources/lang/ku/errors.php
+++ b/addons/default/visiosoft/base-theme/resources/lang/ku/errors.php
@@ -1,9 +1,12 @@
'Peyda nebû',
- '403_title' => 'Qedexekirî',
- '404_message' => 'Rûpela ku hûn lê digerin nehat dîtin.',
- '403_message' => 'Li ser malperê gihîştina van çavkaniyan nayê qedexekirin!',
- 'home_page' => 'Herin Serûpelê',
+ '404_title' => 'نەدۆزراوەتەوە
+',
+ '403_title' => 'قەدەغەکراو',
+ '404_message' => 'ئەو پەیجەی تۆ بەدوایدا دەگەڕایت نەدۆزرایەوە',
+ '403_message' => '! دەستکەوت بۆ ئەم سەرچاوەیە لە سایتەکە ڕەتدەکرێتەوە
+',
+ 'home_page' => 'بڕۆ بۆ ماڵپەڕ
+',
];
\ No newline at end of file
diff --git a/addons/default/visiosoft/base-theme/resources/lang/ku/field.php b/addons/default/visiosoft/base-theme/resources/lang/ku/field.php
index 32ca94abc..44e563c98 100644
--- a/addons/default/visiosoft/base-theme/resources/lang/ku/field.php
+++ b/addons/default/visiosoft/base-theme/resources/lang/ku/field.php
@@ -1,8 +1,9 @@
'Reklamên Dawîn',
- 'show_all' => ' هەموو پیشانبدە',
+ 'latest_ads' => 'نوێترین ڕیکلامەکان
+',
+ 'show_all' => 'هەموو نیشاندە',
'login' => [
'name' => 'چوونەژوورەوە',
],
@@ -12,26 +13,26 @@ return [
'profile' => 'پرۆفایل',
'email' => 'ناونیشانی ئیمەیل',
'phone' => 'ژمارهی مۆبایل',
- 'reset_code' => 'کۆدەکە تێپەڕەوشە',
- 'password_confirmation' => 'پشت راست کردنەوەی وشەی نهێنی
+ 'reset_code' => 'کۆدەکە ڕێکخستنەوە',
+ 'password_confirmation' => 'سەلماندنی وشەی نهێنی
',
'password' => 'وشەی نهێنی',
'first_name' => 'ناوی یەکەم
',
- 'last_name' => 'ناوی باپیر',
- 'remember_me' => 'بیره بۆ من
+ 'last_name' => 'پاشناو',
+ 'remember_me' => 'من لە بیرە
',
- 'not_a_member_yet' => 'تۆ ئەندام نیت هێشتا ؟
+ 'not_a_member_yet' => 'تۆ هێشتا ئەندام نیت
',
'not_a_member_yet_message' => 'خۆت تۆمار بکە بۆ ئەندامەکانمان بۆ سوودمەندبوون لە خزمەتگوزاری تایبەتمان
',
'forgot_password' => 'وشەی نهێنەکەم لەبیرکرد
',
'email_or_phone_number' => 'ژمارهی مۆبایل یان ناونیشانی ئیمەیل',
- 'phone_number' => 'ژمارهی مۆبایل',
+ 'phone_number' => 'ژمارەی تەلەفۆن',
// Registration instructions
- 'personal_registration_header' => 'ئایا ئەندامێتیی ئیندیڤایدۆلۆژیا چین ؟
+ 'personal_registration_header' => 'ئایا ئەندامێتیی شهخسی چین ؟
',
'personal_registration_body' => 'ئۆتۆمبێلەکەت بفرۆشە و بەکرێ بگرە ، ماڵەکەت بفرۆشە ، شتی بەکارنەهێنراوت بفرۆشە ، نوێ بەدەست بهێنە.
',
@@ -50,12 +51,12 @@ return [
',
// Forgot Password
- 'create_new_password' => 'وشەی نوێ دروست بکە
+ 'create_new_password' => 'وشەی نهێنی نوێ دروست بکە
',
// Login page
'or' => 'یان',
- 'login_with_phone_number' => 'بە ژمارە مۆبایلەوە بچۆ ژوورەوە
+ 'login_with_phone_number' => 'بە ژمارە تەلەفۆنەوە بچۆ ژوورەوە
',
'login_with_email_address' => 'بە ناونیشانی ئیمەیل بچۆ ژوورەوە
',
@@ -65,7 +66,7 @@ return [
',
'popular_ads' => 'ڕیکلامێکی بەناوبانگە
',
- 'last_48_hours' => 'ئاخیر48 کاتەکان',
+ 'last_48_hours' => 'ئاخیر 48 کاتژمێر',
'secure_e-commerce_ads' => 'ڕیکلامی نهێنی و بازرگانی
',
'sms' => 'پەیامە بنێرە',
diff --git a/addons/default/visiosoft/base-theme/resources/lang/sr/addon.php b/addons/default/visiosoft/base-theme/resources/lang/sr/addon.php
new file mode 100644
index 000000000..4da5e2c5f
--- /dev/null
+++ b/addons/default/visiosoft/base-theme/resources/lang/sr/addon.php
@@ -0,0 +1,7 @@
+ 'БасеТхеме',
+ 'name' => 'БасеТхеме',
+ 'description' => 'БасеТхеме'
+];
diff --git a/addons/default/visiosoft/base-theme/resources/lang/sr/button.php b/addons/default/visiosoft/base-theme/resources/lang/sr/button.php
new file mode 100644
index 000000000..f5348fc2b
--- /dev/null
+++ b/addons/default/visiosoft/base-theme/resources/lang/sr/button.php
@@ -0,0 +1,15 @@
+ [
+ 'name' => 'Постави оглас',
+ ],
+ 'login' => 'Пријавите се',
+ 'register' => 'Регистровати',
+ 'continue' => 'Настави',
+ 'reset_password' => 'Ресетуј шифру',
+ 'email' => 'Емаил',
+ 'phone' => 'Телефон',
+ 'show_all' => 'Покажи све',
+ 'hide_all' => 'Сакријете све',
+];
\ No newline at end of file
diff --git a/addons/default/visiosoft/base-theme/resources/lang/sr/errors.php b/addons/default/visiosoft/base-theme/resources/lang/sr/errors.php
new file mode 100644
index 000000000..3ff0fc0c9
--- /dev/null
+++ b/addons/default/visiosoft/base-theme/resources/lang/sr/errors.php
@@ -0,0 +1,9 @@
+ 'Није пронађен',
+ '403_title' => 'Забрањено',
+ '404_message' => 'Страница коју сте тражили није пронађена.',
+ '403_message' => 'Приступ овим ресурсима на веб локацији је одбијен!',
+ 'home_page' => 'Иди на почетну страницу',
+];
\ No newline at end of file
diff --git a/addons/default/visiosoft/base-theme/resources/lang/sr/field.php b/addons/default/visiosoft/base-theme/resources/lang/sr/field.php
new file mode 100644
index 000000000..0541f197f
--- /dev/null
+++ b/addons/default/visiosoft/base-theme/resources/lang/sr/field.php
@@ -0,0 +1,59 @@
+ 'Најновији огласи',
+ 'show_all' => 'Покажи све',
+ 'login' => [
+ 'name' => 'Пријавите се',
+ ],
+ 'logout' => [
+ 'name' => 'Одјавити се',
+ ],
+ 'profile' => 'Профил',
+ 'email' => 'Адреса Е-поште',
+ 'phone' => 'Број телефона',
+ 'reset_code' => 'Ресетуј код',
+ 'password_confirmation' => 'Потврда шифре',
+ 'password' => 'Лозинка',
+ 'first_name' => 'Име',
+ 'last_name' => 'Презиме',
+ 'remember_me' => 'Сети ме се',
+ 'not_a_member_yet' => 'Још нисте члан',
+ 'not_a_member_yet_message' => 'Пријавите се за наше чланове који ће имати користи од наше посебне услуге',
+ 'forgot_password' => 'Заборавио сам шифру',
+ 'email_or_phone_number' => 'Адреса е-поште или број телефона',
+ 'phone_number' => 'Број телефона',
+
+ // Registration instructions
+ 'personal_registration_header' => 'Које су предности појединачног чланства?',
+ 'personal_registration_body' => 'Продајте и изнајмите свој дом, аутомобил, продајте неискоришћене ствари и набавите нове.',
+ 'personal_registration_list_1' => 'Објавите бесплатан оглас,',
+ 'personal_registration_list_2' => 'Додајте огласе који вас занимају, пратите промене цена након што их додате у своје фаворите, направите омиљене претраге које испуњавају ваше критеријуме,',
+ 'personal_registration_list_3' => 'Пошаљите поруке власницима огласа на веб локацији.',
+ 'register_information_note' => 'Информације на овој страници су узете за ' . env('APPLICATION_DOMAIN') . ' чланство. Детаљне информације о заштити личних података можете пронаћи овде.',
+
+ // Register page
+ 'phone_validation_error' => 'Овај број телефона користи други члан.',
+
+ // Forgot Password
+ 'create_new_password' => 'Направите нову лозинку',
+
+ // Login page
+ 'or' => 'или',
+ 'login_with_phone_number' => 'Пријавите се са бројем телефона',
+ 'login_with_email_address' => 'Пријави се помоћу адресе е-поште',
+
+ // Side menu links
+ 'company_directory' => 'Именик предузећа',
+ 'popular_ads' => 'Популарни огласи',
+ 'last_48_hours' => 'Последњих 48 сати',
+ 'secure_e-commerce_ads' => 'Сигурни огласи за е-трговину',
+ 'sms' => 'Пошаљите текстуалну поруку (СМС)',
+ 'mail' => 'Пошаљи пошту',
+
+ // Register instruction seed
+ 'register_instructions' => 'Упутства за регистрацију',
+ 'list' => 'Листа',
+ 'instruction_description' => 'Опис упутства',
+ 'instruction_list' => 'Листа упутстава',
+];
\ No newline at end of file
diff --git a/addons/default/visiosoft/base-theme/resources/lang/sr/message.php b/addons/default/visiosoft/base-theme/resources/lang/sr/message.php
new file mode 100644
index 000000000..b5b5457b0
--- /dev/null
+++ b/addons/default/visiosoft/base-theme/resources/lang/sr/message.php
@@ -0,0 +1,6 @@
+ 'СМС послан на ваш регистровани телефон. Молим те провери.',
+ 'found_phone' => 'Телефонски број регистрован у систему није пронађен.',
+];
diff --git a/addons/default/visiosoft/base-theme/resources/lang/sr/section.php b/addons/default/visiosoft/base-theme/resources/lang/sr/section.php
new file mode 100644
index 000000000..f88c8c8a0
--- /dev/null
+++ b/addons/default/visiosoft/base-theme/resources/lang/sr/section.php
@@ -0,0 +1,8 @@
+ [
+ 'name' => 'Режим каталога',
+ ],
+ 'template' => 'Предложак',
+];
\ No newline at end of file
diff --git a/addons/default/visiosoft/base-theme/resources/lang/sr/setting.php b/addons/default/visiosoft/base-theme/resources/lang/sr/setting.php
new file mode 100644
index 000000000..275d643d1
--- /dev/null
+++ b/addons/default/visiosoft/base-theme/resources/lang/sr/setting.php
@@ -0,0 +1,46 @@
+ [
+ 'name' => 'Наслов навигације',
+ ],
+ 'navigation_action' => [
+ 'name' => 'Акција навигације',
+ ],
+ 'country_fields' => [
+ 'name' => 'Цоунтри Фиелдс',
+ ],
+ 'date_fields' => [
+ 'name' => 'Датумска поља',
+ ],
+ 'price_fields' => [
+ 'name' => 'Поља са ценама',
+ ],
+ 'breadcrumbs' => [
+ 'name' => 'Бреадцрумб',
+ ],
+ 'ad_details' => [
+ 'name' => 'Детаљи огласа',
+ ],
+ 'ad_details_tab' => [
+ 'name' => 'Картица Детаљи огласа',
+ ],
+ 'latest_and_view_all_btn' => [
+ 'name' => 'Најновије и погледајте све Бтн',
+ ],
+ 'register_page_instruction_logo' => [
+ 'name' => 'Логотип са упутством за регистрацију странице',
+ ],
+ 'register_page_alert_link' => [
+ 'name' => 'Линк упозорења на страницу регистрације',
+ ],
+ 'style' => [
+ 'name' => 'Стил (ЦСС)',
+ ],
+ 'home_page_sub_categories_limit' => [
+ 'name' => 'Подкатегорије почетне странице Ограничење',
+ ],
+ 'default_country' => [
+ 'name' => 'Страница за регистрацију, задата држава за телефон',
+ ]
+];
\ No newline at end of file
diff --git a/addons/default/visiosoft/base-theme/resources/lang/tr/errors.php b/addons/default/visiosoft/base-theme/resources/lang/tr/errors.php
index 77519c652..8d7d94cc2 100644
--- a/addons/default/visiosoft/base-theme/resources/lang/tr/errors.php
+++ b/addons/default/visiosoft/base-theme/resources/lang/tr/errors.php
@@ -5,5 +5,5 @@ return [
'403_title' => 'Yasak',
'404_message' => 'Aradığınız sayfa bulunamadı.',
'403_message' => 'Sitedeki bu kaynaklara erişim reddedildi!',
- 'home_page' => 'Ana sayfaya git',
+ 'home_page' => 'Ana Sayfaya Git',
];
\ No newline at end of file
diff --git a/addons/default/visiosoft/base-theme/resources/lang/tr/field.php b/addons/default/visiosoft/base-theme/resources/lang/tr/field.php
index 2db5204fd..80c448789 100644
--- a/addons/default/visiosoft/base-theme/resources/lang/tr/field.php
+++ b/addons/default/visiosoft/base-theme/resources/lang/tr/field.php
@@ -46,10 +46,10 @@ return [
// Side menu links
'company_directory' => 'Firma Rehberi',
'popular_ads' => 'Popüler İlanlar',
- 'last_48_hours' => 'son 48 saat',
+ 'last_48_hours' => 'Son 48 Saat',
'secure_e-commerce_ads' => 'Güvenli E-Ticaret',
'sms' => 'Kısa Mesaj Gönder (SMS)',
- 'mail' => 'Posta göndermek',
+ 'mail' => 'E-posta Gönder',
// Register instruction seed
'register_instructions' => 'Kayıt Talimatları',
diff --git a/addons/default/visiosoft/base-theme/resources/lang/vi/errors.php b/addons/default/visiosoft/base-theme/resources/lang/vi/errors.php
new file mode 100644
index 000000000..905bd625d
--- /dev/null
+++ b/addons/default/visiosoft/base-theme/resources/lang/vi/errors.php
@@ -0,0 +1,9 @@
+ 'Không tìm thấy',
+ '403_title' => 'Bị cấm',
+ '404_message' => 'Không tìm thấy trang bạn đang tìm.',
+ '403_message' => 'Quyền truy cập vào tài nguyên này trên trang web bị từ chối!',
+ 'home_page' => 'Đi tới Trang chủ',
+];
\ No newline at end of file
diff --git a/addons/default/visiosoft/base-theme/resources/views/addons/anomaly/users-module/login.twig b/addons/default/visiosoft/base-theme/resources/views/addons/anomaly/users-module/login.twig
index ee8c60afc..e3857e4cf 100644
--- a/addons/default/visiosoft/base-theme/resources/views/addons/anomaly/users-module/login.twig
+++ b/addons/default/visiosoft/base-theme/resources/views/addons/anomaly/users-module/login.twig
@@ -30,6 +30,7 @@
{{ form.fields.email.setAttributes({
'class': phoneLogin ? 'form-control phone' : 'form-control'
}).input|raw }}
+
{{ setting_value('visiosoft.module.location::country_for_phone_field') }}
@@ -70,6 +71,7 @@
{{ trans('visiosoft.theme.base::field.remember_me') }}
+ {{ form_close() }}
{% if addBlock('login/oauth') or setting_value('visiosoft.module.advs::register_email_field') %}