Spaces:
Sleeping
Sleeping
| /** | |
| * Created on 21/12/2007 | |
| * Dynaform - Dynaform | |
| /** | |
| * DynaformEditorAjax - DynaformEditorAjax class | |
| * | |
| * @package workflow.engine.classes | |
| */ | |
| class DynaformEditorAjax extends DynaformEditor implements IDynaformEditorAjax | |
| { | |
| /** | |
| * Constructor of the class dynaformEditorAjax | |
| * | |
| * @param var $post | |
| * @return void | |
| */ | |
| public function __construct($post) | |
| { | |
| $this->_run($post); | |
| } | |
| /** | |
| * Function Run | |
| * | |
| * @param var $post | |
| * @return void | |
| */ | |
| public function _run($post) | |
| { | |
| WebResource::WebResource($_SERVER['REQUEST_URI'], $post); | |
| } | |
| /** | |
| * Prints the DynaformEditorAjax | |
| * | |
| * @param object $A | |
| * @return ob_get_clean | |
| */ | |
| public function render_preview($A) | |
| { | |
| ob_start(); | |
| $file = G::decrypt($A, URL_KEY); | |
| global $G_PUBLISH; | |
| $G_PUBLISH = new Publisher(); | |
| $G_PUBLISH->publisherId = 'preview'; | |
| $form = new Form($file, PATH_DYNAFORM, SYS_LANG, true, $G_PUBLISH->publisherId); | |
| switch (basename($form->template, '.html')) { | |
| case 'grid': | |
| $template = 'grid'; | |
| $aAux = array_keys($form->fields); | |
| if (count($aAux) > 0) { | |
| $aFields = (array_combine($aAux, $aAux)); | |
| } else { | |
| $aFields = $aAux; | |
| } | |
| if (is_array($aFields)) { | |
| foreach ($aFields as $key => $val) { | |
| $aFields[$key] = array(1 => "", 2 => "", 3 => "", 4 => "", 5 => ""); | |
| } | |
| } | |
| break; | |
| default: | |
| $template = 'xmlform_' . $G_PUBLISH->publisherId; | |
| $aFields = array('__DYNAFORM_OPTIONS' => array('PREVIOUS_STEP' => '#', 'NEXT_STEP' => '#', 'NEXT_STEP_LABEL' => G::loadTranslation('ID_NEXT_STEP'), 'PREVIOUS_ACTION' => 'return false;', 'NEXT_ACTION' => 'return false;' | |
| ) | |
| ); | |
| } | |
| $G_PUBLISH->AddContent('dynaform', $template, $file, '', $aFields, ''); | |
| G::RenderPage('publish', 'raw'); | |
| return ob_get_clean(); | |
| } | |
| /** | |
| * Prints the Dynaform in format HTML | |
| * | |
| * @param object $A | |
| * @return array | |
| */ | |
| public function render_htmledit($A) | |
| { | |
| $script = ''; | |
| $file = G::decrypt($A, URL_KEY); | |
| ob_start(); | |
| global $G_PUBLISH; | |
| $form = new Form($file, PATH_DYNAFORM, SYS_LANG, true); | |
| $G_PUBLISH = new Publisher(); | |
| $G_PUBLISH->publisherId = ''; | |
| $html = $this->get_htmlcode($A); | |
| if (!is_string($html)) { | |
| $error = $html; | |
| $html = ''; | |
| } else { | |
| $error = 0; | |
| } | |
| $HtmlEditor = array('URL' => $A, 'HTML' => $html, 'DYN_UID' => $file ); | |
| $G_PUBLISH->AddContent('xmlform', 'xmlform', 'dynaforms/dynaforms_HtmlEditor', '', $HtmlEditor, '', ''); | |
| G::RenderPage("publish", 'raw'); | |
| return array('error' => $error, 'html' => ob_get_clean() | |
| ); | |
| } | |
| /** | |
| * Get the html code | |
| * Loads the stored HTML or the default Template if | |
| * it doesn't exist. | |
| * | |
| * @param object $A | |
| * @return code html | |
| */ | |
| public function get_htmlcode($A) | |
| { | |
| try { | |
| $script = null; | |
| $fileTmp = G::decrypt($A, URL_KEY); | |
| $form = new Form($fileTmp, PATH_DYNAFORM, SYS_LANG, true); | |
| //Navigation Bar | |
| $form->fields = G::array_merges(array("__DYNAFORM_OPTIONS" => new XmlFormFieldXmlMenu(new Xml_Node("__DYNAFORM_OPTIONS", "complete", "", array("type" => "xmlmenu", "xmlfile" => "gulliver/dynaforms_Options" | |
| )), SYS_LANG, PATH_XMLFORM, $form) | |
| ), $form->fields); | |
| //Loads the stored HTML or the default Template if | |
| //it doesn't exist. | |
| $filename = substr($form->fileName, 0, - 3) . ($form->type === "xmlform" ? "" : "." . $form->type) . "html"; | |
| if (!file_exists($filename)) { | |
| $html = $form->printTemplate($form->template, $script); | |
| } else { | |
| $html = implode("", file($filename)); | |
| } | |
| /* | |
| * It adds the new fields automatically at the bottom of the form. | |
| * TODO: �TOP OR BOTTOM? | |
| * Improving detection algorithm of new fields. | |
| * Current: Do not check the fields that have already been reviewed (saving) | |
| * Already checked the temporary file dynaforms editor. | |
| */ | |
| $tmp = self::_getTmpData(); | |
| if (!isset($tmp['OLD_FIELDS'])) { | |
| $tmp['OLD_FIELDS'] = array(); //var_dump($html);die; | |
| } | |
| $aAux = explode('</form>', $html); | |
| foreach ($form->fields as $field) { | |
| if ((strpos($html, '{$form.' . $field->name . '}') === false) && (strpos($html, '{$' . $field->name . '}') === false)) { | |
| //Aparantly is new (but could be a deleted or non visible like private type fields) | |
| switch (strtolower($field->type)) { | |
| case 'private': | |
| case 'phpvariable': | |
| break; | |
| default: | |
| if (array_search($field->name, $tmp['OLD_FIELDS']) === false) { | |
| //TOP | |
| $aAux[0] .= '<br/>{$' . $field->name . '}' . '{$form.' . $field->name . '}'; | |
| //$html.='<br/>{$'.$field->name.'}'.'{$form.'.$field->name.'}'; | |
| //BOTTOM | |
| //$html='{$'.$field->name.'}'.'{$form.'.$field->name.'}'.$html; | |
| //$tmp['OLD_FIELDS'][]=$field->name; | |
| } | |
| } | |
| } | |
| } | |
| self::_setTmpData($tmp); | |
| //$html=str_replace('{$form_className}','formDefault', $html ); | |
| $html = str_replace('{$form_className}', 'formDefault', $aAux[0] . '</form>'); | |
| return $html; | |
| } catch (Exception $e) { | |
| return (array) $e; | |
| } | |
| } | |
| /** | |
| * Restore the html code | |
| * | |
| * @param object $A | |
| * @return code html | |
| */ | |
| public function restore_html($A) | |
| { | |
| $filter = new InputFilter(); | |
| $script = null; | |
| $fileTmp = G::decrypt($A, URL_KEY); | |
| $form = new Form($fileTmp, PATH_DYNAFORM, SYS_LANG, true); | |
| //Navigation Bar | |
| $form->fields = G::array_merges(array("__DYNAFORM_OPTIONS" => new XmlFormFieldXmlMenu(new Xml_Node("__DYNAFORM_OPTIONS", "complete", "", array("type" => "xmlmenu", "xmlfile" => "gulliver/dynaforms_Options" | |
| )), SYS_LANG, PATH_XMLFORM, $form) | |
| ), $form->fields); | |
| $form->enableTemplate = false; | |
| $html = $form->printTemplate($form->template, $script); | |
| $html = str_replace('{$form_className}', 'formDefault', $html); | |
| $pathTmp = $filter->xssFilterHard(PATH_DYNAFORM . $fileTmp . '.html', 'path'); | |
| if (file_exists($pathTmp)) { | |
| unlink($pathTmp); | |
| } | |
| $fp = fopen($pathTmp, 'w'); | |
| fwrite($fp, $html); | |
| fclose($fp); | |
| return $html; | |
| } | |
| /** | |
| * Set the html code | |
| * | |
| * @param object $A | |
| * @return array | |
| */ | |
| public function set_htmlcode($A, $htmlcode) | |
| { | |
| try { | |
| $filter = new InputFilter(); | |
| $iOcurrences = preg_match_all('/\{\$.*?\}/im', $htmlcode, $matches); | |
| if ($iOcurrences) { | |
| if (isset($matches[0])) { | |
| $tagsHtml = $matches[0]; | |
| foreach ($tagsHtml as $value) { | |
| $aTagVar = strip_tags($value); | |
| if ($value != $aTagVar) { | |
| $htmlcode = str_replace($value, $aTagVar, $htmlcode); | |
| } | |
| } | |
| } | |
| } | |
| $file = G::decrypt($A, URL_KEY); | |
| $form = new Form($file, PATH_DYNAFORM, SYS_LANG, true); | |
| $filename = substr($form->fileName, 0, - 3) . ($form->type === 'xmlform' ? '' : '.' . $form->type) . 'html'; | |
| $filename = $filter->xssFilterHard($filename, 'path'); | |
| $fp = fopen($filename, 'w'); | |
| fwrite($fp, $htmlcode); | |
| fclose($fp); | |
| return 0; | |
| } catch (Exception $e) { | |
| return (array) $e; | |
| } | |
| } | |
| /** | |
| * Get the xml code | |
| * | |
| * @param object $A | |
| * @return array | |
| */ | |
| public function get_xmlcode($A) | |
| { | |
| try { | |
| $file = G::decrypt($A, URL_KEY); | |
| $xmlcode = implode('', file(PATH_DYNAFORM . $file . '.xml')); | |
| return array("xmlcode" => $xmlcode, "error" => 0 | |
| ); | |
| } catch (Exception $e) { | |
| return array("xmlcode" => "", "error" => (array) $e | |
| ); | |
| } | |
| } | |
| /** | |
| * Set the xml code | |
| * | |
| * @param object $A | |
| * @param array $xmlcode | |
| * @return string | |
| */ | |
| public function set_xmlcode($A, $xmlcode) | |
| { | |
| $filter = new InputFilter(); | |
| $xmlcode = urldecode($xmlcode); | |
| $file = G::decrypt($A, URL_KEY); | |
| $xmlcode = str_replace(' ', ' ', trim($xmlcode)); | |
| $pathFile = $filter->xssFilterHard(PATH_DYNAFORM . $file . '.xml', "path"); | |
| $fp = fopen($pathFile, 'w'); | |
| fwrite($fp, $xmlcode); | |
| fclose($fp); | |
| return ""; | |
| } | |
| /** | |
| * Get the javascript code | |
| * | |
| * @param object $A | |
| * @param string $fieldName | |
| * @return array | |
| */ | |
| public function get_javascripts($A, $fieldName) | |
| { | |
| try { | |
| $file = G::decrypt($A, URL_KEY); | |
| $form = new Form($file, PATH_DYNAFORM, SYS_LANG, true); | |
| $aOptions = array(); | |
| $sCode = ''; | |
| foreach ($form->fields as $name => $value) { | |
| if (strcasecmp($value->type, "javascript") == 0) { | |
| $aOptions[] = array('key' => $name, 'value' => $name | |
| ); | |
| if ($name == $fieldName) { | |
| $sCode = $value->code; | |
| } | |
| } | |
| } | |
| return array('aOptions' => $aOptions, 'sCode' => $sCode | |
| ); | |
| } catch (Exception $e) { | |
| return (array) $e; | |
| } | |
| } | |
| /** | |
| * Set the javascript code | |
| * | |
| * @param object $A | |
| * @param string $fieldName | |
| * @param string $sCode | |
| * @return array | |
| */ | |
| public function set_javascript($A, $fieldName, $sCode, $meta = '') | |
| { | |
| $filter = new InputFilter(); | |
| $fieldName = $filter->xssFilterHard($fieldName, 'path'); | |
| 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" )); | |
| */ | |
| $pathFile = $filter->xssFilterHard(PATH_DYNAFORM . "{$file}.xml", 'path'); | |
| $dynaform = new DynaformHandler($pathFile); | |
| $dynaform->replace($fieldName, $fieldName, Array('type' => 'javascript', 'meta' => $meta, '#cdata' => $sCode | |
| )); | |
| return 0; | |
| } catch (Exception $e) { | |
| return (array) $e; | |
| } | |
| } | |
| /** | |
| * Get properties of the dynaForm | |
| * | |
| * @param file $A | |
| * @param string $DYN_UID | |
| * @return array | |
| */ | |
| public function get_properties($A, $DYN_UID) | |
| { | |
| $file = G::decrypt($A, URL_KEY); | |
| $tmp = self::_getTmpData(); | |
| if (!(isset($tmp['Properties']) && isset($tmp['useTmpCopy']))) { | |
| $dynaform = new Dynaform(); | |
| $dynaform->load($DYN_UID); | |
| $form = new Form($file, PATH_DYNAFORM, SYS_LANG, true); | |
| $Properties = array('A' => $A, 'DYN_UID' => $dynaform->getDynUid(), 'PRO_UID' => $dynaform->getProUid(), 'DYN_TITLE' => $dynaform->getDynTitle(), 'DYN_TYPE' => $dynaform->getDynType(), 'DYN_DESCRIPTION' => $dynaform->getDynDescription(), 'WIDTH' => $form->width, | |
| //'ENABLETEMPLATE'=> $form->enableTemplate, | |
| 'MODE' => $form->mode, 'PRINTDYNAFORM' => $form->printdynaform, 'ADJUSTGRIDSWIDTH' => $form->adjustgridswidth, 'NEXTSTEPSAVE' => $form->nextstepsave | |
| ); | |
| $tmp['Properties'] = $Properties; | |
| self::_setTmpData($tmp); | |
| } else { | |
| $form = new Form($file, PATH_DYNAFORM, SYS_LANG, true); | |
| $Properties = $tmp['Properties']; | |
| if (!isset($Properties['ENABLETEMPLATE'])) { | |
| $Properties['ENABLETEMPLATE'] = "0"; | |
| } | |
| $Properties['WIDTH'] = $form->width; | |
| $Properties['MODE'] = $form->mode; | |
| } | |
| return $Properties; | |
| } | |
| /** | |
| * Set properties of the dynaForm | |
| * | |
| * @param file $A | |
| * @param string $DYN_UID | |
| * @param array $getFields | |
| * @return array | |
| */ | |
| public function set_properties($A, $DYN_UID, $getFields) | |
| { | |
| try { | |
| $filter = new InputFilter(); | |
| $post = array(); | |
| parse_str($getFields, $post); | |
| $Fields = $post['form']; | |
| //if (!isset($Fields['ENABLETEMPLATE'])) $Fields['ENABLETEMPLATE'] ="0"; | |
| $file = G::decrypt($A, URL_KEY); | |
| $tmp = self::_getTmpData(); | |
| if (!isset($tmp['useTmpCopy'])) { | |
| $dynaform = new Dynaform(); | |
| $dynaform->update($Fields); | |
| } else { | |
| $tmp['Properties'] = $Fields; | |
| self::_setTmpData($tmp); | |
| } | |
| $pathFile = $filter->xssFilterHard(PATH_DYNAFORM . "{$file}.xml", 'path'); | |
| $dynaform = new DynaformHandler($pathFile); | |
| $dbc2 = new DBConnection($pathFile, '', '', '', 'myxml'); | |
| $ses2 = new DBSession($dbc2); | |
| //if (!isset($Fields['ENABLETEMPLATE'])) $Fields['ENABLETEMPLATE'] ="0"; | |
| /* if (isset($Fields['ENABLETEMPLATE'])) { | |
| $ses2->execute(G::replaceDataField("UPDATE . SET ENABLETEMPLATE = @@ENABLETEMPLATE WHERE XMLNODE_NAME = 'dynaForm' ", $Fields)); | |
| } */ | |
| if (isset($Fields['DYN_TYPE'])) { | |
| //$ses2->execute( G::replaceDataField( "UPDATE . SET TYPE = @@DYN_TYPE WHERE XMLNODE_NAME = 'dynaForm' ", $Fields ) ); | |
| $dynaform->modifyHeaderAttribute('type', $Fields['DYN_TYPE']); | |
| } | |
| if (isset($Fields['WIDTH'])) { | |
| // $ses2->execute( G::replaceDataField( "UPDATE . SET WIDTH = @@WIDTH WHERE XMLNODE_NAME = 'dynaForm' ", $Fields ) ); | |
| $dynaform->modifyHeaderAttribute('width', $Fields['WIDTH']); | |
| //g::pr($dynaform->getHeaderAttribute('width')); | |
| } | |
| if (isset($Fields['MODE'])) { | |
| // $ses2->execute( G::replaceDataField( "UPDATE . SET MODE = @@MODE WHERE XMLNODE_NAME = 'dynaForm' ", $Fields ) ); | |
| $dynaform->modifyHeaderAttribute('mode', $Fields['MODE']); | |
| } | |
| if (isset($Fields['NEXTSTEPSAVE'])) { | |
| //$ses2->execute( G::replaceDataField( "UPDATE . SET NEXTSTEPSAVE = @@NEXTSTEPSAVE WHERE XMLNODE_NAME = 'dynaForm' ", $Fields ) ); | |
| $dynaform->modifyHeaderAttribute('nextstepsave', $Fields['NEXTSTEPSAVE']); | |
| } | |
| if (isset($Fields['PRINTDYNAFORM'])) { | |
| //$ses2->execute( G::replaceDataField( "UPDATE . SET PRINTDYNAFORM = @@PRINTDYNAFORM WHERE XMLNODE_NAME = 'dynaForm' ", $Fields ) ); | |
| $dynaform->modifyHeaderAttribute('printdynaform', $Fields['PRINTDYNAFORM']); | |
| } | |
| if (isset($Fields['ADJUSTGRIDSWIDTH'])) { | |
| //$ses2->execute( G::replaceDataField( "UPDATE . SET ADJUSTGRIDSWIDTH = @@ADJUSTGRIDSWIDTH WHERE XMLNODE_NAME = 'dynaForm' ", $Fields ) ); | |
| $dynaform->modifyHeaderAttribute('adjustgridswidth', $Fields['ADJUSTGRIDSWIDTH']); | |
| } | |
| return 0; | |
| } catch (Exception $e) { | |
| return (array) $e; | |
| } | |
| } | |
| /** | |
| * Get enable template | |
| * | |
| * @param object $A | |
| * @return string | |
| */ | |
| public function get_enabletemplate($A) | |
| { | |
| $file = G::decrypt($A, URL_KEY); | |
| $form = new Form($file, PATH_DYNAFORM, SYS_LANG, true); | |
| return $form->enableTemplate; | |
| } | |
| /** | |
| * Set enable template | |
| * | |
| * @param object $A | |
| * @param string $value | |
| * @return string | |
| */ | |
| public function set_enabletemplate($A, $value) | |
| { | |
| $filter = new InputFilter(); | |
| $file = G::decrypt($A, URL_KEY); | |
| $value = $value == "1" ? "1" : "0"; | |
| // $dbc2 = new DBConnection( PATH_DYNAFORM . $file . '.xml', '', '', '', 'myxml' ); | |
| // $ses2 = new DBSession( $dbc2 ); | |
| // $ses2->execute( "UPDATE . SET ENABLETEMPLATE = '$value'" ); | |
| $pathFile = $filter->xssFilterHard(PATH_DYNAFORM . "{$file}.xml", 'path'); | |
| $dynaform = new DynaformHandler($pathFile); | |
| $dynaform->modifyHeaderAttribute('enabletemplate', $value); | |
| return $value; | |
| } | |
| /** | |
| * Save a dynaForm | |
| * | |
| * @param object $A | |
| * @param string $DYN_UID | |
| * @return array | |
| */ | |
| public function save($A, $DYN_UID) | |
| { | |
| try { | |
| $answer = 0; | |
| $file = G::decrypt($A, URL_KEY); | |
| $tmp = self::_getTmpData(); | |
| if (isset($tmp['Properties'])){ | |
| $fileFirst = $tmp['Properties']['PRO_UID'].'/'.$tmp['Properties']['DYN_UID']; | |
| } | |
| if (isset($tmp['useTmpCopy'])) { | |
| /* Save Register */ | |
| $dynaform = new Dynaform(); | |
| $dynaform->update($tmp['Properties']); | |
| /* Save file */ | |
| $copyFirst = implode('', file(PATH_DYNAFORM . $fileFirst . '.xml')); | |
| $copy = implode('', file(PATH_DYNAFORM . $file . '.xml')); | |
| /*Check differences between XML*/ | |
| $elementFirst = new SimpleXMLElement($copyFirst); | |
| $elementCopy = new SimpleXMLElement($copy); | |
| $desAdd = ''; | |
| $desDel = ''; | |
| //Check the new fields | |
| foreach ($elementCopy as $key1 => $row1){ | |
| $swAll = true; | |
| foreach ($elementFirst as $key2 => $row2){ | |
| if ($key1 == $key2){ | |
| $swAll = false; | |
| break; | |
| } | |
| } | |
| if ($swAll){ | |
| $desAdd .= $key1." "; | |
| } | |
| } | |
| //Check the delete fields | |
| foreach ($elementFirst as $key1 => $row1){ | |
| $swAll = true; | |
| foreach ($elementCopy as $key2 => $row2){ | |
| if ($key1 == $key2){ | |
| $swAll = false; | |
| break; | |
| } | |
| } | |
| if ($swAll){ | |
| $desDel .= $key1." "; | |
| } | |
| } | |
| $mode = empty($tmp['Properties']['MODE'])? 'Determined by Fields' : $tmp['Properties']['MODE']; | |
| $auditDescription = "Dynaform Title: ".$tmp['Properties']['DYN_TITLE'].", Type: ".$tmp['Properties']['DYN_TYPE'].", Description: ".$tmp['Properties']['DYN_DESCRIPTION'].", Mode: ".$mode; | |
| if($desAdd != ''){ | |
| $auditDescription .= ", Field(s) Add: ".$desAdd; | |
| } | |
| if($desDel != ''){ | |
| $auditDescription .= ", Field(s) Delete: ".$desDel; | |
| } | |
| //Add Audit Log | |
| G::auditLog("UpdateDynaform", $auditDescription); | |
| /* | |
| * added by krlos carlos/a/colosa.com | |
| * in here we are validation if a xmlform has a submit action | |
| */ | |
| // if (!preg_match("/type=\"submit\"/",$copy) && !preg_match("/type=\"grid\"/",$copy) && !isset($_SESSION['submitAction']) ){ | |
| if (!preg_match("/type=\"submit\"/", $copy) && !preg_match("/type=\"grid\"/", $copy)) { | |
| // $_SESSION['submitAction'] = 1; | |
| $answer = 'noSub'; | |
| } | |
| $copyHtml = false; | |
| if (file_exists(PATH_DYNAFORM . $file . '.html')) { | |
| $copyHtml = implode('', file(PATH_DYNAFORM . $file . '.html')); | |
| } | |
| $file = DynaformEditor::_getFilename($file); | |
| $fcopy = fopen(PATH_DYNAFORM . $file . '.xml', "w"); | |
| fwrite($fcopy, $copy); | |
| fclose($fcopy); | |
| if ($copyHtml) { | |
| $fcopy = fopen(PATH_DYNAFORM . $file . '.html', "w"); | |
| fwrite($fcopy, $copyHtml); | |
| fclose($fcopy); | |
| } | |
| } else { | |
| //throw new Exception("It should not come here unless you have disabled the temporary copy."); | |
| } | |
| return $answer; | |
| } catch (Exception $e) { | |
| return (array) $e; | |
| } | |
| } | |
| /** | |
| * Close a dynaform | |
| * | |
| * @param object $A | |
| * @return array | |
| */ | |
| public function close($A) | |
| { | |
| try { | |
| /* | |
| * we are unseting this variable. It's our control about to save the xmlfrom | |
| */ | |
| // unset($_SESSION['submitAction']); | |
| $file = G::decrypt($A, URL_KEY); | |
| //return(array('response'=>PATH_DYNAFORM . $file . '.xml')); | |
| /* Delete the temporal copy */ | |
| $tmp = self::_getTmpData(); | |
| $xmlFile = PATH_DYNAFORM . $file . '.xml'; | |
| $htmlFile = PATH_DYNAFORM . $file . '.html'; | |
| //return(array('response'=>$tmp['useTmpCopy'])); | |
| if (isset($tmp['useTmpCopy'])) { | |
| //return(array('response'=>PATH_DYNAFORM . $file . '.xml')); | |
| if ($file !== DynaformEditor::_getFilename($file)) { | |
| // return(array('response'=>PATH_DYNAFORM . $file . '.xml')); | |
| if (file_exists($xmlFile)) { | |
| unlink($xmlFile); | |
| } | |
| if (file_exists($htmlFile)) { | |
| unlink($htmlFile); | |
| } | |
| } | |
| } | |
| return 0; | |
| } catch (Exception $e) { | |
| return (array) $e; | |
| } | |
| } | |
| /** | |
| * Checks if a dynaform was changed | |
| * | |
| * @param file $A | |
| * @param string $DYN_UID | |
| * @return array | |
| */ | |
| public function is_modified($A, $DYN_UID) | |
| { | |
| $file = G::decrypt($A, URL_KEY); | |
| try { | |
| /* Compare Properties */ | |
| $dynaform = new Dynaform(); | |
| $dynaform->load($DYN_UID); | |
| $form = new Form($file, PATH_DYNAFORM, SYS_LANG, true); | |
| $sp = array('A' => $A, 'DYN_UID' => $dynaform->getDynUid(), 'PRO_UID' => $dynaform->getProUid(), 'DYN_TITLE' => $dynaform->getDynTitle(), 'DYN_TYPE' => $dynaform->getDynType(), 'DYN_DESCRIPTION' => $dynaform->getDynDescription(), 'WIDTH' => $form->width, 'ENABLETEMPLATE' => $form->enableTemplate, 'MODE' => $form->mode | |
| ); | |
| $P = self::get_properties($A, $DYN_UID); | |
| if (!isset($P['DYN_TITLE'])) { | |
| $P['DYN_TITLE'] = $sp['DYN_TITLE']; | |
| } | |
| if (!isset($P['DYN_TYPE'])) { | |
| $P['DYN_TYPE'] = $sp['DYN_TYPE']; | |
| } | |
| if (!isset($P['DYN_DESCRIPTION'])) { | |
| $P['DYN_DESCRIPTION'] = $sp['DYN_DESCRIPTION']; | |
| } | |
| if (!isset($P['WIDTH'])) { | |
| $P['WIDTH'] = $sp['WIDTH']; | |
| } | |
| if (!isset($P['ENABLETEMPLATE'])) { | |
| $P['ENABLETEMPLATE'] = $sp['ENABLETEMPLATE']; | |
| } | |
| if (!isset($P['MODE'])) { | |
| $P['MODE'] = $sp['MODE']; | |
| } | |
| $modPro = ($sp['DYN_TITLE'] != $P['DYN_TITLE']) || ($sp['DYN_TYPE'] != $P['DYN_TYPE']) || ($sp['DYN_DESCRIPTION'] != $P['DYN_DESCRIPTION']); | |
| /* || | |
| ($sp['WIDTH']!=$P['WIDTH']) || | |
| ($sp['ENABLETEMPLATE']!=$P['ENABLETEMPLATE']) || | |
| ($sp['MODE']!=$P['MODE']) */ | |
| /* Compare copies */ | |
| $fileOrigen = DynaformEditor::_getFilename($file); | |
| $copy = implode('', file(PATH_DYNAFORM . $file . '.xml')); | |
| $origen = implode('', file(PATH_DYNAFORM . $fileOrigen . '.xml')); | |
| $copyHTML = file_exists(PATH_DYNAFORM . $file . '.html') ? implode('', file(PATH_DYNAFORM . $file . '.html')) : false; | |
| $origenHTML = file_exists(PATH_DYNAFORM . $fileOrigen . '.html') ? implode('', file(PATH_DYNAFORM . $fileOrigen . '.html')) : false; | |
| $modFile = ($copy !== $origen) || ($origenHTML && ($copyHTML !== $origenHTML)); | |
| //Return | |
| //return array("*message"=>sprintf("%s, (%s= %s %s):", $modPro?"1":"0" , $modFile?"1":"0", ($copy!==$origen)?"1":"0" , ($origenHTML && ($copyHTML!==$origenHTML))?"1":"0" )); | |
| //die("c'est fini"); | |
| return $modPro || $modFile; | |
| } catch (Exception $e) { | |
| return (array) $e; | |
| } | |
| } | |
| /* | |
| Functionality: Funcion que convierte objecto en array | |
| Parameters : Object $object que queremos convertir | |
| Return: Array | |
| */ | |
| public function convertObjectToArray($object){ | |
| if( !is_object( $object ) && !is_array( $object ) ){ | |
| return $object; | |
| } | |
| if( is_object( $object ) ){ | |
| $object = get_object_vars( $object ); | |
| } | |
| return array_map( 'objectToArray', $object ); | |
| } | |
| } | |