/**
 * get the html of the form to add the new column to given table
 *
 * @param integer $num_fields number of columns to add
 * @param string  $db         current database
 * @param string  $table      current table
 * @param array   $columnMeta array containing default values for the fields
 *
 * @return HTML
 */
function PMA_getHtmlForCreateNewColumn($num_fields, $db, $table, $columnMeta = array())
{
    $cfgRelation = PMA_getRelationsParam();
    $content_cells = array();
    $available_mime = array();
    $mime_map = array();
    $header_cells = PMA_getHeaderCells(true, null, $cfgRelation['mimework'], $db, $table);
    if ($cfgRelation['mimework'] && $GLOBALS['cfg']['BrowseMIME']) {
        $mime_map = PMA_getMIME($db, $table);
        $available_mime = PMA_getAvailableMIMEtypes();
    }
    $comments_map = PMA_getComments($db, $table);
    for ($columnNumber = 0; $columnNumber < $num_fields; $columnNumber++) {
        $content_cells[$columnNumber] = PMA_getHtmlForColumnAttributes($columnNumber, $columnMeta, '', 8, '', null, array(), null, null, null, $comments_map, null, true, array(), $cfgRelation, isset($available_mime) ? $available_mime : array(), $mime_map);
    }
    return PMA_getHtmlForTableFieldDefinitions($header_cells, $content_cells);
}
/**
 * Function to get html for the create table or field add view
 *
 * @param string $action        action
 * @param array  $form_params   forms parameters
 * @param array  $content_cells content cells
 * @param array  $header_cells  header cells
 *
 * @return string
 */
function PMA_getHtmlForTableCreateOrAddField($action, $form_params, $content_cells, $header_cells)
{
    $html = '<form method="post" action="' . $action . '" class="' . ($action == 'tbl_create.php' ? 'create_table' : 'append_fields') . '_form ajax lock-page">';
    $html .= PMA_URL_getHiddenInputs($form_params);
    $html .= '<input type="hidden" name="primary_indexes" value="[]">';
    $html .= '<input type="hidden" name="unique_indexes" value="[]">';
    $html .= '<input type="hidden" name="indexes" value="[]">';
    $html .= '<input type="hidden" name="fulltext_indexes" value="[]">';
    if ($action == 'tbl_create.php') {
        $html .= PMA_getHtmlForTableNameAndNoOfColumns();
    }
    if (is_array($content_cells) && is_array($header_cells)) {
        $html .= PMA_getHtmlForTableFieldDefinitions($header_cells, $content_cells);
    }
    if ($action == 'tbl_create.php') {
        $html .= PMA_getHtmlForTableConfigurations();
    }
    $html .= PMA_getHtmlForFooter();
    return $html;
}
 /**
  * Test for PMA_getHtmlForTableFieldDefinitions
  *
  * @return void
  */
 public function testGetHtmlForTableFieldDefinitions()
 {
     $header_cells = array('h1', 'h2');
     $content_cells = array(array('a', 'b'), array('c'), 2);
     $result = PMA_getHtmlForTableFieldDefinitions($header_cells, $content_cells);
     $this->assertContains('<th>h1</th>', $result);
     $this->assertContains('<th>h2</th>', $result);
     $this->assertContains('<td class="center">a</td>', $result);
     $this->assertContains('<td class="center">b</td>', $result);
     $this->assertContains('<td class="center">c</td>', $result);
 }
    /**
     * Test for PMA_getHtmlForTableFieldDefinitions
     *
     * @return void
     */
    public function testGetHtmlForTableFieldDefinitions()
    {
        $header_cells = array('h1', 'h2');
        $content_cells = array(
            array('a', 'b'),
            array('c'),
            2
        );
        $result = PMA_getHtmlForTableFieldDefinitions($header_cells, $content_cells);

        $this->assertTag(
            array('tag' => 'th', 'content' => 'h1'),
            $result
        );

        $this->assertTag(
            array('tag' => 'th', 'content' => 'h2'),
            $result
        );

        $this->assertTag(
            array('tag' => 'td', 'content' => 'a'),
            $result
        );

        $this->assertTag(
            array('tag' => 'td', 'content' => 'b'),
            $result
        );

        $this->assertTag(
            array('tag' => 'td', 'content' => 'c'),
            $result
        );
    }
/**
 * Function to get html for the create table or field add view
 *
 * @param string $action        action
 * @param array  $form_params   forms parameters
 * @param array  $content_cells content cells
 * @param array  $header_cells  header cells
 *
 * @return string
 */
function PMA_getHtmlForTableCreateOrAddField($action, $form_params, $content_cells, $header_cells)
{
    $html = '<form method="post" action="' . $action . '" class="' . ($action == 'tbl_create.php' ? 'create_table' : 'append_fields') . '_form ajax">';
    $html .= PMA_URL_getHiddenInputs($form_params);
    if ($action == 'tbl_create.php') {
        $html .= PMA_getHtmlForTableNameAndNoOfColumns();
    }
    if (is_array($content_cells) && is_array($header_cells)) {
        $html .= PMA_getHtmlForTableFieldDefinitions($header_cells, $content_cells);
    }
    if ($action == 'tbl_create.php') {
        $html .= PMA_getHtmlForTableConfigurations();
    }
    $html .= PMA_getHtmlForFooter();
    return $html;
}