function com_uninstall() { require_once dirname(__FILE__) . DS . 'version.php'; $version = new JCommentsVersion(); ?> <style type="text/css"> div#jc {width: 600px;margin: 0 auto;} span.copyright {color: #777;display: block;margin-top: 12px;} div#element-box span.componentname {color: #FF9900;font-family: Arial, Helvetica, sans-serif;font-size: 16px;font-weight: bold;} div#element-box span.componentdate {color: #FF9900;font-family: Arial, Helvetica, sans-serif;font-size: 16px;font-weight: normal;} div#element-box span.installheader {color: #FF9900;font-family: Arial, Helvetica, sans-serif;font-size: 16px;font-weight: bold;} div#jc table td {padding: 0} </style> <div id="jc"> <div id="element-box"> <div class="t"> <div class="t"> <div class="t"></div> </div> </div> <div class="m"> <table width="95%" border="0" cellpadding="0" cellspacing="0"> <tr valign="top" align="left"> <td width="50px"><img src="http://www.joomlatune.com/images/logo/jcomments.png" width="48" height="48" border="0" alt="" /></td> <td><span class="componentname"><?php echo $version->getLongVersion(); ?> </span> <span class="componentdate">[<?php echo $version->getReleaseDate(); ?> ]</span><br /> <span class="copyright">© 2006-<?php echo date('Y'); ?> smart (<a href="http://www.joomlatune.ru" target="_blank">JoomlaTune.ru</a> | <a href="http://www.joomlatune.com" target="_blank">JoomlaTune.com</a>). <?php echo JText::_('A_ABOUT_COPYRIGHT'); ?> <br /></span></td> </tr> <tr valign="top" align="left"> <td> </td> <td> </td> </tr> <tr valign="top" align="left"> <td> </td> <td><span class="installheader"><?php echo JText::_('A_UNINSTALL_LOG'); ?> </span></td> </tr> <tr valign="top" align="left"> <td> </td> <td> <ul style="padding: 0 0 0 20px; margin: 0;"> <?php JCommentsInstallerHelper::uninstallPlugin('jcomments', 'content'); ?> <li><?php echo JText::_('A_UNINSTALL_PLUGIN_CONTENT'); ?> : <span style="color: green">OK</span></li> <?php JCommentsInstallerHelper::uninstallPlugin('jcomments', 'search'); ?> <li><?php echo JText::_('A_UNINSTALL_PLUGIN_SEARCH'); ?> : <span style="color: green">OK</span></li> <?php JCommentsInstallerHelper::uninstallPlugin('jcomments', 'system'); ?> <li><?php echo JText::_('A_UNINSTALL_PLUGIN_SYSTEM'); ?> : <span style="color: green">OK</span></li> <?php JCommentsInstallerHelper::uninstallPlugin('jcommentson', 'editors-xtd', array('jcommentson.gif')); JCommentsInstallerHelper::uninstallPlugin('jcommentsoff', 'editors-xtd', array('jcommentsoff.gif')); ?> <li><?php echo JText::_('A_UNINSTALL_PLUGIN_EDITORS_XTD'); ?> : <span style="color: green">OK</span></li> <?php if (JCOMMENTS_JVERSION == '1.0') { global $mainframe; $app = $mainframe; } else { JCommentsInstallerHelper::uninstallPlugin('jcomments', 'user'); $app = JFactory::getApplication('administrator'); } // Clean all caches for components with comments if ($app->getCfg('caching') == 1) { $db = JCommentsFactory::getDBO(); $db->setQuery("SELECT DISTINCT(object_group) AS name FROM #__jcomments"); $rows = $db->loadObjectList(); foreach ($rows as $row) { $cache = JCommentsFactory::getCache($row->name); $cache->clean(); } unset($rows); ?> <li><?php echo JText::_('A_UNINSTALL_CLEAN_CACHE'); ?> : <span style="color: green">OK</span></li> <?php } ?> <li><span style="color: green"><strong><?php echo JText::_('A_UNINSTALL_COMPLETE'); ?> </strong></span></li> </ul> </td> </tr> </table> </div> <div class="b"> <div class="b"> <div class="b"></div> </div> </div> </div> </div> <?php if (JCOMMENTS_JVERSION == '1.0') { global $mainframe; $componentPath = $mainframe->getCfg('absolute_path') . DS . 'components' . DS . 'com_jcomments'; require_once $componentPath . DS . 'libraries' . DS . 'joomlatune' . DS . 'filesystem.php'; $files = JoomlaTuneFS::readDirectory($componentPath . DS . 'languages', '\\.ini', false, true); foreach ($files as $file) { if (!preg_match('/[a-z]{2}-[A-Z]{2}\\.com_jcomments/', (string) $file)) { @unlink((string) $file); } } } }
/** * Checks if given user is subscribed to new comments notifications for an object * * @param int $object_id The object identifier * @param string $object_group The object group (component name) * @param int $userid The registered user identifier * @param string $email The user email (for guests only) * @param string $language The object language * @return int */ function isSubscribed($object_id, $object_group, $userid, $email = '', $language = '') { static $data = null; $key = $object_id . $object_group . $userid . $email . $language; if (!isset($data[$key])) { $cache = JCommentsFactory::getCache('com_jcomments_subscriptions_' . strtolower($object_group), 'callback'); $data[$key] = $cache->get(array($this, '_isSubscribed'), array($object_id, $object_group, $userid, $email, $language)); } return $data[$key]; }
/** * Load configuration from DB and stores it into field _params * * @param string $lang The language to use. * @param string $component The component name. * @return void */ public function load($lang = '', $component = '') { if (JCOMMENTS_JVERSION == '1.5') { $jcfg = JFactory::getConfig(); // temporary fix (eAccelerator won't reset cache) if ($jcfg->getValue('config.cache_handler', 'file') == 'eaccelerator') { $params = JCommentsCfg::_load($lang, $component); } else { $cache = JCommentsFactory::getCache('com_jcomments'); $params = (array) $cache->get('JCommentsCfg::_load', array($lang, $component)); } } else { $cache = JCommentsFactory::getCache('com_jcomments'); $params = (array) $cache->get('JCommentsCfg::_load', array($lang, $component)); } foreach ($params as $param) { if ('smiles' == $param->name) { if (!empty($param->value)) { $smileValues = explode("\n", $param->value); $this->_params['smiles'] = array(); foreach ($smileValues as $v) { list($code, $image) = explode("\t", $v); $this->_params['smiles'][$code] = $image; } } else { $this->_params['smiles'] = array(); } } else { if ('badwords' == $param->name) { if ('' != trim($param->value)) { $this->_params['badwords'] = explode("\n", $param->value); } } else { $this->_params[$param->name] = $param->value; } } } if ($this->get('smiles_path') == '') { $this->set('smiles_path', '/components/com_jcomments/images/smiles/'); } if ($this->get('enable_notification') == 0 || $this->check('notification_type', 2) == false) { $this->set('can_report', ''); } if (!extension_loaded('gd') || !function_exists('imagecreatefrompng')) { if ($this->get('captcha_engine', 'kcaptcha') != 'recaptcha') { $this->set('enable_captcha', ''); } } $this->_current = $lang; unset($params); }
public static function saveSmiles() { JCommentsSecurity::checkToken(); $app = JCommentsFactory::getApplication('administrator'); $db = JCommentsFactory::getDBO(); $smileCodes = JCommentsInput::getVar('cfg_smile_codes', array()); $smileImages = JCommentsInput::getVar('cfg_smile_images', array()); $smilesValues = array(); foreach ($smileCodes as $k => $code) { $image = trim($smileImages[$k]); $code = trim($code); if ($code != '' && $image != '') { $smilesValues[] = $code . "\t" . $image; } } $values = count($smilesValues) ? implode("\n", $smilesValues) : ''; $db->setQuery("SELECT name FROM #__jcomments_settings WHERE component=''"); $dbParams = $db->loadResultArray(); if (in_array('smiles', $dbParams)) { $query = "UPDATE #__jcomments_settings SET `value` = " . $db->Quote($values) . " WHERE `name` = 'smiles'"; } else { $query = "INSERT INTO #__jcomments_settings SET `value` = " . $db->Quote($values) . ", `name` = 'smiles'"; } $db->setQuery($query); $db->query(); $message = JText::_('A_SETTINGS_SAVED'); // Clean all caches for components with comments if ($app->getCfg('caching') == 1) { $db->setQuery("SELECT DISTINCT(object_group) AS name FROM #__jcomments"); $rows = $db->loadObjectList(); foreach ($rows as $row) { $cache = JCommentsFactory::getCache($row->name); $cache->clean(); } unset($rows); } $cache = JCommentsFactory::getCache('com_jcomments'); $cache->clean(); JCommentsRedirect(JCOMMENTS_INDEX . '?option=com_jcomments&task=smiles', $message); }
public static function RefreshObjects($hash, $step = 0, $object_group = '', $lang = '') { if (JCommentsSecurity::badRequest() == 1) { JCommentsSecurity::notAuth(); } $response = JCommentsFactory::getAjaxResponse(); $app = JCommentsFactory::getApplication(); $count = 50; if ($hash === md5($app->getCfg('secret'))) { $db = JCommentsFactory::getDBO(); if ($step == 0) { $db->setQuery('DELETE FROM #__jcomments_objects WHERE 1=1'); $db->query(); } $where = array(); $where[] = 'IFNULL(c.lang, "") <> ""'; if (!empty($object_group)) { $where[] = 'c.object_group = ' . $db->Quote($object_group); } // count objects without information $query = "SELECT COUNT(DISTINCT c.object_id, c.object_group, c.lang)" . " FROM #__jcomments AS c" . (count($where) ? "\nWHERE " . implode(' AND ', $where) : ""); $db->setQuery($query); $objectsCount = (int) $db->loadResult(); $where[] = 'NOT EXISTS (SELECT o.id FROM #__jcomments_objects AS o WHERE o.object_id = c.object_id AND o.object_group = c.object_group AND o.lang = c.lang)'; // get list of first objects without information $query = "SELECT DISTINCT c.object_id, c.object_group, c.lang" . " FROM #__jcomments AS c" . (count($where) ? "\nWHERE " . implode(' AND ', $where) : "") . " ORDER BY c.object_group, c.lang"; $db->setQuery($query, 0, $count); $rows = $db->loadObjectList(); $i = 0; $multilanguage = JCommentsMultilingual::isEnabled(); $nextLanguage = $lang; if (count($rows)) { foreach ($rows as $row) { if ($nextLanguage != $row->lang && $multilanguage) { $nextLanguage = $row->lang; break; } // retrieve and store object information JCommentsObjectHelper::storeObjectInfo($row->object_id, $row->object_group, $row->lang, false, true); $i++; } } $objectsRefreshed = 0; if ($i > 0) { $db->setQuery("SELECT COUNT(*) FROM #__jcomments_objects"); $objectsRefreshed = (int) $db->loadResult(); $response->addScript("JCommentsRefreshObjectsProgress({$objectsRefreshed}, {$objectsCount});"); } if ($objectsCount > $objectsRefreshed && ($i > 0 || $lang != $nextLanguage)) { // we need continue refresh $step++; $response->addScript("JCommentsRefreshObjectsAJAX('{$hash}', '{$step}', '', '{$nextLanguage}');"); } else { $response->addScript("JCommentsRefreshObjectsProgress({$objectsCount}, {$objectsCount});"); if ($app->getCfg('caching')) { // clean cache for all object groups $db->setQuery('SELECT DISTINCT object_group FROM #__jcomments_objects'); $rows = $db->loadResultArray(); foreach ($rows as $row) { $cache = JCommentsFactory::getCache('com_jcomments_objects_' . strtolower($row)); $cache->clean(); } } } } return $response; }
/** * Stores object information (inserts new or updates existing) * * @param int $object_id * @param string $object_group * @param string $language * @param boolean $cleanCache * @param boolean $allowEmpty * @return JCommentsObjectInfo */ public static function storeObjectInfo($object_id, $object_group = 'com_content', $language = null, $cleanCache = false, $allowEmpty = false) { if (empty($language)) { $language = JCommentsMultilingual::getLanguage(); } $app = JCommentsFactory::getApplication(); // try to load object information from database $object = JCommentsModelObject::getObjectInfo($object_id, $object_group, $language); $objectId = $object === false ? 0 : $object->id; if ($objectId == 0 && $app->isAdmin()) { // return empty object because we can not create link in backend return new JCommentsObjectInfo(); } // get object information via plugins $info = self::_loadObjectInfo($object_id, $object_group, $language); if (!JCommentsModelObject::IsEmpty($info) || $allowEmpty) { if ($app->isAdmin()) { // we do not have to update object's link from backend $info->link = null; } // insert/update object information JCommentsModelObject::setObjectInfo($objectId, $info); if ($cleanCache) { // clean cache for given object group $cache = JCommentsFactory::getCache('com_jcomments_objects_' . strtolower($object_group)); $cache->clean(); } } return $info; }
public static function postInstall() { $app = JCommentsFactory::getApplication('administrator'); $db = JCommentsFactory::getDBO(); $installer = new HTML_JCommentsInstaller(); JCommentsInstallerHelper::extractJCommentsPlugins(); // create database tables if (JCOMMENTS_JVERSION == '1.0') { $sql = dirname(__FILE__) . DS . 'install' . DS . 'sql' . DS . 'install.mysql.nonutf8.sql'; JCommentsInstaller::executeSQL($sql); // collation synchronization (for MySQL 4.1.2 or higher) if (version_compare(preg_replace('~\\-.+?$~', '', $db->getVersion()), '4.1.2') >= 0) { JCommentsInstallerDatabaseHelper::setupCollation(); } } else { $config = JFactory::getConfig(); $app = JFactory::getApplication(); @ob_start(); if ($config->getValue('config.legacy')) { $installSQL = dirname(__FILE__) . DS . 'install' . DS . 'sql' . DS . 'install.mysql.utf8.sql'; JCommentsInstaller::executeSQL($installSQL); } jimport('joomla.filesystem.folder'); jimport('joomla.filesystem.file'); $jomSocialRuleSrc = dirname(__FILE__) . DS . 'install' . DS . 'xml' . DS . 'jomsocial_rule.xm'; $jomSocialRuleDst = JCOMMENTS_BASE . DS . 'jomsocial_rule.xml'; if (!is_file($jomSocialRuleDst)) { JFile::copy($jomSocialRuleSrc, $jomSocialRuleDst); } if (is_dir(JCOMMENTS_BASE . DS . 'languages')) { JFolder::delete(JCOMMENTS_BASE . DS . 'languages'); } if (is_file(JCOMMENTS_BASE . DS . 'plugins' . DS . 'plugins.zip')) { JFile::delete(JCOMMENTS_BASE . DS . 'plugins' . DS . 'plugins.zip'); } @ob_end_clean(); $app->setUserState('com_installer.message', ''); $app->setUserState('com_installer.extension_message', ''); $app->setUserState('com_installer.redirect_url', ''); } $jxml10 = dirname(__FILE__) . DS . 'jcomments10.xml'; $jxml15 = dirname(__FILE__) . DS . 'jcomments15.xml'; $jxml = dirname(__FILE__) . DS . 'jcomments.xml'; if (is_file($jxml10)) { @rename($jxml10, $jxml); } else { if (is_file($jxml15)) { @rename($jxml15, $jxml); // fix version in xml manifest file if (JCOMMENTS_JVERSION == '1.7') { $contents = str_replace('1.5.0', '1.7.0', implode('', file($jxml))); $fh = fopen($jxml, 'w'); if ($fh) { fputs($fh, $contents); fclose($fh); } } } } unset($jxml10, $jxml15, $jxml); if (JCOMMENTS_JVERSION != '1.7') { // remove files from previous version $files = array(dirname(__FILE__) . DS . 'admin.jcomments.subcription.php', dirname(__FILE__) . DS . 'table' . DS . 'custombbcodes.php', JCOMMENTS_BASE . DS . 'model' . DS . 'index.html', JCOMMENTS_BASE . DS . 'model' . DS . 'jcomments.php', JCOMMENTS_BASE . DS . 'model'); foreach ($files as $file) { if (is_file($file)) { @unlink($file); } else { if (is_dir($file)) { @rmdir($file); } } } } // small stuff for future update system $db->setQuery('SELECT `version` FROM `#__jcomments_version`'); $version = $db->loadResult(); require_once dirname(__FILE__) . DS . 'version.php'; $jcommentsVersion = new JCommentsVersion(); $currentVersion = $jcommentsVersion->getVersion(); $currentDate = date('Y-m-d H:i:s'); if (empty($version)) { $db->setQuery("INSERT IGNORE INTO `#__jcomments_version` (`version`,`installed`) VALUES ('{$currentVersion}', '{$currentDate}')"); @$db->query(); // if version isn't specified - we think that it was 2.2.0.0 or earlier... $version = '2.2.0.0'; } else { $db->setQuery("UPDATE `#__jcomments_version` SET `version` = '{$currentVersion}', `updated` = '{$currentDate}';"); @$db->query(); } // install content plugin $result = JCommentsInstallerHelper::installPlugin('Content - JComments', 'jcomments', 'content'); $installer->addMessage(JText::_('A_INSTALL_PLUGIN_CONTENT'), $result); // install search plugin $result = JCommentsInstallerHelper::installPlugin('Search - JComments', 'jcomments', 'search'); $installer->addMessage(JText::_('A_INSTALL_PLUGIN_SEARCH'), $result); // install system plugin $result = JCommentsInstallerHelper::installPlugin('System - JComments', 'jcomments', 'system'); $installer->addMessage(JText::_('A_INSTALL_PLUGIN_SYSTEM'), $result); // install editor buttons $result = JCommentsInstallerHelper::installPlugin('Editor Button - JComments ON', 'jcommentson', 'editors-xtd', array('jcommentson.gif')); $result = $result && JCommentsInstallerHelper::installPlugin('Editor Button - JComments OFF', 'jcommentsoff', 'editors-xtd', array('jcommentsoff.gif')); $installer->addMessage(JText::_('A_INSTALL_PLUGIN_EDITORS_XTD'), $result); if (JCOMMENTS_JVERSION != '1.0') { // install user plugin $result = JCommentsInstallerHelper::installPlugin('User - JComments', 'jcomments', 'user'); $installer->addMessage(JText::_('A_INSTALL_PLUGIN_USER'), $result); } // Fix component menu icon if (JCOMMENTS_JVERSION == '1.0') { $menuiconpath = $app->getCfg('absolute_path') . DS . 'includes' . DS . 'js' . DS . 'ThemeOffice'; $adminIconsPath = '../administrator/components/com_jcomments/assets'; if (is_writable($menuiconpath)) { $currentIconsPath = dirname(__FILE__) . DS . 'images'; ob_start(); $res1 = @copy($currentIconsPath . DS . 'icon-16-jcomments.png', $menuiconpath . DS . 'icon-16-jcomments.png'); $res2 = @copy($currentIconsPath . DS . 'icon-16-import.png', $menuiconpath . DS . 'icon-16-import.png'); $res3 = @copy($currentIconsPath . DS . 'icon-16-settings.png', $menuiconpath . DS . 'icon-16-settings.png'); $res4 = @copy($currentIconsPath . DS . 'icon-16-smiles.png', $menuiconpath . DS . 'icon-16-smiles.png'); $res5 = @copy($currentIconsPath . DS . 'icon-16-comments.png', $menuiconpath . DS . 'icon-16-comments.png'); $res6 = @copy($currentIconsPath . DS . 'icon-16-subscriptions.png', $menuiconpath . DS . 'icon-16-subscriptions.png'); $res7 = @copy($currentIconsPath . DS . 'icon-16-custombbcodes.png', $menuiconpath . DS . 'icon-16-custombbcodes.png'); $res8 = @copy($currentIconsPath . DS . 'icon-16-blacklist.png', $menuiconpath . DS . 'icon-16-blacklist.png'); ob_end_clean(); $result = $res1 && $res2 && $res3 && $res4 && $res5 && $res6 && $res7 && $res8; if ($result && is_file($menuiconpath . DS . 'jcomments16x16.png')) { $adminIconsPath = 'js/ThemeOffice'; } } $db->setQuery("UPDATE #__components SET admin_menu_img='{$adminIconsPath}/icon-16-jcomments.png' " . "\n WHERE admin_menu_link='option=com_jcomments'"); @$db->query(); $db->setQuery("UPDATE #__components SET admin_menu_img='{$adminIconsPath}/icon-16-comments.png', name='" . JText::_('A_SUBMENU_COMMENTS') . "'" . "\n WHERE admin_menu_link='option=com_jcomments&task=comments'"); @$db->query(); $db->setQuery("UPDATE #__components SET admin_menu_img='{$adminIconsPath}/icon-16-settings.png', name='" . JText::_('A_SUBMENU_SETTINGS') . "'" . "\n WHERE admin_menu_link='option=com_jcomments&task=settings'"); @$db->query(); $db->setQuery("UPDATE #__components SET admin_menu_img='{$adminIconsPath}/icon-16-smiles.png', name='" . JText::_('A_SUBMENU_SMILES') . "'" . "\n WHERE admin_menu_link='option=com_jcomments&task=smiles'"); @$db->query(); $db->setQuery("UPDATE #__components SET admin_menu_img='{$adminIconsPath}/icon-16-subscriptions.png', name='" . JText::_('A_SUBMENU_SUBSCRIPTIONS') . "'" . "\n WHERE admin_menu_link='option=com_jcomments&task=subscriptions'"); @$db->query(); $db->setQuery("UPDATE #__components SET admin_menu_img='{$adminIconsPath}/icon-16-custombbcodes.png', name='" . JText::_('A_SUBMENU_CUSTOM_BBCODE') . "'" . "\n WHERE admin_menu_link='option=com_jcomments&task=custombbcodes'"); @$db->query(); $db->setQuery("UPDATE #__components SET admin_menu_img='{$adminIconsPath}/icon-16-blacklist.png', name='" . JText::_('A_SUBMENU_BLACKLIST') . "'" . "\n WHERE admin_menu_link='option=com_jcomments&task=blacklist'"); @$db->query(); $db->setQuery("UPDATE #__components SET admin_menu_img='{$adminIconsPath}/icon-16-import.png', name='" . JText::_('A_SUBMENU_IMPORT') . "'" . "\n WHERE admin_menu_link='option=com_jcomments&task=import'"); @$db->query(); $db->setQuery("UPDATE #__components SET admin_menu_img='{$adminIconsPath}/icon-16-jcomments.png', name='" . JText::_('A_SUBMENU_ABOUT') . "'" . "\n WHERE admin_menu_link='option=com_jcomments&task=about'"); @$db->query(); } if (version_compare($version, '2.3.0', 'le')) { // update db tables if (JCommentsInstallerDatabaseHelper::upgradeStructure()) { $installer->addMessage(JText::_('A_INSTALL_UPGRADE_TABLES'), true); } JCommentsInstallerDatabaseHelper::updateJoomGallery(); if (JCOMMENTS_JVERSION != '1.7') { $db->setQuery("UPDATE `#__jcomments_settings` SET `value` = REPLACE(`value`, 'Unregistered', 'Public') "); $db->query(); $db->setQuery("UPDATE `#__jcomments_settings` SET `value` = REPLACE(`value`, 'Super Administrator', 'Super Users') "); $db->query(); $db->setQuery("UPDATE `#__jcomments_custom_bbcodes` SET `button_acl` = REPLACE(`button_acl`, 'Unregistered', 'Public') "); $db->query(); $db->setQuery("UPDATE `#__jcomments_custom_bbcodes` SET `button_acl` = REPLACE(`button_acl`, 'Super Administrator', 'Super Users') "); $db->query(); } } if (isset($_COOKIE['jcommentsadmin_group'])) { if (!headers_sent()) { setcookie('jcommentsadmin_group', '', time() - 3600, '/'); } unset($_COOKIE['jcommentsadmin_group']); } $db->setQuery("SELECT `name`, `value` FROM `#__jcomments_settings`"); $paramsList = $db->loadObjectList('name'); if (count($paramsList) == 0) { $defaultSettings = dirname(__FILE__) . DS . 'install' . DS . 'sql' . DS . 'settings.sql'; JCommentsInstaller::executeSQL($defaultSettings); } else { JCommentsInstaller::checkParam($paramsList, 'delete_mode', '0'); JCommentsInstaller::checkParam($paramsList, 'can_publish_for_my_object', ''); JCommentsInstaller::checkParam($paramsList, 'can_edit_for_my_object', ''); JCommentsInstaller::checkParam($paramsList, 'can_delete_for_my_object', ''); JCommentsInstaller::checkParam($paramsList, 'enable_blacklist', '0'); JCommentsInstaller::checkParam($paramsList, 'can_ban', 'Administrator,Super Administrator'); JCommentsInstaller::checkParam($paramsList, 'feed_limit', '100'); JCommentsInstaller::checkParam($paramsList, 'report_reason_required', '1'); if (version_compare($version, '2.2.0.0') <= 0) { $smilesPath = DS . 'components' . DS . 'com_jcomments' . DS . 'images' . DS . 'smiles' . DS; JCommentsInstaller::checkParam($paramsList, 'smiles_path', $smilesPath, true); } } unset($paramsList); if (JCOMMENTS_JVERSION == '1.7') { // TODO remove this hack JCommentsInstallerHelper::fixComponentName(); } JCommentsInstallerHelper::fixUsergroups(); $joomfish = $app->getCfg('absolute_path') . DS . 'components' . DS . 'com_joomfish' . DS . 'joomfish.php'; if (is_file($joomfish) || JCommentsMultilingual::isEnabled()) { JCommentsInstaller::upgradeLanguages(); } $db->setQuery("SELECT COUNT(*) FROM `#__jcomments_custom_bbcodes`;"); $cnt = $db->loadResult(); if ($cnt == 0) { $sql = dirname(__FILE__) . DS . 'install' . DS . 'sql' . DS . 'custom_bbcodes.sql'; JCommentsInstaller::executeSQL($sql); } JCommentsInstallerHelper::fixCustomBBCodeACL(); $installer->showInstallLog(); $cache = JCommentsFactory::getCache('com_jcomments'); $cache->clean(); }
public static function order($inc) { JCommentsSecurity::checkToken(); $id = JCommentsInput::getVar('cid', 0); $id = count($id) ? $id[0] : 0; $db = JCommentsFactory::getDBO(); $row = new JCommentsTableCustomBBCode($db); if ($row->load($id)) { $row->move($inc); $cache = JCommentsFactory::getCache('com_jcomments'); $cache->clean(); } JCommentsRedirect(JCOMMENTS_INDEX . '?option=com_jcomments&task=custombbcodes'); }