public function onContentPrepare($context, &$article, &$params, $page = 0) { $app = JFactory::getApplication(); $menu = $app->getMenu(); if ($menu->getActive() == $menu->getDefault() || $context != 'com_content.article' || $page > 0 || empty($article->id)) { return true; } $db = JFactory::getDbo(); $document = JFactory::getDocument(); $user = JFactory::getUser(); $api = new CjLibApi(); $article_url = JRoute::_(ContentHelperRoute::getArticleRoute($article->id . ':' . $article->alias, $article->catid . ':' . $article->category_alias)); /******************************** TRIGGER BADGE RULE ******************************************/ CjBlogApi::trigger_badge_rule('com_content.num_hits', array('num_hits' => $article->hits, 'ref_id' => $article->id), $article->created_by); /******************************* TRIGGER POINTS RULES ******************************************/ $appparams = JComponentHelper::getParams('com_cjblog'); if ($appparams->get('enable_points')) { CjBlogApi::award_points('com_content.hits', $user->id, 0, $article->id, JHtml::link($article_url, $article->title)); CjBlogApi::award_points('com_content.popular_articles', $article->created_by, 0, $article->id, JHtml::link($article_url, $article->title), array('hits' => $article->hits)); } // Check if the plugin is disabled for the article category $include_categories = $this->params->get('include_categories'); $exclude_categories = $this->params->get('exclude_categories'); $about_length = $this->params->get('about_length', 180); if (!empty($include_categories)) { $include_categories = explode(',', $include_categories); if (!in_array($article->catid, $include_categories)) { return true; } } else { if (!empty($exclude_categories)) { $exclude_categories = explode(',', $exclude_categories); if (in_array($article->catid, $exclude_categories)) { return true; } } } $print = $app->input->getInt('print', 0); if ($print) { return true; } /********************************** CONTENT HEADER *********************************************/ require_once JPATH_ROOT . '/components/com_cjblog/router.php'; $CjLib = JPATH_ROOT . '/components/com_cjlib/framework.php'; CJLib::import('corejoomla.framework.core'); $custom_tag = false; JHtml::_('jquery.framework'); CJLib::behavior('bscore', array('customtag' => $custom_tag)); CJFunctions::load_jquery(array('libs' => array('rating', 'social', 'fontawesome'), 'custom_tag' => $custom_tag)); $document->addScript(JUri::root(true) . '/media/com_cjblog/js/cjblog.min.js'); $document->addStyleSheet(JUri::root(true) . '/media/com_cjblog/css/cjblog.min.css'); $articles_itemid = CJFunctions::get_active_menu_id(true, 'index.php?option=com_cjblog&view=articles'); $profile = CjBlogApi::get_user_profile($article->created_by); // $params->merge($appparams); $meta_header = ''; $meta_stats = ''; $meta_rating = ''; $meta_rating_readonly = ''; $social_buttons = ''; $tags_html = ''; $show_category = $appparams->get('show_category', 1); $show_date = $appparams->get('show_create_date', 1); $date_format = JText::_($appparams->get('date_format', 'd F Y')); $show_hits = $appparams->get('show_hits', 1); $show_author = $appparams->get('show_author', 1); $show_favoured = $appparams->get('show_favoured', 1); $show_rating = $appparams->get('show_rating', 1); $user_name = $appparams->get('user_display_name', 'name'); $hot_hits = $appparams->get('hot_article_num_hits', 250); $social_buttons = $appparams->get('display_social_buttons', 1); $sharing_buttons_customtag = $appparams->get('sharing_buttons_customtag', ''); $sharing_buttons_customtext = $appparams->get('sharing_buttons_customtext', ''); $social_buttons_theme = $appparams->get('social_buttons_theme', 'jssocials-theme-classic.css'); $sharing_position = $appparams->get('sharing_buttons_position', 'bottom'); $jssocial_label = $appparams->get('jssocial_button_label', 'true'); $jssocial_count = $appparams->get('jssocial_button_count', 'true'); $social_buttons_via = $appparams->get('tweet_button_via', ''); $social_buttons_hashtag = $appparams->get('tweet_button_hashtag', ''); $jssocial_email = $appparams->get('jssocial_button_email', '1'); $jssocial_twitter = $appparams->get('jssocial_button_twitter', '1'); $jssocial_facebook = $appparams->get('jssocial_button_facebook', '1'); $jssocial_googleplus = $appparams->get('jssocial_button_googleplus', '1'); $jssocial_linkedin = $appparams->get('jssocial_button_linkedin', '1'); $jssocial_pinterest = $appparams->get('jssocial_button_pinterest', '1'); $profileApp = $appparams->get('profile_component', 'cjblog'); $avatarApp = $appparams->get('avatar_component', 'cjblog'); $showProfile = JFactory::getUser($article->created_by)->authorise('core.showprofile', 'com_cjblog'); $bbcode = $appparams->get('default_editor', 'wysiwygbb') == 'wysiwygbb' ? true : false; $about = !empty($profile['about']) ? '<div>' . CJFunctions::preprocessHtml($profile['about'], false, $bbcode) . '</div>' : ''; if ($about_length > 0) { $about = CJFunctions::substrws($about, $about_length); } if ($show_category && $show_date) { $cat_url = JRoute::_('index.php?option=com_cjblog&view=articles&task=latest&id=' . $article->catid . ':' . $article->category_alias . $articles_itemid); $cat_link = JHtml::link($cat_url, CJFunctions::escape($article->category_title)); $formatted_date = CJFunctions::get_localized_date($article->created, $date_format); $meta_header = JText::sprintf('TXT_POSTED_IN_CATEGORY_ON', $cat_link, $formatted_date); } else { if ($show_category) { $cat_url = JRoute::_('index.php?option=com_cjblog&view=articles&task=latest&id=' . $article->catid . ':' . $article->category_alias . $articles_itemid); $cat_link = JHtml::link($cat_url, CJFunctions::escape($article->category_title)); $meta_header = JText::sprintf('TXT_POSTED_IN_CATEGORY', $cat_link); } else { if ($show_date) { $meta_header = JText::sprintf('TXT_POSTED_ON', CJFunctions::get_localized_date($article->created, $date_format)); } } } if ($article->hits > $hot_hits) { $meta_stats = $meta_stats . '<span class="label label-important hot-article">' . JText::_('LBL_HOT') . '</span> '; } if ($show_hits) { $meta_stats = $meta_stats . '<span class="label label-info">' . JText::sprintf('TXT_NUM_HITS', $article->hits) . '</span> '; } if ($show_favoured) { $query = 'select favorites from ' . T_CJBLOG_CONTENT . ' where id = ' . $article->id; $db->setQuery($query); $favored = (int) $db->loadResult(); if (!$user->guest) { $query = 'select count(*) from ' . T_CJBLOG_FAVORITES . ' where content_id = ' . $article->id . ' and user_id = ' . $user->id; $db->setQuery($query); $count = $db->loadResult(); if ($count == 0) { $meta_stats = $meta_stats . ' <span class="label label-info favorites">' . JText::sprintf('TXT_NUM_FAVOURED', $favored) . '</span> <a id="btn-add-to-favorites" class="btn btn-mini tooltip-hover" href="' . JRoute::_('index.php?option=com_cjblog&view=articles&task=favorite&id=' . $article->id . $articles_itemid) . '" onclick="return false;" title="' . JText::_('LBL_ADD_TO_FAVORITES') . '"> <i class="fa fa-star"></i> </a>'; } else { $meta_stats = $meta_stats . ' <span class="label label-info favorites tooltip-hover" title="' . JText::_('LBL_YOU_ADDED_TO_FAVORITES') . '"> <i class="fa fa-star"></i> ' . JText::sprintf('TXT_NUM_FAVOURED', $favored) . ' </span> <a id="btn-remove-favorite" class="btn btn-mini tooltip-hover" href="' . JRoute::_('index.php?option=com_cjblog&view=articles&task=remove_favorite&id=' . $article->id . $articles_itemid) . '" onclick="return false;" title="' . JText::_('LBL_REMOVE_FAVORITE') . '"> <i class="icon-remove"></i> </a>'; } } else { $meta_stats = $meta_stats . '<span class="label label-info favorites">' . JText::sprintf('TXT_NUM_FAVOURED', $favored) . '</span>'; } } $asset = 'com_content.article.' . $article->id; $redirect_url = base64_encode($article_url); if ($user->authorise('core.edit.own', $asset) && $article->created_by == $user->id || $user->authorise('core.manage')) { $meta_stats = $meta_stats . ' <a id="btn-edit-article" class="btn btn-mini tooltip-hover" href="' . JRoute::_(CjBlogHelperRoute::getFormRoute($article->id) . '&return=' . $redirect_url) . '" title="' . JText::_('LBL_EDIT_ARTICLE') . '"> <i class="fa fa-pencil"></i> </a>'; } if ($user->authorise('core.edit.state')) { if ($article->state == 1) { $meta_stats = $meta_stats . ' <a id="btn-publish-article" class="btn btn-mini tooltip-hover" href="' . JRoute::_('index.php?option=com_cjblog&view=articles&task=unpublish&id=' . $article->id . $articles_itemid . '&return=' . $redirect_url) . '" title="' . JText::_('LBL_PUBLISHED') . '"> <i class="fa fa-check"></i> </a>'; } else { $meta_stats = $meta_stats . ' <a id="btn-publish-article" class="btn btn-mini tooltip-hover" href="' . JRoute::_('index.php?option=com_cjblog&view=articles&task=publish&id=' . $article->id . $articles_itemid . '&return=' . $redirect_url) . '" title="' . JText::_('LBL_UNPUBLISHED') . '"> <i class="fa fa-ban"></i> </a>'; } } if ($show_rating && $user->authorise('articles.rate', 'com_cjblog')) { $rating = CJFunctions::get_rating(CJBLOG_ASSET_ID, $article->id); $meta_rating_readonly = ' <div class="pull-right"> <span class="article-star-rating-readonly" data-rating-score="' . $rating['rating'] . '" data-rating-hints="' . JText::_('LBL_RATING_HINTS') . '" data-rating-noratemsg="' . JText::_('LBL_RATING_NORATE_HINT') . '" data-rating-cancelhint="' . JText::_('LBL_RATING_CANCEL_HINT') . '"></span> (' . JText::sprintf('TXT_RATINGS', $rating['total_ratings']) . ') </div>'; $readonly = false; $hash = CJFunctions::get_hash('com_content.article.rating.item_' . $article->id); $cookie = $app->input->cookie->get($hash, null); if ($cookie) { $readonly = true; } else { if (!$user->guest) { $query = 'select count(*) from ' . T_CJ_RATING_DETAILS . ' where item_id = ' . $article->id . ' and asset_id = 1 and created_by = ' . $user->id; $db->setQuery($query); $count = (int) $db->loadResult(); if ($count > 0) { $app->input->cookie->set($hash, 1, time() + 60 * 60 * 24 * 365, $article_url); $readonly = true; } } } if (!$readonly) { $meta_rating = ' <div>' . JText::_('LBL_RATE_THIS_ARTICLE') . ':</div> <span class="article-star-rating" data-rating-score="' . $rating['rating'] . '" data-rating-url="' . JRoute::_('index.php?option=com_cjblog&view=articles&task=rate&id=' . $article->id . $articles_itemid) . '" data-rating-hints="' . JText::_('LBL_RATING_HINTS') . '" data-rating-noratemsg="' . JText::_('LBL_RATING_NORATE_HINT') . '" data-rating-cancelhint="' . JText::_('LBL_RATING_CANCEL_HINT') . '"></span> (<span id="article-rating-info">' . JText::sprintf('TXT_RATING_INFO', $rating['rating'], $rating['total_ratings']) . '</span>) <hr>'; } } if ($social_buttons == 1) { $params_image = new JRegistry(); $params_image->loadString($article->images); $intro = $params_image->get('image_intro'); $pinterest_image = false; if (!empty($intro)) { $pinterest_image = JUri::root() . $intro; } else { preg_match_all('/<img .*src=["|\']([^"|\']+)/i', $article->introtext . $article->fulltext, $matches); foreach ($matches[1] as $key => $file_path) { $pinterest_image = JUri::root() . $file_path; break; } } $document->addScript(JUri::root(true) . '/media/com_cjblog/js/jssocials.min.js'); $document->addStyleSheet(JUri::root(true) . '/media/com_cjblog/css/jssocials.css'); $document->addStyleSheet(JUri::root(true) . '/media/com_cjblog/css/' . $social_buttons_theme . ''); } if ($social_buttons == 1 || $social_buttons == 2) { if ($sharing_buttons_customtext == '') { $sharing_buttons_customtext = JText::_('LBL_SOCIAL_SHARING_DESC'); } $social_buttons_construct = '<div class="social-sharing"><p>' . $sharing_buttons_customtext . '</p></div>'; if ($social_buttons == 1) { $social_buttons_jssocials = ' showLabel: ' . $jssocial_label . ', showCount: ' . $jssocial_count . ', shares: ['; if ($jssocial_twitter == "1") { $social_buttons_jssocials = $social_buttons_jssocials . ' { share: "twitter", via: "' . $social_buttons_via . '", hashtags: "' . $social_buttons_hashtag . '", text: "' . $article->title . '"},'; } if ($jssocial_facebook == "1") { $social_buttons_jssocials = $social_buttons_jssocials . ' { share: "facebook"},'; } if ($jssocial_googleplus == "1") { $social_buttons_jssocials = $social_buttons_jssocials . ' { share: "googleplus"},'; } if ($jssocial_linkedin == "1") { $social_buttons_jssocials = $social_buttons_jssocials . ' { share: "linkedin"},'; } if ($jssocial_pinterest == "1" && $pinterest_image) { $social_buttons_jssocials = $social_buttons_jssocials . ' { share: "pinterest", media: "' . $pinterest_image . '"},'; } if ($jssocial_email == "1") { $social_buttons_jssocials = $social_buttons_jssocials . ' { share: "email", text: "' . $article->title . '"},'; } $social_buttons_jssocials = $social_buttons_jssocials . ' ]'; $social_buttons_top = $social_buttons_construct . ' <div id="share-top"> <script type="text/javascript"> jQuery("#share-top").jsSocials({' . $social_buttons_jssocials . ' }); </script> </div>'; $social_buttons_bottom = $social_buttons_construct . ' <div id="share-bottom"> <script type="text/javascript"> jQuery("#share-bottom").jsSocials({' . $social_buttons_jssocials . ' }); </script> </div>'; } else { $social_buttons_top = $social_buttons_construct . $sharing_buttons_customtag; $social_buttons_bottom = $social_buttons_top; } } JLoader::import('joomla.application.component.model'); JLoader::import('articles', JPATH_ROOT . '/components/com_cjblog/models'); $model = JModelLegacy::getInstance('articles', 'CjBlogModel'); $tags = $model->get_tags_by_itemids(array($article->id)); if (!empty($tags)) { $tags_html = '<div class="tags-list margin-top-10">'; foreach ($tags as $tag) { $tags_html .= ' <a title="' . JText::sprintf('TXT_TAGGED_ARTICLES', CJFunctions::escape($tag->tag_text)) . ' - ' . CJFunctions::escape($tag->description) . '" class="tooltip-hover label tag-item" href="' . JRoute::_('index.php?option=com_cjblog&view=articles&task=tag&id=' . $tag->tag_id . ':' . $tag->alias . $articles_itemid) . '"> <i class="fa fa-tags"></i> ' . CJFunctions::escape($tag->tag_text) . ' </a>'; } $tags_html .= '</div>'; } $avatar = $api->getUserAvatarImage($avatarApp, $article->created_by, $profile['email'], 48); if ($showProfile) { $profileUrl = $api->getUserProfileUrl($profileApp, $article->created_by); } else { $profileUrl = "#"; } $html_top = ' <div class="well well-small"> <div class="media clearfix" style="overflow: visible"> <div class="pull-left"><a href="' . $profileUrl . '" class="thumbnail nomargin-bottom"> <img class="img-avatar" src="' . $avatar . '" alt="' . CjLibUtils::escape($profile[$user_name]) . '" style="max-width: 48px;"></a> </div> <div class="media-body"> <div class="muted">' . ($show_author == 1 ? JText::sprintf('TXT_WRITTEN_BY', JHtml::link($profileUrl, CjLibUtils::escape($profile[$user_name]))) . ' ' : '') . $meta_header . '</div> <div style="margin-top: 5px;" class="clearfix"> <div class="pull-left">' . $meta_stats . '</div> ' . $meta_rating_readonly . ' </div> </div> ' . ($sharing_position == 'top' || $sharing_position == 'both' ? '<hr/>' . $social_buttons_top : '') . ' </div> </div>'; $html_bottom = $tags_html . ' <div class="panel panel-default"> <div class="panel-body"> <div class="media clearfix" style="overflow: visible"> ' . $meta_rating . ' ' . ($sharing_position == 'bottom' || $sharing_position == 'both' ? $social_buttons_bottom . '<hr/>' : '') . ' <div class="pull-left"><a href="' . $profileUrl . '" class="thumbnail nomargin-bottom"><img class="img-avatar" src="' . $avatar . '" alt="' . $profile[$user_name] . '" style="max-width: 48px;"></a></div> <div class="media-body"> <h4 class="media-heading">' . JText::sprintf('TXT_AUTHOR', CjLibUtils::escape($profile[$user_name])) . '</h4> <div style="margin: 5px 0;">' . CjBlogApi::get_user_badges_markup($profile) . '</div> ' . (!empty($profile[$user_name] && $showProfile) ? $about : '') . ' </div> </div> <input id="cjblog_page_id" value="article" type="hidden"> </div> </div>'; $article->text = '<div id="cj-wrapper">' . $html_top . $article->text . $html_bottom . '</div>'; }
?> </div> </div> </div> </div> <?php } elseif ($user->authorise('core.create', 'com_content')) { ?> <div class="accordion panel panel-default" id="sub-categories"> <div class="accordion-group"> <div class="accordion-heading"> <?php if ($this->params->get('form_handler', 'cjblog') == 'cjblog') { ?> <a href="<?php echo CjBlogHelperRoute::getFormRoute() . '&return=' . $return; ?> " class="accordion-toggle"> <strong><i class="icon-edit"></i> <?php echo JText::_('LBL_SUBMIT_ARTICLE'); ?> </strong> </a> <?php } else { ?> <a href="<?php echo JRoute::_('index.php?option=com_content' . $jform_itemid); ?> " class="accordion-toggle"> <strong><i class="icon-edit"></i> <?php