<?php
/* $Id: display_export.lib.php,v 1.19 2003/07/11 16:14:12 rabus Exp $ */
// vim: expandtab sw=4 ts=4 sts=4:

// Get relations & co. status
require('./libraries/relation.lib.php');
$cfgRelation = PMA_getRelationsParam();

function PMA_exportCheckboxCheck($str) {
    if (isset($GLOBALS['cfg']['Export'][$str]) && $GLOBALS['cfg']['Export'][$str]) {
        echo ' checked="checked"';
    }
}

function PMA_exportIsActive($what, $val) {
    if (isset($GLOBALS['cfg']['Export'][$what]) &&  $GLOBALS['cfg']['Export'][$what] == $val) {
        echo ' checked="checked"';
    }
}

?>
<form method="post" action="export.php" name="dump">
<?php
$hide_structure = false;
$hide_sql       = false;
if ($export_type == 'server') {
    echo PMA_generate_common_hidden_inputs('', '', 1);
} elseif ($export_type == 'database') {
    echo PMA_generate_common_hidden_inputs($db, '', 1);
} else {
    echo PMA_generate_common_hidden_inputs($db, $table, 1);
    if (!isset($single_table)) {
        $hide_structure = true;
        $hide_sql       = true;
    }
}
echo '    <input type="hidden" name="export_type" value="' . $export_type . '" />';

if (isset($sql_query)) {
    echo '    <input type="hidden" name="sql_query" value="' . htmlspecialchars($sql_query) . '" />';
}
    ?>

    <script type="text/javascript">
    <!--
    function hide_them_all() {
        getElement("csv_options").style.display = 'none';
        getElement("excel_options").style.display = 'none';
        getElement("latex_options").style.display = 'none';
<?php if (!$hide_sql) { ?>
        getElement("sql_options").style.display = 'none';
<?php } ?>
        getElement("none_options").style.display = 'none';
    }
    //-->
    </script>

    <table cellpadding="5" border="0" cellspacing="0" align="center">
    <tr>

        <!-- Formats to export to -->
        <td nowrap="nowrap" valign="top">
            <fieldset <?php echo ((!isset($multi_values) || isset($multi_values) && $multi_values == '') ? 'style="height: 220px;"' : ''); ?>>
            <legend><?php echo $strExport; ?></legend>
            <br>
            <?php
            if (isset($multi_values) && $multi_values != '') {
                echo $multi_values;
            }
            ?>

<?php if (!$hide_sql) { ?>
            <!-- SQL -->
            <input type="radio" name="what" value="sql" id="radio_dump_sql" onclick="if(this.checked) { hide_them_all(); getElement('sql_options').style.display = 'block'; }; return true" <?php PMA_exportIsActive('format', 'sql'); ?> />
            <label for="radio_dump_sql"><?php echo $strSQL; ?></label>
            <br /><br />
<?php } ?>

            <!-- LaTeX table -->
            <input type="radio" name="what" value="latex" id="radio_dump_latex"  onclick="if(this.checked) { hide_them_all(); getElement('latex_options').style.display = 'block'; }; return true" <?php PMA_exportIsActive('format', 'latex'); ?> />
            <label for="radio_dump_latex"><?php echo $strLaTeX; ?></label>
            <br /><br />

            <!-- Excel CSV -->
            <input type="radio" name="what" value="excel" id="radio_dump_excel"  onclick="if(this.checked) { hide_them_all(); getElement('excel_options').style.display = 'block'; }; return true" <?php PMA_exportIsActive('format', 'excel'); ?> />
            <label for="radio_dump_excel"><?php echo $strStrucExcelCSV; ?></label>
            <br /><br />
            <!-- General CSV -->
            <input type="radio" name="what" value="csv" id="radio_dump_csv"  onclick="if(this.checked) { hide_them_all(); getElement('csv_options').style.display = 'block'; }; return true" <?php PMA_exportIsActive('format', 'csv'); ?> />
            <label for="radio_dump_csv"><?php echo $strStrucCSV;?></label>
