public static function show()
 {
     $app = JCommentsFactory::getApplication('administrator');
     $context = 'com_jcomments.custombbcodes.';
     $limit = intval($app->getUserStateFromRequest($context . 'limit', 'limit', $app->getCfg('list_limit')));
     $limitstart = intval($app->getUserStateFromRequest($context . 'limitstart', 'limitstart', 0));
     $db = JCommentsFactory::getDBO();
     $db->setQuery('SELECT COUNT(*) FROM #__jcomments_custom_bbcodes');
     $total = $db->loadResult();
     $lists['pageNav'] = JCommentsAdmin::getPagination($total, $limitstart, $limit);
     $query = "SELECT * FROM #__jcomments_custom_bbcodes ORDER BY ordering";
     $db->setQuery($query, $lists['pageNav']->limitstart, $lists['pageNav']->limit);
     $lists['rows'] = $db->loadObjectList();
     HTML_JCommentsACustomBBCodes::show($lists);
 }
 public static function show()
 {
     $app = JCommentsFactory::getApplication('administrator');
     $config = JCommentsFactory::getConfig();
     if ($config->getInt('enable_blacklist') == 0) {
         if (JCOMMENTS_JVERSION != '1.0') {
             JError::raiseWarning(500, JText::_('A_BLACKLIST_WARNING_BLACKLIST_IS_DISABLED'));
         }
     }
     $context = 'com_jcomments.blacklist.';
     $limit = intval($app->getUserStateFromRequest($context . 'limit', 'limit', $app->getCfg('list_limit')));
     $limitstart = intval($app->getUserStateFromRequest($context . 'limitstart', 'limitstart', 0));
     $filter_order = $app->getUserStateFromRequest($context . 'filter_order', 'filter_order', 'bl.created');
     $filter_order_Dir = $app->getUserStateFromRequest($context . 'filter_order_Dir', 'filter_order_Dir', 'desc');
     $search = trim($app->getUserStateFromRequest($context . 'search', 'search', ''));
     if (JCOMMENTS_JVERSION == '1.0') {
         $search = strtolower($search);
     } else {
         $search = JString::strtolower($search);
     }
     if ($filter_order == '') {
         $filter_order = 'bl.created';
     }
     if ($filter_order_Dir == '') {
         $filter_order_Dir = 'desc';
     }
     $lists['order'] = $filter_order;
     $lists['order_Dir'] = $filter_order_Dir;
     $lists['search'] = $search;
     $db = JCommentsFactory::getDBO();
     $where = array();
     if ($search != '') {
         $where[] = '(LOWER(bl.ip) like "%' . $db->getEscaped($search, true) . '%")' . ' OR LOWER(bl.reason) like "%' . $db->getEscaped($search, true) . '%"' . ' OR LOWER(bl.notes) like "%' . $db->getEscaped($search, true) . '%"';
     }
     $query = "SELECT COUNT(*)" . " FROM #__jcomments_blacklist AS bl" . (count($where) ? " WHERE " . implode(' AND ', $where) : "");
     $db->setQuery($query);
     $total = $db->loadResult();
     $lists['pageNav'] = JCommentsAdmin::getPagination($total, $limitstart, $limit);
     $query = "SELECT bl.*, u.name AS editor" . " FROM #__jcomments_blacklist AS bl" . " LEFT JOIN #__users AS u ON u.id = bl.checked_out" . (count($where) ? " WHERE " . implode(' AND ', $where) : "") . " ORDER BY " . $filter_order . ' ' . $filter_order_Dir;
     $db->setQuery($query, $lists['pageNav']->limitstart, $lists['pageNav']->limit);
     $lists['rows'] = $db->loadObjectList();
     HTML_JCommentsAdminBlacklistManager::show($lists);
 }
 public static function show()
 {
     $app = JCommentsFactory::getApplication('administrator');
     $context = 'com_jcomments.subscriptions.';
     $object_group = trim($app->getUserStateFromRequest($context . 'fog', 'fog', ''));
     $object_id = intval($app->getUserStateFromRequest($context . 'foid', 'foid', 0));
     $flang = trim($app->getUserStateFromRequest($context . 'flang', 'flang', '-1'));
     $fauthor = trim($app->getUserStateFromRequest($context . 'fauthor', 'fauthor', ''));
     $fstate = trim($app->getUserStateFromRequest($context . 'fstate', 'fstate', '-1'));
     $limit = intval($app->getUserStateFromRequest($context . 'limit', 'limit', $app->getCfg('list_limit')));
     $limitstart = intval($app->getUserStateFromRequest($context . 'limitstart', 'limitstart', 0));
     $filter_order = $app->getUserStateFromRequest($context . 'filter_order', 'filter_order', 'js.name');
     $filter_order_Dir = $app->getUserStateFromRequest($context . 'filter_order_Dir', 'filter_order_Dir', 'asc');
     $search = trim($app->getUserStateFromRequest($context . 'search', 'search', ''));
     if (JCOMMENTS_JVERSION == '1.0') {
         $search = strtolower($search);
     } else {
         $search = JString::strtolower($search);
     }
     if ($filter_order == '') {
         $filter_order = 'js.name';
     }
     if ($filter_order_Dir == '') {
         $filter_order_Dir = 'asc';
     }
     $lists['order'] = $filter_order;
     $lists['order_Dir'] = $filter_order_Dir;
     $lists['search'] = $search;
     $db = JCommentsFactory::getDBO();
     $where = array();
     if ($object_group != '') {
         $where[] = 'js.object_group = "' . $db->getEscaped($object_group, true) . '"';
     }
     if ($object_id != 0) {
         $where[] = 'js.object_id = ' . intval($object_id);
     }
     if ($flang != '-1') {
         $where[] = 'js.lang = "' . $db->getEscaped($flang, true) . '"';
     }
     if ($fauthor != '') {
         $where[] = 'js.name = "' . $db->getEscaped($fauthor, true) . '"';
     }
     if ($fstate != '' && $fstate != '-1') {
         $where[] = 'js.published = ' . intval($fstate);
     }
     if ($search != '') {
         $where[] = '(js.name like "%' . $db->getEscaped($search, true) . '%" OR js.email like "%' . $db->getEscaped($search, true) . '%")';
     }
     $query = "SELECT COUNT(*)" . " FROM #__jcomments_subscriptions AS js" . (count($where) ? "\nWHERE " . implode(' AND ', $where) : "");
     $db->setQuery($query);
     $total = $db->loadResult();
     $lists['pageNav'] = JCommentsAdmin::getPagination($total, $limitstart, $limit);
     $query = "SELECT js.*, u.name AS editor" . " FROM #__jcomments_subscriptions AS js" . " LEFT JOIN #__users AS u ON u.id = js.userid" . (count($where) ? " WHERE " . implode(' AND ', $where) : "") . " ORDER BY " . $filter_order . ' ' . $filter_order_Dir;
     $db->setQuery($query, $lists['pageNav']->limitstart, $lists['pageNav']->limit);
     $lists['rows'] = $db->loadObjectList();
     // Filter by object_group (component)
     $query = "SELECT DISTINCT(object_group) AS name, object_group AS value " . " FROM #__jcomments_subscriptions" . " ORDER BY name";
     $db->setQuery($query);
     $rows = $db->loadObjectList();
     $cnt = count($rows);
     if ($cnt > 1 || $cnt == 1 && $total == 0) {
         array_unshift($rows, JCommentsHTML::makeOption('', JText::_('A_FILTER_COMPONENT'), 'name', 'value'));
         $lists['fog'] = JCommentsHTML::selectList($rows, 'fog', 'class="inputbox" size="1" onchange="document.adminForm.submit( );"', 'name', 'value', $object_group);
     } else {
         if ($cnt == 1) {
             if ($object_group == '') {
                 $object_group = $rows[0]->name;
             }
         }
     }
     unset($rows);
     if ($object_group != '') {
         $query = "SELECT DISTINCT object_id AS value, lang " . " FROM #__jcomments_subscriptions " . " WHERE object_group = " . $db->Quote($object_group) . ($flang != '-1' ? " AND lang = " . $db->Quote($flang) : "");
         $db->setQuery($query);
         $rows = $db->loadObjectList();
         for ($i = 0, $n = count($rows); $i < $n; $i++) {
             $rows[$i]->name = JCommentsObjectHelper::getTitle($rows[$i]->value, $object_group, $rows[$i]->lang);
             if ($rows[$i]->name == '') {
                 $rows[$i]->name = 'Untitled' . $rows[$i]->value;
             }
         }
         // Don't show filter if we have more than 100 objects
         if (count($rows) > 1 && count($rows) < 100) {
             usort($rows, create_function('$a, $b', 'return strcasecmp( $a->name, $b->name);'));
             array_unshift($rows, JCommentsHTML::makeOption('', JText::_('A_FILTER_OBJECT'), 'value', 'name'));
             $lists['foid'] = JCommentsHTML::selectList($rows, 'foid', 'class="inputbox" size="1" onchange="document.adminForm.submit( );"', 'value', 'name', $object_id);
             unset($rows);
         }
     }
     // Filter by language
     $query = "SELECT DISTINCT(lang) AS text, lang AS value " . " FROM #__jcomments_subscriptions" . " ORDER BY lang";
     $db->setQuery($query);
     $rows = $db->loadObjectList();
     if (count($rows) > 1) {
         array_unshift($rows, JCommentsHTML::makeOption('-1', JText::_('A_FILTER_LANGUAGE'), 'text', 'value'));
         $lists['flang'] = JCommentsHTML::selectList($rows, 'flang', 'class="inputbox" size="1" onchange="document.adminForm.submit( );"', 'text', 'value', $flang);
     }
     unset($rows);
     // Filter by published state
     $stateOptions = array();
     $stateOptions[] = JCommentsHTML::makeOption('-1', JText::_('A_FILTER_STATE'), 'text', 'value');
     $stateOptions[] = JCommentsHTML::makeOption('', JText::_('A_FILTER_STATE_ALL'), 'text', 'value');
     $stateOptions[] = JCommentsHTML::makeOption('1', JText::_('A_FILTER_STATE_PUBLISHED'), 'text', 'value');
     $stateOptions[] = JCommentsHTML::makeOption('0', JText::_('A_FILTER_STATE_UNPUBLISHED'), 'text', 'value');
     $lists['fstate'] = JCommentsHTML::selectList($stateOptions, 'fstate', 'class="inputbox" size="1" onchange="document.adminForm.submit();"', 'text', 'value', $fstate);
     unset($stateOptions);
     // Filter by author
     $lists['fauthor'] = '';
     $db->setQuery("SELECT COUNT(DISTINCT(name)) FROM #__jcomments_subscriptions;");
     $usersCount = $db->loadResult();
     // Don't show filter if we have more than 100 comments' authors
     if ($usersCount > 0 && $usersCount < 100) {
         $query = "SELECT DISTINCT(name) AS author, name AS value " . " FROM #__jcomments_subscriptions" . " ORDER BY name";
         $db->setQuery($query);
         $rows = $db->loadObjectList();
         if (count($rows) > 1) {
             array_unshift($rows, JCommentsHTML::makeOption('', JText::_('A_FILTER_AUTHOR'), 'author', 'value'));
             $lists['fauthor'] = JCommentsHTML::selectList($rows, 'fauthor', 'class="inputbox" size="1" onchange="document.adminForm.submit( );"', 'author', 'value', $fauthor);
         }
         unset($rows);
     }
     HTML_JCommentsAdminSubscriptionManager::show($lists);
 }
