This commit is contained in:
Garvin Hicking
2003-11-04 10:24:08 +00:00
parent 46ff2f9560
commit 016488988c
2 changed files with 49 additions and 18 deletions

View File

@@ -5,8 +5,13 @@ phpMyAdmin - Changelog
$Id$ $Id$
$Source$ $Source$
2003-11-04 Garvin Hicking <me@supergarv.de>
* libraries/transformations/text_plain__dateformat.inc.php3:
Bug #835252: Now allow more timestamps. Minor modification of a patch
submitted by anonymous poster. Thanks!
2003-11-03 Garvin Hicking <me@supergarv.de> 2003-11-03 Garvin Hicking <me@supergarv.de>
* Documentation.html, tbl_row_delete.php3, * Documentation.html, tbl_row_delete.php3,
libraries/display_tbl.lib.php3: libraries/display_tbl.lib.php3:
Bug #828290: Fixed "Execute stored bookmark". Also made some minor Bug #828290: Fixed "Execute stored bookmark". Also made some minor
tweaks to make PHP-Transformations with forms working again. Added tweaks to make PHP-Transformations with forms working again. Added

View File

@@ -8,45 +8,71 @@
* *
* For instructions, read the libraries/transformations/README file. * For instructions, read the libraries/transformations/README file.
* *
* The string ENTER_FILENAME_HERE shall be substituted with the filename without the '.inc.php3' * The string ENTER_FILENAME_HERE shall be substituted with the filename without the '.inc.php'
* extension. For further information regarding naming conventions see the README file. * extension. For further information regarding naming conventions see the README file.
*/ */
if (!defined('PMA_TRANSFORMATION_TEXT_PLAIN__DATEFORMAT')){ if (!defined('PMA_TRANSFORMATION_TEXT_PLAIN__DATEFORMAT')){
define('PMA_TRANSFORMATION_TEXT_PLAIN__DATEFORMAT', 1); define('PMA_TRANSFORMATION_TEXT_PLAIN__DATEFORMAT', 1);
function PMA_transformation_text_plain__dateformat($buffer, $options = array()) { function PMA_transformation_text_plain__dateformat($buffer, $options = array()) {
// possibly use a global transform and feed it with special options: // possibly use a global transform and feed it with special options:
// include('./libraries/transformations/global.inc.php3'); // include('./libraries/transformations/global.inc.php');
// further operations on $buffer using the $options[] array. // further operations on $buffer using the $options[] array.
if (!isset($options[0]) || $options[0] == '') { if (!isset($options[0]) || $options[0] == '') {
$options[0] = 0; $options[0] = 0;
} }
if (!isset($options[1]) || $options[1] == '') { if (!isset($options[1]) || $options[1] == '') {
$options[1] = $GLOBALS['datefmt']; $options[1] = $GLOBALS['datefmt'];
} }
$timestamp = -1; $timestamp = -1;
if (strstr($buffer, ':')) {
$timestamp = strtotime($buffer); // Detect TIMESTAMP(6 | 8 | 10 | 12 | 14), (2 | 4) not supported here.
} elseif (strlen($buffer) == 14 && eregi('^[0-9]*$', $buffer)) { if (preg_match('/^(\d{2}){3,7}$/', $buffer)) {
if (strlen($buffer) == 14 || strlen($buffer) == 8) {
$offset = 4;
} else {
$offset = 2;
}
$d = array(); $d = array();
$d['year'] = substr($buffer, 0, 4); $d['year'] = substr($buffer, 0, $offset);
$d['month'] = substr($buffer, 4, 2); $d['month'] = substr($buffer, $offset, 2);
$d['day'] = substr($buffer, 6, 2); $d['day'] = substr($buffer, $offset + 2, 2);
$d['hour'] = substr($buffer, 8, 2); $d['hour'] = substr($buffer, $offset + 4, 2);
$d['minute'] = substr($buffer, 10, 2); $d['minute'] = substr($buffer, $offset + 6, 2);
$d['second'] = substr($buffer, 12, 2); $d['second'] = substr($buffer, $offset + 8, 2);
$timestamp = mktime($d['hour'], $d['minute'], $d['second'], $d['month'], $d['day'], $d['year']);
if (checkdate($d['month'], $d['day'], $d['year'])) {
$timestamp = mktime($d['hour'], $d['minute'], $d['second'], $d['month'], $d['day'], $d['year']);
}
// If all fails, assume one of the dozens of valid strtime() syntaxes (http://www.gnu.org/manual/tar-1.12/html_chapter/tar_7.html)
} else {
$timestamp = strtotime($buffer);
} }
// If all above failed, maybe it's a Unix timestamp already?
if ($timestamp < 0 && preg_match('/^[1-9]\d{1,9}$/', $buffer)) {
$timestamp = $buffer;
}
// If there are still errors or the timestamp is invalid, mark timestamp invalid
if ($timestamp < 0 || !preg_match('/^[1-9]\d{1,9}$/', $timestamp)) {
$timestamp = -1;
}
// Reformat a valid timestamp
if ($timestamp != -1) { if ($timestamp != -1) {
$timestamp -= $options[0] * 60 * 60; $timestamp -= $options[0] * 60 * 60;
$buffer = PMA_localisedDate($timestamp, $options[1]); $buffer = PMA_localisedDate($timestamp, $options[1]);
} }
return $buffer; return $buffer;
} }
} }
?>