Beispiel #1
0
    public static function getHTML($row)
    {
        $config = EasyBlogHelper::getConfig();
        if (!$config->get('main_tweetmeme')) {
            return '';
        }
        $service = $config->get('main_tweetmeme_url');
        $style = $config->get('main_tweetmeme_style');
        $source = $config->get('main_tweetmeme_rtsource');
        $buttonSize = 'social-button-';
        switch ($style) {
            case 'normal':
                $buttonSize .= 'large';
                break;
            case 'compact':
            default:
                $buttonSize .= 'small';
                break;
        }
        $url = EasyBlogRouter::getRoutedURL('index.php?option=com_easyblog&view=entry&id=' . $row->id, false, true);
        $title = addslashes($row->title);
        $placeholder = 'sb-' . rand();
        $html = '<div class="social-button ' . $buttonSize . ' tweetmeme"><span id="' . $placeholder . '"></span></div>';
        $html .= EasyBlogHelper::addScriptDeclarationBookmarklet('$("#' . $placeholder . '").bookmarklet("tweetMeme", {
			service: "' . $service . '",
			style: "' . $style . '",
			url: "' . $url . '",
			title: "' . $title . '",
			source: "' . $source . '"
		});');
        return $html;
    }
Beispiel #2
0
    public function googleone()
    {
        $config = EasyBlogHelper::getConfig();
        $document = JFactory::getDocument();
        $frontpage = $this->isFrontend;
        $pos = $this->position;
        $googleone = !$frontpage && $config->get('main_googleone') || $frontpage && $config->get('main_googleone_frontpage', $config->get('social_show_frontpage')) && $config->get('main_googleone');
        $socialFrontEnd = $config->get('main_googleone_frontpage', 0);
        $html = '';
        if ($googleone) {
            $size = $config->get('main_googleone_layout');
            $dataURL = $this->_getDataURL();
            $dataTitle = $this->_getDataTitle();
            $buttonSize = 'social-button-';
            switch ($size) {
                case 'tall':
                    $buttonSize .= 'large';
                    break;
                case 'medium':
                default:
                    $buttonSize .= 'small';
                    break;
            }
            // Add snippet info into headers
            $document = JFactory::getDocument();
            $meta = EasyBlogHelper::getTable('Meta', 'Table');
            $meta->loadByType(META_TYPE_POST, $this->blog->id);
            $document->addCustomTag('<meta itemprop="name" content="' . $this->blog->title . '" />');
            if (!empty($meta->description)) {
                $meta->description = EasyBlogStringHelper::escape($meta->description);
                // Remove JFBConnect codes.
                $pattern = '/\\{JFBCLike(.*)\\}/i';
                $meta->description = preg_replace($pattern, '', $meta->description);
                $document->addCustomTag('<meta itemprop="description" content="' . $meta->description . '" />');
            } else {
                $maxContentLen = 350;
                $text = strip_tags($this->blog->intro . $this->blog->content);
                $text = JString::strlen($text) > $maxContentLen ? JString::substr($text, 0, $maxContentLen) . '...' : $text;
                // Remove JFBConnect codes.
                $pattern = '/\\{JFBCLike(.*)\\}/i';
                $text = preg_replace($pattern, '', $text);
                $text = EasyBlogStringHelper::escape($text);
                $document->addCustomTag('<meta itemprop="description" content="' . $text . '" />');
            }
            $image = EasyBlogHelper::getFirstImage($this->blog->intro . $this->blog->content);
            if ($image !== false) {
                $document->addCustomTag('<meta itemprop="image" content="' . $image . '" />');
            }
            $placeholder = 'sb-' . rand();
            $html .= '<div class="social-button ' . $buttonSize . ' google-plusone"><span id="' . $placeholder . '"></span></div>';
            // TODO: Verify $socialFrontEnd, what is it used for.
            // if( ! $socialFrontEnd )
            // $googleHTML	.= '<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>';
            // $googleHTML	.= '<g:plusone size="' . $size . '" href="' . $dataURL . '"></g:plusone>';
            if ($this->isBottom) {
                $html = '<div class="socialbutton-vertical align' . $pos . '">' . $html . '</div>';
            }
            $html .= EasyBlogHelper::addScriptDeclarationBookmarklet('$("#' . $placeholder . '").bookmarklet("googlePlusOne", {
				href: "' . $dataURL . '",
				size: "' . $size . '"
			});');
        }
        return $html;
    }
