From c0cffa72b1566a9b992351bb15e0ee4467951f32 Mon Sep 17 00:00:00 2001 From: diashalabi Date: Wed, 18 Aug 2021 10:05:22 +0300 Subject: [PATCH] #4196 (evdepismis.com) natto-theme --- .../advs-module/src/Adv/AdvModel.php | 16 ++++++++++++ .../src/Adv/Contract/AdvInterface.php | 2 ++ .../MultipleFieldType/LookupTableBuilder.php | 8 ++++++ .../SelectedTableBuilder.php | 8 ++++++ .../MultipleFieldType/ValueTableBuilder.php | 8 ++++++ .../Profile/Command/GetProfilePhotoURL.php | 26 +++++++++++++++++++ .../src/ProfileModulePlugin.php | 7 +++++ 7 files changed, 75 insertions(+) create mode 100644 addons/default/visiosoft/advs-module/src/Adv/Support/MultipleFieldType/LookupTableBuilder.php create mode 100644 addons/default/visiosoft/advs-module/src/Adv/Support/MultipleFieldType/SelectedTableBuilder.php create mode 100644 addons/default/visiosoft/advs-module/src/Adv/Support/MultipleFieldType/ValueTableBuilder.php create mode 100644 addons/default/visiosoft/profile-module/src/Profile/Command/GetProfilePhotoURL.php diff --git a/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php b/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php index 22371aca9..6f7377f07 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php +++ b/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php @@ -11,6 +11,7 @@ use Visiosoft\AdvsModule\Adv\Contract\AdvInterface; use Anomaly\Streams\Platform\Model\Advs\AdvsAdvsEntryModel; use Visiosoft\AdvsModule\OptionConfiguration\OptionConfigurationModel; use Visiosoft\AdvsModule\Support\Command\Currency; +use Visiosoft\CatsModule\Category\Contract\CategoryRepositoryInterface; use Visiosoft\LocationModule\City\CityModel; use Visiosoft\LocationModule\Country\CountryModel; use Visiosoft\CartsModule\Cart\Command\GetCart; @@ -527,4 +528,19 @@ class AdvModel extends AdvsAdvsEntryModel implements AdvInterface ARRAY_FILTER_USE_KEY ); } + + public function lastCategory() + { + if (!$catsIDs = $this->getCatsIDs()) { + return null; + } + + $lastCatID = end($catsIDs); + + if (!$lastCat = app(CategoryRepositoryInterface::class)->find($lastCatID)) { + return null; + } + + return $lastCat; + } } 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 23304f5e2..87702de18 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvInterface.php +++ b/addons/default/visiosoft/advs-module/src/Adv/Contract/AdvInterface.php @@ -95,4 +95,6 @@ interface AdvInterface extends EntryInterface public function canEdit(); public function getCatsIDs(); + + public function lastCategory(); } diff --git a/addons/default/visiosoft/advs-module/src/Adv/Support/MultipleFieldType/LookupTableBuilder.php b/addons/default/visiosoft/advs-module/src/Adv/Support/MultipleFieldType/LookupTableBuilder.php new file mode 100644 index 000000000..1a50ec46f --- /dev/null +++ b/addons/default/visiosoft/advs-module/src/Adv/Support/MultipleFieldType/LookupTableBuilder.php @@ -0,0 +1,8 @@ +user = $user; + } + + public function handle() + { + return $this->user->file ? $this->user->file->make()->url() : $this->dispatchNow( + new MakeImageInstance( + 'visiosoft.module.profile::images/profile-default.png', + 'img' + ) + )->url(); + } +} diff --git a/addons/default/visiosoft/profile-module/src/ProfileModulePlugin.php b/addons/default/visiosoft/profile-module/src/ProfileModulePlugin.php index bc933a51c..682b5d3a9 100644 --- a/addons/default/visiosoft/profile-module/src/ProfileModulePlugin.php +++ b/addons/default/visiosoft/profile-module/src/ProfileModulePlugin.php @@ -4,6 +4,7 @@ use Anomaly\Streams\Platform\Addon\Plugin\Plugin; use Visiosoft\ProfileModule\Adress\Command\GetAddress; use Visiosoft\ProfileModule\Adress\Command\GetAddressByUser; use Visiosoft\ProfileModule\Profile\Command\GetProfileDetail; +use Visiosoft\ProfileModule\Profile\Command\GetProfilePhotoURL; class ProfileModulePlugin extends Plugin { @@ -43,6 +44,12 @@ class ProfileModulePlugin extends Plugin return $ad; } ), + new \Twig_SimpleFunction( + 'profilePhoto', + function ($user) { + return $this->dispatch(new GetProfilePhotoURL($user)); + } + ), ]; } }