protected function getContentFromArticle($id, $type = "") { $tmpContent = ""; $thumb = ""; $sharelink = ""; $retArr = array(); $time = time(); $base = \Environment::get('base'); $table = ""; if ($type == 'news') { $table = "tl_news"; } else { if ($table == 'event') { $table = "tl_calendar_events"; } else { $table = "tl_article"; } } $openComment = $type == 'news' ? "open" : "closed"; $commentCount = 0; $result = ""; $query = "SELECT * FROM `{$table}` WHERE `id` = '" . $id . "' "; $articleRes = \Database::getInstance()->query($query)->fetchAssoc(); if ($type == "news") { switch ($articleRes['source']) { case 'external': $sharelink = $articleRes['url']; break; case 'article': $sharelink = $base . \Controller::replaceInsertTags("{{article_url::" . $articleRes['articleId'] . "}}"); break; case 'internal': $sharelink = $base . \Controller::replaceInsertTags("{{link_url::" . $articleRes['jumpTo'] . "}}"); break; default: $sharelink = $base . \Controller::replaceInsertTags("{{news_url::" . $articleRes['id'] . "}}"); break; } $newsModel = \NewsModel::findPublishedByParentAndIdOrAlias($id, array(0 => $articleRes['pid'])); $result = $this->parseNews($newsModel); } else { if ($type == "event") { $objEvent = \CalendarEventsModel::findPublishedByParentAndIdOrAlias($id, array($this->settings['calendar'])); $objTemplate = new \FrontendTemplate("event_full"); $objTemplate->setData($objEvent->row()); $objTemplate->date = $date; $objTemplate->start = $intStartTime; $objTemplate->end = $intEndTime; $objTemplate->class = $objEvent->cssClass != '' ? ' ' . $objEvent->cssClass : ''; $objTemplate->recurring = $recurring; $objTemplate->until = $until; $objTemplate->locationLabel = $GLOBALS['TL_LANG']['MSC']['location']; $objTemplate->details = ''; $objElement = \ContentModel::findPublishedByPidAndTable($objEvent->id, 'tl_calendar_events'); if ($objElement !== null) { while ($objElement->next()) { $objTemplate->details .= $this->getContentElement($objElement->id); } } $objTemplate->addImage = false; if ($objEvent->addImage && $objEvent->singleSRC != '') { $objModel = \FilesModel::findByUuid($objEvent->singleSRC); if (is_file(TL_ROOT . '/' . $objModel->path)) { $arrEvent = $objEvent->row(); $arrEvent['singleSRC'] = $objModel->path; $this->addImageToTemplate($objTemplate, $arrEvent); } } $objTemplate->enclosure = array(); if ($objEvent->addEnclosure) { $this->addEnclosuresToTemplate($objTemplate, $objEvent->row()); } $result = $objTemplate->parse(); } else { $result = \ArticleModel::findByIdOrAliasAndPid($id, $articleRes['pid']); } } $sharelink = $sharelink == "" ? $base . \Controller::replaceInsertTags("{{link_url::" . $articleRes['pid'] . "}}") : $sharelink; if ($result != "") { if ($type != "news" && $type != "event") { $pageTitleRes = \Controller::getPageDetails($articleRes['pid']); $objArticle = new \ModuleArticle($result); $tmpContent = $objArticle->generate(true); } else { $tmpContent = $result; } $tmpContent = \Controller::replaceInsertTags($tmpContent); $tmpContent = str_replace('src="files/', 'src="' . $base . 'files/', $tmpContent); $tmpContent = str_replace('src="assets/', 'src="' . $base . 'assets/', $tmpContent); $tmpContent = str_replace('href="index.php/', 'href="' . $base . 'index.php/', $tmpContent); if ($pageTitleRes->thumb) { $thumb = $this->getFilePath($pageTitleRes->thumb); } if ($openComment == "open") { $commentCount = \CommentsModel::countPublishedBySourceAndParent("tl_news", $id); } $retArr['tstamp'] = time(); $retArr['img']['src'] = ""; $retArr['img']['thumb'] = $thumb; $retArr['pid'] = $id; $retArr['title'] = $type != "news" ? $pageTitleRes->title : $articleRes['headline']; $retArr['commentStatus'] = $openComment; $retArr['commentCount'] = $commentCount; $retArr['sharelink'] = $sharelink; $tmpContent = str_replace(']]>', ']]>', $tmpContent); $tmpContent = str_replace("\r\n", '\\n', $tmpContent); $retArr['content'] = preg_replace('/[\\x00-\\x1F\\x80-\\x9F]/u', '', $tmpContent); } else { $retArr = false; } return $retArr; }