* If we are in grid editing, we need to process the relational and * 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) {
/** * Test for PMA_getDisplayValueForForeignTableColumn * * @return void */ public function testGetDisplayValueForForeignTableColumn() { $map = array(); $map['f']['foreign_db'] = 'information_schema'; $map['f']['foreign_table'] = 'TABLES'; $map['f']['foreign_field'] = 'f'; $dbi = $this->getMockBuilder('PMA_DatabaseInterface')->disableOriginalConstructor()->getMock(); $dbi->expects($this->once())->method('tryQuery')->with('SELECT `TABLE_COMMENT` FROM `information_schema`.`TABLES` WHERE ' . '`f`=1', null, PMA_DatabaseInterface::QUERY_STORE)->will($this->returnValue('r1')); $dbi->expects($this->once())->method('numRows')->with('r1')->will($this->returnValue('2')); $dbi->expects($this->once())->method('fetchRow')->with('r1', 0)->will($this->returnValue(array('2'))); $GLOBALS['dbi'] = $dbi; $result = PMA_getDisplayValueForForeignTableColumn("=1", null, $map, 'f'); $this->assertEquals(2, $result); }