<?php if (!empty($db)) { ?>
            <br /><br />

            <!-- XML -->
            <input type="radio" name="what" value="xml" id="radio_dump_xml" onclick="if(this.checked) { hide_them_all(); getElement('none_options').style.display = 'block'; }; return true" <?php PMA_exportIsActive('format', 'xml'); ?> />
            <label for="radio_dump_xml"><?php echo $strXML; ?></label>&nbsp;&nbsp;
<?php } ?>
            </fieldset>
        </td>
        <!-- Options -->
        <td valign="top" id="options_td" width="400">

<?php if (!$hide_sql) { ?>
            <!-- SQL options -->
            <fieldset id="sql_options">
                <legend><?php echo $strSQLOptions; ?> (<a href="./Documentation.html#faqexport" target="documentation"><?php echo $strDocu; ?></a>)</legend>
<?php
if ($export_type == 'server') {
?>
                <!-- For databases -->
                <fieldset>
                    <legend>
                        <?php echo $strDatabaseExportOptions; ?>
                    </legend>
                    <input type="checkbox" name="drop_database" value="yes" id="checkbox_drop_database" <?php PMA_exportCheckboxCheck('sql_drop_database'); ?> />
                    <label for="checkbox_drop_database"><?php echo $strAddDropDatabase; ?></label><br />
                </fieldset>
<?php
}
?>
<?php if (!$hide_structure) { ?>
                <!-- For structure -->
                <fieldset>
                    <legend>
                        <input type="checkbox" name="sql_structure" value="structure" id="checkbox_sql_structure" <?php PMA_exportCheckboxCheck('sql_structure'); ?> onclick="if(!this.checked && !getElement('checkbox_sql_data').checked) return false; else return true;" />
                        <label for="checkbox_sql_structure"><?php echo $strStructure; ?></label><br />
                    </legend>

                    <input type="checkbox" name="drop" value="1" id="checkbox_dump_drop" <?php PMA_exportCheckboxCheck('sql_drop_table'); ?> />
                    <label for="checkbox_dump_drop"><?php echo $strStrucDrop; ?></label><br />
                    <input type="checkbox" name="auto_increment" value="1" id="checkbox_auto_increment" <?php PMA_exportCheckboxCheck('sql_auto_increment'); ?> />
                    <label for="checkbox_auto_increment"><?php echo $strAddAutoIncrement; ?></label><br />
<?php
// Add backquotes checkbox
if (PMA_MYSQL_INT_VERSION >= 32306) {
    ?>
                    <input type="checkbox" name="use_backquotes" value="1" id="checkbox_dump_use_backquotes" <?php PMA_exportCheckboxCheck('sql_backquotes'); ?> />
                    <label for="checkbox_dump_use_backquotes"><?php echo $strUseBackquotes; ?></label><br />
    <?php
} // end backquotes feature
?>
                    <fieldset>
                        <legend><?php echo $strAddIntoComments; ?></legend>
<?php
if (!empty($cfgRelation['relation'])) {
?>
                        <input type="checkbox" name="sql_relation" value="yes" id="checkbox_sql_use_relation" <?php PMA_exportCheckboxCheck('sql_relation'); ?> />
                        <label for="checkbox_sql_use_relation"><?php echo $strRelations; ?></label><br />
<?php
 } // end relation

if ($cfgRelation['commwork']) {
     ?>
                        <input type="checkbox" name="sql_comments" value="yes" id="checkbox_sql_use_comments" <?php PMA_exportCheckboxCheck('sql_comments'); ?> />
                        <label for="checkbox_sql_use_comments"><?php echo $strComments; ?></label><br />
<?php
} // end comments

if ($cfgRelation['mimework']) {
     ?>
                        <input type="checkbox" name="sql_mime" value="yes" id="checkbox_sql_use_mime" <?php PMA_exportCheckboxCheck('sql_mime'); ?> />
                        <label for="checkbox_sql_use_mime"><?php echo $strMIME_MIMEtype; ?></label><br />
<?php
} // end MIME
?>
                     </fieldset>
                </fieldset>
<?php } ?>

                <!-- For data -->
                <fieldset>
                    <legend>
                        <input type="checkbox" name="sql_data" value="data" id="checkbox_sql_data" <?php PMA_exportCheckboxCheck('sql_data'); ?> onclick="if(!this.checked && (!getElement('checkbox_sql_structure') || !getElement('checkbox_sql_structure').checked)) return false; else return true;" />
                        <label for="checkbox_sql_data"><?php echo $strData; ?></label><br />
                    </legend>
                    <input type="checkbox" name="showcolumns" value="yes" id="checkbox_dump_showcolumns" <?php PMA_exportCheckboxCheck('sql_columns'); ?> />
                    <label for="checkbox_dump_showcolumns"><?php echo $strCompleteInserts; ?></label><br />
                    <input type="checkbox" name="extended_ins" value="yes" id="checkbox_dump_extended_ins" <?php PMA_exportCheckboxCheck('sql_extended'); ?> />
                    <label for="checkbox_dump_extended_ins"><?php echo $strExtendedInserts; ?></label><br />
                </fieldset>
            </fieldset>
<?php } ?>

             <!-- LaTeX options -->
             <fieldset id="latex_options">
                 <legend><?php echo $strLaTeXOptions; ?></legend>

