123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- <?php
- /* vim: set expandtab sw=4 ts=4 sts=4: */
- /**
- * Common functions for the export functionality for Routines, Triggers and Events.
- *
- * @package PhpMyAdmin
- */
- namespace PhpMyAdmin\Rte;
- use PhpMyAdmin\Message;
- use PhpMyAdmin\Response;
- use PhpMyAdmin\Rte\Words;
- use PhpMyAdmin\Util;
- /**
- * PhpMyAdmin\Rte\Export class
- *
- * @package PhpMyAdmin
- */
- class Export
- {
- /**
- * This function is called from one of the other functions in this file
- * and it completes the handling of the export functionality.
- *
- * @param string $export_data The SQL query to create the requested item
- *
- * @return void
- */
- private static function handle($export_data)
- {
- global $db;
- $response = Response::getInstance();
- $item_name = htmlspecialchars(Util::backquote($_GET['item_name']));
- if ($export_data !== false) {
- $export_data = htmlspecialchars(trim($export_data));
- $title = sprintf(Words::get('export'), $item_name);
- if ($response->isAjax()) {
- $response->addJSON('message', $export_data);
- $response->addJSON('title', $title);
- exit;
- } else {
- $export_data = '<textarea cols="40" rows="15" style="width: 100%;">'
- . $export_data . '</textarea>';
- echo "<fieldset>\n"
- , "<legend>$title</legend>\n"
- , $export_data
- , "</fieldset>\n";
- }
- } else {
- $_db = htmlspecialchars(Util::backquote($db));
- $message = __('Error in processing request:') . ' '
- . sprintf(Words::get('no_view'), $item_name, $_db);
- $message = Message::error($message);
- if ($response->isAjax()) {
- $response->setRequestStatus(false);
- $response->addJSON('message', $message);
- exit;
- } else {
- $message->display();
- }
- }
- } // end self::handle()
- /**
- * If necessary, prepares event information and passes
- * it to self::handle() for the actual export.
- *
- * @return void
- */
- public static function events()
- {
- global $_GET, $db;
- if (! empty($_GET['export_item']) && ! empty($_GET['item_name'])) {
- $item_name = $_GET['item_name'];
- $export_data = $GLOBALS['dbi']->getDefinition($db, 'EVENT', $item_name);
- if (! $export_data) {
- $export_data = false;
- }
- self::handle($export_data);
- }
- } // end self::events()
- /**
- * If necessary, prepares routine information and passes
- * it to self::handle() for the actual export.
- *
- * @return void
- */
- public static function routines()
- {
- global $_GET, $db;
- if (! empty($_GET['export_item'])
- && ! empty($_GET['item_name'])
- && ! empty($_GET['item_type'])
- ) {
- if ($_GET['item_type'] == 'FUNCTION' || $_GET['item_type'] == 'PROCEDURE') {
- $rtn_definition
- = $GLOBALS['dbi']->getDefinition(
- $db,
- $_GET['item_type'],
- $_GET['item_name']
- );
- if (! $rtn_definition) {
- $export_data = false;
- } else {
- $export_data = "DELIMITER $$\n"
- . $rtn_definition
- . "$$\nDELIMITER ;\n";
- }
- self::handle($export_data);
- }
- }
- } // end self::routines()
- /**
- * If necessary, prepares trigger information and passes
- * it to self::handle() for the actual export.
- *
- * @return void
- */
- public static function triggers()
- {
- global $_GET, $db, $table;
- if (! empty($_GET['export_item']) && ! empty($_GET['item_name'])) {
- $item_name = $_GET['item_name'];
- $triggers = $GLOBALS['dbi']->getTriggers($db, $table, '');
- $export_data = false;
- foreach ($triggers as $trigger) {
- if ($trigger['name'] === $item_name) {
- $export_data = $trigger['create'];
- break;
- }
- }
- self::handle($export_data);
- }
- } // end self::triggers()
- }
|