Example #1
0
    /**
     * Render a share button
     *
     * @param boolean $loadJs
     * @return string
     */
    public function render($loadJs = TRUE)
    {
        if (!empty($this->arguments['type'])) {
            $this->tag->addAttribute('data-type', $this->arguments['type']);
            $this->tag->removeAttribute('type');
        } else {
            $this->tag->addAttribute('data-type', 'button_count');
        }
        $shareUrl = empty($this->arguments['shareurl']) ? \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_REQUEST_URL') : $this->arguments['shareurl'];
        $this->tag->addAttribute('data-href', $shareUrl);
        $this->tag->removeAttribute('shareurl');
        $this->tag->addAttribute('class', 'fb-share-button');
        $this->tag->setContent(' ');
        $code = $this->tag->render();
        if ($loadJs) {
            $code .= '<div id="fb-root"></div>
				<script>(function(d, s, id) {
				  var js, fjs = d.getElementsByTagName(s)[0];
				  if (d.getElementById(id)) return;
				  js = d.createElement(s); js.id = id;
				  js.src = "//connect.facebook.net/de_DE/sdk.js";
				  fjs.parentNode.insertBefore(js, fjs);
				}(document, \'script\', \'facebook-jssdk\'));</script>';
        }
        // Social interaction Google Analytics
        if ($this->pluginSettingsService->getByPath('analytics.social.facebookShare') == 1) {
            $code .= \TYPO3\CMS\Core\Utility\GeneralUtility::wrapJS("\n\t\t\t\tFB.Event.subscribe('message.send', function(targetUrl) {\n\t\t\t\t  _gaq.push(['_trackSocial', 'facebook', 'send', targetUrl]);\n\t\t\t\t});\n\t\t\t");
        }
        return $code;
    }
Example #2
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_News_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']) && strlen($tsSettings['facebookLocale']) <= 5 ? $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 a share button
  *
  * @param boolean $loadJs
  * @return string
  */
 public function render($loadJs = TRUE)
 {
     // check defaults
     if (empty($this->arguments['href'])) {
         $this->tag->addAttribute('href', 'https://www.facebook.com/sharer/sharer.php');
     }
     if (empty($this->arguments['name'])) {
         $this->tag->addAttribute('name', 'fb_share');
     }
     if (empty($this->arguments['type'])) {
         $this->tag->addAttribute('type', 'button_count');
     }
     $shareUrl = empty($this->arguments['shareurl']) ? \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_REQUEST_URL') : $this->arguments['shareurl'];
     $this->tag->addAttribute('share_url', $shareUrl);
     $this->tag->removeAttribute('shareurl');
     $this->tag->setContent($this->renderChildren());
     $code = $this->tag->render();
     if ($loadJs) {
         $code .= '<script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" type="text/javascript"></script>';
     }
     // Social interaction Google Analytics
     if ($this->pluginSettingsService->getByPath('analytics.social.facebookShare') == 1) {
         $code .= \TYPO3\CMS\Core\Utility\GeneralUtility::wrapJS("\n\t\t\t\tFB.Event.subscribe('message.send', function(targetUrl) {\n\t\t\t\t  _gaq.push(['_trackSocial', 'facebook', 'send', targetUrl]);\n\t\t\t\t});\n\t\t\t");
     }
     return $code;
 }
Example #4
0
 /**
  * Render twitter viewhelper
  *
  * @return string
  */
 public function render()
 {
     $code = '';
     $this->tag->addAttribute('href', 'https://twitter.com/share');
     $this->tag->addAttribute('class', !empty($this->arguments['class']) ? $this->arguments['class'] : 'twitter-share-button');
     // rewrite tags as it seems that it is not possible to have tags with a '-'.
     $rewriteTags = array('datacount', 'datavia', 'datarelated', 'datatext', 'dataurl', 'datalang');
     foreach ($rewriteTags as $tag) {
         if (!empty($this->arguments[$tag])) {
             $newTag = str_replace('data', 'data-', $tag);
             $this->tag->addAttribute($newTag, $this->arguments[$tag]);
             $this->tag->removeAttribute($tag);
         }
     }
     // -1 means no JS
     if ($this->arguments['javaScript'] != '-1') {
         if (empty($this->arguments['javaScript'])) {
             $code = '<script type="text/javascript" src="https://platform.twitter.com/widgets.js"></script>';
         } else {
             $code = '<script src="' . htmlspecialchars($this->arguments['javaScript']) . '"></script>';
         }
     }
     // Social interaction Google Analytics
     if ($this->pluginSettingsService->getByPath('analytics.social.twitter') == 1) {
         $code .= \TYPO3\CMS\Core\Utility\GeneralUtility::wrapJS("\n\t\t\t\ttwttr.events.bind('tweet', function(event) {\n\t\t\t\t  if (event) {\n\t\t\t\t    var targetUrl;\n\t\t\t\t    if (event.target && event.target.nodeName == 'IFRAME') {\n\t\t\t\t      targetUrl = extractParamFromUri(event.target.src, 'url');\n\t\t\t\t    }\n\t\t\t\t    _gaq.push(['_trackSocial', 'twitter', 'tweet', targetUrl]);\n\t\t\t\t  }\n\t\t\t\t});\n\t\t\t");
     }
     $this->tag->removeAttribute('javaScript');
     $this->tag->setContent($this->renderChildren());
     $code = $this->tag->render() . $code;
     return $code;
 }