/** * Test for PMA_getLinkForRelationalDisplayField * * @return void */ public function testGetLinkForRelationalDisplayField() { $GLOBALS['cfg']['ServerDefault'] = 1; $_SESSION['tmpval']['relational_display'] = 'K'; $map = array(); $map['f']['foreign_db'] = 'information_schema'; $map['f']['foreign_table'] = 'TABLES'; $map['f']['foreign_field'] = 'f'; $result = PMA_getLinkForRelationalDisplayField($map, 'f', "=1", "a>", "b<"); $this->assertEquals('<a href="sql.php?db=information_schema&table=TABLES&pos=0&' . 'sql_query=SELECT+%2A+FROM+%60information_schema%60.%60TABLES%60+WHERE' . '+%60f%60%3D1&lang=en&token=token" title="a>">b<</a>', $result); $_SESSION['tmpval']['relational_display'] = 'D'; $result = PMA_getLinkForRelationalDisplayField($map, 'f', "=1", "a>", "b<"); $this->assertEquals('<a href="sql.php?db=information_schema&table=TABLES&pos=0&' . 'sql_query=SELECT+%2A+FROM+%60information_schema%60.%60TABLES%60+WHERE' . '+%60f%60%3D1&lang=en&token=token" title="b<">a></a>', $result); }
* transformed fields, if they were edited. After that, output the correct * link/transformed value and exit * * Logic taken from libraries/DisplayResults.class.php */ if (isset($_REQUEST['rel_fields_list']) && $_REQUEST['rel_fields_list'] != '') { $map = PMA_getForeigners($db, $table, '', 'both'); $relation_fields = array(); parse_str($_REQUEST['rel_fields_list'], $relation_fields); // loop for each relation cell /** @var array $relation_fields */ foreach ($relation_fields as $cell_index => $curr_rel_field) { foreach ($curr_rel_field as $relation_field => $relation_field_value) { $where_comparison = "='" . $relation_field_value . "'"; $dispval = PMA_getDisplayValueForForeignTableColumn($where_comparison, $map, $relation_field); $extra_data['relations'][$cell_index] = PMA_getLinkForRelationalDisplayField($map, $relation_field, $where_comparison, $dispval, $relation_field_value); } } // end of loop for each relation cell } if (isset($_REQUEST['do_transformations']) && $_REQUEST['do_transformations'] == true) { $edited_values = array(); parse_str($_REQUEST['transform_fields_list'], $edited_values); if (!isset($extra_data)) { $extra_data = array(); } $transformation_types = array("input_transformation", "transformation"); foreach ($mime_map as $transformation) { $column_name = $transformation['column_name']; foreach ($transformation_types as $type) { $file = PMA_securePath($transformation[$type]);
$relation_fields = array(); parse_str($_REQUEST['rel_fields_list'], $relation_fields); // loop for each relation cell /** @var array $relation_fields */ foreach ($relation_fields as $cell_index => $curr_rel_field) { foreach ($curr_rel_field as $relation_field => $relation_field_value) { $where_comparison = "='" . $relation_field_value . "'"; $dispval = PMA_getDisplayValueForForeignTableColumn( $where_comparison, $map, $relation_field ); $extra_data['relations'][$cell_index] = PMA_getLinkForRelationalDisplayField( $map, $relation_field, $where_comparison, $dispval, $relation_field_value ); } } // end of loop for each relation cell } if (isset($_REQUEST['do_transformations']) && $_REQUEST['do_transformations'] == true ) { $edited_values = array(); parse_str($_REQUEST['transform_fields_list'], $edited_values); if (! isset($extra_data)) { $extra_data = array(); } $transformation_types = array( "input_transformation",