<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
 * General functions.
 *
 * @package PhpMyAdmin
 */
use PMA\libraries\Message;
use PMA\libraries\Response;

if (! defined('PHPMYADMIN')) {
    exit;
}

/**
 * Check result
 *
 * @param resource|bool $result          Query result
 * @param string        $error           Error to add
 * @param string        $createStatement Query
 * @param array         $errors          Errors
 *
 * @return array
 */
function checkResult($result, $error, $createStatement, $errors)
{
    if ($result) {
        return $errors;
    }

    // OMG, this is really bad! We dropped the query,
    // failed to create a new one
    // and now even the backup query does not execute!
    // This should not happen, but we better handle
    // this just in case.
    $errors[] = $error . '<br />'
        . __('The backed up query was:')
        . "\"" . htmlspecialchars($createStatement) . "\"" . '<br />'
        . __('MySQL said: ') . $GLOBALS['dbi']->getError(null);

    return $errors;
}

/**
 * Send TRI or EVN editor via ajax or by echoing.
 *
 * @param string $type      TRI or EVN
 * @param string $mode      Editor mode 'add' or 'edit'
 * @param array  $item      Data necessary to create the editor
 * @param string $title     Title of the editor
 * @param string $db        Database
 * @param string $operation Operation 'change' or ''
 *
 * @return void
 */
function PMA_RTE_sendEditor($type, $mode, $item, $title, $db, $operation = null)
{
    if ($item !== false) {
        // Show form
        if ($type == 'TRI') {
            $editor = PMA_TRI_getEditorForm($mode, $item);
        } else { // EVN
            $editor = PMA_EVN_getEditorForm($mode, $operation, $item);
        }
        if ($GLOBALS['is_ajax_request']) {
            $response = PMA\libraries\Response::getInstance();
            $response->addJSON('message', $editor);
            $response->addJSON('title', $title);
        } else {
            echo "\n\n<h2>$title</h2>\n\n$editor";
            unset($_POST);
        }
        exit;
    } else {
        $message  = __('Error in processing request:') . ' ';
        $message .= sprintf(
            PMA_RTE_getWord('not_found'),
            htmlspecialchars(PMA\libraries\Util::backquote($_REQUEST['item_name'])),
            htmlspecialchars(PMA\libraries\Util::backquote($db))
        );
        $message = Message::error($message);
        if ($GLOBALS['is_ajax_request']) {
            $response = PMA\libraries\Response::getInstance();
            $response->setRequestStatus(false);
            $response->addJSON('message', $message);
            exit;
        } else {
            $message->display();
        }
    }
}