<?php if (!$hide_structure) { ?>
                 <!-- For structure -->
                 <fieldset>
                     <legend>
                         <input type="checkbox" name="latex_structure" value="structure" id="checkbox_latex_structure" <?php PMA_exportCheckboxCheck('latex_structure'); ?> onclick="if(!this.checked && !getElement('checkbox_latex_data').checked) return false; else return true;" />
                         <label for="checkbox_latex_structure"><?php echo $strStructure; ?></label><br />
                     </legend>
<?php
if (!empty($cfgRelation['relation'])) {
?>
                     <input type="checkbox" name="latex_relation" value="yes" id="checkbox_latex_use_relation" <?php PMA_exportCheckboxCheck('latex_relation'); ?> />
                     <label for="checkbox_latex_use_relation"><?php echo $strRelations; ?></label><br />
<?php
 } // end relation

if ($cfgRelation['commwork']) {
     ?>
                     <input type="checkbox" name="latex_comments" value="yes" id="checkbox_latex_use_comments" <?php PMA_exportCheckboxCheck('latex_comments'); ?> />
                     <label for="checkbox_latex_use_comments"><?php echo $strComments; ?></label><br />
<?php
} // end comments

if ($cfgRelation['mimework']) {
     ?>
                     <input type="checkbox" name="latex_mime" value="yes" id="checkbox_latex_use_mime" <?php PMA_exportCheckboxCheck('latex_mime'); ?> />
                     <label for="checkbox_latex_use_mime"><?php echo $strMIME_MIMEtype; ?></label><br />
<?php
} // end MIME
?>
                 </fieldset>
<?php } ?>

                 <!-- For data -->
                 <fieldset>
                     <legend>
                         <input type="checkbox" name="latex_data" value="data" id="checkbox_latex_data" <?php PMA_exportCheckboxCheck('latex_data'); ?> onclick="if(!this.checked && (!getElement('checkbox_latex_structure') || !getElement('checkbox_latex_structure').checked)) return false; else return true;" />
                         <label for="checkbox_latex_data"><?php echo $strData; ?></label><br />
                     </legend>
                     <input type="checkbox" name="latex_showcolumns" value="yes" id="ch_latex_showcolumns" <?php PMA_exportCheckboxCheck('latex_columns'); ?> />
                     <label for="ch_latex_showcolumns"><?php echo $strColumnNames; ?></label><br />
                    <table border="0" cellspacing="1" cellpadding="0">
                        <tr>
                            <td>
                                <?php echo $strReplaceNULLBy; ?>&nbsp;
                            </td>
                            <td>
                                <input type="text" name="latex_replace_null" size="20" value="<?php echo $cfg['Export']['latex_null']; ?>" class="textfield" />
                            </td>
                        </tr>
                    </table>
                 </fieldset>
             </fieldset>

             <!-- CSV options -->
            <fieldset id="csv_options">
                <legend><?php echo $strCSVOptions; ?></legend>
                <input type="hidden" name="csv_data" value="csv_data" />
                <table border="0" cellspacing="1" cellpadding="0">
                    <tr>
                        <td>
                            <?php echo $strFieldsTerminatedBy; ?>&nbsp;
                        </td>
                        <td>
                            <input type="text" name="separator" size="2" value="<?php echo $cfg['Export']['csv_separator']; ?>" class="textfield" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <?php echo $strFieldsEnclosedBy; ?>&nbsp;
                        </td>
                        <td>
                            <input type="text" name="enclosed" size="2" value="<?php echo $cfg['Export']['csv_enclosed']; ?>" class="textfield" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <?php echo $strFieldsEscapedBy; ?>&nbsp;
                        </td>
                        <td>
                            <input type="text" name="escaped" size="2" value="<?php echo $cfg['Export']['csv_escaped']; ?>" class="textfield" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <?php echo $strLinesTerminatedBy; ?>&nbsp;
                        </td>
                        <td>
                            <input type="text" name="add_character" size="2" value="<?php if ($cfg['Export']['csv_terminated'] == 'AUTO') echo ((PMA_whichCrlf() == "\n") ? '\n' : '\r\n'); else echo $cfg['Export']['csv_terminated']; ?>" class="textfield" />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <?php echo $strReplaceNULLBy; ?>&nbsp;
                        </td>
                        <td>
                            <input type="text" name="csv_replace_null" size="20" value="<?php echo $cfg['Export']['csv_null']; ?>" class="textfield" />
                        </td>
                    </tr>
                </table>
                <input type="checkbox" name="showcsvnames" value="yes" id="checkbox_dump_showcsvnames" <?php PMA_exportCheckboxCheck('csv_columns'); ?> />
                <label for="checkbox_dump_showcsvnames"><?php echo $strPutColNames; ?></label>
            </fieldset>

            <!-- Excel options -->
            <fieldset id="excel_options">
                <legend><?php echo $strExcelOptions; ?></legend>
                <input type="hidden" name="excel_data" value="excel_data" />
                <table border="0" cellspacing="1" cellpadding="0">
                    <tr>
                        <td>
                            <?php echo $strReplaceNULLBy; ?>&nbsp;
                        </td>
                        <td>
                            <input type="text" name="excel_replace_null" size="20" value="<?php echo $cfg['Export']['excel_null']; ?>" class="textfield" />
                        </td>
                    </tr>
                </table>
            </fieldset>

            <fieldset id="none_options">
                <legend><?php echo $strNoOptions; ?></legend>
                <input type="hidden" name="xml_data" value="xml_data" />
            </fieldset>

            <script type="text/javascript">
            <!--
                hide_them_all();
                if (getElement('radio_dump_latex').checked) {
                    getElement('latex_options').style.display = 'block';
<?php if (!$hide_sql) { ?>
                } else if (getElement('radio_dump_sql').checked) {
                    getElement('sql_options').style.display = 'block';
<?php } ?>
                } else if (getElement('radio_dump_csv').checked) {
                    getElement('csv_options').style.display = 'block';
                } else if (getElement('radio_dump_excel').checked) {
                    getElement('excel_options').style.display = 'block';
                } else {
                    if (getElement('radio_dump_sql')) {
                        getElement('radio_dump_sql').checked = true;
                        getElement('sql_options').style.display = 'block';
                    } else if (getElement('radio_dump_csv')) {
                        getElement('radio_dump_csv').checked = true;
                        getElement('csv_options').style.display = 'block';
                    } else {
                        getElement('none_options').style.display = 'block';
                    }
                }
            //-->
            </script>
        </td>
    </tr>

