ea-Geiercode-base
[ class tree: ea-Geier ] [ index: ea-Geier ] [ all elements ]

Source for file install.db.php

Documentation is available at install.db.php

  1. <?php 
  2. /**
  3.  * database functions for installation support
  4.  *
  5.  * LICENSE:
  6.  * This program is free software; you can redistribute it and/or modify
  7.  * it under the terms of the GNU General Public License as published by
  8.  * the Free Software Foundation; either version 2 of the License, or
  9.  * (at your option) any later version.
  10.  * This program is distributed in the hope that it will be useful,
  11.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.     See the
  13.  * GNU General Public License for more details.
  14.  * You should have received a copy of the GNU General Public License along
  15.  * with this program; if not, write to the Free Software Foundation, Inc.,
  16.  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  17.  *
  18.  * @package       ea-Geier
  19.  * @subpackage code/base
  20.  * @author       m2mtech <tech@m2m.at>
  21.  * @copyright  2007 m2m server software gmbh
  22.  * @license       http://www.gnu.org/licenses/gpl.html GNU General Public License Version 2
  23.  * @version       $Id: install.db.php 148 2007-09-07 16:02:29Z m2mtech $
  24.  * @link       http://www.ea-geier.at/
  25.  */
  26.  
  27. /**
  28.  * create system tables
  29.  *
  30.  * @param    string    database dsn
  31.  * @return    boolean    status
  32.  */
  33. function dbCreateSystemTables(&$conf{
  34.     // load adobdb libraries
  35.     require_once(eaADODB_DIR 'adodb.inc.php');
  36.     require_once(eaADODB_DIR 'session/adodb-session2.php');
  37.     require_once(eaADODB_DIR 'adodb-xmlschema03.inc.php');
  38.  
  39.     // connect to empty database
  40.     if (!$db ADONewConnection($conf['dsn'])) return false;
  41.  
  42.     $GLOBALS['ADODB_SESS_CONN'=$db;
  43.         
  44.     // create session table
  45.     adodb_session_create_table()
  46.             
  47.     // create system tables                
  48.     $tables array_merge($conf['txtDBTables']$conf['txtClientTables']);
  49.     dbCreateTables($db$tables$conf['tablePrefix']);
  50.  
  51.     return true;
  52. }
  53.  
  54. /**
  55.  * update system tables
  56.  *
  57.  * @param    eaDB    database
  58.  */
  59. function dbUpdateSystemTables(&$db{
  60.     // update system tables                
  61.     $tables $db->conf['txtDBTables'];
  62.     dbCreateTables($db->_db$tables$db->conf['tablePrefix']);
  63.  
  64.     // update version number
  65.     if (isset($db->conf['txtVersion'])) 
  66.         $db->updateSysConf(array('txtVersion' => eaVERSION));
  67. }
  68.  
  69. /**
  70.  * update client tables
  71.  *
  72.  * @param    eaDB    database
  73.  */
  74. function dbUpdateClientTables(&$db{
  75.     $conf =$db->conf;
  76.     
  77.     if (!$db->_clientTablesreturn false// no tables
  78.  
  79.     // get clients
  80.     if (!$clients $db->select('id'$db->table('clients'))) return false;
  81.  
  82.     $oldPrefix $db->_prefix;
  83.     foreach ($clients as $client{
  84.         $switched $db->switchToClientDB($client['id'])
  85.  
  86.         dbCreateTables($db->_db$conf['txtClientTables']$db->_prefix);
  87.  
  88.         $db->_prefix $oldPrefix;
  89.         if ($switched// switch back
  90.             $db->_db ADONewConnection($conf['dsn']);        
  91.             $db->_db->SetFetchMode(ADODB_FETCH_ASSOC);
  92.         }            
  93.     }
  94. }
  95.  
  96. /**
  97.  * create tables
  98.  *
  99.  * @param    adodb    database
  100.  * @param    array    tables
  101.  * @param    string    prefix
  102.  */
  103. function dbCreateTables(&$db$tables$prefix{
  104.     // load adobdb libraries
  105.     require_once(eaADODB_DIR 'adodb-xmlschema03.inc.php');
  106.     
  107.     // create tables                
  108.     foreach ($tables as $table{
  109.         $schema new adoSchema($db);
  110.         $schema->ParseSchemaString(str_replace($table$prefix $table$schema->ConvertSchemaFile('admin/sql/' $table '.sql')))
  111.         $schema->ContinueOnError(true);
  112.         $schema->ExecuteSchema();
  113.     }
  114. }
  115.  
  116. ?>

Documentation generated on Sun, 09 Sep 2007 17:09:01 +0200 by phpDocumentor 1.3.1