diff --git a/db_datadict.php b/db_datadict.php
index acfb531414..89b2bc5590 100644
--- a/db_datadict.php
+++ b/db_datadict.php
@@ -11,7 +11,8 @@
require_once './libraries/common.inc.php';
if (! isset($selected_tbl)) {
- require_once './libraries/header.inc.php';
+ require './libraries/db_common.inc.php';
+ require './libraries/db_info.inc.php';
}
@@ -55,16 +56,15 @@ if ($cfgRelation['commwork']) {
* Selects the database and gets tables names
*/
PMA_DBI_select_db($db);
-$rowset = PMA_DBI_query('SHOW TABLES FROM ' . PMA_backquote($db) . ';', null, PMA_DBI_QUERY_STORE);
+$tables = PMA_DBI_get_tables($db);
$count = 0;
-while ($row = PMA_DBI_fetch_row($rowset)) {
- $table = $row[0];
+foreach($tables as $table) {
$comments = PMA_getComments($db, $table);
echo '
' . "\n";
- echo '
' . $table . '
' . "\n";
+ echo '
' . htmlspecialchars($table) . '
' . "\n";
/**
* Gets table informations
@@ -204,7 +204,7 @@ while ($row = PMA_DBI_fetch_row($rowset)) {
} else {
$row['Default'] = htmlspecialchars($row['Default']);
}
- $field_name = htmlspecialchars($row['Field']);
+ $field_name = $row['Field'];
if (PMA_MYSQL_INT_VERSION < 50025
&& ! empty($analyzed_sql[0]['create_table_fields'][$field_name]['type'])
@@ -226,9 +226,9 @@ while ($row = PMA_DBI_fetch_row($rowset)) {
' . $field_name . '';
+ echo '' . htmlspecialchars($field_name) . '';
} else {
- echo $field_name;
+ echo htmlspecialchars($field_name);
}
?>
|
diff --git a/libraries/Table.class.php b/libraries/Table.class.php
index d018cd762f..cdc3224ad9 100644
--- a/libraries/Table.class.php
+++ b/libraries/Table.class.php
@@ -362,24 +362,26 @@ class PMA_Table
}
switch ($default_type) {
- case 'USER_DEFINED' :
- if ($is_timestamp && $default_value === '0') {
- // a TIMESTAMP does not accept DEFAULT '0'
- // but DEFAULT 0 works
- $query .= ' DEFAULT 0';
- } elseif ($type == 'BIT') {
- $query .= ' DEFAULT b\'' . preg_replace('/[^01]/', '0', $default_value) . '\'';
- } else {
- $query .= ' DEFAULT \'' . PMA_sqlAddSlashes($default_value) . '\'';
- }
- break;
- case 'NULL' :
- case 'CURRENT_TIMESTAMP' :
- $query .= ' DEFAULT ' . $default_type;
- break;
- case 'NONE' :
- default :
- break;
+ case 'USER_DEFINED' :
+ if ($is_timestamp && $default_value === '0') {
+ // a TIMESTAMP does not accept DEFAULT '0'
+ // but DEFAULT 0 works
+ $query .= ' DEFAULT 0';
+ } elseif ($type == 'BIT') {
+ $query .= ' DEFAULT b\''
+ . preg_replace('/[^01]/', '0', $default_value)
+ . '\'';
+ } else {
+ $query .= ' DEFAULT \'' . PMA_sqlAddSlashes($default_value) . '\'';
+ }
+ break;
+ case 'NULL' :
+ case 'CURRENT_TIMESTAMP' :
+ $query .= ' DEFAULT ' . $default_type;
+ break;
+ case 'NONE' :
+ default :
+ break;
}
if (!empty($extra)) {
@@ -389,8 +391,10 @@ class PMA_Table
if ($extra == 'AUTO_INCREMENT') {
$primary_cnt = count($field_primary);
if (1 == $primary_cnt) {
- for ($j = 0; $j < $primary_cnt && $field_primary[$j] != $index; $j++) {
- //void
+ for ($j = 0; $j < $primary_cnt; $j++) {
+ if ($field_primary[$j] == $index) {
+ break;
+ }
}
if (isset($field_primary[$j]) && $field_primary[$j] == $index) {
$query .= ' PRIMARY KEY';
diff --git a/libraries/core.lib.php b/libraries/core.lib.php
index dcc5208bc6..a277f29629 100644
--- a/libraries/core.lib.php
+++ b/libraries/core.lib.php
@@ -708,13 +708,27 @@ function PMA_includeJS($url)
}
/**
- * Adds JS code snippets to be displayed by header.inc.php. Adds a newline to each snippet.
+ * Adds JS code snippets to be displayed by header.inc.php. Adds a
+ * newline to each snippet.
*
* @param string $str Js code to be added (e.g. "token=1234;")
*
*/
-function PMA_AddJSCode($str) {
+function PMA_AddJSCode($str)
+{
$GLOBALS['js_script'][] = $str;
}
+/**
+ * Adds JS code snippet for variable assignment to be displayed by header.inc.php.
+ *
+ * @param string $key Name of value to set
+ * @param mixed $value Value to set, can be either string or array of strings
+ *
+ */
+function PMA_AddJSVar($key, $value)
+{
+ PMA_AddJsCode(PMA_getJsValue($key, $value));
+}
+
?>
diff --git a/libraries/js_escape.lib.php b/libraries/js_escape.lib.php
index 656794f819..87d88552a6 100644
--- a/libraries/js_escape.lib.php
+++ b/libraries/js_escape.lib.php
@@ -56,25 +56,64 @@ function PMA_escapeJsString($string)
"\r" => '\r')));
}
+/**
+ * Formats a value for javascript code.
+ *
+ * @param string $value String to be formatted.
+ *
+ * @retrun string formatted value.
+ */
+function PMA_formatJsVal($value)
+{
+ if (is_bool($value)) {
+ if ($value) {
+ return 'true';
+ } else {
+ return 'false';
+ }
+ } elseif (is_int($value)) {
+ return (int)$value;
+ } else {
+ return '"' . PMA_escapeJsString($value) . '"';
+ }
+}
+
+/**
+ * Formats an javascript assignment with proper escaping of a value
+ * and support for assigning array of strings.
+ *
+ * @param string $key Name of value to set
+ * @param mixed $value Value to set, can be either string or array of strings
+ *
+ * @return string Javascript code.
+ */
+function PMA_getJsValue($key, $value)
+{
+ $result = $key . ' = ';
+ if (is_array($value)) {
+ $result .= '[';
+ foreach ($value as $id => $val) {
+ $result .= PMA_formatJsVal($value) . ",";
+ }
+ $result .= "];\n";
+ } else {
+ $result .= PMA_formatJsVal($value) . ";\n";
+ }
+ return $result;
+}
+
/**
* Prints an javascript assignment with proper escaping of a value
* and support for assigning array of strings.
*
* @param string $key Name of value to set
* @param mixed $value Value to set, can be either string or array of strings
+ *
+ * @return nothing
*/
function PMA_printJsValue($key, $value)
{
- echo $key . ' = ';
- if (is_array($value)) {
- echo '[';
- foreach ($value as $id => $val) {
- echo "'" . PMA_escapeJsString($val) . "',";
- }
- echo "];\n";
- } else {
- echo "'" . PMA_escapeJsString($value) . "';\n";
- }
+ echo PMA_getJsValue($key, $value);
}
?>
diff --git a/pmd_common.php b/libraries/pmd_common.php
similarity index 100%
rename from pmd_common.php
rename to libraries/pmd_common.php
diff --git a/libraries/tbl_select.lib.php b/libraries/tbl_select.lib.php
index 57c520dfc5..755322ec4f 100644
--- a/libraries/tbl_select.lib.php
+++ b/libraries/tbl_select.lib.php
@@ -11,71 +11,64 @@
require_once 'url_generating.lib.php';
- /**
- * PMA_tbl_setTitle() sets the title for foreign keys display link
+/**
+ * Sets the title for foreign keys display link.
*
- * @param $propertiesIconic Type of icon property
- * @param $themeImage Icon Image
- * @return string $str Value of the Title
+ * @param mixed $propertiesIconic Type of icon property
+ * @param string $pmaThemeImage Icon Image
*
+ * @return string $str Value of the Title
*/
-
-function PMA_tbl_setTitle($propertiesIconic,$pmaThemeImage){
+function PMA_tbl_setTitle($propertiesIconic, $pmaThemeImage)
+{
if ($propertiesIconic == true) {
$str = '

';
+ .'b_browse.png" alt="' . __('Browse foreign values') . '" title="'
+ . __('Browse foreign values') . '" />';
- if ($propertiesIconic === 'both') {
- $str .= __('Browse foreign values');
- return $str;
- }
- } else {
- return __('Browse foreign values');
- }
+ if ($propertiesIconic === 'both') {
+ $str .= __('Browse foreign values');
+ }
+
+ return $str;
+ } else {
+ return __('Browse foreign values');
+ }
}
- /**
- * PMA_tbl_getFields() gets all the fields of a table along with their types,collations and whether null or not.
+/**
+ * Gets all the fields of a table along with their types, collations
+ * and whether null or not.
*
- * @uses PMA_DBI_query()
- * @uses PMA_backquote()
- * @uses PMA_DBI_num_rows()
- * @uses PMA_DBI_fetch_assoc()
- * @uses PMA_DBI_free_result()
- * @uses preg_replace()
- * @uses str_replace()
- * @uses strncasecmp()
- * @uses empty()
- *
- * @param $db Selected database
- * @param $table Selected table
- *
- * @return array($fields_list,$fields_type,$fields_collation,$fields_null) Array containing the field list, field types, collations and null constatint
+ * @param string $table Selected table
+ * @param string $db Selected database
*
+ * @return array Array containing the field list, field types, collations
+ * and null constraint
*/
-
-function PMA_tbl_getFields($table,$db) {
-
+function PMA_tbl_getFields($table,$db)
+{
// Gets the list and number of fields
-
- $fields = PMA_DBI_get_columns($db, $table, true);
+ $fields = PMA_DBI_get_columns($db, $table, true);
$fields_list = $fields_null = $fields_type = $fields_collation = array();
$geom_column_present = false;
$geom_types = PMA_getGISDatatypes();
+
foreach ($fields as $row) {
$fields_list[] = $row['Field'];
$type = $row['Type'];
+
// check whether table contains geometric columns
if (in_array($type, $geom_types)) {
$geom_column_present = true;
}
+
// reformat mysql query output
if (strncasecmp($type, 'set', 3) == 0
- || strncasecmp($type, 'enum', 4) == 0) {
+ || strncasecmp($type, 'enum', 4) == 0
+ ) {
$type = str_replace(',', ', ', $type);
} else {
-
// strip the "BINARY" attribute, except if we find "BINARY(" because
// this would be a BINARY or VARBINARY field type
if (!preg_match('@BINARY[\(]@i', $type)) {
@@ -91,51 +84,49 @@ function PMA_tbl_getFields($table,$db) {
}
$fields_null[] = $row['Null'];
$fields_type[] = $type;
- $fields_collation[] = !empty($row['Collation']) && $row['Collation'] != 'NULL'
- ? $row['Collation']
- : '';
+ $fields_collation[] = ! empty($row['Collation']) && $row['Collation'] != 'NULL'
+ ? $row['Collation']
+ : '';
} // end while
- return array($fields_list,$fields_type,$fields_collation,$fields_null, $geom_column_present);
-
+ return array($fields_list, $fields_type, $fields_collation, $fields_null, $geom_column_present);
}
-/* PMA_tbl_setTableHeader() sets the table header for displaying a table in query-by-example format
+/**
+ * Sets the table header for displaying a table in query-by-example format.
*
- * @return HTML content, the tags and content for table header
+ * @param bool $geom_column_present whether a geometry column is present
*
+ * @return HTML content, the tags and content for table header
*/
-
-function PMA_tbl_setTableHeader($geom_column_present = false){
-
+function PMA_tbl_setTableHeader($geom_column_present = false)
+{
// Display the Function column only if there is alteast one geomety colum
$func = '';
if ($geom_column_present) {
$func = '
' . __('Function') . ' | ';
}
-return '
+ return '
' . $func . '| ' . __('Column') . ' |
' . __('Type') . ' |
' . __('Collation') . ' |
' . __('Operator') . ' |
' . __('Value') . ' |
-
+
';
-
-
}
-/* PMA_tbl_getSubTabs() returns an array with necessary configrations to create sub-tabs(Table Search and Zoom Search) in the table_select page
- *
- * @return array $subtabs Array containing configuration (icon,text,link,id,args) of sub-tabs for Table Search and Zoom search
+/**
+ * Returns an array with necessary configrations to create
+ * sub-tabs(Table Search and Zoom Search) in the table_select page.
*
+ * @return array Array containing configuration (icon, text, link, id, args)
+ * of sub-tabs for Table Search and Zoom search
*/
-
-function PMA_tbl_getSubTabs(){
-
+function PMA_tbl_getSubTabs()
+{
$subtabs = array();
-
$subtabs['search']['icon'] = 'b_search.png';
$subtabs['search']['text'] = __('Table Search');
$subtabs['search']['link'] = 'tbl_select.php';
@@ -148,74 +139,65 @@ function PMA_tbl_getSubTabs(){
$subtabs['zoom']['id'] = 'zoom_search_id';
return $subtabs;
-
}
-
-/* PMA_tbl_getForeignFields_Values() creates the HTML content for: 1) Browsing foreign data for a field. 2) Creating elements for search criteria input on fields.
+/**
+ * Creates the HTML content for:
+ * 1) Browsing foreign data for a field.
+ * 2) Creating elements for search criteria input on fields.
*
- * @uses PMA_foreignDropdown
- * @uses PMA_generate_common_url
- * @uses isset()
- * @uses is_array()
- * @uses in_array()
- * @uses urlencode()
- * @uses str_replace()
- * @uses stbstr()
- *
- * @param $foreigners Array of foreign keys
- * @param $foreignData Foreign keys data
- * @param $field Column name
- * @param $tbl_fields_type Column type
- * @param $i Column index
- * @param $db Selected database
- * @param $table Selected table
- * @param $titles Selected title
- * @param $foreignMaxLimit Max limit of displaying foreign elements
- * @param $fields Array of search criteria inputs
- * @param $in_fbs In function based search
- *
- * @return string $str HTML content for viewing foreing data and elements for search criteria input.
+ * @param array $foreigners Array of foreign keys
+ * @param array $foreignData Foreign keys data
+ * @param string $field Column name
+ * @param string $tbl_fields_type Column type
+ * @param int $i Column index
+ * @param string $db Selected database
+ * @param string $table Selected table
+ * @param array $titles Selected title
+ * @param int $foreignMaxLimit Max limit of displaying foreign elements
+ * @param array $fields Array of search criteria inputs
+ * @param bool $in_fbs Whether we are in 'function based search'
*
+ * @return string HTML content for viewing foreing data and elements
+ * for search criteria input.
*/
-
-function PMA_getForeignFields_Values($foreigners, $foreignData, $field, $tbl_fields_type, $i, $db, $table, $titles, $foreignMaxLimit, $fields, $in_fbs = false){
-
+function PMA_getForeignFields_Values($foreigners, $foreignData, $field, $tbl_fields_type, $i, $db, $table, $titles, $foreignMaxLimit, $fields, $in_fbs = false)
+{
$str = '';
-
if ($foreigners && isset($foreigners[$field]) && is_array($foreignData['disp_row'])) {
// f o r e i g n k e y s
- $str .= ' ' . "\n";
+
+ } elseif ($foreignData['foreign_link'] == true) {
if(isset($fields[$i]) && is_string($fields[$i])){
- $str .= '' ;
+ $str .= '' ;
}
else{
- $str .= '' ;
+ $str .= '' ;
}
?>
- ';
+ ';
// ' . str_replace("'", "\'", $titles['Browse']) . '';
// ]]
$str .= '';
+
} elseif (in_array($tbl_fields_type[$i], PMA_getGISDatatypes())) {
// g e o m e t r y
$str .= '' . "\n";
- for ($j = 0; $j < $cnt_enum_value; $j++) {
- if(isset($fields[$i]) && is_array($fields[$i]) && in_array($enum_value[$j],$fields[$i])){
- $str .= ' ';
- }
- else{
- $str .= ' ';
- }
- } // end for
- $str .= ' ' . "\n";
- }
- else {
+ .' multiple="multiple" size="' . min(3, $cnt_enum_value) . '">' . "\n";
+
+ for ($j = 0; $j < $cnt_enum_value; $j++) {
+ if (isset($fields[$i])
+ && is_array($fields[$i])
+ && in_array($enum_value[$j], $fields[$i])
+ ) {
+ $str .= '';
+ } else {
+ $str .= '';
+ }
+ } // end for
+ $str .= '' . "\n";
+
+ } else {
// o t h e r c a s e s
$the_class = 'textfield';
$type = $tbl_fields_type[$i];
+
if ($type == 'date') {
$the_class .= ' datefield';
} elseif ($type == 'datetime' || substr($type, 0, 9) == 'timestamp') {
$the_class .= ' datetimefield';
}
- if(isset($fields[$i]) && is_string($fields[$i])){
- $str .= ' ' . "\n";
- }
- else{
- $str .= ' ' . "\n";
- }
- };
- return $str;
+ if (isset($fields[$i]) && is_string($fields[$i])) {
+ $str .= '' . "\n";
+ } else {
+ $str .= '' . "\n";
+ }
+ }
+ return $str;
}
-
-/* PMA_tbl_search_getWhereClause() Return the where clause for query generation based on the inputs provided.
+/**
+ * Return the where clause for query generation based on the inputs provided.
*
- * @uses PMA_backquote
- * @uses PMA_sqlAddslashes
- * @uses preg_match
- * @uses isset()
- * @uses in_array()
- * @uses str_replace()
- * @uses strpos()
- * @uses explode()
- * @uses trim()
- *
- * @param $fields Search criteria input
- * @param $names Name of the field(column) on which search criteria is submitted
- * @param $types Type of the field
- * @param $collations Field collation
- * @param $func_type Search fucntion/operator
- * @param $unaryFlag Whether operator unary or not
- *
- * @return string $str HTML content for viewing foreing data and elements for search criteria input.
+ * @param mixed $fields Search criteria input
+ * @param string $names Name of the column on which search is submitted
+ * @param string $types Type of the field
+ * @param string $collations Field collation
+ * @param string $func_type Search fucntion/operator
+ * @param bool $unaryFlag Whether operator unary or not
+ * @param bool $geom_func Whether geometry functions should be applied
*
+ * @return string HTML content for viewing foreing data and elements
+ * for search criteria input.
*/
-
-function PMA_tbl_search_getWhereClause($fields, $names, $types, $collations, $func_type, $unaryFlag, $geom_func = null){
-
+function PMA_tbl_search_getWhereClause($fields, $names, $types, $collations, $func_type, $unaryFlag, $geom_func = null)
+{
/**
* @todo move this to a more apropriate place
*/
@@ -305,7 +283,6 @@ function PMA_tbl_search_getWhereClause($fields, $names, $types, $collations, $fu
);
$w = '';
-
// If geometry function is set apply it to the field name
if ($geom_func != null && trim($geom_func) != '') {
// Get details about the geometry fucntions
@@ -314,8 +291,8 @@ function PMA_tbl_search_getWhereClause($fields, $names, $types, $collations, $fu
// If the function takes a single parameter
if ($geom_funcs[$geom_func]['params'] == 1) {
$backquoted_name = $geom_func . '(' . PMA_backquote($names) . ')';
- // If the function takes two parameters
} else {
+ // If the function takes two parameters
// create gis data from the string
$gis_data = PMA_createGISData($fields);
@@ -326,7 +303,7 @@ function PMA_tbl_search_getWhereClause($fields, $names, $types, $collations, $fu
// New output type is the output type of the function being applied
$types = $geom_funcs[$geom_func]['type'];
- // If the intended where clause is something like 'IsEmpty(`spatial_col_name`)'
+ // If the where clause is something like 'IsEmpty(`spatial_col_name`)'
if (isset($geom_unary_functions[$geom_func]) && trim($fields) == '') {
$w = $backquoted_name;
return $w;
@@ -335,11 +312,11 @@ function PMA_tbl_search_getWhereClause($fields, $names, $types, $collations, $fu
$backquoted_name = PMA_backquote($names);
}
- if($unaryFlag){
+ if ($unaryFlag) {
$fields = '';
- $w = $backquoted_name . ' ' . $func_type;
+ $w = $backquoted_name . ' ' . $func_type;
- } elseif (in_array($types, PMA_getGISDatatypes())) {
+ } elseif (in_array($types, PMA_getGISDatatypes()) && ! empty($fields)) {
// create gis data from the string
$gis_data = PMA_createGISData($fields);
$w = $backquoted_name . ' ' . $func_type . ' ' . $gis_data;
@@ -360,23 +337,25 @@ function PMA_tbl_search_getWhereClause($fields, $names, $types, $collations, $fu
$parens_open = '(';
$parens_close = ')';
- } else {
- $parens_open = '';
- $parens_close = '';
- }
- $enum_where = '\'' . PMA_sqlAddslashes($fields[0]) . '\'';
- for ($e = 1; $e < $enum_selected_count; $e++) {
- $enum_where .= ', \'' . PMA_sqlAddslashes($fields[$e]) . '\'';
- }
+ } else {
+ $parens_open = '';
+ $parens_close = '';
+ }
+ $enum_where = '\'' . PMA_sqlAddslashes($fields[0]) . '\'';
+ for ($e = 1; $e < $enum_selected_count; $e++) {
+ $enum_where .= ', \'' . PMA_sqlAddslashes($fields[$e]) . '\'';
+ }
- $w = $backquoted_name . ' ' . $func_type . ' ' . $parens_open . $enum_where . $parens_close;
+ $w = $backquoted_name . ' ' . $func_type . ' ' . $parens_open . $enum_where . $parens_close;
}
} elseif ($fields != '') {
// For these types we quote the value. Even if it's another type (like INT),
// for a LIKE we always quote the value. MySQL converts strings to numbers
// and numbers to strings as necessary during the comparison
- if (preg_match('@char|binary|blob|text|set|date|time|year@i', $types) || strpos(' ' . $func_type, 'LIKE')) {
+ if (preg_match('@char|binary|blob|text|set|date|time|year@i', $types)
+ || strpos(' ' . $func_type, 'LIKE')
+ ) {
$quot = '\'';
} else {
$quot = '';
@@ -392,23 +371,28 @@ function PMA_tbl_search_getWhereClause($fields, $names, $types, $collations, $fu
$fields = '^' . $fields . '$';
}
- if ($func_type == 'IN (...)' || $func_type == 'NOT IN (...)' || $func_type == 'BETWEEN' || $func_type == 'NOT BETWEEN') {
+ if ($func_type == 'IN (...)'
+ || $func_type == 'NOT IN (...)'
+ || $func_type == 'BETWEEN'
+ || $func_type == 'NOT BETWEEN'
+ ) {
$func_type = str_replace(' (...)', '', $func_type);
- // quote values one by one
- $values = explode(',', $fields);
- foreach ($values as &$value)
- $value = $quot . PMA_sqlAddslashes(trim($value)) . $quot;
+ // quote values one by one
+ $values = explode(',', $fields);
+ foreach ($values as &$value) {
+ $value = $quot . PMA_sqlAddslashes(trim($value)) . $quot;
+ }
- if ($func_type == 'BETWEEN' || $func_type == 'NOT BETWEEN')
- $w = $backquoted_name . ' ' . $func_type . ' ' . (isset($values[0]) ? $values[0] : '') . ' AND ' . (isset($values[1]) ? $values[1] : '');
- else
+ if ($func_type == 'BETWEEN' || $func_type == 'NOT BETWEEN') {
+ $w = $backquoted_name . ' ' . $func_type . ' ' . (isset($values[0]) ? $values[0] : '')
+ . ' AND ' . (isset($values[1]) ? $values[1] : '');
+ } else {
$w = $backquoted_name . ' ' . $func_type . ' (' . implode(',', $values) . ')';
- }
- else {
+ }
+ } else {
$w = $backquoted_name . ' ' . $func_type . ' ' . $quot . PMA_sqlAddslashes($fields) . $quot;;
}
-
} // end if
return $w;
@@ -417,14 +401,14 @@ function PMA_tbl_search_getWhereClause($fields, $names, $types, $collations, $fu
/**
* Formats a SVG plot for the query results.
*
- * @param array $data Data for the status chart
- * @param array &$settings Settings used to generate the chart
+ * @param array $data Data for the status chart
+ * @param array &$settings Settings used to generate the chart
*
* @return string HTML and JS code for the SVG plot
*/
function PMA_SVG_scatter_plot($data, &$settings)
{
- require_once './libraries/svg_plot/pma_scatter_plot.php';
+ include_once './libraries/svg_plot/pma_scatter_plot.php';
if (empty($data)) {
// empty data
@@ -441,15 +425,5 @@ function PMA_SVG_scatter_plot($data, &$settings)
}
return $scatter_plot->asSVG();
}
-
}
-
-
-
-
-
-
-
-
-
?>
diff --git a/pmd_display_field.php b/pmd_display_field.php
index 0e51cd70c3..9f8291200e 100644
--- a/pmd_display_field.php
+++ b/pmd_display_field.php
@@ -7,7 +7,7 @@
/**
*
*/
-include_once 'pmd_common.php';
+include_once './libraries/pmd_common.php';
$table = $T;
diff --git a/pmd_general.php b/pmd_general.php
index be504ac8b5..d270cbdd6b 100644
--- a/pmd_general.php
+++ b/pmd_general.php
@@ -7,7 +7,7 @@
/**
*
*/
-require_once "./pmd_common.php";
+require_once './libraries/pmd_common.php';
$tab_column = get_tab_info();
$script_tabs = get_script_tabs();
diff --git a/pmd_help.php b/pmd_help.php
index f653b14bbb..f81df43996 100644
--- a/pmd_help.php
+++ b/pmd_help.php
@@ -8,7 +8,7 @@
/**
*
*/
-require_once 'pmd_common.php';
+require_once './libraries/pmd_common.php';
?>
diff --git a/pmd_pdf.php b/pmd_pdf.php
index adf5fac13d..2afe131a66 100644
--- a/pmd_pdf.php
+++ b/pmd_pdf.php
@@ -5,7 +5,7 @@
* @package phpMyAdmin-Designer
*/
-include_once 'pmd_common.php';
+include_once './libraries/pmd_common.php';
/**
* If called directly from the designer, first save the positions
diff --git a/pmd_relation_new.php b/pmd_relation_new.php
index a104cc119c..fbd624631b 100644
--- a/pmd_relation_new.php
+++ b/pmd_relation_new.php
@@ -8,7 +8,7 @@
/**
*
*/
-include_once 'pmd_common.php';
+include_once './libraries/pmd_common.php';
$die_save_pos = 0;
include_once 'pmd_save_pos.php';
extract($_POST, EXTR_SKIP);
diff --git a/pmd_relation_upd.php b/pmd_relation_upd.php
index 58c9135cce..7151cf7563 100644
--- a/pmd_relation_upd.php
+++ b/pmd_relation_upd.php
@@ -8,7 +8,7 @@
/**
*
*/
-include_once 'pmd_common.php';
+include_once './libraries/pmd_common.php';
extract($_POST, EXTR_SKIP);
extract($_GET, EXTR_SKIP);
$die_save_pos = 0;
diff --git a/pmd_save_pos.php b/pmd_save_pos.php
index c487ddb1ce..1a071aff8c 100644
--- a/pmd_save_pos.php
+++ b/pmd_save_pos.php
@@ -8,7 +8,7 @@
/**
*
*/
-include_once 'pmd_common.php';
+include_once './libraries/pmd_common.php';
$cfgRelation = PMA_getRelationsParam();
diff --git a/server_privileges.php b/server_privileges.php
index 78e4f06933..685b81726d 100644
--- a/server_privileges.php
+++ b/server_privileges.php
@@ -1416,7 +1416,7 @@ if (isset($_REQUEST['flush_privileges'])) {
/**
* defines some standard links
*/
-$link_edit = '';
-$link_export = '' . "\n"
. ' ' . "\n";
- $user_form .= sprintf($link_edit, urlencode($current_user),
+ $user_form .= sprintf(
+ $link_edit,
+ urlencode($current_user),
urlencode($current_host),
urlencode(! isset($current['Db']) || $current['Db'] == '*' ? '' : $current['Db']),
'');
diff --git a/server_status.php b/server_status.php
index 7c2f30a658..1dd4852369 100644
--- a/server_status.php
+++ b/server_status.php
@@ -620,7 +620,8 @@ $links['innodb']['doc'] = 'innodb';
// Variable to contain all com_ variables
$used_queries = array();
-// Variable to map variable names to their respective section name (used for js category filtering)
+// Variable to map variable names to their respective section name
+// (used for js category filtering)
$allocationMap = array();
// sort vars into arrays
@@ -637,10 +638,15 @@ foreach ($server_status as $name => $value) {
}
if(PMA_DRIZZLE) {
- $used_queries = PMA_DBI_fetch_result('SELECT * FROM data_dictionary.global_statements', 0, 1);
+ $used_queries = PMA_DBI_fetch_result(
+ 'SELECT * FROM data_dictionary.global_statements',
+ 0,
+ 1
+ );
unset($used_queries['admin_commands']);
} else {
- // admin commands are not queries (e.g. they include COM_PING, which is excluded from $server_status['Questions'])
+ // admin commands are not queries (e.g. they include COM_PING,
+ // which is excluded from $server_status['Questions'])
unset($used_queries['Com_admin_commands']);
}
@@ -667,14 +673,38 @@ $server_db_isLocal = strtolower($cfg['Server']['host']) == 'localhost'
|| $cfg['Server']['host'] == '127.0.0.1'
|| $cfg['Server']['host'] == '::1';
-PMA_AddJSCode('pma_token = \'' . $_SESSION[' PMA_token '] . "';\n" .
- 'url_query = \'' . str_replace('&', '&', PMA_generate_common_url($db)) . "';\n" .
- 'server_time_diff = new Date().getTime() - ' . (microtime(true) * 1000) . ";\n" .
- 'server_os = \'' . PHP_OS . "';\n" .
- 'is_superuser = ' . (PMA_isSuperuser() ? 'true' : 'false') . ";\n" .
- 'server_db_isLocal = ' . ($server_db_isLocal ? 'true' : 'false') . ";\n" .
- 'profiling_docu = \'' . PMA_showMySQLDocu('general-thread-states', 'general-thread-states') . "';\n" .
- 'explain_docu = \'' . PMA_showMySQLDocu('explain-output', 'explain-output') . ";'\n");
+PMA_AddJSVar(
+ 'pma_token',
+ $_SESSION[' PMA_token ']
+);
+PMA_AddJSVar(
+ 'url_query',
+ str_replace('&', '&', PMA_generate_common_url($db))
+);
+PMA_AddJSVar(
+ 'server_time_diff',
+ 'new Date().getTime() - ' . (microtime(true) * 1000)
+);
+PMA_AddJSVar(
+ 'server_os',
+ PHP_OS
+);
+PMA_AddJSVar(
+ 'is_superuser',
+ PMA_isSuperuser()
+);
+PMA_AddJSVar(
+ 'server_db_isLocal',
+ $server_db_isLocal
+);
+PMA_AddJSVar(
+ 'profiling_docu',
+ PMA_showMySQLDocu('general-thread-states', 'general-thread-states')
+);
+PMA_AddJSVar(
+ 'explain_docu',
+ PMA_showMySQLDocu('explain-output', 'explain-output')
+);
/**
* start output
diff --git a/server_variables.php b/server_variables.php
index 4c2086ab89..af47f1fe83 100644
--- a/server_variables.php
+++ b/server_variables.php
@@ -16,9 +16,9 @@ require_once './libraries/common.inc.php';
$GLOBALS['js_include'][] = 'server_variables.js';
-PMA_AddJSCode('pma_token = \'' . $_SESSION[' PMA_token '] . "';\n" .
- 'is_superuser = ' . (PMA_isSuperuser() ? 'true' : 'false') . ";\n" .
- 'url_query = \'' . str_replace('&', '&', PMA_generate_common_url($db)) . "';\n");
+PMA_AddJSVar('pma_token', $_SESSION[' PMA_token ']);
+PMA_AddJSVar('url_query', str_replace('&', '&', PMA_generate_common_url($db)));
+PMA_AddJSVar('is_superuser', PMA_isSuperuser() ? true : false);
/**
@@ -179,4 +179,4 @@ function formatVariable($name,$value)
*/
require './libraries/footer.inc.php';
-?>
\ No newline at end of file
+?>
diff --git a/test/libraries/js_escape_test.php b/test/libraries/js_escape_test.php
new file mode 100644
index 0000000000..ff185ef878
--- /dev/null
+++ b/test/libraries/js_escape_test.php
@@ -0,0 +1,36 @@
+assertEquals($expected, PMA_getJsValue($key, $value));
+ }
+
+ public function variables() {
+ return array(
+ array('foo', true, "foo = true;\n"),
+ array('foo', false, "foo = false;\n"),
+ array('foo', 100, "foo = 100;\n"),
+ array('foo', 0, "foo = 0;\n"),
+ array('foo', 'text', "foo = \"text\";\n"),
+ array('foo', 'quote"', "foo = \"quote\\\"\";\n"),
+ array('foo', 'apostroph\'', "foo = \"apostroph\\'\";\n"),
+ );
+ }
+}
+?>
|