<?php
if (isset($table) && !empty($table) && !isset($num_tables)) {
?>
    <tr>
        <td colspan="2" align="center">
            <fieldset>
                <?php echo sprintf($strDumpXRows , '<input type="text" name="limit_to" size="5" value="' . (isset($unlim_num_rows)?$unlim_num_rows: PMA_countRecords($db, $table, TRUE)) . '" class="textfield" style="vertical-align: middle" onfocus="this.select()" />' , '<input type="text" name="limit_from" value="0" size="5" class="textfield" style="vertical-align: middle" onfocus="this.select()" />') . "\n"; ?>
            </fieldset>
        </td>
    </tr>
<?php
}
?>

    <tr>
        <!-- Export to screen or to file -->
        <td colspan="2">
            <fieldset>
                <legend>
                    <input type="checkbox" name="asfile" value="sendit" id="checkbox_dump_asfile" <?php PMA_exportCheckboxCheck('asfile'); ?> />
                    <label for="checkbox_dump_asfile"><?php echo $strSend; ?></label>
                </legend>

                <?php if (isset($cfg['SaveDir']) && !empty($cfg['SaveDir'])) { ?>
                <input type="checkbox" name="onserver" value="saveit" id="checkbox_dump_onserver"  onclick="getElement('checkbox_dump_asfile').checked = true;" <?php PMA_exportCheckboxCheck('onserver'); ?> />
                <label for="checkbox_dump_onserver"><?php echo sprintf($strSaveOnServer, htmlspecialchars($cfg['SaveDir'])); ?></label>,
                <input type="checkbox" name="onserverover" value="saveitover" id="checkbox_dump_onserverover"  onclick="getElement('checkbox_dump_onserver').checked = true;getElement('checkbox_dump_asfile').checked = true;" <?php PMA_exportCheckboxCheck('onserver_overwrite'); ?> />
                <label for="checkbox_dump_onserverover"><?php echo $strOverwriteExisting; ?></label>
                <br />
                <?php } ?>

                <?php echo $strFileNameTemplate; ?>&nbsp;:
                <input type="text" name="filename_template"
                <?php
                    echo ' value="';
                    if ($export_type == 'database') {
                        if (isset($_COOKIE) && !empty($_COOKIE['pma_db_filename_template'])) {
                            echo $_COOKIE['pma_db_filename_template'];
                        } elseif (isset($HTTP_COOKIE_VARS) && !empty($HTTP_COOKIE_VARS['pma_db_filename_template'])) {
                            echo $HTTP_COOKIE_VARS['pma_db_filename_template'];
                        } else {
                            echo '__DB__';
                        }
                    } elseif ($export_type == 'table') {
                        if (isset($_COOKIE) && !empty($_COOKIE['pma_table_filename_template'])) {
                            echo $_COOKIE['pma_table_filename_template'];
                        } elseif (isset($HTTP_COOKIE_VARS) && !empty($HTTP_COOKIE_VARS['pma_table_filename_template'])) {
                            echo $HTTP_COOKIE_VARS['pma_table_filename_template'];
                        } else {
                            echo '__TABLE__';
                        }
                    } else {
                        if (isset($_COOKIE) && !empty($_COOKIE['pma_server_filename_template'])) {
                            echo $_COOKIE['pma_server_filename_template'];
                        } elseif (isset($HTTP_COOKIE_VARS) && !empty($HTTP_COOKIE_VARS['pma_server_filename_template'])) {
                            echo $HTTP_COOKIE_VARS['pma_server_filename_template'];
                        } else {
                            echo '__SERVER__';
                        }
                    }
                    echo '" ';
                ?>
                />
                (
                <input type="checkbox" name="remember_template" id="checkbox_remember_template" <?php PMA_exportCheckboxCheck('remember_file_template'); ?> />
                <label for="checkbox_remember_template"><?php echo $strFileNameTemplateRemember; ?></label>
                )*

                <?php
                // charset of file
                if ($cfg['AllowAnywhereRecoding'] && $allow_recoding) {
                    echo '<br /><label for="select_charset_of_file">' . $strCharsetOfFile . '</label>';
                    echo "\n";

                    $temp_charset = reset($cfg['AvailableCharsets']);
                    echo '<select id="select_charset_of_file" name="charset_of_file" size="1">' . "\n"
                            . '                <option value="' . $temp_charset . '"';
                    if ($temp_charset == $charset) {
                        echo ' selected="selected"';
                    }
                    echo '>' . $temp_charset . '</option>' . "\n";
                    while ($temp_charset = next($cfg['AvailableCharsets'])) {
                        echo '                <option value="' . $temp_charset . '"';
                        if ($temp_charset == $charset) {
                            echo ' selected="selected"';
                        }
                        echo '>' . $temp_charset . '</option>' . "\n";
                    } // end while
                    echo '            </select>';
                } // end if
                echo "\n";
                ?>

                <fieldset>
                    <legend><?php echo $strCompression; ?></legend>

                    <input type="radio" name="compression" value="none" id="radio_compression_none" onclick="getElement('checkbox_dump_asfile').checked = true;" <?php PMA_exportIsActive('compression', 'none'); ?> />
                    <label for="radio_compression_none"><?php echo $strNone; ?></label>&nbsp;

