|  | @@ -1,14 +1,17 @@
 | 
	
		
			
				|  |  |  <?php
 | 
	
		
			
				|  |  | +// $Id: qbf.install,v 1.1.4.1 2009-03-17 10:57:58 marand Exp $
 | 
	
		
			
				|  |  |  /**
 | 
	
		
			
				|  |  | + * @file
 | 
	
		
			
				|  |  |   * QBF module - installer
 | 
	
		
			
				|  |  |   *
 | 
	
		
			
				|  |  | - * @copyright 2008 Ouest Systèmes Informatiques SARL
 | 
	
		
			
				|  |  | - * @author FG Marand
 | 
	
		
			
				|  |  | - * @license GPL2 or later
 | 
	
		
			
				|  |  | - * @package QBF
 | 
	
		
			
				|  |  | + * Copyright 2008-2009 Ouest Systèmes Informatiques SARL
 | 
	
		
			
				|  |  | + *
 | 
	
		
			
				|  |  | + * Author FG Marand
 | 
	
		
			
				|  |  | + *
 | 
	
		
			
				|  |  | + * License GPL2 or later
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -// $Id: qbf.install,v 1.1 2008-09-02 08:39:07 marand Exp $
 | 
	
		
			
				|  |  | +require_once(drupal_get_path('module', 'qbf') .'/qbf.module');
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /**
 | 
	
		
			
				|  |  |   * Implement hook_install().
 | 
	
	
		
			
				|  | @@ -19,26 +22,56 @@
 | 
	
		
			
				|  |  |   *   - none
 | 
	
		
			
				|  |  |   *
 | 
	
		
			
				|  |  |   * @todo support PGSQL
 | 
	
		
			
				|  |  | + * @ingroup hooks
 | 
	
		
			
				|  |  |   * @return void
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  function qbf_install()
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  | +  // Initialize settings
 | 
	
		
			
				|  |  | +  $ar_const = get_defined_constants();
 | 
	
		
			
				|  |  | +  $ar_const = array_keys($ar_const);
 | 
	
		
			
				|  |  | +  $count = 0;
 | 
	
		
			
				|  |  | +  $init_count = 0;
 | 
	
		
			
				|  |  | +  foreach ($ar_const as $name)
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +    if (strpos($name, 'QBF_VAR_') === 0)
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +      $count++;
 | 
	
		
			
				|  |  | +      $default = 'QBF_DEF_'. drupal_substr($name, drupal_strlen('QBF_VAR_'));
 | 
	
		
			
				|  |  | +      if (defined($default))
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +        variable_set(constant($name), constant($default));
 | 
	
		
			
				|  |  | +        $init_count++;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  drupal_set_message(t('Initialized QBF module settings (@initCount/@count parameters). You can <a href="!link">complete setup</a>.',
 | 
	
		
			
				|  |  | +    array
 | 
	
		
			
				|  |  | +      (
 | 
	
		
			
				|  |  | +      '@initCount' => $init_count,
 | 
	
		
			
				|  |  | +      '@count'     => $count,
 | 
	
		
			
				|  |  | +      '!link'      => url(QBF_PATH_SETTINGS),
 | 
	
		
			
				|  |  | +      )));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    switch ($GLOBALS['db_type'])
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  |      case 'mysql':
 | 
	
		
			
				|  |  |      case 'mysqli':
 | 
	
		
			
				|  |  |        $sq = 'CREATE TABLE {qbf_queries} '
 | 
	
		
			
				|  |  | -          . '  ( '
 | 
	
		
			
				|  |  | -          . "  `qid`                   INT(10)          NOT NULL DEFAULT '0' COMMENT 'Query ID', "
 | 
	
		
			
				|  |  | -          . "  `uid`                   INT(10)          NOT NULL DEFAULT '0' COMMENT 'User ID', "
 | 
	
		
			
				|  |  | -          . "  `name`                  VARCHAR(40)      NOT NULL DEFAULT ''  COMMENT 'Query name', "
 | 
	
		
			
				|  |  | -          . "  `query`                 TEXT             NOT NULL             COMMENT 'Query array', "
 | 
	
		
			
				|  |  | -          . '  PRIMARY KEY (`qid`) , '
 | 
	
		
			
				|  |  | -          . '  INDEX (`uid`) '
 | 
	
		
			
				|  |  | -          . '  ) '
 | 
	
		
			
				|  |  | -          . 'ENGINE = MyISAM '
 | 
	
		
			
				|  |  | -          . 'CHARACTER SET = utf8 '
 | 
	
		
			
				|  |  | -          . "COMMENT = 'QBF Query store' ";
 | 
	
		
			
				|  |  | +          .'  ( '
 | 
	
		
			
				|  |  | +          ."  `qid`                   INT(10)          NOT NULL DEFAULT '0' COMMENT 'Query ID', "
 | 
	
		
			
				|  |  | +          ."  `uid`                   INT(10)          NOT NULL DEFAULT '0' COMMENT 'User ID', "
 | 
	
		
			
				|  |  | +          ."  `name`                  VARCHAR(40)      NOT NULL DEFAULT ''  COMMENT 'Query name', "
 | 
	
		
			
				|  |  | +          ."  `query`                 TEXT             NOT NULL             COMMENT 'Query array', "
 | 
	
		
			
				|  |  | +          ."  `created`               INT(10)          NOT NULL DEFAULT '0' COMMENT 'Creation timestamp', "
 | 
	
		
			
				|  |  | +          ."  `updated`               INT(10)          NOT NULL DEFAULT '0' COMMENT 'Update timestamp', "
 | 
	
		
			
				|  |  | +          .'  PRIMARY KEY          (`qid`) , '
 | 
	
		
			
				|  |  | +          .'  KEY         `uid`    (`uid`), '
 | 
	
		
			
				|  |  | +          .'  KEY         `updated`(`updated`) '
 | 
	
		
			
				|  |  | +          .'  ) '
 | 
	
		
			
				|  |  | +          .'ENGINE = MyISAM '
 | 
	
		
			
				|  |  | +          .'CHARACTER SET = utf8 '
 | 
	
		
			
				|  |  | +          ."COMMENT = 'QBF Query store' ";
 | 
	
		
			
				|  |  |        db_query($sq);
 | 
	
		
			
				|  |  |        break;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -61,10 +94,23 @@ function qbf_install()
 | 
	
		
			
				|  |  |   *   - none
 | 
	
		
			
				|  |  |   * - Do NOT remove module schema version from {system}
 | 
	
		
			
				|  |  |   *
 | 
	
		
			
				|  |  | + * @ingroup hooks
 | 
	
		
			
				|  |  |   * @return void
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  function qbf_uninstall()
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  | +  // Remove settings
 | 
	
		
			
				|  |  | +  $ar_const = get_defined_constants();
 | 
	
		
			
				|  |  | +  $ar_const = array_keys($ar_const);
 | 
	
		
			
				|  |  | +  foreach ($ar_const as $name)
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +    if (strpos($name, 'QBF_VAR_') === 0)
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +      variable_del($name);
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  drupal_set_message(t('Removed QBF module settings.'));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    switch ($GLOBALS['db_type'])
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  |      case 'mysql':
 | 
	
	
		
			
				|  | @@ -85,6 +131,7 @@ function qbf_uninstall()
 | 
	
		
			
				|  |  |   *
 | 
	
		
			
				|  |  |   * For now, just define a proper initial schema version.
 | 
	
		
			
				|  |  |   *
 | 
	
		
			
				|  |  | + * @ingroup hooks
 | 
	
		
			
				|  |  |   * @return array
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  function qbf_update_5000()
 |