Example #1
0
 public static function show($object_id, $object_group = 'com_content', $object_title = '')
 {
     // only one copy of JComments per page is allowed
     if (defined('JCOMMENTS_SHOW')) {
         return '';
     }
     $app = JFactory::getApplication('site');
     $object_group = JCommentsSecurity::clearObjectGroup($object_group);
     if ($object_group == '' || !isset($object_id) || $object_id == '') {
         return '';
     }
     $object_id = (int) $object_id;
     $object_title = trim($object_title);
     $acl = JCommentsFactory::getACL();
     $config = JCommentsFactory::getConfig();
     $document = JFactory::getDocument();
     $tmpl = JCommentsFactory::getTemplate($object_id, $object_group);
     $tmpl->load('tpl_index');
     if (!defined('JCOMMENTS_CSS')) {
         include_once JCOMMENTS_HELPERS . '/system.php';
         if ($app->isAdmin()) {
             $tmpl->addVar('tpl_index', 'comments-css', 1);
         } else {
             $document->addStyleSheet(JCommentsSystemPluginHelper::getCSS());
             $language = JFactory::getLanguage();
             if ($language->isRTL()) {
                 $rtlCSS = JCommentsSystemPluginHelper::getCSS(true);
                 if ($rtlCSS != '') {
                     $document->addStyleSheet($rtlCSS);
                 }
             }
         }
     }
     if (!defined('JCOMMENTS_JS')) {
         include_once JCOMMENTS_HELPERS . '/system.php';
         $document->addScript(JCommentsSystemPluginHelper::getCoreJS());
         define('JCOMMENTS_JS', 1);
         if (!defined('JOOMLATUNE_AJAX_JS')) {
             $document->addScript(JCommentsSystemPluginHelper::getAjaxJS());
             define('JOOMLATUNE_AJAX_JS', 1);
         }
     }
     $commentsCount = JComments::getCommentsCount($object_id, $object_group);
     $commentsPerObject = $config->getInt('max_comments_per_object');
     $showForm = $config->getInt('form_show') == 1 || $config->getInt('form_show') == 2 && $commentsCount == 0;
     if ($commentsPerObject != 0 && $commentsCount >= $commentsPerObject) {
         $config->set('comments_locked', 1);
     }
     if ($config->getInt('comments_locked', 0) == 1) {
         $config->set('enable_rss', 0);
         $tmpl->addVar('tpl_index', 'comments-form-locked', 1);
         $acl->setCommentsLocked(true);
     }
     $tmpl->addVar('tpl_index', 'comments-form-captcha', $acl->check('enable_captcha'));
     $tmpl->addVar('tpl_index', 'comments-form-link', $showForm ? 0 : 1);
     if ($config->getInt('enable_rss') == 1) {
         if ($document->getType() == 'html') {
             $link = JCommentsFactory::getLink('rss', $object_id, $object_group);
             $title = htmlspecialchars($object_title, ENT_COMPAT, 'UTF-8');
             $attribs = array('type' => 'application/rss+xml', 'title' => $title);
             $document->addHeadLink($link, 'alternate', 'rel', $attribs);
         }
     }
     $cacheEnabled = intval($app->getCfg('caching')) != 0;
     if ($cacheEnabled == 0) {
         $jrecache = JPATH_ROOT . '/components/com_jrecache/jrecache.config.php';
         if (is_file($jrecache)) {
             $cfg = new _JRECache_Config();
             $cacheEnabled = $cacheEnabled && $cfg->enable_cache;
         }
     }
     $load_cached_comments = intval($config->getInt('load_cached_comments', 0) && $commentsCount > 0);
     if ($cacheEnabled) {
         $tmpl->addVar('tpl_index', 'comments-anticache', 1);
     }
     if (!$cacheEnabled || $load_cached_comments === 1) {
         if ($config->get('template_view') == 'tree') {
             $tmpl->addVar('tpl_index', 'comments-list', $commentsCount > 0 ? JComments::getCommentsTree($object_id, $object_group) : '');
         } else {
             $tmpl->addVar('tpl_index', 'comments-list', $commentsCount > 0 ? JComments::getCommentsList($object_id, $object_group) : '');
         }
     }
     $needScrollToComment = ($cacheEnabled || $config->getInt('comments_per_page') > 0) && $commentsCount > 0;
     $tmpl->addVar('tpl_index', 'comments-gotocomment', (int) $needScrollToComment);
     $tmpl->addVar('tpl_index', 'comments-form', JComments::getCommentsForm($object_id, $object_group, $showForm));
     $tmpl->addVar('tpl_index', 'comments-form-position', $config->getInt('form_position'));
     $result = $tmpl->renderTemplate('tpl_index');
     $tmpl->freeAllTemplates();
     // send notifications
     srand((double) microtime() * 10000000);
     $randValue = intval(rand(0, 100));
     if ($randValue <= 30) {
         JCommentsNotificationHelper::send();
     }
     define('JCOMMENTS_SHOW', 1);
     return $result;
 }
Example #2
0
 function updateCommentsList(&$response, $object_id, $object_group, $page)
 {
     $config =& JCommentsFactory::getConfig();
     if ($config->get('template_view') == 'tree') {
         $html = JComments::getCommentsTree($object_id, $object_group);
         $html = JCommentsText::jsEscape($html);
         $response->addScript("jcomments.updateTree('{$html}',null);");
     } else {
         $html = JComments::getCommentsList($object_id, $object_group, $page);
         $html = JCommentsText::jsEscape($html);
         $response->addScript("jcomments.updateList('{$html}','r');");
     }
 }
