/** * Set the javascript code * * @param object $A * @param string $fieldName * @param string $sCode * @return array */ public function set_javascript($A, $fieldName, $sCode, $meta = '') { if ($fieldName == '___pm_boot_strap___') { return 0; } $sCode = urldecode($sCode); try { $sCode = rtrim($sCode); $file = G::decrypt($A, URL_KEY); /* $dbc2 = new DBConnection( PATH_DYNAFORM . $file . '.xml' ,'','','','myxml' ); $ses2 = new DBSession($dbc2); $ses2->execute(G::replaceDataField("UPDATE dynaForm SET XMLNODE_VALUE = @@CODE WHERE XMLNODE_NAME = @@FIELDNAME ", array('FIELDNAME'=>$fieldName,'CODE'=>$sCode), "myxml" )); */ G::LoadSystem('dynaformhandler'); $dynaform = new dynaFormHandler(PATH_DYNAFORM . "{$file}.xml"); $dynaform->replace($fieldName, $fieldName, array('type' => 'javascript', 'meta' => $meta, '#cdata' => $sCode)); return 0; } catch (Exception $e) { return (array) $e; } }
public function saveField($Fields, $attributes = array(), $options = array()) { $dynaform = new dynaFormHandler($this->getFileName()); if ($Fields['TYPE'] === 'javascript') { $Fields['XMLNODE_VALUE'] = $Fields['CODE']; unset($Fields['CODE']); $attributes = array(); } if ($Fields['XMLNODE_NAME_OLD'] == '') { if ($Fields['XMLNODE_NAME'][0] == '1' || $Fields['XMLNODE_NAME'][0] == '2' || $Fields['XMLNODE_NAME'][0] == '3' || $Fields['XMLNODE_NAME'][0] == '4' || $Fields['XMLNODE_NAME'][0] == '5' || $Fields['XMLNODE_NAME'][0] == '6' || $Fields['XMLNODE_NAME'][0] == '7' || $Fields['XMLNODE_NAME'][0] == '8' || $Fields['XMLNODE_NAME'][0] == '9' || $Fields['XMLNODE_NAME'][0] == '10') { $Fields['XMLNODE_NAME'] = '_' . $Fields['XMLNODE_NAME']; } $res = $this->_dbses->Execute('SELECT * FROM dynaForm WHERE XMLNODE_NAME="' . $Fields['XMLNODE_NAME'] . '"'); } else { if ($Fields['XMLNODE_NAME_OLD'][0] == '1' || $Fields['XMLNODE_NAME_OLD'][0] == '2' || $Fields['XMLNODE_NAME_OLD'][0] == '3' || $Fields['XMLNODE_NAME_OLD'][0] == '4' || $Fields['XMLNODE_NAME_OLD'][0] == '5' || $Fields['XMLNODE_NAME_OLD'][0] == '6' || $Fields['XMLNODE_NAME_OLD'][0] == '7' || $Fields['XMLNODE_NAME_OLD'][0] == '8' || $Fields['XMLNODE_NAME_OLD'][0] == '9' || $Fields['XMLNODE_NAME_OLD'][0] == '10') { $Fields['XMLNODE_NAME_OLD'] = '_' . $Fields['XMLNODE_NAME_OLD']; } $res = $this->_dbses->Execute('SELECT * FROM dynaForm WHERE XMLNODE_NAME="' . $Fields['XMLNODE_NAME_OLD'] . '"'); } $this->is_new = $res->count() == 0; $this->Fields = $Fields; unset($this->Fields['XMLNODE_NAME_OLD']); /* * MPD-10 to create fields that do not appear many attributes, only the main ones? * The show those who are not white */ if ($this->is_new) { foreach ($this->Fields as $key => $value) { if ($value == "") { unset($this->Fields[$key]); } } } else { $this->Fields['XMLNODE_NAME'] = $Fields['XMLNODE_NAME_OLD']; } // parent::Save(); if (!isset($Fields['XMLNODE_VALUE'])) { $Fields['XMLNODE_VALUE'] = ''; } if (trim($Fields['XMLNODE_VALUE']) != "") { $attributes['#cdata'] = $Fields['XMLNODE_VALUE']; } $aOptions = array(); if (isset($Fields['OPTIONS']) && is_array($Fields['OPTIONS'])) { foreach ($Fields['OPTIONS'] as $key => $value) { $aOptions[] = array('name' => 'option', 'value' => $value['LABEL'], 'attributes' => array('name' => $value['NAME'])); } } if ($this->is_new) { // Create a new field $dynaform->add($Fields['XMLNODE_NAME'], $attributes, $options, $aOptions); } else { $dynaform->replace($Fields['XMLNODE_NAME_OLD'], $Fields['XMLNODE_NAME'], $attributes, $options, $aOptions); } }