patch #515268 - Feature Request #511816 (enable/disable functions fields) thanks to Alexander M. Turek

This commit is contained in:
Loïc Chapeaux
2002-02-09 18:57:44 +00:00
parent f7cb75b4c1
commit 9c9e5e8a2e
5 changed files with 87 additions and 64 deletions

View File

@@ -24,6 +24,10 @@ $Source$
with <base href=""> thanks to Alexander M. Turek. with <base href=""> thanks to Alexander M. Turek.
* main.php3, lines 11-14; libraries/grab_globals.lib.php3, lines 27-32; * main.php3, lines 11-14; libraries/grab_globals.lib.php3, lines 27-32;
libraries/auth/cookie.auth.lib.php3: improved patch #495360. libraries/auth/cookie.auth.lib.php3: improved patch #495360.
* config.inc.php3, lines 142 & 238-265; Documentation.html, lines 746-752;
tbl_change.php3; libraries/common.lib.php3, lines 105-107:
patch #515268 - Feature Request #511816 (enable/disable functions fields)
thanks to Alexander M. Turek <rabus at users.sourceforge.net>.
2002-02-08 Marc Delisle <lem9@users.sourceforge.net> 2002-02-08 Marc Delisle <lem9@users.sourceforge.net>
* ukrainian updates thanks to Markijan Baran. * ukrainian updates thanks to Markijan Baran.

View File

@@ -732,7 +732,7 @@
<br /><br /> <br /><br />
</dd> </dd>
<dt><b>$cfgProtectBinary </b>boolean</dt> <dt><b>$cfgProtectBinary </b>boolean or string</dt>
<dd> <dd>
Defines whether <tt>BLOB</tt> or <tt>BINARY</tt> fields are protected Defines whether <tt>BLOB</tt> or <tt>BINARY</tt> fields are protected
from edition when browsing a table's content or not. from edition when browsing a table's content or not.
@@ -743,6 +743,13 @@
<br /><br /> <br /><br />
</dd> </dd>
<dt><b>$cfgShowFunctionFields </b>boolean</dt>
<dd>
Defines whether MySQL functions fields should be displayed or not in edit/insert
mode.
<br /><br />
</dd>
<dt> <dt>
<b>$cfgZipDump </b>boolean<br /> <b>$cfgZipDump </b>boolean<br />
<b>$cfgGZipDump </b>boolean<br /> <b>$cfgGZipDump </b>boolean<br />

View File