Beispiel #3
0
    public function getHTML($frontpage, $position, $blog, $teamIdLink)
    {
        $config = EasyBlogHelper::getConfig();
        $enabled = !$frontpage && $config->get('main_pinit_button') || $frontpage && $config->get('main_pinit_button_frontpage', $config->get('social_show_frontpage')) && $config->get('main_pinit_button');
        if (!$enabled) {
            return false;
        }
        $style = $config->get('main_pinit_button_style');
        $url = EasyBlogRouter::getRoutedURL('index.php?option=com_easyblog&view=entry&id=' . $blog->id, false, true);
        // @task: Test for blog image first.
        $image = '';
        if ($blog->getImage()) {
            $image = $blog->getImage()->getSource('frontpage');
        }
        if (empty($image)) {
            // Fetch the first image of the blog post
            $image = EasyBlogHelper::getFirstImage($blog->intro . $blog->content);
            // @rule: Test if there's any ->images
            if (isset($blog->images) && $blog->images) {
                $image = $blog->images[0];
            }
        }
        // @rule: If post doesn't contain any images, do not show button.
        if (!$image) {
            return false;
        }
        $buttonSize = 'social-button-';
        switch ($style) {
            case 'vertical':
                $buttonSize .= 'large';
                break;
            case 'horizontal':
                $buttonSize .= 'small';
                break;
            default:
                $buttonSize .= 'plain';
                break;
        }
        // @TODO: Configurable maximum length
        $contentLength = 350;
        $text = $blog->intro . $blog->content;
        $text = nl2br($text);
        $text = strip_tags($text);
        $text = trim(preg_replace('/\\s+/', ' ', $text));
        $text = JString::strlen($text) > $contentLength ? JString::substr($text, 0, $contentLength) . '...' : $text;
        $theme = new CodeThemes();
        $title = $blog->title;
        // Urlencode all the necessary properties.
        $url = urlencode($url);
        $text = urlencode($text);
        $image = urlencode($image);
        $placeholder = 'sb-' . rand();
        $output = '<div class="social-button ' . $buttonSize . ' pinterest"><span id="' . $placeholder . '"></span></div>';
        $output .= EasyBlogHelper::addScriptDeclarationBookmarklet('$("#' . $placeholder . '").bookmarklet("pinterest", {
					url: "' . $url . '",
					style: "' . $style . '",
					media: "' . $image . '",
					title: "' . $title . '",
					description: "' . $text . '"
				});');
        return $output;
    }
Beispiel #4
0
    public static function getLikeHTML($row)
    {
        $config = EasyBlogHelper::getConfig();
        if (!$config->get('main_facebook_like')) {
            return '';
        }
        $views = JRequest::getCmd('view', '');
        $layout = JRequest::getCmd('layout', '');
        if (!$config->get('integrations_facebook_show_in_listing')) {
            if ($views == 'latest' || $views == 'blogger' || $views == 'teamblog' || $layout == 'tag' || $views == 'categories' && $layout == 'listings') {
                return '';
            }
        }
        $document = JFactory::getDocument();
        $language = $document->getLanguage();
        $language = explode('-', $language);
        if (count($language) != 2) {
            $language = array('en', 'GB');
        }
        $layout = $config->get('main_facebook_like_layout');
        $faces = $config->get('main_facebook_like_faces') ? 'true' : 'false';
        $width = $config->get('main_facebook_like_width');
        $verb = $config->get('main_facebook_like_verb');
        $theme = $config->get('main_facebook_like_theme');
        $send = $config->get('main_facebook_like_send') ? 'true' : 'false';
        $sbPosition = $config->get('main_socialbutton_position');
        $fbPosition = $config->get('main_facebook_like_position');
        if ($fbPosition == '1') {
            $faces = false;
        }
        require_once EBLOG_HELPERS . DIRECTORY_SEPARATOR . 'router.php';
        $url = EasyBlogRouter::getRoutedURL('index.php?option=com_easyblog&view=entry&id=' . $row->id, true, true);
        // if the layout == box_count, the we hard code it to 50 the with.
        $height = $faces == 'true' ? '70' : '30';
        $width = $layout == 'standard' ? $width : 'auto';
        if ($layout != 'standard' && $send == 'true' && $sbPosition != 'right' && $sbPosition != 'left') {
            $width = 'auto';
        }
        $locale = $language[0] . '_' . JString::strtoupper($language[1]);
        $html = '';
        $placeholder = 'sb-' . rand();
        $html = '<span id="' . $placeholder . '"></span>';
        $html .= EasyBlogHelper::addScriptDeclarationBookmarklet('$("#' . $placeholder . '").bookmarklet("facebookLike", {
			url: "' . $url . '",
			send: "' . $send . '",
			layout: "' . $layout . '",
			verb: "' . $verb . '",
			locale: "' . $locale . '",
			faces: "' . $faces . '",
			theme: "' . $theme . '",
			height: "' . $height . '",
			width: "' . $width . '"
		});');
        return $html;
    }