Example #4
0
 public static function restoreSettingsDefault()
 {
     $lang = JCommentsInput::getVar('lang', '');
     $message = JCommentsAdmin::restoreSettings();
     JCommentsRedirect(JCOMMENTS_INDEX . '?option=com_jcomments&task=settings' . ($lang != '' ? "&lang={$lang}" : ''), $message);
 }
 function edit()
 {
     $id = JCommentsInput::getVar('cid', 0);
     if (is_array($id)) {
         $id = $id[0];
     }
     $db =& JCommentsFactory::getDBO();
     $row = new JCommentsCustomBBCodeDB($db);
     if ($id) {
         $row->load($id);
     }
     $groups = JCommentsAdmin::getAllGroups();
     $exclude = JCommentsAdmin::getHigherGroups();
     if (count($exclude)) {
         // remove users 'above' me
         $i = 0;
         while ($i < count($groups)) {
             if (in_array($groups[$i]->group_id, $exclude)) {
                 array_splice($groups, $i, 1);
             } else {
                 $i++;
             }
         }
     }
     $userGroups = explode(",", $row->button_acl);
     $lists['groups'] = array();
     foreach ($groups as $group) {
         $lists['groups'][$group->text] = (int) in_array($group->text, $userGroups);
     }
     HTML_JCommentsACustomBBCodes::edit($row, $lists);
 }