@@ -139,6 +139,7 @@ $cfgProtectBinary = 'blob'; // disallow editing of binary fields
// FALSE allow editing // FALSE allow editing
// 'blob' allow editing except for BLOB fields // 'blob' allow editing except for BLOB fields
// 'all' disallow editing // 'all' disallow editing
$cfgShowFunctionFields = TRUE; // Display the function fields in edit/insert mode
$cfgZipDump = TRUE; // Allow the use of zip/gzip/bzip $cfgZipDump = TRUE; // Allow the use of zip/gzip/bzip
$cfgGZipDump = TRUE; // compression for $cfgGZipDump = TRUE; // compression for
@@ -234,32 +235,34 @@ $cfgAttributeTypes = array(
); );
// Available functions // Available functions
$cfgFunctions = array( if ($cfgShowFunctionFields) {
'ASCII', $cfgFunctions = array(
'CHAR', 'ASCII',
'SOUNDEX', 'CHAR',
'LCASE', 'SOUNDEX',
'UCASE', 'LCASE',
'NOW', 'UCASE',
'PASSWORD', 'NOW',
'MD5', 'PASSWORD',
'ENCRYPT', 'MD5',
'RAND', 'ENCRYPT',
'LAST_INSERT_ID', 'RAND',
'COUNT', 'LAST_INSERT_ID',
'AVG', 'COUNT',
'SUM', 'AVG',
'CURDATE', 'SUM',
'CURTIME', 'CURDATE',
'FROM_DAYS', 'CURTIME',
'FROM_UNIXTIME', 'FROM_DAYS',
'PERIOD_ADD', 'FROM_UNIXTIME',
'PERIOD_DIFF', 'PERIOD_ADD',
'TO_DAYS', 'PERIOD_DIFF',
'UNIX_TIMESTAMP', 'TO_DAYS',
'USER', 'UNIX_TIMESTAMP',
'WEEKDAY' 'USER',
); 'WEEKDAY'
);
} // end if
/** /**

View File

@@ -45,7 +45,7 @@ if (!defined('PMA_COMMON_LIB_INCLUDED')){
* - authentication work * - authentication work
* - second load of the libraries/define.lib.php3 library to get the MySQL * - second load of the libraries/define.lib.php3 library to get the MySQL
* release number) * release number)
* - other functions, respecting dependencies * - other functions, respecting dependencies
*/ */
@@ -102,6 +102,9 @@ if (!defined('PMA_COMMON_LIB_INCLUDED')){
$cfgProtectBinary = 'blob'; $cfgProtectBinary = 'blob';
} }
} }
if (!isset($cfgShowFunctionFields)) {
$cfgShowFunctionFields = TRUE;
}
if (!isset($cfgZipDump)) { if (!isset($cfgZipDump)) {
$cfgZipDump = (isset($cfgGZipDump) ? $cfgGZipDump : TRUE); $cfgZipDump = (isset($cfgGZipDump) ? $cfgGZipDump : TRUE);
} }
@@ -200,7 +203,7 @@ if (!defined('PMA_COMMON_LIB_INCLUDED')){
$a_string = str_replace('\\', '\\\\', $a_string); $a_string = str_replace('\\', '\\\\', $a_string);
} }
$a_string = str_replace('\'', '\\\'', $a_string); $a_string = str_replace('\'', '\\\'', $a_string);
return $a_string; return $a_string;
} // end of the 'PMA_sqlAddslashes()' function } // end of the 'PMA_sqlAddslashes()' function
@@ -299,7 +302,7 @@ if (!defined('PMA_COMMON_LIB_INCLUDED')){
unset($cfgServers[$key]); unset($cfgServers[$key]);
} }
} }
if (empty($server) || !isset($cfgServers[$server]) || !is_array($cfgServers[$server])) { if (empty($server) || !isset($cfgServers[$server]) || !is_array($cfgServers[$server])) {
$server = $cfgServerDefault; $server = $cfgServerDefault;
} }
@@ -602,7 +605,7 @@ if (!defined('PMA_COMMON_LIB_INCLUDED')){
} }
} // end for } // end for
mysql_free_result($dbs); mysql_free_result($dbs);
$num_dbs = $real_num_dbs; $num_dbs = $real_num_dbs;
} // end else } // end else
return TRUE; return TRUE;
@@ -954,7 +957,7 @@ window.parent.frames['nav'].location.replace('<?php echo $reload_url; ?>');
/** /**
* Ensures a database/table/field's name is not a reserved word (for MySQL * Ensures a database/table/field's name is not a reserved word (for MySQL
* releases < 3.23.6) * releases < 3.23.6)
* *
* @param string the name to check * @param string the name to check
* @param string the url to go back in case of error * @param string the url to go back in case of error
@@ -972,7 +975,7 @@ window.parent.frames['nav'].location.replace('<?php echo $reload_url; ?>');
if (!ereg('^[a-zA-Z_]+$', $the_name)) { if (!ereg('^[a-zA-Z_]+$', $the_name)) {
return true; return true;
} }
// Else do the work // Else do the work
$filename = 'badwords.txt'; $filename = 'badwords.txt';
if (file_exists($filename)) { if (file_exists($filename)) {

View File

@@ -142,7 +142,11 @@ echo "\n";
<tr> <tr>
<th><?php echo $strField; ?></th> <th><?php echo $strField; ?></th>
<th><?php echo $strType; ?></th> <th><?php echo $strType; ?></th>
<th><?php echo $strFunction; ?></th> <?php
if ($cfgShowFunctionFields) {
echo ' <th>' . $strFunction . '</th>' . "\n";
}
?>
<th><?php echo $strNull; ?></th> <th><?php echo $strNull; ?></th>
<th><?php echo $strValue; ?></th> <th><?php echo $strValue; ?></th>
</tr> </tr>
@@ -224,7 +228,7 @@ for ($i = 0; $i < $fields_cnt; $i++) {
? '' ? ''
: '<input type="hidden" name="fields_prev[' . urlencode($field) . ']" value="' . urlencode($row[$field]) . '" />'; : '<input type="hidden" name="fields_prev[' . urlencode($field) . ']" value="' . urlencode($row[$field]) . '" />';
} else { } else {
// loic1: display default values // loic1: display default values
if (!isset($row_table_def['Default'])) { if (!isset($row_table_def['Default'])) {
$row_table_def['Default'] = ''; $row_table_def['Default'] = '';
$data = 'NULL'; $data = 'NULL';
@@ -242,40 +246,42 @@ for ($i = 0; $i < $fields_cnt; $i++) {
// Note: from the MySQL manual: "BINARY doesn't affect how the column is // Note: from the MySQL manual: "BINARY doesn't affect how the column is
// stored or retrieved" so it does not mean that the contents is // stored or retrieved" so it does not mean that the contents is
// binary // binary
if ((($cfgProtectBinary && $is_blob) if ($cfgShowFunctionFields) {
|| ($cfgProtectBinary == 'all' && $is_binary)) if ((($cfgProtectBinary && $is_blob)
&& !empty($data)) { || ($cfgProtectBinary == 'all' && $is_binary))
echo ' <td align="center" bgcolor="'. $bgcolor . '">' . $strBinary . '</td>' . "\n"; && !empty($data)) {
} else if (strstr($row_table_def['True_Type'], 'enum') || strstr($row_table_def['True_Type'], 'set')) { echo ' <td align="center" bgcolor="'. $bgcolor . '">' . $strBinary . '</td>' . "\n";
echo ' <td align="center" bgcolor="'. $bgcolor . '">--</td>' . "\n"; } else if (strstr($row_table_def['True_Type'], 'enum') || strstr($row_table_def['True_Type'], 'set')) {
} else { echo ' <td align="center" bgcolor="'. $bgcolor . '">--</td>' . "\n";
?> } else {
?>
<td bgcolor="<?php echo $bgcolor; ?>"> <td bgcolor="<?php echo $bgcolor; ?>">
<select name="funcs[<?php echo urlencode($field); ?>]"> <select name="funcs[<?php echo urlencode($field); ?>]">
<option></option> <option></option>
<?php <?php
echo "\n"; echo "\n";
if (!$first_timestamp) { if (!$first_timestamp) {
for ($j = 0; $j < count($cfgFunctions); $j++) { for ($j = 0; $j < count($cfgFunctions); $j++) {
echo ' '; echo ' ';
echo '<option>' . $cfgFunctions[$j] . '</option>' . "\n"; echo '<option>' . $cfgFunctions[$j] . '</option>' . "\n";
} }
} else { } else {
// for default function = NOW() on first timestamp field // for default function = NOW() on first timestamp field
// -- swix/18jul01 // -- swix/18jul01
for ($j = 0; $j < count($cfgFunctions); $j++) { for ($j = 0; $j < count($cfgFunctions); $j++) {
echo ' '; echo ' ';
if ($cfgFunctions[$j] == 'NOW') { if ($cfgFunctions[$j] == 'NOW') {
echo '<option selected="selected">' . $cfgFunctions[$j] . '</option>' . "\n"; echo '<option selected="selected">' . $cfgFunctions[$j] . '</option>' . "\n";
} else { } else {
echo '<option>' . $cfgFunctions[$j] . '</option>' . "\n"; echo '<option>' . $cfgFunctions[$j] . '</option>' . "\n";
} }
} // end for } // end for
} }
?> ?>
</select> </select>
</td> </td>
<?php <?php
}
} }
echo "\n"; echo "\n";
@@ -350,7 +356,7 @@ for ($i = 0; $i < $fields_cnt; $i++) {
} }
echo '>' . htmlspecialchars($enum_atom) . '</option>' . "\n"; echo '>' . htmlspecialchars($enum_atom) . '</option>' . "\n";
} // end for } // end for
?> ?>
</select> </select>
<?php <?php
@@ -361,7 +367,7 @@ for ($i = 0; $i < $fields_cnt; $i++) {
// Removes automatic MySQL escape format // Removes automatic MySQL escape format
$enum_atom = str_replace('\'\'', '\'', str_replace('\\\\', '\\', $enum[$j])); $enum_atom = str_replace('\'\'', '\'', str_replace('\\\\', '\\', $enum[$j]));
echo ' '; echo ' ';
echo '<input type="radio" name="field_' . md5($field) . '[]" value="' . urlencode($enum_atom) . '"' . ' onclick="if (typeof(document.forms[\'insertForm\'].elements[\'fields_null[' . urlencode($field) . ']\']) != \'undefined\') {document.forms[\'insertForm\'].elements[\'fields_null[' . urlencode($field) .']\'].checked = false}"'; echo '<input type="radio" name="field_' . md5($field) . '[]" value="' . urlencode($enum_atom) . '"' . ' onclick="if (typeof(document.forms[\'insertForm\'].elements[\'fields_null[' . urlencode($field) . ']\']) != \'undefined\') {document.forms[\'insertForm\'].elements[\'fields_null[' . urlencode($field) .']\'].checked = false}"';
if ($data == $enum_atom if ($data == $enum_atom
|| ($data == '' && (!isset($primary_key) || $row_table_def['Null'] != 'YES') || ($data == '' && (!isset($primary_key) || $row_table_def['Null'] != 'YES')
&& isset($row_table_def['Default']) && $enum_atom == $row_table_def['Default'])) { && isset($row_table_def['Default']) && $enum_atom == $row_table_def['Default'])) {