/** * Responsible to format the blog posts and append neccessary data. * * @access public * @param Array $data An array of blog posts. * @param boolean $loadComments Determines whether or not to load the comments into the object. * @param boolean $removeFeaturedImage Determines whether or not to remove featured image from the content. * @param boolean $loadVideo If true, video codes will be processed. * @param boolean $frontpage Determines whether this is for the front page or not. * @return Array An array of formatted blog posts. */ public static function formatBlog($data, $loadComments = false, $removeFeaturedImage = true, $loadVideo = true, $frontpage = false, $loadGallery = true) { $app = JFactory::getApplication(); $params = $app->getParams('com_easyblog'); $model = EasyBlogHelper::getModel('Blog'); $config = EasyBlogHelper::getConfig(); // @rule: If nothing is supplied, just return the empty data. if (empty($data)) { return $data; } // @task: Get the tags relations model. $modelPT = EasyBlogHelper::getModel('PostTag'); // @task : Resultset data $result = array(); for ($i = 0; $i < count($data); $i++) { $row =& $data[$i]; $blog = EasyBlogHelper::getTable('Blog'); $blog->bind($row); // @task: Since the $blog object does not contain 'team_id', we need to set this here. if (isset($row->team_id)) { $blog->team_id = $row->team_id; } // @task: Since the $blog object does not contain 'category', we need to set this here. $blog->category = $row->category; $blog->featuredImage = isset($row->featuredImage) ? $row->featuredImage : ''; $profile = EasyBlogHelper::getTable('Profile', 'Table'); $profile->load($blog->created_by); // @legacy The following variables are no longer used in 3.5 // @since 3.5 $blog->avatar = $profile->getAvatar(); $blog->avatarLink = $profile->getProfileLink(); $blog->displayName = $profile->getName(); // @Assign dynamic properties that must exist everytime formatBlog is called // We can't rely on ->author because CB plugins would mess things up. $blog->author = $profile; $blog->blogger = $profile; $blog->isFeatured = EasyBlogHelper::isFeatured('post', $blog->id); $blog->category = empty($blog->category) ? JText::_('COM_EASYBLOG_UNCATEGORIZED') : JText::_($blog->category); // @task: Detect password protections. $requireVerification = false; $tmpTitle = $blog->title; if ($config->get('main_password_protect', true) && !empty($blog->blogpassword)) { $blog->title = JText::sprintf('COM_EASYBLOG_PASSWORD_PROTECTED_BLOG_TITLE', $blog->title); $requireVerification = true; } // @rule: If user already authenticated with the correct password, we will hide the password if ($requireVerification && EasyBlogHelper::verifyBlogPassword($blog->blogpassword, $blog->id)) { $blog->title = $tmpTitle; $blog->blogpassword = ''; } // @rule: Initialize all variables $blog->videos = array(); $blog->galleries = array(); $blog->albums = array(); $blog->audios = array(); // @rule: Before anything get's processed we need to format all the microblog posts first. if (!empty($blog->source)) { self::formatMicroblog($blog); } // @rule: Detect if the content requires a read more link. $blog->readmore = EasyBlogHelper::requireReadmore($blog); // @rule: Remove any adsense codes from the content. $blog->intro = EasyBlogGoogleAdsense::stripAdsenseCode($blog->intro); $blog->content = EasyBlogGoogleAdsense::stripAdsenseCode($blog->content); // @rule: Content truncations. EasyBlogHelper::truncateContent($blog, $loadVideo, $frontpage, $loadGallery); // @task: Legacy fix for blog posts prior to 3.5 // Remove first image from featured post if ($removeFeaturedImage && $blog->isFeatured) { $blog->text = EasyBlogHelper::removeFeaturedImage($blog->text); } // @rule: Add nofollow tags if necessary if ($config->get('main_anchor_nofollow')) { $blog->text = self::addNoFollow($blog->text); } // @rule: $limitstart variable is required by content plugins. $limitstart = JRequest::getVar('limitstart', 0, '', 'int'); // @trigger: onEasyBlogPrepareContent JPluginHelper::importPlugin('easyblog'); EasyBlogHelper::triggerEvent('easyblog.prepareContent', $blog, $params, $limitstart); $blog->introtext = $blog->intro; // @trigger: onPrepareContent / onContentPrepare EasyBlogHelper::triggerEvent('prepareContent', $blog, $params, $limitstart); $blog->excerpt = $blog->introtext; $blog->content = $blog->text; //onPrepareContent trigger end // @rule: Assign tags to the custom properties. $blog->tags = $modelPT->getBlogTags($blog->id); // @rule: Assign total comments in this blog post. $blog->totalComments = EasyBlogHelper::getHelper('Comment')->getCommentCount($blog); $blog->comments = array(); if ($loadComments) { $blog->comments = EasyBlogHelper::getHelper('Comment')->getBlogComment($blog->id, $config->get('layout_showcommentcount', 3), 'desc', true); } $blog->event = new stdClass(); // @trigger: onContentAfterTitle / onAfterDisplayTitle $results = EasyBlogHelper::triggerEvent('afterDisplayTitle', $blog, $params, $limitstart); $blog->event->afterDisplayTitle = JString::trim(implode("\n", $results)); // @trigger: onContentAfterTitle / onAfterDisplayTitle $results = EasyBlogHelper::triggerEvent('beforeDisplayContent', $blog, $params, $limitstart); $blog->event->beforeDisplayContent = JString::trim(implode("\n", $results)); // @trigger: onContentAfterTitle / onAfterDisplayTitle $results = EasyBlogHelper::triggerEvent('afterDisplayContent', $blog, $params, $limitstart); $blog->event->afterDisplayContent = JString::trim(implode("\n", $results)); // Facebook Like integrations require_once EBLOG_CLASSES . DIRECTORY_SEPARATOR . 'facebook.php'; $facebookLike = EasyBlogFacebookLikes::getLikeHTML($blog); $blog->facebookLike = $facebookLike; $result[] = $blog; } return $result; }
public function facebook() { $config = EasyBlogHelper::getConfig(); $document = JFactory::getDocument(); $frontpage = $this->isFrontend; $pos = $this->position; $html = ''; $fb = !$frontpage && $config->get('main_facebook_like') || $frontpage && $config->get('integrations_facebook_show_in_listing', $config->get('social_show_frontpage')) && $config->get('main_facebook_like'); if (!$fb) { return; } $fblayout = $config->get('main_facebook_like_layout'); $fbLikesButton = $config->get('main_facebook_like'); $buttonSize = 'social-button-'; switch ($fblayout) { case 'box_count': $buttonSize .= 'large'; break; case 'button_count': $buttonSize .= 'small'; break; case 'standard': default: $buttonSize .= 'standard'; break; } if ($config->get('main_facebook_like')) { if ($fblayout != 'standard') { //if the layout is box_count then only we stick the fb likes with others social button. require_once EBLOG_CLASSES . DIRECTORY_SEPARATOR . 'facebook.php'; $html = EasyBlogFacebookLikes::getLikeHTML($this->blog); if (!empty($html)) { $html = '<div class="social-button ' . $buttonSize . ' facebook-like">' . $html . '</div>'; if ($this->isBottom) { $html = '<div class="socialbutton-vertical align' . $pos . '">' . $html . '</div>'; } } } } return $html; }
function preview() { JPluginHelper::importPlugin('easyblog'); $dispatcher = JDispatcher::getInstance(); $mainframe = JFactory::getApplication(); $acl = EasyBlogACLHelper::getRuleSet(); $config = EasyBlogHelper::getConfig(); $document = JFactory::getDocument(); $my = JFactory::getUser(); $params = $mainframe->getParams('com_easyblog'); if (!EasyBlogHelper::isLoggedIn()) { EasyBlogHelper::showLogin(); return; } $draftId = JRequest::getVar('draftid', ''); $draft = EasyBlogHelper::getTable('Draft', 'Table'); $draft->load($draftId); $blog = EasyBlogHelper::getTable('Blog', 'Table'); $blog->bind($draft); $blogger = null; if ($blog->created_by != 0) { $blogger = EasyBlogHelper::getTable('Profile', 'Table'); $blogger->load($blog->created_by); } // @rule: Set the author object into the table. $blog->author = $blogger; $blog->blogger = $blogger; $blogId = empty($draft->entry_id) ? $draft->id : $draft->entry_id; $limitstart = '0'; $notice = ''; $team = ''; $blog->tags = empty($draft->tags) ? array() : $this->bindTags(explode(',', $draft->tags)); // metas $meta = new stdClass(); $meta->id = ''; $meta->keywords = $draft->metakey; $meta->description = $draft->metadesc; $pageTitle = EasyBlogHelper::getPageTitle($config->get('main_title')); $document->setTitle($blog->title . $pageTitle); // process the video here if nessary $blog->intro = EasyBlogHelper::getHelper('Videos')->processVideos($blog->intro); $blog->content = EasyBlogHelper::getHelper('Videos')->processVideos($blog->content); // @rule: Process audio files. $blog->intro = EasyBlogHelper::getHelper('Audio')->process($blog->intro); $blog->content = EasyBlogHelper::getHelper('Audio')->process($blog->content); // @rule: Before any trigger happens, try to replace the gallery first and append it at the bottom. $blog->intro = EasyBlogHelper::getHelper('Gallery')->process($blog->intro, $blog->created_by); $blog->content = EasyBlogHelper::getHelper('Gallery')->process($blog->content, $blog->created_by); // Process jomsocial album's. $blog->intro = EasyBlogHelper::getHelper('Album')->process($blog->intro, $blog->created_by); $blog->content = EasyBlogHelper::getHelper('Album')->process($blog->content, $blog->created_by); // @trigger: onEasyBlogPrepareContent EasyBlogHelper::triggerEvent('easyblog.prepareContent', $blog, $params, $limitstart); //onPrepareContent trigger start $blog->introtext = $blog->intro; $blog->text = $blog->intro . $blog->content; // @trigger: onEasyBlogPrepareContent EasyBlogHelper::triggerEvent('prepareContent', $blog, $params, $limitstart); $blog->intro = $blog->introtext; $blog->content = $blog->text; $isFeatured = false; //page setup $blogHtml = ''; $commentHtml = ''; $blogHeader = ''; $blogFooter = ''; $adsenseHtml = ''; $trackbackHtml = ''; $blogger = null; if ($blog->created_by != 0) { $blogger = EasyBlogHelper::getTable('Profile', 'Table'); $blogger->load($blog->created_by); } //onAfterDisplayTitle, onBeforeDisplayContent, onAfterDisplayContent trigger start $blog->event = new stdClass(); // @trigger: onAfterDisplayTitle / onContentAfterTitle $results = EasyBlogHelper::triggerEvent('afterDisplayTitle', $blog, $params, $limitstart); $blog->event->afterDisplayTitle = JString::trim(implode("\n", $results)); // @trigger: onBeforeDisplayContent / onContentBeforeDisplay $results = EasyBlogHelper::triggerEvent('beforeDisplayContent', $blog, $params, $limitstart); $blog->event->beforeDisplayContent = JString::trim(implode("\n", $results)); // @trigger: onAfterDisplayContent / onContentAfterDisplay EasyBlogHelper::triggerEvent('afterDisplayContent', $blog, $params, $limitstart); $blog->event->afterDisplayContent = JString::trim(implode("\n", $results)); if (!EasyBlogRouter::isCurrentActiveMenu('blogger', $blogger->id)) { $this->setPathway($blogger->getName(), $blogger->getLink()); } if (!EasyBlogRouter::isCurrentActiveMenu('entry', $blog->id)) { $this->setPathway($blog->title, ''); } $blog->totalComments = 0; // Facebook Like integrations require_once EBLOG_CLASSES . DIRECTORY_SEPARATOR . 'facebook.php'; $facebookLike = EasyBlogFacebookLikes::getLikeHTML($blog); $url = EasyBlogRouter::getRoutedURL('index.php?option=com_easyblog&view=entry&id=' . $blog->id, false, true); //get blog navigation object $blogNav = EasyBlogHelper::getBlogNavigation($blog->id, $blog->created, $team, 'team'); //$team $prevLink = array(); if (!empty($blogNav['prev'])) { $prevLink['id'] = $blogNav['prev'][0]->id; $prevLink['title'] = JString::strlen($blogNav['prev'][0]->title) > 50 ? JString::substr($blogNav['prev'][0]->title, 0, 50) . '...' : $blogNav['prev'][0]->title; } $nextLink = array(); if (!empty($blogNav['next'])) { $nextLink['id'] = $blogNav['next'][0]->id; $nextLink['title'] = JString::strlen($blogNav['next'][0]->title) > 50 ? JString::substr($blogNav['next'][0]->title, 0, 50) . '...' : $blogNav['next'][0]->title; } // @rule: Hide introtext if necessary if ($config->get('main_hideintro_entryview')) { $blog->intro = ''; } //get social bookmark provider. require_once EBLOG_CLASSES . DIRECTORY_SEPARATOR . 'bookmark.php'; $bookmark = EasyBlogBookmark::getHTML(); $theme = new CodeThemes(); $theme->set('facebookLike', $facebookLike); $theme->set('notice', $notice); $theme->set('blog', $blog); $theme->set('tags', $blog->tags); $theme->set('blogger', $blogger); $theme->set('prevLink', $prevLink); $theme->set('nextLink', $nextLink); $theme->set('blogRelatedPost', ''); $theme->set('isFeatured', $isFeatured); $theme->set('isMineBlog', true); $theme->set('acl', $acl); $theme->set('url', $url); $theme->set('commentHTML', $commentHtml); $theme->set('bookmark', $bookmark); $theme->set('pdfLinkProperties', EasyBlogHelper::getPDFlinkProperties()); $theme->set('ispreview', true); // @task: trackbacks $trackbacks = ''; $theme->set('trackbackURL', EasyBlogRouter::getRoutedURL('index.php?option=com_easyblog&view=trackback&post_id=' . $blog->id, true, true)); $theme->set('trackbacks', $trackbacks); //google adsense require_once EBLOG_CLASSES . DIRECTORY_SEPARATOR . 'adsense.php'; $adsense = EasyBlogGoogleAdsense::getHTML($blogger->id); $blogHeader = $adsense->header; $blogFooter = $adsense->footer; $theme->set('adsenseHTML', $adsense->beforecomments); $blogHtml = $theme->fetch('blog.read.php'); echo $blogHeader; echo $blogHtml; echo $blogFooter; }