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); }
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); }
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; }