<?php

// zip, gzip and bzip2 encode features
if (PMA_PHP_INT_VERSION >= 40004) {
    $is_zip  = (isset($cfg['ZipDump']) && $cfg['ZipDump'] && @function_exists('gzcompress'));
    $is_gzip = (isset($cfg['GZipDump']) && $cfg['GZipDump'] && @function_exists('gzencode'));
    $is_bzip = (isset($cfg['BZipDump']) && $cfg['BZipDump'] && @function_exists('bzcompress'));
    if ($is_zip || $is_gzip || $is_bzip) {
        if ($is_zip) {
            ?>
                    <input type="radio" name="compression" value="zip" id="radio_compression_zip" onclick="getElement('checkbox_dump_asfile').checked = true;" <?php PMA_exportIsActive('compression', 'zip'); ?> />
                    <label for="radio_compression_zip"><?php echo $strZip; ?></label><?php echo (($is_gzip || $is_bzip) ? '&nbsp;' : ''); ?>
            <?php
        }
        if ($is_gzip) {
            echo "\n"
            ?>
                    <input type="radio" name="compression" value="gzip" id="radio_compression_gzip" onclick="getElement('checkbox_dump_asfile').checked = true;" <?php PMA_exportIsActive('compression', 'gzip'); ?> />
                    <label for="radio_compression_gzip"><?php echo $strGzip; ?></label><?php echo ($is_bzip ? '&nbsp;' : ''); ?>
            <?php
        }
        if ($is_bzip) {
            echo "\n"
            ?>
                    <input type="radio" name="compression" value="bzip" id="radio_compression_bzip" onclick="getElement('checkbox_dump_asfile').checked = true;" <?php PMA_exportIsActive('compression', 'bzip'); ?> />
                    <label for="radio_compression_bzip"><?php echo $strBzip; ?></label>
            <?php
        }
    }
}
echo "\n";
?>
            </fieldset>
        </td>
    </tr>

<?php
// Encoding setting form appended by Y.Kawada
if (function_exists('PMA_set_enc_form')) {
    ?>
    <tr>
        <!-- Japanese encoding setting -->
        <td colspan="2" align="center">
    <?php
    echo PMA_set_enc_form('            ');
    ?>
        </td>
    </tr>
    <?php
}
echo "\n";
?>
    <tr>
        <td colspan="2" align="center">
            <input type="submit" value="<?php echo $strGo; ?>" />
        </td>
    </tr>
    </table>
</form>
<table align="center">
<tr>
    <td valign="top">*&nbsp;</td>
    <td>
        <?php echo sprintf($strFileNameTemplateHelp, '<a href="http://www.php.net/manual/function.strftime.php" target="documentation">', '</a>') . "\n"; ?>

    </td>
</tr>
</table>
