[ Index ] |
|
Code source de phpMyAdmin 2.10.3 |
1 <?php 2 /* $Id: tbl_properties.inc.php 9615 2006-10-26 14:23:46Z nijel $ */ 3 // vim: expandtab sw=4 ts=4 sts=4: 4 // Check parameters 5 6 require_once ('./libraries/common.lib.php'); 7 PMA_checkParameters(array('db', 'table', 'action', 'num_fields')); 8 9 10 // Get available character sets and storage engines 11 require_once ('./libraries/mysql_charsets.lib.php'); 12 require_once ('./libraries/storage_engines.lib.php'); 13 14 if (is_int($cfg['DefaultPropDisplay'])) { 15 if ($num_fields <= $cfg['DefaultPropDisplay']) { 16 $display_type = 'vertical'; 17 } else { 18 $display_type = 'horizontal'; 19 } 20 } else { 21 $display_type = $cfg['DefaultPropDisplay']; 22 } 23 24 if ($cfg['CtrlArrowsMoving']) { 25 ?> 26 <script src="./js/keyhandler.js" type="text/javascript" language="javascript"></script> 27 <script type="text/javascript" language="javascript"> 28 <!-- 29 var switch_movement = <?php echo $display_type == 'horizontal' ? '0' : '1'; ?>; 30 document.onkeydown = onKeyDownArrowsHandler; 31 // --> 32 </script> 33 <?php 34 } 35 // here, the div_x_7 represents a div id which contains 36 // the default CURRENT TIMESTAMP checkbox and label 37 // and, field_x_7a represents the checkbox itself 38 39 if (PMA_MYSQL_INT_VERSION >= 40102) { 40 ?> 41 <script type="text/javascript" language="javascript"> 42 <!-- 43 function display_field_options(field_type, i) { 44 if (field_type == 'TIMESTAMP') { 45 getElement('div_' + i + '_7').style.display = 'block'; 46 } else { 47 getElement('div_' + i + '_7').style.display = 'none'; 48 getElement('field_' + i + '_7a').checked = false; 49 } 50 return true; 51 } 52 // --> 53 </script> 54 <?php } ?> 55 56 <form method="post" action="<?php echo $action; ?>"> 57 <?php 58 echo PMA_generate_common_hidden_inputs($db, $table); 59 if ($action == 'tbl_create.php') { 60 ?> 61 <input type="hidden" name="reload" value="1" /> 62 <?php 63 } elseif ($action == 'tbl_addfield.php') { 64 ?> 65 <input type="hidden" name="field_where" value="<?php echo $field_where; ?>" /> 66 <input type="hidden" name="after_field" value="<?php echo $after_field; ?>" /> 67 <?php 68 } 69 70 if (isset($num_fields)) { 71 ?> 72 <input type="hidden" name="orig_num_fields" value="<?php echo $num_fields; ?>" /> 73 <?php 74 } 75 76 if (isset($field_where)) { 77 ?> 78 <input type="hidden" name="orig_field_where" value="<?php echo $field_where; ?>" /> 79 <?php 80 } 81 82 if (isset($after_field)) { 83 ?> 84 <input type="hidden" name="orig_after_field" value="<?php echo $after_field; ?>" /> 85 <?php 86 } 87 88 if (isset($selected) && is_array($selected)) { 89 foreach ($selected AS $o_fld_nr => $o_fld_val) { 90 ?> 91 <input type="hidden" name="selected[<?php echo $o_fld_nr; ?>]" value="<?php echo urlencode($o_fld_val); ?>" /> 92 <?php 93 if (!isset($true_selected)) { 94 ?> 95 <input type="hidden" name="true_selected[<?php echo $o_fld_nr; ?>]" value="<?php echo urlencode($o_fld_val); ?>" /> 96 <?php 97 } 98 99 } 100 101 if (isset($true_selected) && is_array($true_selected)) { 102 foreach ($true_selected AS $o_fld_nr => $o_fld_val) { 103 ?> 104 <input type="hidden" name="true_selected[<?php echo $o_fld_nr; ?>]" value="<?php echo urlencode($o_fld_val); ?>" /> 105 <?php 106 } 107 } 108 109 } elseif (isset($field)) { 110 ?> 111 <input type="hidden" name="orig_field" value="<?php echo urlencode($field); ?>" /> 112 <input type="hidden" name="true_selected[] value="<?php echo (isset($orig_field) ? $orig_field : urlencode($field)); ?>" /> 113 <?php 114 } 115 116 $is_backup = ($action != 'tbl_create.php' && $action != 'tbl_addfield.php'); 117 118 $header_cells = array(); 119 $content_cells = array(); 120 121 $header_cells[] = $strField; 122 $header_cells[] = $strType . ($GLOBALS['cfg']['ReplaceHelpImg'] ? PMA_showMySQLDocu('SQL-Syntax', 'data-types') : '<br /><span style="font-weight: normal">' . PMA_showMySQLDocu('SQL-Syntax', 'data-types') . '</span>'); 123 $header_cells[] = $strLengthSet . '<sup>1</sup>'; 124 if (PMA_MYSQL_INT_VERSION >= 40100) { 125 $header_cells[] = $strCollation; 126 } 127 $header_cells[] = $strAttr; 128 $header_cells[] = $strNull; 129 $header_cells[] = $strDefault . '<sup>2</sup>'; 130 $header_cells[] = $strExtra; 131 132 133 134 // lem9: We could remove this 'if' and let the key information be shown and 135 // editable. However, for this to work, tbl_alter must be modified to use the 136 // key fields, as tbl_addfield does. 137 138 if (!$is_backup) { 139 $header_cells[] = $cfg['PropertiesIconic'] ? '<img class="icon" src="' . $pmaThemeImage . 'b_primary.png" width="16" height="16" alt="' . $strPrimary . '" title="' . $strPrimary . '" />' : $strPrimary; 140 $header_cells[] = $cfg['PropertiesIconic'] ? '<img class="icon" src="' . $pmaThemeImage . 'b_index.png" width="16" height="16" alt="' . $strIndex . '" title="' . $strIndex . '" />' : $strIndex; 141 $header_cells[] = $cfg['PropertiesIconic'] ? '<img class="icon" src="' . $pmaThemeImage . 'b_unique.png" width="16" height="16" alt="' . $strUnique . '" title="' . $strUnique . '" />' : $strUnique; 142 $header_cells[] = '---'; 143 $header_cells[] = $cfg['PropertiesIconic'] ? '<img class="icon" src="' . $pmaThemeImage . 'b_ftext.png" width="16" height="16" alt="' . $strIdxFulltext . '" title="' . $strIdxFulltext . '" />' : $strIdxFulltext; 144 } 145 146 require_once ('./libraries/relation.lib.php'); 147 require_once ('./libraries/transformations.lib.php'); 148 $cfgRelation = PMA_getRelationsParam(); 149 150 $comments_map = array(); 151 $mime_map = array(); 152 $available_mime = array(); 153 154 if ($cfgRelation['commwork'] || PMA_MYSQL_INT_VERSION >= 40100) { 155 $comments_map = PMA_getComments($db, $table); 156 $header_cells[] = $strComments; 157 158 if ($cfgRelation['mimework'] && $cfg['BrowseMIME']) { 159 $mime_map = PMA_getMIME($db, $table); 160 $available_mime = PMA_getAvailableMIMEtypes(); 161 162 $header_cells[] = $strMIME_MIMEtype; 163 $header_cells[] = $strMIME_transformation; 164 $header_cells[] = $strMIME_transformation_options . '<sup>3</sup>'; 165 } 166 } 167 168 // garvin: workaround for field_fulltext, because its submitted indizes contain 169 // the index as a value, not a key. Inserted here for easier maintaineance 170 // and less code to change in existing files. 171 if (isset($field_fulltext) && is_array($field_fulltext)) { 172 foreach ($field_fulltext AS $fulltext_nr => $fulltext_indexkey) { 173 $submit_fulltext[$fulltext_indexkey] = $fulltext_indexkey; 174 } 175 } 176 177 for ( $i = 0 ; $i <= $num_fields; $i++ ) { 178 $submit_null = FALSE; 179 if (isset($regenerate) && $regenerate == TRUE) { 180 // An error happened with previous inputs, so we will restore the data 181 // to embed it once again in this form. 182 183 $row['Field'] = (isset($field_name) && isset($field_name[$i]) ? $field_name[$i] : FALSE); 184 $row['Type'] = (isset($field_type) && isset($field_type[$i]) ? $field_type[$i] : FALSE); 185 if (PMA_MYSQL_INT_VERSION >= 40100) { 186 $row['Collation'] = (isset($field_collation) && isset($field_collation[$i]) ? $field_collation[$i] : ''); 187 } 188 $row['Null'] = (isset($field_null) && isset($field_null[$i]) ? $field_null[$i] : ''); 189 if (isset($field_type[$i]) && $row['Null'] == '') { 190 $submit_null = TRUE; 191 } 192 193 if (isset(${'field_key_' . $i}) && ${'field_key_' . $i} == 'primary_' . $i) { 194 $row['Key'] = 'PRI'; 195 } elseif (isset(${'field_key_' . $i}) && ${'field_key_' . $i} == 'index_' . $i) { 196 $row['Key'] = 'MUL'; 197 } elseif (isset(${'field_key_' . $i}) && ${'field_key_' . $i} == 'unique_' . $i) { 198 $row['Key'] = 'UNI'; 199 } else { 200 $row['Key'] = ''; 201 } 202 203 $row['Default'] = (isset($field_default) && isset($field_default[$i]) ? $field_default[$i] : FALSE); 204 $row['Extra'] = (isset($field_extra) && isset($field_extra[$i]) ? $field_extra[$i] : FALSE); 205 $row['Comment'] = (isset($submit_fulltext) && isset($submit_fulltext[$i]) && ($submit_fulltext[$i] == $i) ? 'FULLTEXT' : FALSE); 206 207 $submit_length = (isset($field_length) && isset($field_length[$i]) ? $field_length[$i] : FALSE); 208 $submit_attribute = (isset($field_attribute) && isset($field_attribute[$i]) ? $field_attribute[$i] : FALSE); 209 210 $submit_default_current_timestamp = (isset($field_default_current_timestamp) && isset($field_default_current_timestamp[$i]) ? TRUE : FALSE); 211 212 if (isset($field_comments) && isset($field_comments[$i])) { 213 $comments_map[$row['Field']] = $field_comments[$i]; 214 } 215 216 if (isset($field_mimetype) && isset($field_mimetype[$i])) { 217 $mime_map[$row['Field']]['mimetype'] = $field_mimetype[$i]; 218 } 219 220 if (isset($field_transformation) && isset($field_transformation[$i])) { 221 $mime_map[$row['Field']]['transformation'] = $field_transformation[$i]; 222 } 223 224 if (isset($field_transformation_options) && isset($field_transformation_options[$i])) { 225 $mime_map[$row['Field']]['transformation_options'] = $field_transformation_options[$i]; 226 } 227 228 } elseif (isset($fields_meta) && isset($fields_meta[$i])) { 229 $row = $fields_meta[$i]; 230 } 231 232 // Cell index: If certain fields get left out, the counter shouldn't chage. 233 $ci = 0; 234 // Everytime a cell shall be left out the STRG-jumping feature, $ci_offset 235 // has to be incremented ($ci_offset++) 236 $ci_offset = -1; 237 238 if ($is_backup) { 239 $backup_field = (isset($true_selected) && isset($true_selected[$i]) && $true_selected[$i] ? $true_selected[$i] : (isset($row) && isset($row['Field']) ? urlencode($row['Field']) : '')); 240 $content_cells[$i][$ci] = "\n" . '<input type="hidden" name="field_orig[]" value="' . $backup_field . '" />' . "\n"; 241 } else { 242 $content_cells[$i][$ci] = ''; 243 } 244 245 $content_cells[$i][$ci] .= "\n" . '<input id="field_' . $i . '_' . ($ci - $ci_offset) . '" type="text" name="field_name[]" size="10" maxlength="64" value="' . (isset($row) && isset($row['Field']) ? str_replace('"', '"', $row['Field']) : '') . '" class="textfield" title="' . $strField . '" />'; 246 $ci++; 247 $content_cells[$i][$ci] = '<select name="field_type[]" id="field_' . $i . '_' . ($ci - $ci_offset) . '" '; 248 if (PMA_MYSQL_INT_VERSION >= 40102) { 249 $content_cells[$i][$ci] .= 'onchange="display_field_options(this.options[this.selectedIndex].value,' . $i .')" '; 250 } 251 $content_cells[$i][$ci] .= '>' . "\n"; 252 253 if (empty($row['Type'])) { 254 $row['Type'] = ''; 255 $type = ''; 256 } else { 257 $type = $row['Type']; 258 } 259 // set or enum types: slashes single quotes inside options 260 if (preg_match('@^(set|enum)\((.+)\)$@i', $type, $tmp)) { 261 $type = $tmp[1]; 262 $length = substr(preg_replace('@([^,])\'\'@', '\\1\\\'', ',' . $tmp[2]), 1); 263 } else { 264 // strip the "BINARY" attribute, except if we find "BINARY(" because 265 // this would be a BINARY or VARBINARY field type 266 $type = preg_replace('@BINARY([^\(])@i', '', $type); 267 $type = preg_replace('@ZEROFILL@i', '', $type); 268 $type = preg_replace('@UNSIGNED@i', '', $type); 269 270 if (strpos($type, '(')) { 271 $length = chop(substr($type, (strpos($type, '(') + 1), (strpos($type, ')') - strpos($type, '(') - 1))); 272 $type = chop(substr($type, 0, strpos($type, '('))); 273 } else { 274 $length = ''; 275 } 276 } // end if else 277 278 // some types, for example longtext, are reported as 279 // "longtext character set latin7" when their charset and / or collation 280 // differs from the ones of the corresponding database. 281 if (PMA_MYSQL_INT_VERSION >= 40100) { 282 $tmp = strpos($type, 'character set'); 283 if ($tmp) { 284 $type = substr($type, 0, $tmp-1); 285 } 286 } 287 288 if (isset($submit_length) && $submit_length != FALSE) { 289 $length = $submit_length; 290 } 291 292 // rtrim the type, for cases like "float unsigned" 293 $type = rtrim($type); 294 $type_upper = strtoupper($type); 295 296 $cnt_column_types = count($cfg['ColumnTypes']); 297 for ($j = 0; $j < $cnt_column_types; $j++) { 298 $content_cells[$i][$ci] .= ' <option value="'. $cfg['ColumnTypes'][$j] . '"'; 299 if ($type_upper == strtoupper($cfg['ColumnTypes'][$j])) { 300 $content_cells[$i][$ci] .= ' selected="selected"'; 301 } 302 $content_cells[$i][$ci] .= '>' . $cfg['ColumnTypes'][$j] . '</option>' . "\n"; 303 } // end for 304 305 $content_cells[$i][$ci] .= ' </select>'; 306 $ci++; 307 308 if ($is_backup) { 309 $content_cells[$i][$ci] = "\n" . '<input type="hidden" name="field_length_orig[]" value="' . urlencode($length) . '" />'; 310 } else { 311 $content_cells[$i][$ci] = ''; 312 } 313 314 if (preg_match('@^(set|enum)$@i', $type)) { 315 $binary = 0; 316 $unsigned = 0; 317 $zerofill = 0; 318 $length_to_display = htmlspecialchars($length); 319 } else { 320 $length_to_display = $length; 321 if (!preg_match('@BINARY[\(]@i', $row['Type']) && PMA_MYSQL_INT_VERSION < 40100) { 322 $binary = stristr($row['Type'], 'binary'); 323 } else { 324 $binary = FALSE; 325 } 326 $unsigned = stristr($row['Type'], 'unsigned'); 327 $zerofill = stristr($row['Type'], 'zerofill'); 328 } 329 330 $content_cells[$i][$ci] .= "\n" . '<input id="field_' . $i . '_' . ($ci - $ci_offset) . '" type="text" name="field_length[]" size="8" value="' . str_replace('"', '"', $length_to_display) . '" class="textfield" />' . "\n"; 331 $ci++; 332 333 if (PMA_MYSQL_INT_VERSION >= 40100) { 334 $tmp_collation = empty($row['Collation']) ? null : $row['Collation']; 335 $content_cells[$i][$ci] = PMA_generateCharsetDropdownBox(PMA_CSDROPDOWN_COLLATION, 'field_collation[]', 'field_' . $i . '_' . ($ci - $ci_offset), $tmp_collation, FALSE); 336 unset($tmp_collation); 337 $ci++; 338 } 339 340 $content_cells[$i][$ci] = '<select style="font-size: 70%;" name="field_attribute[]" id="field_' . $i . '_' . ($ci - $ci_offset) . '">' . "\n"; 341 342 $attribute = ''; 343 if ($binary) { 344 $attribute = 'BINARY'; 345 } 346 if ($unsigned) { 347 $attribute = 'UNSIGNED'; 348 } 349 if ($zerofill) { 350 $attribute = 'UNSIGNED ZEROFILL'; 351 } 352 353 if (isset($submit_attribute) && $submit_attribute != FALSE) { 354 $attribute = $submit_attribute; 355 } 356 357 // here, we have a TIMESTAMP that SHOW FULL FIELDS reports as having the 358 // NULL attribute, but SHOW CREATE TABLE says the contrary. Believe 359 // the latter. 360 if (isset($row['Field']) 361 && isset($analyzed_sql[0]) 362 && isset($analyzed_sql[0]['create_table_fields']) 363 && isset($analyzed_sql[0]['create_table_fields'][$row['Field']]['type']) 364 && $analyzed_sql[0]['create_table_fields'][$row['Field']]['type'] == 'TIMESTAMP' 365 && $analyzed_sql[0]['create_table_fields'][$row['Field']]['timestamp_not_null'] == true) { 366 $row['Null'] = ''; 367 } 368 369 // MySQL 4.1.2+ TIMESTAMP options 370 // (if on_update_current_timestamp is set, then it's TRUE) 371 if (isset($row['Field']) && isset($analyzed_sql[0]['create_table_fields'][$row['Field']]['on_update_current_timestamp'])) { 372 $attribute = 'ON UPDATE CURRENT_TIMESTAMP'; 373 } 374 if ((isset($row['Field']) && isset($analyzed_sql[0]['create_table_fields'][$row['Field']]['default_current_timestamp'])) 375 || (isset($submit_default_current_timestamp) && $submit_default_current_timestamp) ) { 376 $default_current_timestamp = TRUE; 377 } else { 378 $default_current_timestamp = FALSE; 379 } 380 381 // Dynamically add ON UPDATE CURRENT_TIMESTAMP to the possible attributes 382 if (PMA_MYSQL_INT_VERSION >= 40102 && !in_array('ON UPDATE CURRENT_TIMESTAMP', $cfg['AttributeTypes'])) { 383 $cfg['AttributeTypes'][] = 'ON UPDATE CURRENT_TIMESTAMP'; 384 } 385 386 387 $cnt_attribute_types = count($cfg['AttributeTypes']); 388 for ($j = 0;$j < $cnt_attribute_types; $j++) { 389 if (PMA_MYSQL_INT_VERSION >= 40100 && $cfg['AttributeTypes'][$j] == 'BINARY') { 390 continue; 391 } 392 $content_cells[$i][$ci] .= ' <option value="'. $cfg['AttributeTypes'][$j] . '"'; 393 if (strtoupper($attribute) == strtoupper($cfg['AttributeTypes'][$j])) { 394 $content_cells[$i][$ci] .= ' selected="selected"'; 395 } 396 $content_cells[$i][$ci] .= '>' . $cfg['AttributeTypes'][$j] . '</option>' . "\n"; 397 } 398 399 $content_cells[$i][$ci] .= '</select>'; 400 $ci++; 401 402 $content_cells[$i][$ci] = '<select name="field_null[]" id="field_' . $i . '_' . ($ci - $ci_offset) . '">'; 403 404 if ((!isset($row) || empty($row['Null']) || $row['Null'] == 'NO' || $row['Null'] == 'NOT NULL') && $submit_null == FALSE) { 405 $content_cells[$i][$ci] .= "\n"; 406 $content_cells[$i][$ci] .= ' <option value="NOT NULL" selected="selected" >not null</option>' . "\n"; 407 $content_cells[$i][$ci] .= ' <option value="">null</option>' . "\n"; 408 } else { 409 $content_cells[$i][$ci] .= "\n"; 410 $content_cells[$i][$ci] .= ' <option value="" selected="selected" >null</option>' . "\n"; 411 $content_cells[$i][$ci] .= ' <option value="NOT NULL">not null</option>' . "\n"; 412 } 413 414 $content_cells[$i][$ci] .= "\n" . '</select>'; 415 $ci++; 416 417 if (isset($row) 418 && !isset($row['Default']) && isset($row['Null']) && $row['Null'] == 'YES') { 419 $row['Default'] = 'NULL'; 420 } 421 422 if ($is_backup) { 423 $content_cells[$i][$ci] = "\n" . '<input type="hidden" name="field_default_orig[]" size="8" value="' . (isset($row) && isset($row['Default']) ? urlencode($row['Default']) : '') . '" />'; 424 } else { 425 $content_cells[$i][$ci] = "\n"; 426 } 427 428 // for a TIMESTAMP, do not show CURRENT_TIMESTAMP as a default value 429 if (PMA_MYSQL_INT_VERSION >= 40102 430 && $type_upper == 'TIMESTAMP' 431 && $default_current_timestamp 432 && isset($row) 433 && isset($row['Default'])) { 434 $row['Default'] = ''; 435 } 436 437 $content_cells[$i][$ci] .= '<input id="field_' . $i . '_' . ($ci - $ci_offset) . '" type="text" name="field_default[]" size="12" value="' . (isset($row) && isset($row['Default']) ? str_replace('"', '"', $row['Default']) : '') . '" class="textfield" />'; 438 if (PMA_MYSQL_INT_VERSION >= 40102) { 439 if ($type_upper == 'TIMESTAMP') { 440 $tmp_display_type = 'block'; 441 } else { 442 $tmp_display_type = 'none'; 443 $default_current_timestamp = FALSE; 444 } 445 $content_cells[$i][$ci] .= '<br /><div id="div_' . $i . '_' . ($ci - $ci_offset) . '" style="white-space: nowrap; display: ' . $tmp_display_type . '"><input id="field_' . $i . '_' . ($ci - $ci_offset) . 'a" type="checkbox" name="field_default_current_timestamp[' . $i . ']"'; 446 if ($default_current_timestamp) { 447 $content_cells[$i][$ci] .= ' checked="checked" '; 448 } 449 $content_cells[$i][$ci] .= ' /><label for="field_' . $i . '_' . ($ci - $ci_offset) . 'a" style="font-size: 70%;">CURRENT_TIMESTAMP</label></div>'; 450 } 451 $ci++; 452 453 $content_cells[$i][$ci] = '<select name="field_extra[]" id="field_' . $i . '_' . ($ci - $ci_offset) . '">'; 454 455 if (!isset($row) || empty($row['Extra'])) { 456 $content_cells[$i][$ci] .= "\n"; 457 $content_cells[$i][$ci] .= '<option value=""></option>' . "\n"; 458 $content_cells[$i][$ci] .= '<option value="AUTO_INCREMENT">auto_increment</option>' . "\n"; 459 } else { 460 $content_cells[$i][$ci] .= "\n"; 461 $content_cells[$i][$ci] .= '<option value="AUTO_INCREMENT">auto_increment</option>' . "\n"; 462 $content_cells[$i][$ci] .= '<option value=""></option>' . "\n"; 463 } 464 465 $content_cells[$i][$ci] .= "\n" . '</select>'; 466 $ci++; 467 468 469 // lem9: See my other comment about removing this 'if'. 470 if (!$is_backup) { 471 if (isset($row) && isset($row['Key']) && $row['Key'] == 'PRI') { 472 $checked_primary = ' checked="checked"'; 473 } else { 474 $checked_primary = ''; 475 } 476 if (isset($row) && isset($row['Key']) && $row['Key'] == 'MUL') { 477 $checked_index = ' checked="checked"'; 478 } else { 479 $checked_index = ''; 480 } 481 if (isset($row) && isset($row['Key']) && $row['Key'] == 'UNI') { 482 $checked_unique = ' checked="checked"'; 483 } else { 484 $checked_unique = ''; 485 } 486 if (empty($checked_primary) 487 && empty($checked_index) 488 && empty($checked_unique)) { 489 $checked_none = ' checked="checked"'; 490 } else { 491 $checked_none = ''; 492 } 493 494 if ((isset($row) && isset($row['Comment']) && $row['Comment'] == 'FULLTEXT')) { 495 $checked_fulltext = ' checked="checked"'; 496 } else { 497 $checked_fulltext = ''; 498 } 499 500 $content_cells[$i][$ci] = "\n" . '<input type="radio" name="field_key_' . $i . '" value="primary_' . $i . '"' . $checked_primary . ' title="' . $strPrimary . '" />'; 501 $ci++; 502 503 $content_cells[$i][$ci] = "\n" . '<input type="radio" name="field_key_' . $i . '" value="index_' . $i . '"' . $checked_index . ' title="' . $strIndex . '" />'; 504 $ci++; 505 506 $content_cells[$i][$ci] = "\n" . '<input type="radio" name="field_key_' . $i . '" value="unique_' . $i . '"' . $checked_unique . ' title="' . $strUnique . '" />'; 507 $ci++; 508 509 $content_cells[$i][$ci] = "\n" . '<input type="radio" name="field_key_' . $i . '" value="none_' . $i . '"' . $checked_none . ' title="---" />'; 510 $ci++; 511 512 $content_cells[$i][$ci] = '<input type="checkbox" name="field_fulltext[]" value="' . $i . '"' . $checked_fulltext . ' title="' . $strIdxFulltext . '" />'; 513 $ci++; 514 } // end if ($action ==...) 515 516 // garvin: comments 517 if ($cfgRelation['commwork'] || PMA_MYSQL_INT_VERSION >= 40100) { 518 $content_cells[$i][$ci] = '<input id="field_' . $i . '_' . ($ci - $ci_offset) . '" type="text" name="field_comments[]" size="12" value="' . (isset($row) && isset($row['Field']) && is_array($comments_map) && isset($comments_map[$row['Field']]) ? htmlspecialchars($comments_map[$row['Field']]) : '') . '" class="textfield" />'; 519 $ci++; 520 } 521 522 // garvin: MIME-types 523 if ($cfgRelation['mimework'] && $cfg['BrowseMIME'] && $cfgRelation['commwork']) { 524 $content_cells[$i][$ci] = '<select id="field_' . $i . '_' . ($ci - $ci_offset) . '" size="1" name="field_mimetype[]">' . "\n"; 525 $content_cells[$i][$ci] .= ' <option value=""></option>' . "\n"; 526 $content_cells[$i][$ci] .= ' <option value="auto">auto-detect</option>' . "\n"; 527 528 if (is_array($available_mime['mimetype'])) { 529 foreach ($available_mime['mimetype'] AS $mimekey => $mimetype) { 530 $checked = (isset($row) && isset($row['Field']) && isset($mime_map[$row['Field']]['mimetype']) && ($mime_map[$row['Field']]['mimetype'] == str_replace('/', '_', $mimetype)) ? 'selected ' : ''); 531 $content_cells[$i][$ci] .= ' <option value="' . str_replace('/', '_', $mimetype) . '" ' . $checked . '>' . htmlspecialchars($mimetype) . '</option>'; 532 } 533 } 534 535 $content_cells[$i][$ci] .= '</select>'; 536 $ci++; 537 538 $content_cells[$i][$ci] = '<select id="field_' . $i . '_' . ($ci - $ci_offset) . '" size="1" name="field_transformation[]">' . "\n"; 539 $content_cells[$i][$ci] .= ' <option value="" title="' . $strNone . '"></option>' . "\n"; 540 if (is_array($available_mime['transformation'])) { 541 foreach ($available_mime['transformation'] AS $mimekey => $transform) { 542 $checked = (isset($row) && isset($row['Field']) && isset($mime_map[$row['Field']]['transformation']) && (preg_match('@' . preg_quote($available_mime['transformation_file'][$mimekey]) . '3?@i', $mime_map[$row['Field']]['transformation'])) ? 'selected ' : ''); 543 $tooltip = 'strTransformation_' . strtolower(preg_replace('@(\.inc\.php3?)$@', '', $available_mime['transformation_file'][$mimekey])); 544 $tooltip = isset($$tooltip) ? $$tooltip : sprintf(str_replace('<br />', ' ', $strMIME_nodescription), 'PMA_transformation_' . $tooltip . '()'); 545 $content_cells[$i][$ci] .= '<option value="' . $available_mime['transformation_file'][$mimekey] . '" ' . $checked . ' title="' . htmlspecialchars($tooltip) . '">' . htmlspecialchars($transform) . '</option>' . "\n"; 546 } 547 } 548 549 $content_cells[$i][$ci] .= '</select>'; 550 $ci++; 551 552 $content_cells[$i][$ci] = '<input id="field_' . $i . '_' . ($ci - $ci_offset) . '" type="text" name="field_transformation_options[]" size="16" value="' . (isset($row) && isset($row['Field']) && isset($mime_map[$row['Field']]['transformation_options']) ? htmlspecialchars($mime_map[$row['Field']]['transformation_options']) : '') . '" class="textfield" />'; 553 //$ci++; 554 } 555 } // end for 556 557 if ( is_array( $content_cells ) && is_array( $header_cells ) ) { 558 // last row is for javascript insert 559 $empty_row = array_pop( $content_cells ); 560 561 echo '<table id="table_columns">'; 562 if ( $display_type == 'horizontal' ) { 563 ?> 564 <tr> 565 <?php foreach ( $header_cells as $header_val ) { ?> 566 <th><?php echo $header_val; ?></th> 567 <?php } ?> 568 </tr> 569 <?php 570 571 $odd_row = true; 572 foreach ( $content_cells as $content_row ) { 573 echo '<tr class="' . ( $odd_row ? 'odd' : 'even' ) . ' noclick">'; 574 $odd_row = ! $odd_row; 575 576 if ( is_array( $content_row ) ) { 577 foreach ($content_row as $content_row_val) { 578 ?> 579 <td align="center"><?php echo $content_row_val; ?></td> 580 <?php 581 } 582 } 583 echo '</tr>'; 584 } 585 } else { 586 $i = 0; 587 $odd_row = true; 588 foreach ( $header_cells as $header_val ) { 589 echo '<tr class="' . ( $odd_row ? 'odd' : 'even' ) . ' noclick">'; 590 $odd_row = ! $odd_row; 591 ?> 592 <th><?php echo $header_val; ?></th> 593 <?php 594 foreach ( $content_cells as $content_cell ) { 595 if ( isset( $content_cell[$i] ) && $content_cell[$i] != '' ) { 596 ?> 597 <td><?php echo $content_cell[$i]; ?></td> 598 <?php 599 } 600 } 601 echo '</tr>'; 602 $i++; 603 } 604 } 605 ?> 606 </table> 607 <br /> 608 <?php 609 } 610 611 /** 612 * needs to be finished 613 * 614 * 615 if ( $display_type == 'horizontal' ) { 616 $new_field = ''; 617 foreach ( $empty_row as $content_row_val ) { 618 $new_field .= '<td align="center">' . $content_row_val . '</td>'; 619 } 620 ?> 621 <script type="text/javascript" language="javascript"> 622 <!-- 623 var odd_row = <?php echo $odd_row; ?>; 624 625 function addField() { 626 var new_fields = document.getElementById('added_fields').value; 627 var new_field_container = document.getElementById('table_columns'); 628 var new_field = '<?php echo preg_replace( '�\s+�', ' ', preg_replace( '�\'�', '\\\'', $new_field ) ); ?>'; 629 var i = 0; 630 for ( i = 0; i < new_fields; i++ ) { 631 if ( odd_row ) { 632 new_field_container.innerHTML += '<tr class="odd">' + new_field + '</tr>'; 633 } else { 634 new_field_container.innerHTML += '<tr class="even">' + new_field + '</tr>'; 635 } 636 odd_row = ! odd_row; 637 } 638 639 return true; 640 } 641 // --> 642 </script> 643 <?php 644 } 645 */ 646 647 if ($action == 'tbl_create.php') { 648 ?> 649 <table> 650 <tr valign="top"> 651 <th><?php echo $strTableComments; ?>: </th> 652 <td width="25"> </td> 653 <th><?php echo $strStorageEngine; ?>: <?php echo PMA_showMySQLDocu('Storage_engines', 'Storage_engines'); ?> 654 </th> 655 <?php 656 if ( PMA_MYSQL_INT_VERSION >= 40100 ) { 657 echo ' <td width="25"> </td>' . "\n" 658 . ' <th>' . $strCollation . ': </th>' . "\n"; 659 } 660 ?> 661 </tr> 662 <tr><td><input type="text" name="comment" size="40" maxlength="80" 663 value="<?php echo (isset($comment) ? $comment : ''); ?>" 664 class="textfield" /> 665 </td> 666 <td width="25"> </td> 667 <td> 668 <?php echo PMA_generateEnginesDropdown('tbl_type', null, FALSE, (isset($GLOBALS['tbl_type']) ? $GLOBALS['tbl_type'] : null), 3); ?> 669 </td> 670 <?php 671 if ( PMA_MYSQL_INT_VERSION >= 40100 ) { 672 echo ' <td width="25"> </td>' . "\n" 673 . ' <td>' . "\n" 674 . PMA_generateCharsetDropdownBox(PMA_CSDROPDOWN_COLLATION, 'tbl_collation', null, (isset($tbl_collation) ? $tbl_collation : null), FALSE, 3) 675 . ' </td>' . "\n"; 676 } 677 ?> 678 </tr> 679 </table> 680 <br /> 681 <?php 682 } // end if ($action == 'tbl_create.php') 683 ?> 684 685 <fieldset class="tblFooters"> 686 <input type="submit" name="do_save_data" value="<?php echo $strSave; ?>" onclick="return checkTableEditForm(this.form, <?php echo $num_fields; ?>)" /> 687 <?php if ($action == 'tbl_create.php' || $action == 'tbl_addfield.php') { ?> 688 <?php echo $GLOBALS['strOr']; ?> 689 <?php echo sprintf( $strAddFields, '<input type="text" id="added_fields" name="added_fields" size="2" value="1" onfocus="this.select()" />' ); ?> 690 <input type="submit" name="submit_num_fields" 691 value="<?php echo $GLOBALS['strGo']; ?>" 692 <?php /* onclick="if ( addField() ) return false;" */ ?> 693 onclick="return checkFormElementInRange(this.form, 'added_fields', '<?php echo str_replace('\'', '\\\'', $GLOBALS['strInvalidFieldAddCount']); ?>', 1)" 694 /> 695 <?php } ?> 696 </fieldset> 697 698 </form> 699 700 <div class="notice"> 701 <p> <a name="footnoote_setenumval"><sup>1</sup></a> <?php echo $strSetEnumVal; ?></p> 702 <p> <a name="footnoote_defaultvalue"><sup>2</sup></a> <?php echo $strDefaultValueHelp; ?></p> 703 <?php 704 if ($cfgRelation['commwork'] && $cfgRelation['mimework'] && $cfg['BrowseMIME']) { 705 echo '<p> <a name="footnoote_mime"><sup>3</sup></a> ' . $strMIME_transformation_options_note . '</p>'; 706 echo '<p> '; 707 printf( $strMIME_transformation_note, 708 '<a href="transformation_overview.php?' 709 . PMA_generate_common_url($db, $table) . '" target="_blank">', 710 '</a>' ); 711 echo '</p>'; 712 } 713 ?> 714 </div> 715 716 <center><?php echo PMA_showMySQLDocu('SQL-Syntax', 'CREATE_TABLE'); ?></center>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Mon Nov 26 15:18:20 2007 | par Balluche grâce à PHPXref 0.7 |
![]() |