. * * 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' ); G::LoadClass('dynaFormField'); if (!(isset($_GET['A']) && $_GET['A']!=='')) return; $file = G::decrypt( $_GET['A'] , URL_KEY ); $dbc = new DBConnection( PATH_DYNAFORM . $file . '.xml' ,'','','','myxml' ); $ses = new DBSession($dbc); //TODO: Improve how to obtain the PRO_UID. $aFile=explode('/',str_replace('\\','/',$file)); $proUid=$aFile[0]; $dynUid=str_replace("_tmp0","",$aFile[1]); require_once 'classes/model/Dynaform.php'; $k=new Criteria('workflow'); $k->addSelectColumn(DynaformPeer::DYN_TYPE); $k->add(DynaformPeer::DYN_UID,$dynUid); $ods=DynaformPeer::doSelectRS($k); $ods->next(); $row=$ods->getRow(); $dynType=$row[0]; $Fields['PME_DYN_TYPE']=$dynType; $fields = new DynaFormField( $dbc ); $fields->Fields['XMLNODE_NAME']=(isset($_GET['XMLNODE_NAME'])) ? urldecode($_GET['XMLNODE_NAME']):''; $fields->Load( $fields->Fields['XMLNODE_NAME'] ); /* Start Comment: Modify the options grid to set dynamically the language * label columns. */ // $dbc2 = new DBConnection( PATH_XMLFORM . 'dynaforms/fields/_options.xml' ,'','','','myxml' ); // $ses2 = new DBSession($dbc2); // $ses2->execute("DELETE FROM dynaForm WHERE XMLNODE_NAME like 'LABEL_%' "); // $ses2->execute("DELETE FROM dynaForm WHERE XMLNODE_NAME = '' "); // $langs=array(SYS_LANG/*,'es','fa'*/); // foreach( $langs as $lang ) { // $LANG = strtoupper($lang); // $Label = 'Label'; // $ses2->execute("INSERT INTO dynaForm (XMLNODE_NAME,XMLNODE_TYPE,XMLNODE_VALUE) VALUES ('', 'cdata', '\n') "); // $ses2->execute("INSERT INTO dynaForm (XMLNODE_NAME,TYPE) VALUES ('LABEL_{$LANG}', 'text') "); // $ses2->execute("INSERT INTO dynaForm.LABEL_{$LANG} (XMLNODE_NAME,XMLNODE_VALUE) VALUES ('".SYS_LANG."', '{$Label} ({$lang})') "); // $ses2->execute("INSERT INTO dynaForm (XMLNODE_NAME,XMLNODE_TYPE,XMLNODE_VALUE) VALUES ('', 'cdata', '\n') "); // } /* End Comment: */ define('DB_XMLDB_HOST', PATH_DYNAFORM . $file . '.xml' ); define('DB_XMLDB_USER',''); define('DB_XMLDB_PASS',''); define('DB_XMLDB_NAME',''); define('DB_XMLDB_TYPE','myxml'); $form = new Form( $file , PATH_DYNAFORM, SYS_LANG, true ); if (is_array($fields->Fields)) { foreach( $fields->Fields as $key => $value ) { $Fields['PME_'.$key] = $value; } } $Fields['PME_A'] = $_GET['A']; $Fields['PME_PRO_UID'] = $proUid; $Fields['PME_XMLNODE_NAME_OLD'] = (isset($Fields['PME_XMLNODE_NAME']) ? $Fields['PME_XMLNODE_NAME'] : ''); $G_PUBLISH = new Publisher(); if ( !( isset($fields->Fields['XMLNODE_NAME']) && ($fields->Fields['XMLNODE_NAME']!=='') ) ) { $type = strtolower( $_GET['TYPE'] ); } else { $type = strtolower( $fields->Fields['TYPE'] ); } if( $type == 'suggest' || $type == 'checkgroup' || $type == 'dropdown' || $type == 'radiogroup' || $type == 'text' || $type == 'listbox' || $type == 'currency' || $type == 'percentage' || $type == 'textarea' || $type == 'hidden' ) { $aDefaultConnections = array(); $aDBConn = array(); G::LoadClass ( 'dbConnections'); $oDBConn = new DbConnections (); $aDefaultConnections = array ( array('DBS_UID' => '', 'DBS_NAME' => ''), array('DBS_UID' => 'workflow', 'DBS_NAME' => 'Workflow'), array('DBS_UID' => 'rbac', 'DBS_NAME' => 'RBAC'), array('DBS_UID' => 'rp', 'DBS_NAME' => 'REPORT') ); $aDBConn = $oDBConn->getConnectionsProUid($proUid); $aDbConnections = array_merge($aDefaultConnections, $aDBConn ); $_DBArray ['DB_CONNECTIONS'] = $aDbConnections; $_SESSION['_DBArray'] = $_DBArray; } if ( !( isset($fields->Fields['XMLNODE_NAME']) && ($fields->Fields['XMLNODE_NAME']!=='') ) ) { $type = strtolower( $_GET['TYPE'] ); $Fields['PME_TYPE'] = $type; $G_PUBLISH->AddContent('xmlform', 'xmlform', 'dynaforms/fields/' . $type, '', $Fields , SYS_URI.'dynaforms/fields_Save', SYS_URI.'dynaforms/fields_Ajax'); } else { $Fields['PME_LABEL'] = $form->fields[$fields->Fields['XMLNODE_NAME']]->label; if (isset($form->fields[$fields->Fields['XMLNODE_NAME']]->code)) $Fields['PME_CODE'] = $form->fields[$fields->Fields['XMLNODE_NAME']]->code; $options=isset($form->fields[$fields->Fields['XMLNODE_NAME']]->option)? $form->fields[$fields->Fields['XMLNODE_NAME']]->option:array(); if (!is_array($options)) $options =array(); $Fields['PME_OPTIONS'] = array( 'NAME' => array_keys($options), 'LABEL' => array_values($options) ); $type = strtolower( $fields->Fields['TYPE'] ); if ($type==='checkbox') { if ($Fields['PME_DEFAULTVALUE']===$Fields['PME_VALUE']) { $Fields['PME_DEFAULTVALUE']='On'; } else { $Fields['PME_DEFAULTVALUE']='Off'; } } if( $type == 'suggest' && isset($Fields['PME_SQLCONNECTION']) && $Fields['PME_SQLCONNECTION']!='') { //define the dbArray with the table fields //g::pr($Fields); $tableExists = true; $sDataBase = 'database_' . strtolower(DB_ADAPTER); if(G::LoadSystemExist($sDataBase)){ G::LoadSystem($sDataBase); $oDataBase = new database(); $tableExists = $oDataBase->tableExists('USERS', $Fields['PME_SQLCONNECTION']); } if($tableExists) { $con = Propel::getConnection($Fields['PME_SQLCONNECTION']); $rs = $con->executeQuery("SHOW COLUMNS FROM USERS"); $result = Array(); $i=0; while ($rs->next()) { $result[$i++] = $rs->getRow(); } } } //g::pr($result); if( isset($Fields['PME_HINT']) ) { $Fields['PME_HINT'] = str_replace("\'", "'", $Fields['PME_HINT']); $Fields['PME_HINT'] = str_replace("&", "&", $Fields['PME_HINT']); } if (file_exists( PATH_XMLFORM . 'dynaforms/fields/' . $type . '.xml')) { $G_PUBLISH->AddContent('xmlform', 'xmlform', 'dynaforms/fields/' . $type, '', $Fields , SYS_URI.'dynaforms/fields_Save', SYS_URI.'dynaforms/fields_Ajax'); } else { print(G::LoadTranslation('ID_UNKNOWN_FIELD_TYPE')); } } G::RenderPage( "publish" , "raw" ); ?>