private function doExtensionUpgrade() { ob_start(); // Load up as much of Joomla as we need require 'bfExtensions.php'; $app = JFactory::getApplication('Myjoomla'); // init reply to myJoomla.com $result = array(); $result['messages'] = array(); // which row in the _updates table should we use $this->_db->setQuery('SELECT update_id from #__updates WHERE extension_id = "' . $this->_dataObj->eid . '"'); $extension_row_id = $this->_db->loadResult(); // Do the update $ext = new bfExtensions(); $result['result'] = $ext->doUpdate($extension_row_id); // Grab any error messages $result['messages'] = $app->getMessageQueue(); // translate messages $lang = JFactory::getLanguage(); $lang->load('com_installer', JPATH_ADMINISTRATOR, 'en-GB', TRUE); $lang->load('lib_joomla', JPATH_ADMINISTRATOR, 'en-GB', TRUE); if (count($result['messages'])) { foreach ($result['messages'] as &$msg) { $msg['message'] = JText::_($msg['message']); } } bfEncrypt::reply('success', array('result' => $result)); }
/** * If not enabled, then enable the Akeeba API Frontend using a secure secret word */ private function enableAkeebaFrontendBackup() { // load mini-Joomla require 'bfInitJoomla.php'; $this->_db = JFactory::getDBO(); // Get some Joomla version $VERSION = new JVersion(); switch ($VERSION->RELEASE) { case '1.5': $params = JComponentHelper::getParams('com_akeeba'); if (!count($params->toArray())) { // send back the totals bfEncrypt::reply('success', array('akeeba_installed' => FALSE)); } $frontend_enable = $params->get('frontend_enable'); $frontend_secret_word = $params->get('frontend_secret_word'); if ($frontend_enable != 1) { $params->set('frontend_enable', 1); $saveChanges = TRUE; } $params->set('frontend_secret_word', str_replace('&', '', JUtility::getHash(JUtility::getToken(TRUE)))); $saveChanges = TRUE; $secretWord = $params->get('frontend_secret_word'); if (TRUE == $saveChanges) { $params = $params->toString(); $sql = 'UPDATE #__components SET params = \'%s\' WHERE `OPTION` = "com_akeeba"'; $sql = sprintf($sql, addslashes($params)); $this->_db->setQuery($sql); $this->_db->query(); } break; default: case '2.5': $this->_db->setQuery('SELECT extension_id, params FROM #__extensions WHERE NAME="akeeba" AND element = "com_akeeba"'); $data = $this->_db->loadObject(); if (!$data) { // send back the totals bfEncrypt::reply('success', array('akeeba_installed' => FALSE)); } $params = json_decode($data->params); if ($params->frontend_enable != 1) { $params->frontend_enable = 1; $saveChanges = TRUE; } if (!$params->frontend_secret_word || preg_match('/\\&/', $params->frontend_secret_word)) { $params->frontend_secret_word = md5(JApplication::getHash('myjoomla')); $saveChanges = TRUE; } $secretWord = $params->frontend_secret_word; if (TRUE == $saveChanges) { $params = json_encode($params); $sql = 'UPDATE #__extensions SET params = \'%s\' WHERE extension_id = %s'; $sql = sprintf($sql, addslashes($params), $data->extension_id); $this->_db->setQuery($sql); $this->_db->query(); } break; } // send back the totals bfEncrypt::reply('success', array('akeeba_installed' => TRUE, 'secret' => $secretWord)); }