Ejemplo n.º 1
0
 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));
 }
Ejemplo n.º 2
0
 /**
  * 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));
 }