/**
  * 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;
 }
Example #2
0
 /**
  * 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;
     }
 }