function installMessage() { $db = JFactory::getDBO(); $lang = JFactory::getLanguage(); $currentlang = $lang->getTag(); $objectReadxmlDetail = new JSNISReadXmlDetails(); $infoXmlDetail = $objectReadxmlDetail->parserXMLDetails(); $langSupport = $infoXmlDetail['langs']; $registry = new JRegistry(); $newStrings = array(); $path = null; $realLang = null; $queries = array(); if (array_key_exists($currentlang, $langSupport)) { $path = JLanguage::getLanguagePath(JPATH_BASE, $currentlang); $realLang = $currentlang; } else { $filepath = JPATH_ROOT . DS . 'administrator' . DS . 'language'; $foldersLang = $this->getFolder($filepath); foreach ($foldersLang as $value) { if (in_array($value, $langSupport) == true) { $path = JLanguage::getLanguagePath(JPATH_BASE, $value); $realLang = $value; break; } } } $filename = $path . DS . $realLang . '.com_imageshow.ini'; $objJNSUtils = JSNISFactory::getObj('classes.jsn_is_utils'); $content = $objJNSUtils->readFileToString($filename); if ($content) { $registry->loadString($content); $newStrings = $registry->toArray(); if (count($newStrings)) { if (count($infoXmlDetail['menu'])) { $queries[] = 'TRUNCATE TABLE #__jsn_imageshow_messages'; foreach ($infoXmlDetail['menu'] as $value) { $index = 1; while (isset($newStrings['MESSAGE_' . $value . '_' . $index . '_PRIMARY'])) { $queries[] = 'INSERT INTO #__jsn_imageshow_messages (msg_screen, published, ordering) VALUES (\'' . $value . '\', 1, ' . $index . ')'; $index++; } } } } if (count($queries)) { foreach ($queries as $query) { $query = trim($query); if ($query != '') { $db->setQuery($query); $db->query(); } } } } return true; }
function installMessage() { $db =& JFactory::getDBO(); $lang =& JFactory::getLanguage(); $currentlang = $lang->getTag(); $objectReadxmlDetail = new JSNISReadXmlDetails(); $infoXmlDetail = $objectReadxmlDetail->parserXMLDetails(); $langSupport = $infoXmlDetail['langs']; $registry = new JRegistry(); $newStrings = array(); $path = null; $realLang = null; $queries = array(); if (array_key_exists($currentlang, $langSupport)) { $path = JLanguage::getLanguagePath(JPATH_BASE, $currentlang); $realLang = $currentlang; } else { $filepath = JPATH_ROOT . DS . 'administrator' . DS . 'language'; $foldersLang = $this->getFolder($filepath); foreach ($foldersLang as $value) { if (in_array($value, $langSupport) == true) { $path = JLanguage::getLanguagePath(JPATH_BASE, $value); $realLang = $value; break; } } } $filename = $path . DS . $realLang . '.com_imageshow.ini'; $content = @file_get_contents($filename); if ($content) { $registry->loadINI($content); $newStrings = $registry->toArray(); if (count($newStrings)) { if (count($infoXmlDetail['menu'])) { $queries[] = 'TRUNCATE TABLE `#__imageshow_messages`'; foreach ($infoXmlDetail['menu'] as $value) { $index = 1; while (isset($newStrings['MESSAGE ' . $value . ' ' . $index . ' PRIMARY'])) { $queries[] = 'INSERT INTO `#__imageshow_messages` (`msg_id`,`msg_screen`,`published`,`ordering`) VALUES (NULL, "' . $value . '", 1, ' . $index . ')'; $index++; } } } } if (count($queries)) { foreach ($queries as $query) { $query = trim($query); if ($query != '') { $db->setQuery($query); $db->query(); } } } } return true; }
function checkSupportLang() { $objectReadxmlDetail = new JSNISReadXmlDetails(); $infoXmlDetail = $objectReadxmlDetail->parserXMLDetails(); $supportLang = $infoXmlDetail['langs']; $objLanguage = JFactory::getLanguage(); $language = $objLanguage->getTag(); if (@in_array($language, $supportLang)) { return true; } return false; }
public function preflight($mode, $parent) { $this->_parent = $parent->getParent(); $this->_manifest = $this->_parent->getManifest(); $this->_currentVersion = $this->_manifest->version; $this->_currentEdition = $this->_manifest->edition; $errorFolders = $this->_checkFolderUnwritable(); if (count($errorFolders)) { $msg = '</li><li>Following folder(s) must have Writable permission during installation process:</li><li><br/></li>'; foreach ($errorFolders as $folder) { $msg .= '<li>' . $folder; if ($folder == '/language' || $folder == '/administrator/language') { $msg .= ' (including all subfolders)'; } $msg .= '</li>'; } $msg .= '<li><br/></li><li>Please set Writable permission to appropriate folder(s) and reinstall the extension.'; $this->_parent->abort($msg); return false; } if ($this->_checkManifestFileExist()) { $file = JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_imageshow' . DS . 'classes' . DS . 'jsn_is_readxmldetails.php'; if (JFile::exists($file)) { include_once $file; $objectReadxmlDetail = new JSNISReadXmlDetails(); $info = $objectReadxmlDetail->parserXMLDetails(); $this->_previousVersion = $info['version']; $tmpCurrentVersion = (double) str_replace('.', '', $this->_currentVersion); $tmpPrevioustVersion = (double) str_replace('.', '', $this->_previousVersion); if ($tmpCurrentVersion < $tmpPrevioustVersion) { $msg = JText::sprintf('You cannot install an older version %s on top of the newer version %s', $this->_currentVersion, $this->_previousVersion); $this->_parent->abort($msg); return false; } } $fileUpgrade = $this->_parent->getPath('source') . DS . 'admin' . DS . 'subinstall' . DS . 'upgrade.helper.php'; if (JFile::exists($fileUpgrade)) { require_once $fileUpgrade; $objUpgradeHelper = new JSNUpgradeHelper($this->_manifest); $objUpgradeHelper->executeUpgrade(); } $this->_updateSchema($this->_previousVersion); $this->_updateMenu(); } else { $session = JFactory::getSession(); $session->set('preversion', null, 'jsnimageshow'); } return true; }
function getPreviousEdition() { $objectReadxmlDetail = new JSNISReadXmlDetails(); $infoXmlDetail = $objectReadxmlDetail->parserXMLDetails(); return isset($infoXmlDetail['edition']) ? str_replace(' ', '_', JString::strtolower($infoXmlDetail['edition'])) : ''; }
function setManifestXML() { $objectReadxmlDetail = new JSNISReadXmlDetails(); $this->_manifestXML = $objectReadxmlDetail->parserXMLDetails(); }
function setCurrentVersion() { $objectReadxmlDetail = new JSNISReadXmlDetails(); $infoXmlDetail = $objectReadxmlDetail->parserXMLDetails(); $this->_currentVersion = @$infoXmlDetail['version']; }
function setPreviousVersion() { $objectReadxmlDetail = new JSNISReadXmlDetails(); $infoXmlDetail = $objectReadxmlDetail->parserXMLDetails(); $this->_previousVersion = @$infoXmlDetail['version']; }