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)); + } + ), ]; } }