--- Desktop\class.t3lib_tcemain.php Mon Jan 24 16:34:36 2005 +++ Desktop\class.t3lib_tcemain-FIX.php Mon Jan 24 16:36:42 2005 @@ -1677,6 +1677,14 @@ $xmlValue = $this->checkValue_flexArray2Xml($arrValue); } + // Temporary fix to move elements: + $moveCMDs = t3lib_div::_GP('_MOVE_FLEX_FORMdata'); + if (is_array($moveCMDs[$table][$id][$field]['data'])) { + $arrValue = t3lib_div::xml2array($xmlValue); + $this->_MOVE_FLEX_FORMdata($arrValue['data'],$moveCMDs[$table][$id][$field]['data']); + $xmlValue = $this->checkValue_flexArray2Xml($arrValue); + } + // Create the value XML: $res['value']=''; $res['value'].=''.chr(10); @@ -1724,11 +1732,47 @@ } + /** + * [Describe function...] + * + * @param [type] &$valueArray: ... + * @param [type] $deleteCMDS: ... + * @return [type] ... + */ + function _MOVE_FLEX_FORMdata(&$valueArray,$moveCMDs) { + if (is_array($valueArray) && is_array($moveCMDs)) { + //print_r($moveCMDs); + foreach($moveCMDs as $key => $value) { + if (is_array($moveCMDs[$key])) { + $this->_MOVE_FLEX_FORMdata($valueArray[$key],$moveCMDs[$key]); + } else { + $explodeResult = explode('-',$value); + if($explodeResult[1]) { + for($i = 1; $i <= 10; $i++) { + $key = $this->moveArrayElement($explodeResult[0],$valueArray,$key); + } + } else { + $this->moveArrayElement($explodeResult[0],$valueArray,$key); + } + } + } + } + } - - - + // works with numerical keys only, so no associative arrays + function moveArrayElement($direction,&$array,$keyOfElementToMove) { + $keyToChangePositionWith = $keyOfElementToMove+(!strcmp($direction,'up')?(-1):1); + + if($array[$keyToChangePositionWith] && $keyToChangePositionWith>0) { + $tempElementToMove = $array[$keyOfElementToMove]; + $tempElementToChangePositionWith = $array[$keyToChangePositionWith]; + + $array[$keyToChangePositionWith] = $tempElementToMove; + $array[$keyOfElementToMove] = $tempElementToChangePositionWith; + } + return $keyToChangePositionWith; + }