Example #6
0
 function saveSettings($lang)
 {
     global $mainframe;
     $db =& JCommentsFactory::getDBO();
     $config =& JCommentsFactory::getConfig();
     $groups = JCommentsAdmin::getAllGroups();
     $exclude = JCommentsAdmin::getHigherGroups();
     if (count($exclude)) {
         // left all users 'above' me
         $i = 0;
         while ($i < count($groups)) {
             if (!in_array($groups[$i]->group_id, $exclude)) {
                 array_splice($groups, $i, 1);
             } else {
                 $i++;
             }
         }
     }
     $c_params = $config->getKeys();
     $p_params = array_keys($_POST);
     $i_params = array('smiles', 'merge_time', 'use_plural_forms', 'load_cached_comments', 'enable_geshi');
     foreach ($c_params as $param) {
         if (!in_array('cfg_' . $param, $p_params) && !in_array($param, $i_params)) {
             $_POST['cfg_' . $param] = '';
         }
     }
     $db->setQuery("SELECT name FROM #__jcomments_settings WHERE component=''" . ($lang != '' ? " AND lang ='{$lang}'" : ''));
     $dbParams = $db->loadResultArray();
     $query = 'SELECT * FROM #__jcomments_settings WHERE name IN ("' . implode('", "', $i_params) . '")';
     $db->setQuery($query);
     $systemVars = $db->loadObjectList('name');
     foreach ($i_params as $p) {
         if (!in_array($p, $dbParams)) {
             if (isset($systemVars[$p])) {
                 $_POST['cfg_' . $p] = $systemVars[$p]->value;
             }
         }
     }
     if (!isset($_POST['cfg_comment_minlength'])) {
         $_POST['cfg_comment_minlength'] = 0;
     }
     if (!isset($_POST['cfg_comment_maxlength'])) {
         $_POST['cfg_comment_maxlength'] = 0;
     }
     if ($_POST['cfg_comment_minlength'] > $_POST['cfg_comment_maxlength']) {
         $_POST['cfg_comment_minlength'] = 0;
     }
     foreach ($_POST as $k => $v) {
         if (strpos($k, 'cfg_') === 0) {
             $paramName = substr($k, 4);
             if ($paramName == 'smile_codes' || $paramName == 'smile_images') {
                 continue;
             }
             if (is_array($v)) {
                 $config->set($paramName, '');
                 foreach ($groups as $group) {
                     if (strpos($config->get($paramName), $group->value) !== false) {
                         $v[] = $group->text;
                     }
                 }
                 $v = implode(',', $v);
             }
             if (!get_magic_quotes_gpc()) {
                 $v = addslashes($v);
             }
             if ($paramName == 'forbidden_names') {
                 $v = preg_replace("#[\n|\r]+#", ',', $v);
                 $v = preg_replace("#,+#", ',', $v);
             } else {
                 if ($paramName == 'badwords') {
                     $v = preg_replace('#[\\s|\\,]+#i', "\n", $v);
                     $v = preg_replace('#[\\n|\\r]+#i', "\n", $v);
                 }
             }
             $v = trim($v);
             $config->set($paramName, $v);
             if (in_array($paramName, $dbParams)) {
                 $query = "UPDATE #__jcomments_settings" . "\n SET `value` = '" . $v . "'" . "\n WHERE `name` = '" . $paramName . "'" . ($lang != '' ? " AND `lang` = '{$lang}'" : '');
             } else {
                 $query = "INSERT INTO #__jcomments_settings" . "\n SET `value` = '" . $v . "'" . "\n , `name` = '" . $paramName . "'" . ($lang != '' ? " , `lang` = '{$lang}'" : '');
             }
             $db->setQuery($query);
             $db->query();
         }
     }
     $message = JText::_('AE_SETTINGS_SAVED');
     // clean all caches for components with comments
     if ($mainframe->getCfg('caching') == 1) {
         $db->setQuery("SELECT DISTINCT(object_group) AS name FROM #__jcomments");
         $rows = $db->loadObjectList();
         foreach ($rows as $row) {
             JCommentsCache::cleanCache($row->name);
         }
         unset($rows);
     }
     JCommentsCache::cleanCache('com_jcomments');
     return $message;
 }