[ Index ]
 

Code source de phpMyAdmin 2.10.3

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/ -> pmd_common.php (source)

   1  <?php
   2  /* $Id: pmd_common.php 9853 2007-01-19 18:14:44Z lem9 $ */
   3  // vim: expandtab sw=4 ts=4 sts=4:
   4  
   5  /*
   6  @author  Ivan A Kirillov (Ivan.A.Kirillov@gmail.com)
   7  */
   8  
   9  require_once  './libraries/common.lib.php';
  10  // not understand
  11  require_once  './libraries/header_http.inc.php';
  12  
  13  $GLOBALS['PMD']['STYLE']          = 'default'; 
  14  
  15  require_once  './libraries/relation.lib.php';
  16  $cfgRelation = PMA_getRelationsParam();
  17  
  18  $script_display_field = "<script>\n var display_field = new Array();\n";
  19  
  20  function get_tabs() // PMA_DBI
  21  {
  22      global $db, $script_display_field;
  23      $GLOBALS['PMD']['TABLE_NAME'] = array();// that foreach no error
  24      $GLOBALS['PMD']['OWNER'] = array(); 
  25      $GLOBALS['PMD']['TABLE_NAME_SMALL'] = array(); 
  26  
  27      $tables = PMA_DBI_get_tables_full($db);
  28      // seems to be needed later
  29      PMA_DBI_select_db($db);
  30      $i = 0;
  31      foreach ($tables as $one_table) {
  32          $GLOBALS['PMD']['TABLE_NAME'][$i] = $db . "." . $one_table['TABLE_NAME'];
  33          $GLOBALS['PMD']['OWNER'][$i] = $db;
  34          $GLOBALS['PMD']['TABLE_NAME_SMALL'][$i] = $one_table['TABLE_NAME'];
  35          
  36          $GLOBALS['PMD_URL']['TABLE_NAME'][$i] = urlencode($db . "." . $one_table['TABLE_NAME']);
  37          $GLOBALS['PMD_URL']['OWNER'][$i] = urlencode($db);
  38          $GLOBALS['PMD_URL']['TABLE_NAME_SMALL'][$i] = urlencode($one_table['TABLE_NAME']);
  39          
  40          $GLOBALS['PMD_OUT']['TABLE_NAME'][$i] = htmlspecialchars($db . "." . $one_table['TABLE_NAME'], ENT_QUOTES);
  41          $GLOBALS['PMD_OUT']['OWNER'][$i] = htmlspecialchars($db, ENT_QUOTES);
  42          $GLOBALS['PMD_OUT']['TABLE_NAME_SMALL'][$i] = htmlspecialchars($one_table['TABLE_NAME'], ENT_QUOTES);   
  43            
  44          $GLOBALS['PMD']['TABLE_TYPE'][$i] = strtoupper($one_table['ENGINE']);
  45          
  46          $DF = PMA_getDisplayField($db, $one_table['TABLE_NAME']);
  47          if($DF!='')
  48          $script_display_field .= "  display_field['" . $GLOBALS['PMD_URL']["TABLE_NAME_SMALL"][$i] . "'] = '" . urlencode($DF) . "';\n";
  49          
  50          $i++;
  51      } 
  52      $script_display_field .= "</script>\n";
  53      //  return $GLOBALS['PMD'];       // many bases // not use ??????
  54  }
  55  
  56  function get_tab_info() // PMA_DBI //PMA_backquote
  57  { 
  58      global $db;
  59      PMA_DBI_select_db($db);
  60      $tab_column = array();
  61      for ( $i=0; $i < sizeof( $GLOBALS['PMD']["TABLE_NAME"] ); $i++ ) {
  62          PMA_DBI_select_db($db);
  63          $fields_rs   = PMA_DBI_query('SHOW FULL FIELDS FROM '.PMA_backquote($GLOBALS['PMD']["TABLE_NAME_SMALL"][$i]), NULL, PMA_DBI_QUERY_STORE);
  64          $fields_cnt  = PMA_DBI_num_rows($fields_rs);
  65          $j=0;
  66          while ($row = PMA_DBI_fetch_assoc($fields_rs)) {   
  67              $tab_column[$GLOBALS['PMD']['TABLE_NAME'][$i]]['COLUMN_ID'][$j]   = $j;
  68              $tab_column[$GLOBALS['PMD']['TABLE_NAME'][$i]]['COLUMN_NAME'][$j] = $row['Field'];
  69              $tab_column[$GLOBALS['PMD']['TABLE_NAME'][$i]]['TYPE'][$j]        = $row['Type'];
  70              $tab_column[$GLOBALS['PMD']['TABLE_NAME'][$i]]['NULLABLE'][$j]    = $row['Null'];
  71              $j++;
  72          }
  73      }
  74  return $tab_column;
  75  }
  76  //-------------------------------------CONTR-----------------------------------------------
  77  function get_script_contr() {
  78      global $db;
  79      PMA_DBI_select_db($db);
  80      $con["C_NAME"] = array();
  81      $i = 0;
  82      $alltab_rs  = PMA_DBI_query('SHOW TABLES FROM ' . PMA_backquote($db), NULL, PMA_DBI_QUERY_STORE);
  83      while ($val = @PMA_DBI_fetch_row($alltab_rs)) {
  84          $row = PMA_getForeigners($db,$val[0],'','internal');
  85          //echo "<br> internal ".$db." - ".$val[0]." - ";
  86          //print_r($row );
  87          if ($row !== false) {
  88              foreach ($row as $field => $value) { 
  89                  $con['C_NAME'][$i] = '';
  90                  $con['DTN'][$i]    = urlencode($db . "." . $val[0]);
  91                  $con['DCN'][$i]    = urlencode($field);
  92                  $con['STN'][$i]    = urlencode($value['foreign_db'] . "." . $value['foreign_table']);
  93                  $con['SCN'][$i]    = urlencode($value['foreign_field']);
  94                  $i++;
  95              }
  96          }
  97          $row = PMA_getForeigners($db,$val[0],'','innodb');
  98          //echo "<br> INNO ";
  99          //print_r($row );
 100          if ($row !== false) {
 101              foreach ($row as $field => $value) { 
 102                  $con['C_NAME'][$i] = '';
 103                  $con['DTN'][$i]    = urlencode($db.".".$val[0]);
 104                  $con['DCN'][$i]    = urlencode($field);
 105                  $con['STN'][$i]    = urlencode($value['foreign_db'].".".$value['foreign_table']);
 106                  $con['SCN'][$i]    = urlencode($value['foreign_field']);
 107                  $i++;
 108              }
 109          }
 110      } 
 111    
 112      $ti = 0;
 113      $script_contr = "<script>\n var contr = new Array();\n";
 114      for ( $i=0; $i < sizeof( $con["C_NAME"] ); $i++ ) {
 115          $script_contr .= " contr[$ti] = new Array();\n";
 116          $script_contr .= "  contr[$ti]['".$con['C_NAME'][$i]."'] = new Array();\n";
 117          if (in_array($con['DTN'][$i],$GLOBALS['PMD_URL']["TABLE_NAME"]) && in_array($con['STN'][$i],$GLOBALS['PMD_URL']["TABLE_NAME"])) {
 118              $script_contr .= "  contr[$ti]['".$con['C_NAME'][$i]."']['".$con['DTN'][$i]."'] = new Array();\n";$m_col = array();//}
 119              $script_contr .= "  contr[$ti]['".$con['C_NAME'][$i]."']['".$con['DTN'][$i]."']['".$con['DCN'][$i]."'] = new Array();\n";//}
 120              $script_contr .= "    contr[$ti]['".$con['C_NAME'][$i]."']['".$con['DTN'][$i]."']['".$con['DCN'][$i]."'][0] = '".$con['STN'][$i]."';\n"; // 
 121              $script_contr .= "    contr[$ti]['".$con['C_NAME'][$i]."']['".$con['DTN'][$i]."']['".$con['DCN'][$i]."'][1] = '".$con['SCN'][$i]."';\n"; // 
 122          }
 123      $ti++;
 124      }
 125      $script_contr .= "</script>\n";
 126      return $script_contr;
 127  }
 128  
 129  function get_pk_or_unique_keys() {
 130      global $db;
 131      require_once ('./libraries/tbl_indexes.lib.php');
 132  
 133      PMA_DBI_select_db($db);
 134      $tables_pk_or_unique_keys = array();
 135    
 136      for( $I=0; $I<sizeof($GLOBALS['PMD']['TABLE_NAME_SMALL']); $I++) {
 137          $ret_keys = PMA_get_indexes($GLOBALS['PMD']['TABLE_NAME_SMALL'][$I]);
 138          if (! empty($ret_keys)) {
 139              // reset those as the function uses them by reference
 140              $indexes = $indexes_info = $indexes_data = array();
 141              PMA_extract_indexes($ret_keys, $indexes, $indexes_info, $indexes_data);
 142              // for now, take into account only the first index segment
 143              foreach ($indexes_data as $key_name => $one_index) {
 144                  $column_name = $one_index[1]['Column_name'];
 145                  if (isset($indexes_info[$key_name]) && $indexes_info[$key_name]['Non_unique'] == 0) {
 146                      $tables_pk_or_unique_keys[$GLOBALS['PMD']['OWNER'][$I] . '.' .$GLOBALS['PMD']['TABLE_NAME_SMALL'][$I] . '.' . $column_name] = 1;
 147                  }
 148              }
 149          }
 150      }
 151      return $tables_pk_or_unique_keys;
 152  }
 153  
 154  function get_all_keys() {
 155      global $db;
 156      require_once ('./libraries/tbl_indexes.lib.php');
 157  
 158      PMA_DBI_select_db($db);
 159      $tables_all_keys = array();
 160    
 161      for( $I=0; $I<sizeof($GLOBALS['PMD']['TABLE_NAME_SMALL']); $I++) {
 162          $ret_keys = PMA_get_indexes($GLOBALS['PMD']['TABLE_NAME_SMALL'][$I]);
 163          if (! empty($ret_keys)) {
 164              // reset those as the function uses them by reference
 165              $indexes = $indexes_info = $indexes_data = array();
 166              PMA_extract_indexes($ret_keys, $indexes, $indexes_info, $indexes_data);
 167              // for now, take into account only the first index segment
 168              foreach ($indexes_data as $one_index) {
 169                  $column_name = $one_index[1]['Column_name'];
 170                  $tables_all_keys[$GLOBALS['PMD']['OWNER'][$I] . '.' .$GLOBALS['PMD']['TABLE_NAME_SMALL'][$I] . '.' . $column_name] = 1;
 171              }
 172          }
 173      }
 174      return $tables_all_keys;
 175  }
 176  
 177  function get_script_tabs() {
 178      $script_tabs = "<script>\n var j_tabs = new Array();\n";
 179      for ( $i=0; $i < sizeof( $GLOBALS['PMD']['TABLE_NAME'] ); $i++ ) {
 180          $script_tabs .= "j_tabs['".$GLOBALS['PMD_URL']['TABLE_NAME'][$i]."'] = '".$GLOBALS['PMD']['TABLE_TYPE'][$i]."';\n";
 181      }
 182      $script_tabs .= "</script>\n";
 183      return $script_tabs;
 184  }
 185  
 186  function get_tab_pos() { 
 187      $stmt = PMA_query_as_cu("SELECT * FROM " . PMA_backquote($GLOBALS['cfgRelation']['designer_coords']), FALSE, PMA_DBI_QUERY_STORE); 
 188      if ( $stmt ) // exist table repository
 189      {
 190          while ($t_p = PMA_DBI_fetch_array($stmt, MYSQL_ASSOC)) { 
 191              $t_name = $t_p['db_name'] . '.' . $t_p['table_name'];
 192              $tab_pos[ $t_name ]['X'] = $t_p['x'];
 193              $tab_pos[ $t_name ]['Y'] = $t_p['y'];
 194              $tab_pos[ $t_name ]['V'] = $t_p['v'];
 195              $tab_pos[ $t_name ]['H'] = $t_p['h'];
 196          }
 197      }    
 198      return isset($tab_pos) ? $tab_pos : NULL;
 199  }
 200  
 201  function get_owners() {
 202      $m = array();
 203      $j = 0;
 204      for ( $i=0; $i < sizeof( $GLOBALS['PMD']["OWNER"] ); $i++ ) {
 205          if( ! in_array($GLOBALS['PMD']["OWNER"][$i],$m)) {
 206              $m[$j++] = $GLOBALS['PMD']["OWNER"][$i];
 207          }
 208      }
 209      return $m;
 210  }
 211  
 212  get_tabs();
 213  ?>


Généré le : Mon Nov 26 15:18:20 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics