Beispiel #1
0
 public function __construct()
 {
     Openbizx::$app = $this;
     //$this->isInitialized = true;
     // preInit
     // registerErrorHandlers
     // registerCoreComponent
     $this->request = new Request($this);
     $this->initSystemDefaultTimezone();
     // define default class alias
     $classAliases = ['BizDataObj' => 'Openbizx\\Data\\BizDataObj', 'BizField' => 'Openbizx\\Data\\BizField', 'EasyForm' => 'Openbizx\\Easy\\EasyForm', 'EasyFormTree' => 'Openbizx\\Easy\\EasyForm', 'WebPage' => 'Openbizx\\Easy\\WebPage', 'PickerForm' => 'Openbizx\\Easy\\PickerForm', 'FormReference' => 'Openbizx\\Easy\\FormReference', 'AutoSuggest' => 'Openbizx\\Easy\\Element\\AutoSuggest', 'BarcodeScanner' => 'Openbizx\\Easy\\Element\\BarcodeScanner', 'Button' => 'Openbizx\\Easy\\Element\\Button', 'Checkbox' => 'Openbizx\\Easy\\Element\\Checkbox', 'CheckListbox' => 'Openbizx\\Easy\\Element\\CheckListbox', 'CKEditor' => 'Openbizx\\Easy\\Element\\CKEditor', 'ColorPicker' => 'Openbizx\\Easy\\Element\\ColorPicker', 'ColumnBar' => 'Openbizx\\Easy\\Element\\ColumnBar', 'ColumnBool' => 'Openbizx\\Easy\\Element\\ColumnBool', 'ColumnHidden' => 'Openbizx\\Easy\\Element\\ColumnHidden', 'ColumnImage' => 'Openbizx\\Easy\\Element\\ColumnImage', 'ColumnInputText' => 'Openbizx\\Easy\\Element\\ColumnInputText', 'ColumnList' => 'Openbizx\\Easy\\Element\\ColumnList', 'ColumnListbox' => 'Openbizx\\Easy\\Element\\ColumnListbox', 'ColumnPassword' => 'Openbizx\\Easy\\Element\\ColumnPassword', 'ColumnShare' => 'Openbizx\\Easy\\Element\\ColumnShare', 'ColumnSorting' => 'Openbizx\\Easy\\Element\\ColumnSorting', 'ColumnStyle' => 'Openbizx\\Easy\\Element\\ColumnStyle', 'ColumnText' => 'Openbizx\\Easy\\Element\\ColumnText', 'ColumnValue' => 'Openbizx\\Easy\\Element\\ColumnValue', 'DropDownList' => 'Openbizx\\Easy\\Element\\DropDownList', 'EditCombobox' => 'Openbizx\\Easy\\Element\\EditCombobox', 'Element' => 'Openbizx\\Easy\\Element\\Element', 'EventHandler' => 'Openbizx\\Easy\\Element\\EventHandler', 'File' => 'Openbizx\\Easy\\Element\\File', 'FileInput' => 'Openbizx\\Easy\\Element\\FileInput', 'FileUploader' => 'Openbizx\\Easy\\Element\\FileUploader', 'FormElement' => 'Openbizx\\Easy\\Element\\FormElement', 'Hidden' => 'Openbizx\\Easy\\Element\\Hidden', 'HTMLBlock' => 'Openbizx\\Easy\\Element\\HTMLBlock', 'HTMLButton' => 'Openbizx\\Easy\\Element\\HTMLButton', 'HTMLPreview' => 'Openbizx\\Easy\\Element\\HTMLPreview', 'IDCardReader' => 'Openbizx\\Easy\\Element\\IDCardReader', 'IFrameBox' => 'Openbizx\\Easy\\Element\\IFrameBox', 'ImageSelector' => 'Openbizx\\Easy\\Element\\ImageUploader', 'ImageUploader' => 'Openbizx\\Easy\\Element\\ImageUploader', 'InputDate' => 'Openbizx\\Easy\\Element\\InputDate', 'InputDateRangePicker' => 'Openbizx\\Easy\\Element\\InputDateRangePicker', 'InputDatetime' => 'Openbizx\\Easy\\Element\\InputDatetime', 'InputElement' => 'Openbizx\\Easy\\Element\\InputElement', 'InputPassword' => 'Openbizx\\Easy\\Element\\InputPassword', 'InputPicker' => 'Openbizx\\Easy\\Element\\InputPicker', 'InputText' => 'Openbizx\\Easy\\Element\\InputText', 'LabelBack' => 'Openbizx\\Easy\\Element\\LabelBack', 'LabelBar' => 'Openbizx\\Easy\\Element\\LabelBar', 'LabelBool' => 'Openbizx\\Easy\\Element\\LabelBool', 'LabelImage' => 'Openbizx\\Easy\\Element\\LabelImage', 'LabelList' => 'Openbizx\\Easy\\Element\\LabelList', 'LabelPassword' => 'Openbizx\\Easy\\Element\\LabelPassword', 'LabelText' => 'Openbizx\\Easy\\Element\\LabelText', 'LabelTextarea' => 'Openbizx\\Easy\\Element\\LabelTextarea', 'LabelTextPaging' => 'Openbizx\\Easy\\Element\\LabelTextPaging', 'Listbox' => 'Openbizx\\Easy\\Element\\Listbox', 'OptionElement' => 'Openbizx\\Easy\\Element\\OptionElement', 'PageSelector' => 'Openbizx\\Easy\\Element\\PageSelector', 'PagesizeSelector' => 'Openbizx\\Easy\\Element\\PagesizeSelector', 'Password' => 'Openbizx\\Easy\\Element\\Password', 'Radio' => 'Openbizx\\Easy\\Element\\Radio', 'RawData' => 'Openbizx\\Easy\\Element\\RawData', 'ResetButton' => 'Openbizx\\Easy\\Element\\ResetButton', 'RichText' => 'Openbizx\\Easy\\Element\\RichText', 'RowCheckbox' => 'Openbizx\\Easy\\Element\\RowCheckbox', 'Spacer' => 'Openbizx\\Easy\\Element\\Spacer', 'SubmitButton' => 'Openbizx\\Easy\\Element\\SubmitButton', 'Textarea' => 'Openbizx\\Easy\\Element\\Textarea', 'TreeLabelText' => 'Openbizx\\Easy\\Element\\TreeLabelText', 'TreeListbox' => 'Openbizx\\Easy\\Element\\TreeListbox'];
     Openbizx::objectFactory()->setClassAliases($classAliases);
 }
Beispiel #2
0
 /**
  * Contructor of class
  *
  * @param array $xmlArr
  * @param string $childClassName
  * @param object $parentObj
  * @return void
  */
 public function __construct(&$xmlArr, $childClassName, $parentObj = null)
 {
     $this->parentObj = $parentObj;
     if (!$xmlArr) {
         return;
     }
     if (isset($xmlArr["ATTRIBUTES"])) {
         $className = isset($xmlArr["ATTRIBUTES"]['CLASS']) ? $xmlArr["ATTRIBUTES"]['CLASS'] : $childClassName;
         if ((bool) strpos($className, ".")) {
             $a_package_name = explode(".", $className);
             $className = array_pop($a_package_name);
             $clsLoaded = ClassLoader::loadMetadataClass($className, implode(".", $a_package_name));
         }
         //if (!$clsLoaded) trigger_error("Cannot find the load class $className", E_USER_ERROR);
         $className = Openbizx::objectFactory()->getClassNameFromAlias($className);
         $obj = new $className($xmlArr, $parentObj);
         $this->varValue[$obj->objectName] = $obj;
     } else {
         foreach ($xmlArr as $child) {
             $className = isset($child["ATTRIBUTES"]['CLASS']) ? $child["ATTRIBUTES"]['CLASS'] : $childClassName;
             /**
              * If a '.' is found within className we need to require such class
              * and then get the className after the last dot
              * ex. shared.dataobjs.FieldName, in this case FieldName is the class, shared/dataobjs the path
              *
              * The best solution to this is enable object factory to specify its resulting object constructor parameters
              */
             if ($className) {
                 //bug fixed by jixian for resolve load an empty classname
                 if ((bool) strpos($className, ".")) {
                     $a_package_name = explode(".", $className);
                     $className = array_pop($a_package_name);
                     $clsLoaded = ClassLoader::loadMetadataClass($className, implode(".", $a_package_name));
                 } elseif ($parentObj->package) {
                     $clsLoaded = ClassLoader::loadMetadataClass($className, $parentObj->package);
                 }
                 $className = Openbizx::objectFactory()->getClassNameFromAlias($className);
                 $obj = new $className($child, $parentObj);
                 $this->varValue[$obj->objectName] = $obj;
             }
         }
     }
 }
Beispiel #3
0
 /**
  * Save session variables of all stateful objects into sessionid_obj file
  *
  * @return void
  * */
 public function saveSessionObjects()
 {
     // loop all objects (bizview, bizform, bizdataobj) collect their session vars
     $allobjs = Openbizx::objectFactory()->getAllObjects();
     foreach ($allobjs as $obj) {
         if (method_exists($obj, "saveStatefullVars")) {
             //after calling $obj->saveStatefullVars SessObjArr and StatefulSessObjArr are filled
             $obj->saveStatefullVars($this);
         }
         // if previous view's object is used in current view, don't discard its session data
         if (isset($obj->objectName) && isset($this->_prevViewObjNames[$obj->objectName])) {
             unset($this->_prevViewObjNames[$obj->objectName]);
             Openbizx::$app->getLog()->log(LOG_ERR, "SESSION", "unset " . $obj->objectName);
         }
     }
     // discard useless previous view's session objects
     //foreach($this->_prevViewObjNames as $objName=>$tmp)
     //    unset($this->_sessObjArr[$objName]);
     $this->_sessObjArr["ViewHist"] = $this->_viewHistory;
     $this->setVar(OB_TRANSIENT_DATA_SESSION_INDEX, $this->_sessObjArr);
     $this->setVar(OB_STATEFUL_DATA_SESSION_INDEX, $this->_statefulSessObjArr);
 }