Пример #1
0
/**
 * Function to generate HTML for the GIS visualization page
 *
 * @param array   $url_params            url parameters
 * @param array   $labelCandidates       list of candidates for the label
 * @param array   $spatialCandidates     list of candidates for the spatial column
 * @param array   $visualizationSettings visualization settings
 * @param String  $sql_query             the sql query
 * @param String  $visualization         HTML and js code for the visualization
 * @param boolean $svg_support           whether svg download format is supported
 * @param array   $data                  array of visualizing data
 *
 * @return string HTML code for the GIS visualization
 */
function PMA_getHtmlForGisVisualization($url_params, $labelCandidates, $spatialCandidates, $visualizationSettings, $sql_query, $visualization, $svg_support, $data)
{
    $html = '<div id="div_view_options">';
    $html .= '<fieldset>';
    $html .= '<legend>' . __('Display GIS Visualization') . '</legend>';
    $html .= '<div style="width: 400px; float: left;">';
    $html .= '<form method="post" action="tbl_gis_visualization.php">';
    $html .= PMA_URL_getHiddenInputs($url_params);
    $html .= '<table class="gis_table">';
    $html .= PMA_getHtmlForColumn("labelColumn", $labelCandidates, $visualizationSettings);
    $html .= PMA_getHtmlForColumn("spatialColumn", $spatialCandidates, $visualizationSettings);
    $html .= '<tr><td></td>';
    $html .= '<td class="button"><input type="submit"';
    $html .= ' name="displayVisualizationBtn" value="';
    $html .= __('Redraw');
    $html .= '" /></td></tr>';
    if (!$GLOBALS['PMA_Config']->isHttps()) {
        $isSelected = isset($visualizationSettings['choice']) ? true : false;
        $html .= PMA_getHtmlForUseOpenStreetMaps($isSelected);
    }
    $html .= '</table>';
    $html .= '<input type="hidden" name="displayVisualization" value="redraw">';
    $html .= '<input type="hidden" name="sql_query" value="';
    $html .= htmlspecialchars($sql_query) . '" />';
    $html .= '</form>';
    $html .= '</div>';
    $html .= '<div  style="float:left;">';
    $html .= '<form method="post" class="disableAjax"';
    $html .= ' action="tbl_gis_visualization.php">';
    $html .= PMA_URL_getHiddenInputs($url_params);
    $html .= '<table class="gis_table">';
    $html .= '<tr><td><label for="fileName">';
    $html .= __("File name") . '</label></td>';
    $html .= '<td><input type="text" name="fileName" id="fileName" /></td></tr>';
    $html .= '<tr><td><label for="fileFormat">';
    $html .= __("Format") . '</label></td>';
    $html .= '<td><select name="fileFormat" id="fileFormat">';
    $html .= '<option value="png">PNG</option>';
    $html .= '<option value="pdf">PDF</option>';
    if ($svg_support) {
        $html .= '<option value="svg" selected="selected">SVG</option>';
    }
    $html .= '</select></td></tr>';
    $html .= '<tr><td></td>';
    $html .= '<td class="button"><input type="submit" name="saveToFileBtn" value="';
    $html .= __('Download') . '" /></td></tr>';
    $html .= '</table>';
    $html .= '<input type="hidden" name="saveToFile" value="download">';
    $html .= '<input type="hidden" name="sql_query" value="';
    $html .= htmlspecialchars($sql_query) . '" />';
    $html .= '</form>';
    $html .= '</div>';
    $html .= '<div style="clear:both;">&nbsp;</div>';
    $html .= '<div id="placeholder" style="width:';
    $html .= htmlspecialchars($visualizationSettings['width']) . 'px;height:';
    $html .= htmlspecialchars($visualizationSettings['height']) . 'px;">';
    $html .= $visualization;
    $html .= '</div>';
    $html .= '<div id="openlayersmap"></div>';
    $html .= '<input type="hidden" id="pmaThemeImage" value="';
    $html .= $GLOBALS['pmaThemeImage'] . '" />';
    $html .= '<script language="javascript" type="text/javascript">';
    $html .= 'function drawOpenLayers()';
    $html .= '{';
    if (!$GLOBALS['PMA_Config']->isHttps()) {
        $html .= PMA_GIS_visualizationResults($data, $visualizationSettings, 'ol');
    }
    $html .= '}';
    $html .= '</script>';
    $html .= '</fieldset>';
    $html .= '</div>';
    return $html;
}
 /**
  * Tests for PMA_getHtmlForGisVisualization() method.
  *
  * @return void
  * @test
  */
 public function testPMAGetHtmlForGisVisualization()
 {
     $url_params = array("url_params");
     $labelCandidates = array("option1", "option2");
     $spatialCandidates = array("option2", "option3");
     $visualizationSettings = array('width' => 10, 'height' => 12, 'labelColumn' => 'labelColumn', 'spatialColumn' => 'spatialColumn', 'choice' => 'choice');
     $sql_query = "sql_query";
     $visualization = "visualization";
     $svg_support = array();
     $data = array();
     $html = PMA_getHtmlForGisVisualization($url_params, $labelCandidates, $spatialCandidates, $visualizationSettings, $sql_query, $visualization, $svg_support, $data);
     $this->assertContains('<legend>' . __('Display GIS Visualization') . '</legend>', $html);
     $this->assertContains(PMA_URL_getHiddenInputs($url_params), $html);
     $output = PMA_getHtmlForColumn("labelColumn", $labelCandidates, $visualizationSettings);
     $this->assertContains($output, $html);
     $output = PMA_getHtmlForColumn("spatialColumn", $spatialCandidates, $visualizationSettings);
     $this->assertContains($output, $html);
     $this->assertContains(__('Redraw'), $html);
     $this->assertContains(__('Download'), $html);
     $this->assertContains(htmlspecialchars($sql_query), $html);
     $this->assertContains('<option value="png">PNG</option>', $html);
     $this->assertContains('<option value="pdf">PDF</option>', $html);
     $this->assertContains(htmlspecialchars($visualizationSettings['width']), $html);
     $this->assertContains(htmlspecialchars($visualizationSettings['height']), $html);
     $this->assertContains($visualization, $html);
 }