/**
     * Render facebook comment viewhelper
     *
     * @param string $appId
     * @return string
     */
    public function render($appId)
    {
        $tsSettings = $this->pluginSettingsService->getSettings();
        $this->tag->addAttribute('data-href', \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_REQUEST_URL'));
        $this->tag->forceClosingTag(TRUE);
        $locale = !empty($tsSettings['facebookLocale']) ? $tsSettings['facebookLocale'] : 'en_US';
        $code = '<div id="fb-root"></div>
					<script src="http://connect.facebook.net/' . $locale . '/all.js#appId=' . htmlspecialchars($appId) . '&amp;xfbml=1"></script>';
        $code .= $this->tag->render();
        return $code;
    }
 /**
  * Render the Google+ button
  *
  * @param string $jsCode Alternative JavaScript code which is used
  * @return string
  */
 public function render($jsCode = '')
 {
     if (empty($jsCode)) {
         $jsCode = 'https://apis.google.com/js/plusone.js';
     } elseif ($jsCode != '-1') {
         $jsCode = htmlspecialchars($jsCode);
     }
     $tsSettings = $this->pluginSettingsService->getSettings();
     $locale = !empty($tsSettings['googlePlusLocale']) ? '{lang:\'' . $tsSettings['googlePlusLocale'] . '\'}' : '';
     $code = '<script type="text/javascript" src="' . $jsCode . '">' . $locale . '</script>';
     $this->tag->setContent(' ');
     $code .= $this->tag->render();
     return $code;
 }
Beispiel #3
0
 /**
  * Render the facebook like viewhelper
  *
  * @return string
  */
 public function render()
 {
     $code = '';
     $url = !empty($this->arguments['href']) ? $this->arguments['href'] : \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_REQUEST_URL');
     // absolute urls are needed
     $this->tag->addAttribute('href', Tx_MooxNews_Utility_Url::prependDomain($url));
     $this->tag->forceClosingTag(TRUE);
     // -1 means no JS
     if ($this->arguments['javaScript'] != '-1') {
         if (empty($this->arguments['javaScript'])) {
             $tsSettings = $this->pluginSettingsService->getSettings();
             $locale = !empty($tsSettings['facebookLocale']) ? $tsSettings['facebookLocale'] : 'en_US';
             $code = '<script src="https://connect.facebook.net/' . $locale . '/all.js#xfbml=1"></script>';
             // Social interaction Google Analytics
             if ($this->pluginSettingsService->getByPath('analytics.social.facebookLike') == 1) {
                 $code .= \TYPO3\CMS\Core\Utility\GeneralUtility::wrapJS("\n\t\t\t\t\t\tFB.Event.subscribe('edge.create', function(targetUrl) {\n\t\t\t\t\t\t \t_gaq.push(['_trackSocial', 'facebook', 'like', targetUrl]);\n\t\t\t\t\t\t});\n\t\t\t\t\t\tFB.Event.subscribe('edge.remove', function(targetUrl) {\n\t\t\t\t\t\t  _gaq.push(['_trackSocial', 'facebook', 'unlike', targetUrl]);\n\t\t\t\t\t\t});\n\t\t\t\t\t");
             }
         } else {
             $code = '<script src="' . htmlspecialchars($this->arguments['javaScript']) . '"></script>';
         }
     }
     // seems as if a div with id fb-root is needed this is just a dirty
     // workaround to make things work again Perhaps we should
     // use the iframe variation.
     $code .= '<div id="fb-root"></div>' . $this->tag->render();
     return $code;
 }
    /**
     * Render disqus thread
     *
     * @param Tx_MooxNews_Domain_Model_News $newsItem news item
     * @param string $shortName shortname
     * @param string $link link
     * @return string
     */
    public function render(Tx_MooxNews_Domain_Model_News $newsItem, $shortName, $link)
    {
        $tsSettings = $this->pluginSettingsService->getSettings();
        $code = '<script type="text/javascript">
					var disqus_shortname = ' . \TYPO3\CMS\Core\Utility\GeneralUtility::quoteJSvalue($shortName, TRUE) . ';
					var disqus_identifier = \'news_' . $newsItem->getUid() . '\';
					var disqus_url = ' . \TYPO3\CMS\Core\Utility\GeneralUtility::quoteJSvalue($link, TRUE) . ';
					var disqus_title = ' . \TYPO3\CMS\Core\Utility\GeneralUtility::quoteJSvalue($newsItem->getTitle(), TRUE) . ';
					var disqus_config = function () {
						this.language = ' . \TYPO3\CMS\Core\Utility\GeneralUtility::quoteJSvalue($tsSettings['disqusLocale']) . ';
					};

					(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;
    }
Beispiel #5
0
 /**
  * Render link to news item or internal/external pages
  *
  * @param Tx_MooxNews_Domain_Model_News $newsItem current news object
  * @param array $settings
  * @param boolean $uriOnly return only the url without the a-tag
  * @param array $configuration optional typolink configuration
  * @return string link
  */
 public function render(Tx_MooxNews_Domain_Model_News $newsItem, array $settings = array(), $uriOnly = FALSE, $configuration = array())
 {
     $tsSettings = $this->pluginSettingsService->getSettings();
     // TODO: check why $this->pluginSettingsService->getSettings() get wrong setting
     if (true || !is_array($tsSettings)) {
         $tsSettings = $settings;
     }
     $this->init();
     $newsType = (int) $newsItem->getType();
     switch ($newsType) {
         // internal news
         case 1:
             $configuration['parameter'] = $newsItem->getInternalurl();
             break;
             // external news
         // external news
         case 2:
             $configuration['parameter'] = $newsItem->getExternalurl();
             break;
             // normal news record
         // normal news record
         default:
             $configuration = $this->getLinkToNewsItem($newsItem, $tsSettings, $configuration);
     }
     if (isset($tsSettings['link']['typesOpeningInNewWindow'])) {
         if (\TYPO3\CMS\Core\Utility\GeneralUtility::inList($tsSettings['link']['typesOpeningInNewWindow'], $newsType)) {
             $this->tag->addAttribute('target', '_blank');
         }
     }
     $url = $this->cObj->typoLink_URL($configuration);
     if ($uriOnly) {
         return $url;
     }
     $this->tag->addAttribute('href', $url);
     $this->tag->addAttribute('rel', $url);
     $this->tag->setContent($this->renderChildren());
     return $this->tag->render();
 }