예제 #1
0
function plgSystemJComments()
{
    global $mosConfig_absolute_path, $mainframe;
    include_once $mosConfig_absolute_path . '/components/com_jcomments/jcomments.legacy.php';
    if (!defined('JCOMMENTS_JVERSION')) {
        return;
    }
    include_once JCOMMENTS_BASE . '/jcomments.class.php';
    include_once JCOMMENTS_BASE . '/jcomments.config.php';
    include_once JCOMMENTS_HELPERS . '/system.php';
    $document = JCommentsFactory::getDocument();
    if (!defined('JCOMMENTS_CSS')) {
        $document->addStyleSheet(JCommentsSystemPluginHelper::getCSS());
        define('JCOMMENTS_CSS', 1);
    }
    if (!$mainframe->isAdmin()) {
        if (!defined('JCOMMENTS_JS')) {
            $document->addScript(JCommentsSystemPluginHelper::getCoreJS());
            define('JCOMMENTS_JS', 1);
        }
        if (!defined('JOOMLATUNE_AJAX_JS')) {
            $document->addScript(JCommentsSystemPluginHelper::getAjaxJS());
            define('JOOMLATUNE_AJAX_JS', 1);
        }
    }
}
예제 #2
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;
 }
예제 #3
0
 function show($object_id, $object_group = 'com_content', $object_title = '', $search_text = '')
 {
     $object_id = (int) $object_id;
     $object_group = trim($object_group);
     $object_title = trim($object_title);
     $acl =& JCommentsFactory::getACL();
     $config =& JCommentsFactory::getConfig();
     $JLMS_CONFIG =& JLMSFactory::getConfig();
     $app =& JFactory::getApplication();
     $tmpl =& JCommentsFactory::getTemplate($object_id, $object_group);
     $tmpl->load('tpl_index');
     if ($config->getInt('object_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 ($app->isAdmin()) {
             $tmpl->addVar('tpl_index', 'comments-css', 1);
         } else {
             $link = JCommentsSystemPluginHelper::getCSS();
             $document->addStyleSheet($link);
         }
     }
     if (!defined('JCOMMENTS_JS')) {
         include_once JCOMMENTS_HELPERS . DS . 'system.php';
         if ($config->getInt('gzip_js') == 1) {
             $document->addScript(JCommentsSystemPluginHelper::getCompressedJS());
         } else {
             $document->addScript(JCommentsSystemPluginHelper::getCoreJS());
             if (!defined('JOOMLATUNE_AJAX_JS')) {
                 $document->addScript(JCommentsSystemPluginHelper::getAjaxJS());
                 define('JOOMLATUNE_AJAX_JS', 1);
             }
         }
     }
     $tmpl->addVar('tpl_index', 'comments-form-captcha', $acl->check('enable_captcha'));
     $tmpl->addVar('tpl_index', 'comments-form-link', $config->getInt('form_show') ? 0 : 1);
     if ($config->getInt('enable_rss') == 1) {
         $link = JCommentsFactory::getLink('rss', $object_id, $object_group);
         $attribs = array('type' => 'application/rss+xml', 'title' => strip_tags($object_title));
         $document->addHeadLink($link, 'alternate', 'rel', $attribs);
     }
     $cacheEnabled = intval($JLMS_CONFIG->get('caching')) == 1;
     if ($cacheEnabled == 0) {
         $jrecache = $JLMS_CONFIG->get('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 = $config->getInt('load_cached_comments', 0);
     if ($cacheEnabled) {
         $tmpl->addVar('tpl_index', 'comments-anticache', 1);
     }
     if (!$cacheEnabled || $load_cached_comments === 1) {
         if ($config->get('template_view') == 'tree' && !strlen($search_text)) {
             $tmpl->addVar('tpl_index', 'comments-list', JLMS_JComments::getCommentsTree($object_id, $object_group, $search_text));
         } else {
             $tmpl->addVar('tpl_index', 'comments-list', JLMS_JComments::getCommentsList($object_id, $object_group, $search_text));
         }
     }
     $needScrollToComment = $cacheEnabled || $config->getInt('comments_per_page') > 0;
     $tmpl->addVar('tpl_index', 'comments-gotocomment', (int) $needScrollToComment);
     $tmpl->addVar('tpl_index', 'comments-form', JComments::getCommentsForm($object_id, $object_group, $config->getInt('form_show') == 1));
     $result = $tmpl->renderTemplate('tpl_index');
     $tmpl->freeAllTemplates();
     return $result;
 }
예제 #4
0
 function onAfterRoute()
 {
     include_once JPATH_ROOT . DS . 'components' . DS . 'com_jcomments' . DS . 'jcomments.legacy.php';
     $mainframe =& JFactory::getApplication('site');
     $mainframe->getRouter();
     $document =& JFactory::getDocument();
     if ($document->getType() == 'pdf') {
         return;
     }
     if ($mainframe->isAdmin()) {
         $document->addStyleSheet(JURI::base() . 'components/com_jcomments/assets/icon.css?v=2');
         $option = JAdministratorHelper::findOption();
         $task = JRequest::getCmd('task');
         $type = JRequest::getCmd('type', '', 'post');
         // remove comments if content item deleted from trash
         if ($option == 'com_trash' && $task == 'delete' && $type == 'content') {
             $cid = JRequest::getVar('cid', array(0), 'post', 'array');
             JArrayHelper::toInteger($cid, array(0));
             include_once JPATH_ROOT . DS . 'components' . DS . 'com_jcomments' . DS . 'jcomments.php';
             JComments::deleteComments($cid, 'com_content');
         }
     } else {
         $option = JRequest::getCmd('option');
         if ($option == 'com_content' || $option == 'com_alphacontent') {
             include_once JCOMMENTS_BASE . DS . 'jcomments.class.php';
             include_once JCOMMENTS_BASE . DS . 'jcomments.config.php';
             include_once JCOMMENTS_HELPERS . DS . 'system.php';
             // include JComments CSS
             if ($this->params->get('disable_template_css', 0) == 0) {
                 $document->addStyleSheet(JCommentsSystemPluginHelper::getCSS());
                 $language =& JFactory::getLanguage();
                 if ($language->isRTL()) {
                     $rtlCSS = JCommentsSystemPluginHelper::getCSS(true);
                     if ($rtlCSS != '') {
                         $document->addStyleSheet($rtlCSS);
                     }
                 }
             }
             if (!defined('JCOMMENTS_CSS')) {
                 define('JCOMMENTS_CSS', 1);
             }
             $config =& JCommentsCfg::getInstance();
             // include JComments JavaScript library
             $document->addScript(JCommentsSystemPluginHelper::getCoreJS());
             if (!defined('JOOMLATUNE_AJAX_JS')) {
                 $document->addScript(JCommentsSystemPluginHelper::getAjaxJS());
                 define('JOOMLATUNE_AJAX_JS', 1);
             }
             if (!defined('JCOMMENTS_JS')) {
                 define('JCOMMENTS_JS', 1);
             }
         }
     }
 }
예제 #5
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;
 }
예제 #6
0
 function onAfterRoute()
 {
     $legacyFile = JPATH_ROOT . '/components/com_jcomments/jcomments.legacy.php';
     if (!is_file($legacyFile)) {
         return;
     }
     include_once $legacyFile;
     $app = JFactory::getApplication('site');
     $app->getRouter();
     $document = JFactory::getDocument();
     if ($document->getType() == 'html') {
         if ($app->isAdmin()) {
             $document->addStyleSheet(JURI::root(true) . '/administrator/components/com_jcomments/assets/css/icon.css?v=2');
             JFactory::getLanguage()->load('com_jcomments.sys', JPATH_ROOT . '/administrator', 'en-GB', true);
             $option = JAdministratorHelper::findOption();
             $task = $app->input->get('task');
             $type = $app->input->post('type', '', 'post');
             // remove comments if content item deleted from trash
             if ($option == 'com_trash' && $task == 'delete' && $type == 'content') {
                 $cid = JRequest::getVar('cid', array(0), 'post', 'array');
                 JArrayHelper::toInteger($cid, array(0));
                 include_once JPATH_ROOT . '/components/com_jcomments/jcomments.php';
                 JCommentsModel::deleteComments($cid, 'com_content');
             }
         } else {
             $option = $app->input->get('option');
             if ($option == 'com_content' || $option == 'com_alphacontent' || $option == 'com_multicategories') {
                 include_once JPATH_ROOT . '/components/com_jcomments/jcomments.class.php';
                 include_once JPATH_ROOT . '/components/com_jcomments/helpers/system.php';
                 // include JComments CSS
                 if ($this->params->get('disable_template_css', 0) == 0) {
                     $document->addStyleSheet(JCommentsSystemPluginHelper::getCSS());
                     $language = JFactory::getLanguage();
                     if ($language->isRTL()) {
                         $rtlCSS = JCommentsSystemPluginHelper::getCSS(true);
                         if ($rtlCSS != '') {
                             $document->addStyleSheet($rtlCSS);
                         }
                     }
                 }
                 if (!defined('JCOMMENTS_CSS')) {
                     define('JCOMMENTS_CSS', 1);
                 }
                 // include JComments JavaScript library
                 $document->addScript(JCommentsSystemPluginHelper::getCoreJS());
                 if (!defined('JOOMLATUNE_AJAX_JS')) {
                     $document->addScript(JCommentsSystemPluginHelper::getAjaxJS());
                     define('JOOMLATUNE_AJAX_JS', 1);
                 }
                 if (!defined('JCOMMENTS_JS')) {
                     define('JCOMMENTS_JS', 1);
                 }
             }
         }
     }
 }