/** * Method initSubmitValue * Internal method used by an object like ComboBox or SelectList or TextBox to init it with submitted value (if not already done). * @access protected * @return boolean * @since 1.0.59 */ protected function initSubmitValue() { if (!$this->is_init_submit_value && $this->page_object != null) { $this->is_init_submit_value = true; // WARNING if change : This code is almost identical with: Page->getUserEventObject(), Page->loadAllVariables() $class_name = get_class($this->page_object); $form_name = ""; if ($this->form_object != null) { $form_name = $this->form_object->getName(); decryptRequestEncryptData($this->form_object, $class_name . "_" . $this->form_object->getName()); // decrypt Form data } if ($form_name == "") { $name = $class_name . "_" . $this->getName(); } else { $name = $class_name . "_" . $form_name . "_" . $this->getName(); } $name_hidden = ""; // use for component with hidden value if (get_class($this) == "Editor" && $GLOBALS['__AJAX_PAGE__'] == true) { if ($form_name == "") { $name_hidden = $class_name . "_hidden_" . $this->getName(); } else { $name_hidden = $class_name . "_" . $form_name . "_hidden_" . $this->getName(); } } $form_object = $this->getFormObject(); // check object's form rights (POST or GET) before load variable // If this variable exists load it into the object if ($form_object == null) { // no form associate to event object if (isset($_POST[$name])) { if ($name_hidden != "") { $this->setValue(decryptRequestEncryptData($this, $name_hidden, "POST")); return true; } else { $this->setValue(decryptRequestEncryptData($this, $name, "POST")); return true; } } else { if (isset($_GET[$name])) { if ($name_hidden != "") { $this->setValue(decryptRequestEncryptData($this, $name_hidden, "GET")); return true; } else { $this->setValue(decryptRequestEncryptData($this, $name, "GET")); return true; } } } } else { if ($form_object->getMethod() == "POST") { // form rights is POST if (isset($_POST[$name])) { if ($name_hidden != "") { $this->setValue(decryptRequestEncryptData($this, $name_hidden, "POST")); return true; } else { $this->setValue(decryptRequestEncryptData($this, $name, "POST")); return true; } } } else { // form right is GET if (isset($_GET[$name])) { if ($name_hidden != "") { $this->setValue(decryptRequestEncryptData($this, $name_hidden, "GET")); return true; } else { $this->setValue(decryptRequestEncryptData($this, $name, "GET")); return true; } } } } } return false; }
/** * Method getUserEventObject * Save the callback method and params from user event * @access public * @return mixed * @since 1.0.35 */ public function getUserEventObject() { if ($this->callback_method == "") { //$this->addLogDebugRegisterObjects("ComboBox"); foreach ($this->objects as $class_name => $object_array) { $array_class_name = explode('_', $class_name); // For all event objects (button, combobox, ...), check if event exists if (in_array($array_class_name[0], $this->array_callback_object)) { foreach ($object_array as $object) { // WARNING if change : This code is almost identical with WebSitePhpEventObject->initSubmitValue(), Page->loadAllVariables() // create object name if ($object->getFormObject() == null) { $name = "Callback_" . $this->class_name . "_" . $object->getName(); } else { if (!in_array($this->class_name . "_" . $object->getFormObject()->getName(), $this->array_decrypted_form)) { decryptRequestEncryptData($object->getFormObject(), $this->class_name . "_" . $object->getFormObject()->getName()); // decrypt Form data $this->array_decrypted_form[] = $this->class_name . "_" . $object->getFormObject()->getName(); } $name = "Callback_" . $this->class_name . "_" . $object->getFormObject()->getName() . "_" . $object->getName(); } $form_object = $object->getFormObject(); // check button form rights (POST or GET) before execute function $callback_method = ""; $callback_params = ""; if ($form_object == null) { // no form associate to event object if (isset($_POST[$name]) && $_POST[$name] != "") { list($callback_method, $callback_params) = $this->extractCallbackParameters(decryptRequestEncryptData($object, $name, "POST")); } else { if (isset($_GET[$name]) && $_GET[$name] != "") { list($callback_method, $callback_params) = $this->extractCallbackParameters(decryptRequestEncryptData($object, $name, "GET")); } } } else { if ($form_object->getMethod() == "POST") { // form rights is POST if (isset($_POST[$name]) && $_POST[$name] != "") { list($callback_method, $callback_params) = $this->extractCallbackParameters(decryptRequestEncryptData($object, $name, "POST")); } } else { // form rights is GET if (isset($_GET[$name]) && $_GET[$name] != "") { list($callback_method, $callback_params) = $this->extractCallbackParameters(decryptRequestEncryptData($object, $name, "GET")); } } } if ($callback_method != "") { //$this->addLogDebug("Page->getUserEventObject: ".$name." - ".$_REQUEST[$name]." - ".$callback_method); // ack to set button, textbox, combobox, context menu event (is_clicked, is_changed) $save_load_variables = $GLOBALS['__LOAD_VARIABLES__']; $GLOBALS['__LOAD_VARIABLES__'] = true; if (get_class($object) == "Object" || is_subclass_of($object, "Object") || get_class($object) == "ContextMenuEvent" || is_subclass_of($object, "ContextMenuEvent") || get_class($object) == "Picture" || is_subclass_of($object, "Picture") || get_class($object) == "AutoCompleteEvent" || is_subclass_of($object, "AutoCompleteEvent") || get_class($object) == "Raty" || is_subclass_of($object, "Raty") || get_class($object) == "CheckBox" || is_subclass_of($object, "CheckBox")) { $object->setClick(); } else { if (get_class($object) == "DroppableEvent" || is_subclass_of($object, "DroppableEvent")) { $object->setDrop(); } else { if (get_class($object) == "SortableEvent" || is_subclass_of($object, "SortableEvent")) { $object->setSort(); } else { if (get_class($object) == "UploadFile" || is_subclass_of($object, "UploadFile")) { $object->setChange(); } else { $object->setValue($object->getValue()); } } } } $GLOBALS['__LOAD_VARIABLES__'] = $save_load_variables; $callback_params[0] = $object; $this->callback_method_params = $callback_params; $this->callback_method = $callback_method; $this->callback_object = $object; return $object; } } } } // if method is call from an other page foreach ($_REQUEST as $key => $value) { if (find($key, "Callback_", 0, 0) > 0 && find($value, get_class($this) . "().", 0, 0) > 0 && find($value, ").public_", 0, 0) > 0) { list($callback_method, $callback_params) = $this->extractCallbackParameters(str_replace(get_class($this) . "().", "", $value)); if ($callback_method != "") { $callback_params[0] = $object; $this->callback_method_params = $callback_params; $this->callback_method = $callback_method; $this->callback_object = $object; return $object; } } } } else { return $this->callback_object; } }