Example #3
0
 function show($object_id, $object_group = 'com_content', $object_title = '')
 {
     global $mainframe;
     // only one copy of JComments per page is allowed
     if (defined('JCOMMENTS_SHOW')) {
         return;
     }
     $object_id = (int) $object_id;
     $object_group = trim(strip_tags($object_group));
     $object_group = preg_replace('#[^0-9A-Za-z\\-\\_\\,\\.]#is', '', $object_group);
     $object_title = trim($object_title);
     $acl =& JCommentsFactory::getACL();
     $config =& JCommentsFactory::getConfig();
     $tmpl =& JCommentsFactory::getTemplate($object_id, $object_group);
     $tmpl->load('tpl_index');
     if ($config->getInt('comments_locked', 0) == 1) {
         $config->set('enable_rss', 0);
         $tmpl->addVar('tpl_index', 'comments-form-locked', 1);
     }
     if (JCOMMENTS_JVERSION == '1.5') {
         $document =& JFactory::getDocument();
     }
     if (!defined('JCOMMENTS_CSS')) {
         include_once JCOMMENTS_HELPERS . DS . 'system.php';
         if ($mainframe->isAdmin()) {
             $tmpl->addVar('tpl_index', 'comments-css', 1);
         } else {
             $link = JCommentsSystemPluginHelper::getCSS();
             if (JCOMMENTS_JVERSION == '1.5') {
                 $document->addStyleSheet($link);
                 $language =& JFactory::getLanguage();
                 if ($language->isRTL()) {
                     $rtlCSS = JCommentsSystemPluginHelper::getCSS(true);
                     if ($rtlCSS != '') {
                         $document->addStyleSheet($rtlCSS);
                     }
                 }
             } else {
                 $mainframe->addCustomHeadTag('<link href="' . $link . '" rel="stylesheet" type="text/css" />');
             }
         }
     }
     if (!defined('JCOMMENTS_JS')) {
         include_once JCOMMENTS_HELPERS . DS . 'system.php';
         if (JCOMMENTS_JVERSION == '1.5') {
             $document->addScript(JCommentsSystemPluginHelper::getCoreJS());
         } else {
             $mainframe->addCustomHeadTag(JCommentsSystemPluginHelper::getCoreJS(true));
         }
         if (!defined('JOOMLATUNE_AJAX_JS')) {
             if (JCOMMENTS_JVERSION == '1.5') {
                 $document->addScript(JCommentsSystemPluginHelper::getAjaxJS());
             } else {
                 $mainframe->addCustomHeadTag(JCommentsSystemPluginHelper::getAjaxJS(true));
             }
             define('JOOMLATUNE_AJAX_JS', 1);
         }
     }
     $commentsCount = JCommentsModel::getCommentsCount($object_id, $object_group);
     $showForm = $config->getInt('form_show') == 1 || $config->getInt('form_show') == 2 && $commentsCount == 0;
     $tmpl->addVar('tpl_index', 'comments-form-captcha', $acl->check('enable_captcha'));
     $tmpl->addVar('tpl_index', 'comments-form-link', $showForm ? 0 : 1);
     if ($config->getInt('enable_rss') == 1) {
         $link = JCommentsFactory::getLink('rss', $object_id, $object_group);
         if (JCOMMENTS_JVERSION == '1.5') {
             $attribs = array('type' => 'application/rss+xml', 'title' => strip_tags($object_title));
             $document->addHeadLink($link, 'alternate', 'rel', $attribs);
         } else {
             $html = '<link rel="alternate" type="application/rss+xml" title="' . strip_tags($object_title) . '" href="' . $link . '" />';
             $mainframe->addCustomHeadTag($html);
         }
     }
     $cacheEnabled = intval($mainframe->getCfg('caching')) == 1;
     if ($cacheEnabled == 0) {
         $jrecache = $mainframe->getCfg('absolute_path') . DS . 'components' . DS . 'com_jrecache' . DS . 'jrecache.config.php';
         if (is_file($jrecache)) {
             $cfg = new _JRECache_Config();
             $cacheEnabled = $cacheEnabled && $cfg->enable_cache;
         }
     }
     $load_cached_comments = intval($config->getInt('load_cached_comments', 0) && $commentsCount > 0);
     if ($cacheEnabled && $commentsCount > 0) {
         $tmpl->addVar('tpl_index', 'comments-anticache', 1);
     }
     if (!$cacheEnabled || $load_cached_comments === 1) {
         if ($config->get('template_view') == 'tree') {
             $tmpl->addVar('tpl_index', 'comments-list', $commentsCount > 0 ? JComments::getCommentsTree($object_id, $object_group) : '');
         } else {
             $tmpl->addVar('tpl_index', 'comments-list', $commentsCount > 0 ? JComments::getCommentsList($object_id, $object_group) : '');
         }
     }
     $needScrollToComment = ($cacheEnabled || $config->getInt('comments_per_page') > 0) && $commentsCount > 0;
     $tmpl->addVar('tpl_index', 'comments-gotocomment', (int) $needScrollToComment);
     $tmpl->addVar('tpl_index', 'comments-form', JComments::getCommentsForm($object_id, $object_group, $showForm));
     $result = $tmpl->renderTemplate('tpl_index');
     $tmpl->freeAllTemplates();
     define('JCOMMENTS_SHOW', 1);
     return $result;
 }