protected function _checkForModifications($initialize = false)
 {
     return true;
     // Just disable it for now
     $currentSignature = $this->_session->currentInstallerSignature;
     $installedPackages = $this->_packageManager->listInstalledPackages();
     $currentInstallerPackage = $installedPackages->offsetGet('core-install');
     if (!$currentInstallerPackage || strlen($currentSignature) == 40) {
         $signature = sha1(file_get_contents(__FILE__));
     } else {
         $signature = $currentInstallerPackage->getVersion();
     }
     // Initialize
     if (true === $initialize) {
         $this->_session->currentInstallerSignature = $signature;
         return true;
     } else {
         if ($signature != $this->_session->currentInstallerSignature) {
             $extractedPackages = $this->_packageManager->listExtractedPackages();
             $this->view->extractedPackageKeys = $extractedPackages->getArrayKeys();
             $this->view->extractedPackageKeys = array_diff($this->view->extractedPackageKeys, array($extractedPackages->getKeyByGuid('core-install'), $extractedPackages->getKeyByGuid('library-engine')));
             $this->_session->unsetAll();
             $this->_helper->viewRenderer->renderScript('_installerUpdated.tpl');
             return false;
         }
     }
     // Was not updated
     return true;
 }
 public function sanityAction()
 {
     // Get db
     if (Zend_Registry::isRegistered('Zend_Db') && ($db = Zend_Registry::get('Zend_Db')) instanceof Zend_Db_Adapter_Abstract) {
         Engine_Sanity::setDefaultDbAdapter($db);
     }
     // Get packages
     $packages = $this->_packageManager->listInstalledPackages();
     // Get dependencies
     $this->view->dependencies = $dependencies = $this->_packageManager->depend();
     // Get tests
     $this->view->tests = $tests = new Engine_Sanity();
     $packageIndex = array();
     foreach ($packages as $package) {
         $packageTests = $package->getTests();
         // No tests
         if (empty($packageTests)) {
             continue;
         }
         $packageIndex[$package->getKey()] = $package;
         // Make battery
         $battery = new Engine_Sanity(array('name' => $package->getKey()));
         foreach ($packageTests as $test) {
             $battery->addTest($test->toArray());
         }
         $tests->addTest($battery);
     }
     $this->view->packageIndex = $packageIndex;
     $tests->run();
 }
 public function dbCreateAction()
 {
     // Leave if not ready
     if (empty($this->_session->mysql)) {
         return $this->_helper->redirector->gotoRoute(array('action' => 'db-info'));
     }
     $this->view->code = 0;
     // Connect again
     try {
         $config = $this->dbFormToConfig($this->_session->mysql);
         // Connect!
         $adapter = Zend_Db::factory($config['adapter'], $config['params']);
         $adapter->getServerVersion();
     } catch (Exception $e) {
         $this->view->code = 1;
         $this->view->error = 'Adapter Error: ' . $e->getMessage();
         return;
     }
     // attempt to disable strict mode
     try {
         $adapter->query("SET SQL_MODE = ''");
     } catch (Exception $e) {
     }
     // Check if database config already exists
     $configFile = APPLICATION_PATH . '/application/settings/database.php';
     if (file_exists($configFile) && !($this->_getParam('force', 0) >= 1)) {
         $this->view->code = 2;
         $this->view->error = 'We found an existing database configuration file. Do you want to overwrite it?';
         return;
     }
     // Put database.php into place
     if (!file_exists($configFile) || $this->_getParam('force', 0) >= 1) {
         $contents = '';
         $contents .= '<?php defined(\'_ENGINE\') or die(\'Access Denied\'); ';
         $contents .= 'return ' . var_export($config, true);
         $contents .= '; ?>';
         if (!@file_put_contents($configFile, $contents) && !($this->_getParam('force', 0) >= 2)) {
             $this->view->code = 3;
             $this->view->error = 'Your existing database configuration file is not writeable. Please login to your server via FTP and set full permissions (CHMOD 0777) on /application/settings/database.php, then refresh this page.';
             return;
         }
     }
     // Create database shtuff
     $files = array(APPLICATION_PATH . '/application/modules/Core/settings/my.sql', APPLICATION_PATH . '/application/modules/Activity/settings/my.sql', APPLICATION_PATH . '/application/modules/Authorization/settings/my.sql', APPLICATION_PATH . '/application/modules/User/settings/my.sql', APPLICATION_PATH . '/application/modules/Messages/settings/my.sql', APPLICATION_PATH . '/application/modules/Network/settings/my.sql', APPLICATION_PATH . '/application/modules/Invite/settings/my.sql', APPLICATION_PATH . '/application/modules/Fields/settings/my.sql', APPLICATION_PATH . '/application/modules/Storage/settings/my.sql', APPLICATION_PATH . '/application/modules/Announcement/settings/my.sql', APPLICATION_PATH . '/application/modules/Payment/settings/my.sql');
     try {
         foreach ($files as $file) {
             $sql = file_get_contents($file);
             if (!$sql) {
                 throw new Engine_Exception('Unable to read sql file');
             }
             $queries = Engine_Package_Utilities::sqlSplit($sql);
             foreach ($queries as $query) {
                 $adapter->query($query);
             }
         }
     } catch (Exception $e) {
         $this->view->error = $e->getMessage();
         return;
     }
     // Update some other stuff
     $settingsTable = new Zend_Db_Table(array('db' => $adapter, 'name' => 'engine4_core_settings'));
     // Generate new secret key
     $row = $settingsTable->find('core.secret')->current();
     if (null === $row) {
         $row = $settingsTable->createRow();
         $row->name = 'core.secret';
     }
     if ($row->value == 'staticSalt' || $row->value == 'NULL' || !$row->value) {
         $row->value = sha1(time() . php_uname() . dirname(__FILE__) . rand(1000000, 9000000));
         $row->save();
     }
     // Save key
     $row = $settingsTable->find('core.license.key')->current();
     if (null === $row) {
         $row = $settingsTable->createRow();
         $row->name = 'core.license.key';
     }
     $row->value = $this->_session->license['key'];
     $row->save();
     // Save stats
     $row = $settingsTable->find('core.license.statistics')->current();
     if (null === $row) {
         $row = $settingsTable->createRow();
         $row->name = 'core.license.statistics';
     }
     $row->value = $this->_session->license['statistics'];
     $row->save();
     // Save email
     if (!empty($this->_session->license->email)) {
         $row = $settingsTable->find('core.license.email')->current();
         if (null === $row) {
             $row = $settingsTable->createRow();
             $row->name = 'core.license.email';
         }
         if (isset($this->_session->license['email'])) {
             $row->value = $this->_session->license['email'];
         }
         $row->save();
     }
     // Save creation date
     $row = $settingsTable->find('core.site.creation')->current();
     if (null === $row) {
         $row = $settingsTable->createRow();
         $row->name = 'core.site.creation';
     }
     $row->value = date('Y-m-d H:i:s');
     $row->save();
     // Execute the install hooks
     $packageManager = new Engine_Package_Manager(array("basePath" => APPLICATION_PATH, "db" => $adapter));
     foreach ($packageManager->listInstalledPackages() as $package) {
         try {
             $operation = new Engine_Package_Manager_Operation_Install($packageManager, $package);
             $packageManager->execute($operation, "preinstall");
             $packageManager->execute($operation, "install");
             $packageManager->execute($operation, "postinstall");
         } catch (Exception $e) {
             $this->view->error = $e->getMessage();
             return;
         }
     }
     // Check if branding should be placed
     $session = $this->_session;
     $db = $adapter;
     if (!empty($session->license['key'])) {
         $license = $session->license['key'];
     } else {
         $license = null;
         //      $license = $db->select()
         //        ->from('engine4_core_settings', 'value')
         //        ->where('`name` = ?', 'core.license.key')
         //        ->query()
         //        ->fetchColumn();
     }
     //if( $license ) {
     //  $handle = @fopen("http://www.socialengine.com/remote/branding?license={$license}", "r");
     //  $doBranding = @stream_get_contents($handle);
     //  @fclose($handle);
     //} else {
     $doBranding = false;
     //}
     if ($doBranding == 1) {
         $select = new Zend_Db_Select($db);
         // profile page
         $select->from('engine4_core_pages')->where('name = ?', 'footer')->limit(1);
         $page_id = $select->query()->fetchObject()->page_id;
         // widget.branding
         // Check if it's already been placed
         $select = new Zend_Db_Select($db);
         $select->from('engine4_core_content')->where('page_id = ?', $page_id)->where('type = ?', 'widget')->where('name = ?', 'branding');
         $info = $select->query()->fetch();
         if (empty($info)) {
             // container_id (will always be there)
             $select = new Zend_Db_Select($db);
             $select->from('engine4_core_content')->where('page_id = ?', $page_id)->where('type = ?', 'container')->limit(1);
             $container_id = $select->query()->fetchObject()->content_id;
             // tab on profile
             $db->insert('engine4_core_content', array('page_id' => $page_id, 'type' => 'widget', 'name' => 'branding', 'parent_content_id' => $container_id, 'order' => 3, 'params' => ''));
         }
     }
     // Ok we're done
     $this->view->status = 1;
 }