/** * @param MessageContent $messageContent * @param array $contents * * @return array * @SuppressWarnings(PHPMD.CyclomaticComplexity) */ protected function handleFoundedContent(MessageContent $messageContent, array $contents) { if (count($contents) < 1) { return array(); } $messageCategory = $messageContent->getMessage()->getCategory(); $viewOnlinePageModel = \PageModel::findByPk($messageCategory->getViewOnlinePage()); if (!$viewOnlinePageModel) { $viewOnlinePageModel = \PageModel::findByPk(Frontend::getRootIdFromUrl()); } $viewOnlinePageModel->loadDetails(); $replaced = array(); $replacedIn = array(); foreach ($contents as $content) { foreach (array('type', 'galleryTpl', 'customTpl', 'eventTemplate', 'newsTemplate') as $propertyTemplate) { if ($content instanceof \Model) { if (empty($content->{$propertyTemplate})) { continue; } $template = $this->findTemplate($content->{$propertyTemplate}, $messageCategory); if ($content->{$propertyTemplate} === $template) { continue; } $content->{$propertyTemplate} = $template; $replaced[] = $template; $replacedIn[] = $content; } if ($content instanceof EntityInterface) { $getPropertyTemplate = 'get' . ucfirst($propertyTemplate); $setPropertyTemplate = 'set' . ucfirst($propertyTemplate); if (!method_exists($content, $getPropertyTemplate) || !$content->{$getPropertyTemplate}()) { continue; } $template = $this->findTemplate($content->{$getPropertyTemplate}(), $messageCategory); if ($content->{$getPropertyTemplate}() === $template) { continue; } $content->{$setPropertyTemplate}($template); $replaced[] = $template; $replacedIn[] = $content; } } } return array($replaced, $replacedIn); }