. * * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. */ if (($RBAC_Response = $RBAC->userCanAccess( "PM_FACTORY" )) != 1) { return $RBAC_Response; } //G::genericForceLogin( 'WF_MYINFO' , 'login/noViewPage', $urlLogin = 'login/login' ); if (! (isset( $_POST['A'] ) && $_POST['A'] !== '')) { return; } if (! (isset( $_POST['XMLNODE_NAME'] ) && $_POST['XMLNODE_NAME'] !== '')) { return; } if (! (isset( $_POST['NEW_POS'] ) && $_POST['NEW_POS'] !== '')) { return; } $file = PATH_DYNAFORM . G::decrypt( $_POST['A'], URL_KEY ) . '.xml'; $fieldName = $_POST['XMLNODE_NAME']; $newPos = intval( $_POST['NEW_POS'] ); if (! file_exists( $file )) { return; } $xmldoc = new Xml_Document(); $xmldoc->parseXmlFile( $file ); $node = & $xmldoc->findNode( '/dynaForm/' . $fieldName ); if (! isset( $node )) { return; } $numFields = 0; foreach ($xmldoc->children[0]->children as $child) { $numFields += ($child->name !== '') ? 1 : 0; } $newPos = ($newPos < 1) ? 1 : $newPos; $newPos = ($newPos > $numFields) ? $numFields : $newPos; $rowCounter = (int) 0; $newOrder = array (); foreach ($xmldoc->children[0]->children as $index => $child) { if ($child->name !== '') { $rowCounter ++; } if ($rowCounter == $newPos) { $newOrder[] = $node; $rowCounter ++; $newPos = - 1; } if ($child->name !== $node->name) { $newOrder[] = $xmldoc->children[0]->children[$index]; } else { $rowCounter --; } } if ($rowCounter < $newPos) { $newOrder[] = $node; $rowCounter ++; $newPos = - 1; } $xmldoc->children[0]->children = $newOrder; $xmldoc->save( $file ); $i = 0; $aFields = array (); $aFields[] = array ('XMLNODE_NAME' => 'char','TYPE' => 'char','UP' => 'char','DOWN' => 'char','row__' => 'integer'); $oSession = new DBSession( new DBConnection( $file, '', '', '', 'myxml' ) ); $oDataset = $oSession->Execute( 'SELECT * FROM dynaForm WHERE NOT( XMLNODE_NAME = "" )' ); $iMaximun = $oDataset->count(); while ($aRow = $oDataset->Read()) { $aFields[] = array ('XMLNODE_NAME' => $aRow['XMLNODE_NAME'],'TYPE' => $aRow['TYPE'],'UP' => ($i > 0 ? G::LoadTranslation( 'ID_UP' ) : ''),'DOWN' => ($i < $iMaximun - 1 ? G::LoadTranslation( 'ID_DOWN' ) : ''),'row__' => ($i + 1) ); $i ++; } global $_DBArray; $_DBArray['fields'] = $aFields; $_SESSION['_DBArray'] = $_DBArray;