Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpmyadmin/phpmyadmin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Foellmann <foellmann@foe-services.de>2014-07-28 14:13:10 +0400
committerChristian Foellmann <foellmann@foe-services.de>2014-07-28 14:13:10 +0400
commit276394119dfbe117acd411a3862de597ba35a2ad (patch)
tree3dc394a15f459d6324e3452e15e9446e47fe3bd0 /libraries/tbl_gis_visualization.lib.php
parentc8c2e72886de1b71f5abcaa295075da9666096b5 (diff)
UPDATE phpmyadmin 4.2.6 multilanguage
Diffstat (limited to 'libraries/tbl_gis_visualization.lib.php')
-rw-r--r--libraries/tbl_gis_visualization.lib.php121
1 files changed, 21 insertions, 100 deletions
diff --git a/libraries/tbl_gis_visualization.lib.php b/libraries/tbl_gis_visualization.lib.php
index eac9740520..8867ae5153 100644
--- a/libraries/tbl_gis_visualization.lib.php
+++ b/libraries/tbl_gis_visualization.lib.php
@@ -23,109 +23,30 @@ require_once 'libraries/sql.lib.php';
function PMA_GIS_modifyQuery($sql_query, $visualizationSettings)
{
$modified_query = 'SELECT ';
+ // If label column is chosen add it to the query
+ if (! empty($visualizationSettings['labelColumn'])) {
+ $modified_query .= PMA_Util::backquote($visualizationSettings['labelColumn'])
+ . ', ';
+ }
+ // Wrap the spatial column with 'ASTEXT()' function and add it
+ $modified_query .= 'ASTEXT('
+ . PMA_Util::backquote($visualizationSettings['spatialColumn'])
+ . ') AS ' . PMA_Util::backquote($visualizationSettings['spatialColumn'])
+ . ', ';
- $analyzed_query = PMA_SQP_analyze(PMA_SQP_parse($sql_query));
- // If select clause is not *
- if (trim($analyzed_query[0]['select_expr_clause']) != '*') {
- // If label column is chosen add it to the query
- if (isset($visualizationSettings['labelColumn'])
- && $visualizationSettings['labelColumn'] != ''
- ) {
- // Check to see whether an alias has been used on the label column
- $is_label_alias = false;
- foreach ($analyzed_query[0]['select_expr'] as $select) {
- if ($select['alias'] == $visualizationSettings['labelColumn']) {
- $modified_query .= sanitize($select) . ' AS `'
- . $select['alias'] . '`, ';
- $is_label_alias = true;
- break;
- }
- }
- // If no alias have been used on the label column
- if (! $is_label_alias) {
- foreach ($analyzed_query[0]['select_expr'] as $select) {
- if ($select['column'] == $visualizationSettings['labelColumn']) {
- $modified_query .= sanitize($select) . ', ';
- }
- }
- }
- }
-
- // Check to see whether an alias has been used on the spatial column
- $is_spatial_alias = false;
- foreach ($analyzed_query[0]['select_expr'] as $select) {
- if ($select['alias'] == $visualizationSettings['spatialColumn']) {
- $sanitized = sanitize($select);
- $modified_query .= 'ASTEXT(' . $sanitized . ') AS `'
- . $select['alias'] . '`, ';
- // Get the SRID
- $modified_query .= 'SRID(' . $sanitized . ') AS `srid` ';
- $is_spatial_alias = true;
- break;
- }
- }
- // If no alias have been used on the spatial column
- if (! $is_spatial_alias) {
- foreach ($analyzed_query[0]['select_expr'] as $select) {
- if ($select['column'] == $visualizationSettings['spatialColumn']) {
- $sanitized = sanitize($select);
- $modified_query .= 'ASTEXT(' . $sanitized
- . ') AS `' . $select['column'] . '`, ';
- // Get the SRID
- $modified_query .= 'SRID(' . $sanitized . ') AS `srid` ';
- }
- }
- }
- // If select clause is *
- } else {
- // If label column is chosen add it to the query
- if (isset($visualizationSettings['labelColumn'])
- && $visualizationSettings['labelColumn'] != ''
- ) {
- $modified_query .= '`' . $visualizationSettings['labelColumn'] .'`, ';
- }
-
- // Wrap the spatial column with 'ASTEXT()' function and add it
- $modified_query .= 'ASTEXT(`' . $visualizationSettings['spatialColumn']
- . '`) AS `' . $visualizationSettings['spatialColumn'] . '`, ';
+ // Get the SRID
+ $modified_query .= 'SRID('
+ . PMA_Util::backquote($visualizationSettings['spatialColumn'])
+ . ') AS ' . PMA_Util::backquote('srid') . ' ';
- // Get the SRID
- $modified_query .= 'SRID(`' . $visualizationSettings['spatialColumn']
- . '`) AS `srid` ';
- }
+ // Append the original query as the inner query
+ $modified_query .= 'FROM (' . $sql_query . ') AS '
+ . PMA_Util::backquote('temp_gis');
- // Append the rest of the query
- $from_pos = stripos($sql_query, 'FROM');
- $modified_query .= substr($sql_query, $from_pos);
return $modified_query;
}
/**
- * Local function to sanitize the expression taken
- * from the results of PMA_SQP_analyze function.
- *
- * @param array $select Select to sanitize.
- *
- * @return string Sanitized string.
- */
-function sanitize($select)
-{
- $table_col = $select['table_name'] . "." . $select['column'];
- $db_table_col = $select['db'] . "." . $select['table_name']
- . "." . $select['column'];
-
- if ($select['expr'] == $select['column']) {
- return "`" . $select['column'] . "`";
- } elseif ($select['expr'] == $table_col) {
- return "`" . $select['table_name'] . "`.`" . $select['column'] . "`";
- } elseif ($select['expr'] == $db_table_col) {
- return "`" . $select['db'] . "`.`" . $select['table_name']
- . "`.`" . $select['column'] . "`";
- }
- return $select['expr'];
-}
-
-/**
* Formats a visualization for the GIS query results.
*
* @param array $data Data for the status chart
@@ -136,8 +57,8 @@ function sanitize($select)
*/
function PMA_GIS_visualizationResults($data, &$visualizationSettings, $format)
{
- include_once './libraries/gis/pma_gis_visualization.php';
- include_once './libraries/gis/pma_gis_factory.php';
+ include_once './libraries/gis/GIS_Visualization.class.php';
+ include_once './libraries/gis/GIS_Factory.class.php';
if (! isset($data[0])) {
// empty data
@@ -173,8 +94,8 @@ function PMA_GIS_visualizationResults($data, &$visualizationSettings, $format)
*/
function PMA_GIS_saveToFile($data, $visualizationSettings, $format, $fileName)
{
- include_once './libraries/gis/pma_gis_visualization.php';
- include_once './libraries/gis/pma_gis_factory.php';
+ include_once './libraries/gis/GIS_Visualization.class.php';
+ include_once './libraries/gis/GIS_Factory.class.php';
if (isset($data[0])) {
$visualization = new PMA_GIS_Visualization($data, $visualizationSettings);