/** * Add the news uid to a global variable to be able to exclude it later * * @param Tx_News_Domain_Model_News $newsItem current news item * @return void */ public function render(Tx_News_Domain_Model_News $newsItem) { $uid = $newsItem->getUid(); if (empty($GLOBALS['EXT']['news']['alreadyDisplayed'])) { $GLOBALS['EXT']['news']['alreadyDisplayed'] = array(); } $GLOBALS['EXT']['news']['alreadyDisplayed'][$uid] = $uid; }
public function render(Tx_News_Domain_Model_News $newsItem) { $vars = \TYPO3\CMS\Core\Utility\GeneralUtility::_GET('tx_news_pi1'); if (isset($vars['news']) && (int) $newsItem->getUid() === (int) $vars['news']) { return $this->renderThenChild(); } else { return $this->renderElseChild(); } }
/** * Add the news uid to a global variable to be able to exclude it later * * @param Tx_News_Domain_Model_News $newsItem current news item * @return void */ public function render(Tx_News_Domain_Model_News $newsItem) { $uid = $newsItem->getUid(); if (empty($GLOBALS['EXT']['news']['alreadyDisplayed'])) { $GLOBALS['EXT']['news']['alreadyDisplayed'] = array(); } $GLOBALS['EXT']['news']['alreadyDisplayed'][$uid] = $uid; // Add localized uid as well $originalUid = (int) $newsItem->_getProperty('_localizedUid'); if ($originalUid > 0) { $GLOBALS['EXT']['news']['alreadyDisplayed'][$originalUid] = $originalUid; } }
/** * Output different objects * * @param Tx_News_Domain_Model_News $newsItem current newsitem * @param string $as output variable * @param string $className custom class which handles the new objects * @param string $extendedTable table which is extended * @return string output */ public function render(Tx_News_Domain_Model_News $newsItem, $as, $className, $extendedTable = 'tx_news_domain_model_news') { $rawRecord = $GLOBALS['TYPO3_DB']->exec_SELECTgetSingleRow('*', $extendedTable, 'uid=' . (int) $newsItem->getUid()); $rawRecord = $GLOBALS['TSFE']->sys_page->getRecordOverlay($extendedTable, $rawRecord, $GLOBALS['TSFE']->sys_language_content, $GLOBALS['TSFE']->sys_language_contentOL); $objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager'); /* @var $dataMapper \TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMapper */ $dataMapper = $objectManager->get('TYPO3\\CMS\\Extbase\\Persistence\\Generic\\Mapper\\DataMapper'); $records = $dataMapper->map($className, array($rawRecord)); $record = array_shift($records); $this->templateVariableContainer->add($as, $record); $output = $this->renderChildren(); $this->templateVariableContainer->remove($as); return $output; }
/** * Render disqus thread * * @param Tx_News_Domain_Model_News $newsItem news item * @param string $shortName shortname * @param string $link link * @return string */ public function render(Tx_News_Domain_Model_News $newsItem, $shortName, $link) { $tsSettings = $this->pluginSettingsService->getSettings(); $code = '<script type="text/javascript"> var disqus_shortname = ' . t3lib_div::quoteJSvalue($shortName, TRUE) . '; var disqus_identifier = \'news_' . $newsItem->getUid() . '\'; var disqus_url = ' . t3lib_div::quoteJSvalue($link, TRUE) . '; var disqus_title = ' . t3lib_div::quoteJSvalue($newsItem->getTitle(), TRUE) . '; var disqus_config = function () { this.language = ' . t3lib_div::quoteJSvalue($tsSettings['disqusLang']) . '; }; (function() { var dsq = document.createElement("script"); dsq.type = "text/javascript"; dsq.async = true; dsq.src = "http://" + disqus_shortname + ".disqus.com/embed.js"; (document.getElementsByTagName("head")[0] || document.getElementsByTagName("body")[0]).appendChild(dsq); })(); </script>'; return $code; }
/** * @param Tx_News_Domain_Model_News $news * @param $pidList * @param $sortField * @return array */ protected function getNeighbours(Tx_News_Domain_Model_News $news, $pidList, $sortField) { $pidList = empty($pidList) ? $news->getPid() : $pidList; $select = 'SELECT tx_news_domain_model_news.uid,tx_news_domain_model_news.title '; $from = 'FROM tx_news_domain_model_news'; $whereClause = 'tx_news_domain_model_news.pid IN(' . $this->databaseConnection->cleanIntList($pidList) . ') ' . $this->getEnableFieldsWhereClauseForTable(); $query = $select . $from . ' WHERE ' . $whereClause . ' && ' . $sortField . ' >= (SELECT MAX(' . $sortField . ') ' . $from . ' WHERE ' . $whereClause . ' AND ' . $sortField . ' < (SELECT ' . $sortField . ' FROM tx_news_domain_model_news WHERE tx_news_domain_model_news.uid = ' . $news->getUid() . ')) ORDER BY ' . $sortField . ' ASC LIMIT 3'; $query2 = $select . $from . ' WHERE ' . $whereClause . ' AND ' . $sortField . '= (SELECT MIN(' . $sortField . ') FROM tx_news_domain_model_news WHERE ' . $whereClause . ' AND ' . $sortField . ' > (SELECT ' . $sortField . ' FROM tx_news_domain_model_news WHERE tx_news_domain_model_news.uid = ' . $news->getUid() . ')) '; $res = $this->databaseConnection->sql_query($query); $out = array(); while ($row = $this->databaseConnection->sql_fetch_assoc($res)) { $out[] = $row; } $this->databaseConnection->sql_free_result($res); if (count($out) === 0) { $res = $this->databaseConnection->sql_query($query2); while ($row = $this->databaseConnection->sql_fetch_assoc($res)) { $out[] = $row; } $this->databaseConnection->sql_free_result($res); return $out; } return $out; }