data['Content']->head; $head->addAsset(AssetType::CSS, 'Modules/Profile/Theme/Backend/css/styles.css?v=1.0.0'); } /** * Routing end-point for application behaviour. * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param mixed $data Generic data * * @return RenderableInterface * * @since 1.0.0 */ public function viewProfileList(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/Profile/Theme/Backend/profile-list'); if ($request->getData('ptype') === 'p') { $view->data['accounts'] = ProfileMapper::getAll() ->with('account') ->with('image') ->where('id', $request->getDataInt('id') ?? 0, '<') ->limit(25)->execute(); } elseif ($request->getData('ptype') === 'n') { $view->data['accounts'] = ProfileMapper::getAll() ->with('account') ->with('image') ->where('id', $request->getDataInt('id') ?? 0, '>') ->limit(25)->execute(); } else { $view->data['accounts'] = ProfileMapper::getAll() ->with('account') ->with('image') ->where('id', 0, '>') ->limit(25)->execute(); } /** @var \Model\Setting $profileImage */ $profileImage = $this->app->appSettings->get(names: SettingsEnum::DEFAULT_PROFILE_IMAGE, module: 'Profile'); /** @var \Modules\Media\Models\Media $image */ $image = MediaMapper::get() ->where('id', (int) $profileImage->content) ->execute(); $view->data['defaultImage'] = $image; return $view; } /** * Routing end-point for application behaviour. * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param mixed $data Generic data * * @return RenderableInterface * * @since 1.0.0 */ public function viewProfileSingle(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); /** @var \phpOMS\Model\Html\Head $head */ $head = $response->data['Content']->head; $head->addAsset(AssetType::CSS, '/Modules/Calendar/Theme/Backend/css/styles.css?v=1.0.0'); $view->setTemplate('/Modules/Profile/Theme/Backend/profile-single'); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1000301001, $request, $response); $mediaListView = new \Modules\Media\Theme\Backend\Components\Media\ListView($this->app->l11nManager, $request, $response); $mediaListView->setTemplate('/Modules/Media/Theme/Backend/Components/Media/list'); $view->data['medialist'] = $mediaListView; $calendarView = new \Modules\Calendar\Theme\Backend\Components\Calendar\BaseView($this->app->l11nManager, $request, $response); $calendarView->setTemplate('/Modules/Calendar/Theme/Backend/Components/Calendar/mini'); $view->data['calendar'] = $calendarView; $mapperQuery = ProfileMapper::get() ->with('account') ->with('account/locations') ->with('image'); /** @var \Modules\Profile\Models\Profile $profile */ $profile = $request->hasData('for') ? $mapperQuery->where('account', (int) $request->getData('for'))->execute() : $mapperQuery->where('id', (int) $request->getData('id'))->execute(); $view->data['account'] = $profile; $l11n = null; if ($profile->account->id === $request->header->account) { /** @var \phpOMS\Localization\Localization $l11n */ $l11n = LocalizationMapper::get()->where('id', $profile->account->l11n->id)->execute(); } $view->data['l11n'] = $l11n ?? new NullLocalization(); $accGrpSelector = new \Modules\Profile\Theme\Backend\Components\AccountGroupSelector\BaseView($this->app->l11nManager, $request, $response); $view->data['accGrpSelector'] = $accGrpSelector; /** @var \Modules\Media\Models\Media[] $media */ $media = MediaMapper::getAll() ->with('createdBy') ->where('createdBy', (int) $profile->account->id) ->limit(25) ->execute(); $view->data['media'] = $media; /** @var \Model\Setting $profileImage */ $profileImage = $this->app->appSettings->get(names: SettingsEnum::DEFAULT_PROFILE_IMAGE, module: 'Profile'); /** @var \Modules\Media\Models\Media $image */ $image = MediaMapper::get()->where('id', (int) $profileImage->content)->execute(); $view->data['defaultImage'] = $image; return $view; } /** * Routing end-point for application behaviour. * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param mixed $data Generic data * * @return RenderableInterface * * @since 1.0.0 */ public function viewModuleSettings(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/' . static::NAME . '/Admin/Settings/Theme/Backend/settings'); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1000300000, $request, $response); return $view; } /** * Routing end-point for application behaviour. * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param mixed $data Generic data * * @return RenderableInterface * * @since 1.0.0 */ 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'); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1000300000, $request, $response); $accGrpSelector = new \Modules\Profile\Theme\Backend\Components\AccountGroupSelector\BaseView($this->app->l11nManager, $request, $response); $view->data['accGrpSelector'] = $accGrpSelector; return $view; } }