Пример #1
0
 /**
  * check the database for expected tables, columns and attributes
  *
  * @param Fooman_Common_Model_Selftester $selftester
  *
  * @return bool
  */
 public function dbCheck(Fooman_Common_Model_Selftester $selftester)
 {
     $localError = false;
     $selftester->messages[] = "Checking database";
     $installer = new Mage_Sales_Model_Mysql4_Setup('sales_setup');
     $installer->startSetup();
     foreach ($selftester->_getDbFields() as $field) {
         switch ($field[0]) {
             case 'eav':
                 $localError = $this->_dbCheckEav($selftester, $field, $installer, $localError);
                 break;
             case 'sql-column':
                 $localError = $this->_dbCheckSqlColumn($selftester, $field, $installer, $localError);
                 break;
             case 'table':
                 $localError = $this->_dbCheckSqlTable($selftester, $field, $installer, $localError);
                 break;
             case 'constraint':
                 $localError = $this->_dbCheckForeignKeyConstraint($selftester, $field, $installer, $localError);
                 break;
             case 'row-data':
                 $localError = $this->_dbCheckDbRow($selftester, $field, $installer, $localError);
                 break;
         }
     }
     $installer->endSetup();
     if (empty($localError)) {
         return true;
     } else {
         if ($this->_dbOkay == false) {
             $selftester->messages[] = "<p>The selftest has found some problems with your database install.\n                    You can attempt to fix this by clicking this <a href=\"" . htmlentities(Mage::app()->getRequest()->getServer('PHP_SELF', '')) . "?fix=true\">link</a>.</p><p style=\"color:red;\"><em>A DATABASE BACKUP IS strongly\n                    RECOMMENDED BEFORE ATTEMPTING THIS!</em></p>";
         }
         return false;
     }
 }