diff --git a/Admin/Install/Media.php b/Admin/Install/Media.php index c5875b0..cbf3c3d 100644 --- a/Admin/Install/Media.php +++ b/Admin/Install/Media.php @@ -16,6 +16,7 @@ namespace Modules\Profile\Admin\Install; use Model\Setting; use Model\SettingMapper; +use Modules\Profile\Models\SettingsEnum; use phpOMS\Application\ApplicationAbstract; /** @@ -42,9 +43,9 @@ class Media { $media = \Modules\Media\Admin\Installer::installExternal($app, ['path' => __DIR__ . '/Media.install.json']); - $defaultProfileImage = $media['upload'][0]->getId(); + $defaultProfileImage = (int) \reset($media['upload'][0]); $setting = new Setting(); - SettingMapper::create()->execute($setting->with(0, 'default_profile_image', (string) $defaultProfileImage, '\\d+', null, 'Profile')); + SettingMapper::create()->execute($setting->with(0, SettingsEnum::DEFAULT_PROFILE_IMAGE, (string) $defaultProfileImage, '\\d+', null, 'Profile')); } } diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e9b4371..4bbb819 100755 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,7 +16,7 @@ Generally, the development philosophy is result orientated. This means that anyo Developers are encouraged to pick open tasks with high priorities according to their own skill level. Senior developers may directly assign tasks to developers based on their importance. New developers may find it easier to start with a task that has a low priority as they often also have a lower difficulty. -Open tasks can be found in the project overview: [PROJECT.md](../Project/PROJECT.md) +Open tasks can be found in the project overview: [PROJECT.md](https://github.com/Karaka-Management/Organization-Guide/blob/master/Project/PROJECT.md) Tasks currently in development are prefixed in the priority column with an asterisk `*` and a name tag in the task description of the developer who is working on the task. diff --git a/Controller/ApiController.php b/Controller/ApiController.php index e022494..f93e056 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -52,7 +52,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiProfileCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiProfileCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { $profiles = $this->createProfilesFromRequest($request); $created = []; @@ -105,7 +105,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiProfileTempLoginCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiProfileTempLoginCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { /** @var \Modules\Admin\Models\Account $account */ $account = AccountMapper::get()->where('id', $request->header->account)->execute(); @@ -167,7 +167,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiSettingsAccountImageSet(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiSettingsAccountImageSet(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { $uploadedFiles = $request->getFiles(); @@ -212,7 +212,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiContactElementCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiContactElementCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { if (!empty($val = $this->validateContactElementCreate($request))) { $response->set('contact_element_create', new FormValidation($val)); @@ -286,7 +286,7 @@ final class ApiController extends Controller * * @since 1.0.0 */ - public function apiAddressCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function apiAddressCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { if (!empty($val = $this->validateAddressCreate($request))) { $response->set('address_create', new FormValidation($val)); diff --git a/Controller/BackendController.php b/Controller/BackendController.php index 58779fd..2416b4e 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -18,6 +18,7 @@ use Modules\Admin\Models\LocalizationMapper; use Modules\Media\Models\MediaMapper; use Modules\Media\Models\NullMedia; use Modules\Profile\Models\ProfileMapper; +use Modules\Profile\Models\SettingsEnum; use phpOMS\Asset\AssetType; use phpOMS\Contract\RenderableInterface; use phpOMS\Localization\NullLocalization; @@ -47,7 +48,7 @@ final class BackendController extends Controller * * @since 1.0.0 */ - public function setupProfileStyles(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + public function setupProfileStyles(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : void { /** @var \phpOMS\Model\Html\Head $head */ $head = $response->get('Content')->getData('head'); @@ -65,7 +66,7 @@ final class BackendController extends Controller * * @since 1.0.0 */ - public function viewProfileList(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + public function viewProfileList(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); @@ -97,8 +98,10 @@ final class BackendController extends Controller ); } - $profileImage = $this->app->appSettings->get(null, 'default_profile_image', null, 'Profile'); - $image = MediaMapper::get()->where('id', (int) $profileImage->content)->execute(); + $profileImage = $this->app->appSettings->get(names: SettingsEnum::DEFAULT_PROFILE_IMAGE, module: 'Profile'); + + /** @var \Modules\Media\Modles\Media $image */ + $image = MediaMapper::get()->where('id', (int) $profileImage->content)->execute(); $view->setData('defaultImage', $image); @@ -116,7 +119,7 @@ final class BackendController extends Controller * * @since 1.0.0 */ - public function viewProfileSingle(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + public function viewProfileSingle(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); @@ -135,8 +138,13 @@ final class BackendController extends Controller $calendarView->setTemplate('/Modules/Calendar/Theme/Backend/Components/Calendar/mini'); $view->addData('calendar', $calendarView); - $mapperQuery = ProfileMapper::get()->with('account')->with('image')->with('location')->with('contactElements'); + $mapperQuery = ProfileMapper::get() + ->with('account') + ->with('image') + ->with('location') + ->with('contactElements'); + /** @var \Modules\Profile\Modles\Profile $profile */ $profile = $request->getData('for') !== null ? $mapperQuery->where('account', (int) $request->getData('for'))->execute() : $mapperQuery->where('id', (int) $request->getData('id'))->execute(); @@ -145,6 +153,7 @@ final class BackendController extends Controller $l11n = null; if ($profile->account->getId() === $request->header->account) { + /** @var \phpOMS\Localization\Localization $l11n */ $l11n = LocalizationMapper::get()->where('id', $profile->account->l11n->getId())->execute(); } @@ -153,10 +162,16 @@ final class BackendController extends Controller $accGrpSelector = new \Modules\Profile\Theme\Backend\Components\AccountGroupSelector\BaseView($this->app->l11nManager, $request, $response); $view->addData('accGrpSelector', $accGrpSelector); - $media = MediaMapper::get()->where('createdBy', (int) $profile->account->getId())->limit(25)->execute(); + /** @var \Modules\Media\Modles\Media[] $media */ + $media = MediaMapper::getAll() + ->with('createdBy') + ->where('createdBy', (int) $profile->account->getId()) + ->limit(25) + ->execute(); + $view->setData('media', $media instanceof NullMedia ? [] : (!\is_array($media) ? [$media] : $media)); - $profileImage = $this->app->appSettings->get(null, 'default_profile_image', null, 'Profile'); + $profileImage = $this->app->appSettings->get(names: SettingsEnum::DEFAULT_PROFILE_IMAGE, module: 'Profile'); $image = MediaMapper::get()->where('id', (int) $profileImage->content)->execute(); $view->setData('defaultImage', $image); @@ -175,7 +190,7 @@ final class BackendController extends Controller * * @since 1.0.0 */ - public function viewProfileAdminSettings(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + public function viewProfileAdminSettings(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/Profile/Theme/Backend/modules-settings'); @@ -195,7 +210,7 @@ final class BackendController extends Controller * * @since 1.0.0 */ - public function viewProfileAdminCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + public function viewProfileAdminCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/Profile/Theme/Backend/modules-create'); diff --git a/Models/ProfileMapper.php b/Models/ProfileMapper.php index 7fbe7d9..691ea91 100755 --- a/Models/ProfileMapper.php +++ b/Models/ProfileMapper.php @@ -60,7 +60,7 @@ final class ProfileMapper extends DataMapperFactory /** * Belongs to. * - * @var array + * @var array * @since 1.0.0 */ public const BELONGS_TO = [ diff --git a/Models/SettingsEnum.php b/Models/SettingsEnum.php new file mode 100644 index 0000000..6ea4641 --- /dev/null +++ b/Models/SettingsEnum.php @@ -0,0 +1,30 @@ +