/** * Parse any media group placeholders * * @param AbstractController $controller * @param Application $application * @return void */ public static function parseMedia(AbstractController $controller, Application $application) { if ($controller->hasView() && ($controller instanceof \Phire\Categories\Controller\IndexController || $controller instanceof \Phire\Content\Controller\IndexController)) { $data = $controller->view()->getData(); foreach ($data as $key => $value) { if (is_string($value)) { $subIds = self::parseLibraryIds($value); if (count($subIds) > 0) { $media = new Model\Media(); foreach ($subIds as $sid) { $view = new \Pop\View\View($value, ['media_' . $sid => $media->getAllByLibraryId($sid)]); $controller->view()->{$key} = $view->render(); } } } } $body = $controller->response()->getBody(); $ids = self::parseLibraryIds($body); if (count($ids) > 0) { $media = new Model\Media(); foreach ($ids as $id) { $key = 'media_' . $id; $controller->view()->{$key} = $media->getAllByLibraryId($id); } } } }
/** * Parse any content group placeholders * * @param AbstractController $controller * @param Application $application * @return void */ public static function parseContent(AbstractController $controller, Application $application) { if ($controller->hasView() && ($controller instanceof \Phire\Categories\Controller\IndexController || $controller instanceof \Phire\Content\Controller\IndexController)) { $data = $controller->view()->getData(); foreach ($data as $key => $value) { if (is_string($value)) { $subIds = self::parseContentIds($value); if (count($subIds) > 0) { $content = new Model\Content(); foreach ($subIds as $sid) { $c = substr($value, strpos($value, '[{content_' . $sid . '}]')); $c = substr($c, 0, strpos($c, '[{/content_' . $sid . '}]') + strlen('[{/content_' . $sid . '}]')); $view = new \Pop\View\View($c, ['content_' . $sid => $content->getAllByTypeId($sid)]); $controller->view()->{$key} = str_replace($c, $view->render(), $value); } } } } $body = $controller->response()->getBody(); $ids = self::parseContentIds($body); if (count($ids) > 0) { $content = new Model\Content(); foreach ($ids as $id) { $key = 'content_' . $id; $controller->view()->{$key} = $content->getAllByTypeId($id); } } } }