diff options
Diffstat (limited to 'hugo/server_binlog.php')
| -rw-r--r-- | hugo/server_binlog.php | 227 |
1 files changed, 227 insertions, 0 deletions
diff --git a/hugo/server_binlog.php b/hugo/server_binlog.php new file mode 100644 index 0000000..8c82d5f --- /dev/null +++ b/hugo/server_binlog.php @@ -0,0 +1,227 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * display the binary logs and the content of the selected + * + * @package PhpMyAdmin + */ + +/** + * + */ +require_once 'libraries/common.inc.php'; + +/** + * Does the common work, provides $binary_logs + */ +require_once 'libraries/server_common.inc.php'; + +$url_params = array(); + +/** + * Need to find the real end of rows? + */ +if (! isset($_REQUEST['pos'])) { + $pos = 0; +} else { + /* We need this to be a integer */ + $pos = (int) $_REQUEST['pos']; +} + +if (! isset($_REQUEST['log']) + || ! array_key_exists($_REQUEST['log'], $binary_logs) +) { + $_REQUEST['log'] = ''; +} else { + $url_params['log'] = $_REQUEST['log']; +} + +$sql_query = 'SHOW BINLOG EVENTS'; +if (! empty($_REQUEST['log'])) { + $sql_query .= ' IN \'' . $_REQUEST['log'] . '\''; +} +if ($GLOBALS['cfg']['MaxRows'] !== 'all') { + $sql_query .= ' LIMIT ' . $pos . ', ' . (int) $GLOBALS['cfg']['MaxRows']; +} + +/** + * Sends the query + */ +$result = PMA_DBI_query($sql_query); + +/** + * prepare some vars for displaying the result table + */ +// Gets the list of fields properties +if (isset($result) && $result) { + $num_rows = PMA_DBI_num_rows($result); +} else { + $num_rows = 0; +} + +if (empty($_REQUEST['dontlimitchars'])) { + $dontlimitchars = false; +} else { + $dontlimitchars = true; + $url_params['dontlimitchars'] = 1; +} + +/** + * Displays the sub-page heading + */ +echo '<h2>' . "\n" + . PMA_Util::getImage('s_tbl.png') + . ' ' . __('Binary log') . "\n" + . '</h2>' . "\n"; + +/** + * Display log selector. + */ +if (count($binary_logs) > 1) { + echo '<form action="server_binlog.php" method="get">'; + echo PMA_generate_common_hidden_inputs($url_params); + echo '<fieldset><legend>'; + echo __('Select binary log to view'); + echo '</legend><select name="log">'; + $full_size = 0; + foreach ($binary_logs as $each_log) { + echo '<option value="' . $each_log['Log_name'] . '"'; + if ($each_log['Log_name'] == $_REQUEST['log']) { + echo ' selected="selected"'; + } + echo '>' . $each_log['Log_name']; + if (isset($each_log['File_size'])) { + $full_size += $each_log['File_size']; + echo ' (' + . implode( + ' ', + PMA_Util::formatByteDown( + $each_log['File_size'], 3, 2 + ) + ) + . ')'; + } + echo '</option>'; + } + echo '</select> '; + echo count($binary_logs) . ' ' . __('Files') . ', '; + if ($full_size > 0) { + echo implode( + ' ', PMA_Util::formatByteDown($full_size) + ); + } + echo '</fieldset>'; + echo '<fieldset class="tblFooters">'; + echo '<input type="submit" value="' . __('Go') . '" />'; + echo '</fieldset>'; + echo '</form>'; +} + +echo PMA_Util::getMessage(PMA_Message::success()); + +/** + * Displays the page + */ +echo '<table cellpadding="2" cellspacing="1">' + . '<thead>' + . '<tr>' + . '<td colspan="6" class="center">'; + +// we do not now how much rows are in the binlog +// so we can just force 'NEXT' button +if ($pos > 0) { + $this_url_params = $url_params; + if ($pos > $GLOBALS['cfg']['MaxRows']) { + $this_url_params['pos'] = $pos - $GLOBALS['cfg']['MaxRows']; + } + + echo '<a href="server_binlog.php' + . PMA_generate_common_url($this_url_params) . '"'; + if (in_array( + $GLOBALS['cfg']['TableNavigationLinksMode'], + array('icons', 'both') + ) + ) { + echo ' title="' . _pgettext('Previous page', 'Previous') . '">'; + } else { + echo '>' . _pgettext('Previous page', 'Previous'); + } // end if... else... + echo ' < </a> - '; +} + +$this_url_params = $url_params; +if ($pos > 0) { + $this_url_params['pos'] = $pos; +} +if ($dontlimitchars) { + unset($this_url_params['dontlimitchars']); + $tempTitle = __('Truncate Shown Queries'); + $tempImgMode = 'partial'; +} else { + $this_url_params['dontlimitchars'] = 1; + $tempTitle = __('Show Full Queries'); + $tempImgMode = 'full'; +} +echo '<a href="server_binlog.php' . PMA_generate_common_url($this_url_params) + . '" title="' . $tempTitle . '">' + . '<img src="' .$pmaThemeImage . 's_' . $tempImgMode . 'text.png"' + . 'alt="' . $tempTitle . '" /></a>'; + +// we do not now how much rows are in the binlog +// so we can just force 'NEXT' button +if ($num_rows >= $GLOBALS['cfg']['MaxRows']) { + $this_url_params = $url_params; + $this_url_params['pos'] = $pos + $GLOBALS['cfg']['MaxRows']; + echo ' - <a href="server_binlog.php' . PMA_generate_common_url($this_url_params) + . '"'; + if (in_array( + $GLOBALS['cfg']['TableNavigationLinksMode'], + array('icons', 'both') + ) + ) { + echo ' title="' . _pgettext('Next page', 'Next') . '">'; + } else { + echo '>' . _pgettext('Next page', 'Next'); + } // end if... else... + echo ' > </a>'; +} + +echo '</td>' + . '</tr>' + . '<tr>' + . '<th>' . __('Log name') . '</th>' + . '<th>' . __('Position') . '</th>' + . '<th>' . __('Event type') . '</th>' + . '<th>' . __('Server ID') . '</th>' + . '<th>' . __('Original position') . '</th>' + . '<th>' . __('Information') . '</th>' + . '</tr>' + . '</thead>' + . '<tbody>'; + +$odd_row = true; +while ($value = PMA_DBI_fetch_assoc($result)) { + if (! $dontlimitchars + && PMA_strlen($value['Info']) > $GLOBALS['cfg']['LimitChars'] + ) { + $value['Info'] = PMA_substr( + $value['Info'], 0, $GLOBALS['cfg']['LimitChars'] + ) . '...'; + } + + echo '<tr class="noclick ' . ($odd_row ? 'odd' : 'even') . '">' + . '<td> ' . $value['Log_name'] . ' </td>' + . '<td class="right"> ' . $value['Pos'] . ' </td>' + . '<td> ' . $value['Event_type'] . ' </td>' + . '<td class="right"> ' . $value['Server_id'] . ' </td>' + . '<td class="right"> ' + . (isset($value['Orig_log_pos']) + ? $value['Orig_log_pos'] : $value['End_log_pos']) + . ' </td>' + . '<td> ' . htmlspecialchars($value['Info']) . ' </td>' + . '</tr>'; + + $odd_row = !$odd_row; +} +echo '</tbody>' + . '</table>'; |
