protected function readMetadata(&$xmlArr)
 {
     $this->requireAuth = isset($xmlArr["PLUGINSERVICE"]["ATTRIBUTES"]["REQUIREAUTH"]) ? $xmlArr["PLUGINSERVICE"]["ATTRIBUTES"]["REQUIREAUTH"] : 'N';
     $this->requireAuth = strtoupper($this->requireAuth);
     $this->publicMethods = new MetaIterator($xmlArr["PLUGINSERVICE"]["PUBLICMETHOD"], "PublicMethod", $this);
     $this->messageFile = isset($xmlArr["PLUGINSERVICE"]["ATTRIBUTES"]["MESSAGEFILE"]) ? $xmlArr["PLUGINSERVICE"]["ATTRIBUTES"]["MESSAGEFILE"] : null;
     $this->objectMessages = MessageHelper::loadMessage($this->messageFile);
 }
 protected function readMetadata(&$xmlArr)
 {
     $this->isShowComment = $xmlArr["EASYFORM"]["ATTRIBUTES"]["SHOWCOMMENT"] ? $xmlArr["EASYFORM"]["ATTRIBUTES"]["SHOWCOMMENT"] : 'Y';
     //load message file
     $this->changeLogMessages = MessageHelper::loadMessage("changelog.ini", "changelog");
     if (strtolower($xmlArr["EASYFORM"]["ATTRIBUTES"]["FORMTYPE"]) == 'edit' && $this->isShowComment != 'N') {
         //add a comment field on fly
         $elem_comment_attrs = array("NAME" => 'fld_changelog_comment', "CLASS" => 'Textarea', "ELEMENTSET" => "Change Comment", "LABEL" => $this->getChangeLogMessage(CHENGLOG_LABEL), "DESCRIPTION" => $this->getChangeLogMessage(CHENGLOG_DESC));
         $elem_comment = array("ATTRIBUTES" => $elem_comment_attrs);
         $xmlArr["EASYFORM"]["DATAPANEL"]["ELEMENT"][] = $elem_comment;
     }
     parent::readMetaData($xmlArr);
 }
 public function fetchDataSet()
 {
     $result = parent::fetchDataSet();
     $resultSet = array();
     $messageFile_loaded = false;
     foreach ($result as $record) {
         $form = unserialize($record['form']);
         $data = unserialize($record['data']);
         if (!$messageFile_loaded) {
             $this->objectMessages = MessageHelper::loadMessage($form['message_file'], $form['package']);
             $formObj = Openbiz::getObject($this->parentFormName);
             I18n::AddLangData("common", substr($formObj->package, 0, intval(strpos($formObj->package, '.'))));
             $messageFile_loaded = true;
         }
         if (is_array($data)) {
             foreach ($data as $key => $value) {
                 $elemObjMeta = $data[$key]['element'];
                 $elemObjMeta = $this->replaceElementClass($elemObjMeta);
                 if ($elemObjMeta["ATTRIBUTES"]['FIELDTYPE'] == 'ExtendField') {
                     $extendSettingId = (int) str_replace("extend_field_", $replace, $elemObjMeta["ATTRIBUTES"]['NAME']);
                     $elemObjMeta["ATTRIBUTES"] = Openbiz::getService("extend.lib.ExtendFieldService")->translateElemArr($elemObjMeta["ATTRIBUTES"], $extendSettingId);
                 }
                 $objName = $elemObjMeta["ATTRIBUTES"]['CLASS'];
                 $formObj = Openbiz::getObject($this->parentFormName);
                 $elemObj = new $objName($elemObjMeta, $formObj);
                 $data[$key]['label'] = $elemObj->renderLabel();
                 $elemObj->setValue($data[$key]['old']);
                 $elemObj->text = str_replace("{@:Elem[" . $elemObj->objectName . "].Value}", $data[$key]['old'], $elemObj->text);
                 $data[$key]['old'] = $elemObj->render();
                 $elemObj = new $objName($elemObjMeta, $formObj);
                 $elemObj->setValue($data[$key]['new']);
                 $elemObj->text = str_replace("{@:Elem[" . $elemObj->objectName . "].Value}", $data[$key]['new'], $elemObj->text);
                 $data[$key]['new'] = $elemObj->render();
                 unset($data[$key]['element']);
             }
         }
         $record['data'] = $data;
         unset($record['form']);
         $resultSet[] = $record;
     }
     return $resultSet;
 }
 /**
  * Get openbiz template file path by searching modules/package, /templates
  *
  * @param string $className
  * @return string php library file path
  * */
 public static function getTplFileWithPath($templateFile, $packageName)
 {
     //for not changing a lot things, the best injection point is added theme support here.
     $theme = Openbiz::$app->getCurrentTheme();
     $themePath = $theme;
     // Openbiz::$app->getConfiguration()->GetThemePath($theme);
     if ($themePath) {
         $templateRoot = OPENBIZ_THEME_PATH . "/" . $themePath . "/template";
     } else {
         $templateRoot = SMARTY_TPL_PATH;
     }
     $names = explode(".", $packageName);
     if (count($names) > 0) {
         $moduleName = $names[0];
     }
     $packagePath = str_replace('.', '/', $packageName);
     // check the leading char '@'
     $checkExtModule = true;
     if (strpos($packagePath, '@') === 0) {
         $packagePath = substr($packagePath, 1);
         $checkExtModule = false;
     }
     $searchTpls = array(Openbiz::$app->getModulePath() . "/{$packagePath}/template/{$templateFile}", dirname(Openbiz::$app->getModulePath() . "/{$packagePath}") . "/template/{$templateFile}", Openbiz::$app->getModulePath() . "/{$moduleName}/template/{$templateFile}", $templateRoot . "/{$templateFile}");
     if ($checkExtModule && defined('MODULE_EX_PATH')) {
         array_unshift($searchTpls, MODULE_EX_PATH . "/{$packagePath}/template/{$templateFile}");
     }
     // device
     if (defined('OPENBIZ_CLIENT_DEVICE')) {
         array_unshift($searchTpls, Openbiz::$app->getModulePath() . "/{$moduleName}/template/" . OPENBIZ_CLIENT_DEVICE . "/{$templateFile}");
     }
     foreach ($searchTpls as $tplFile) {
         if (file_exists($tplFile)) {
             return $tplFile;
         }
     }
     $errmsg = MessageHelper::getMessage("UNABLE_TO_LOCATE_TEMPLATE_FILE", array($templateFile));
     trigger_error($errmsg, E_USER_ERROR);
     return null;
 }
 /**
  * Get error message
  *
  * @param string $validator
  * @param string $fieldName
  * @return string
  */
 public function getErrorMessage($validator = null, $fieldName = null)
 {
     if ($this->errorMessage != "") {
         if ($fieldName != "") {
             $this->errorMessage = str_replace($this->fieldNameMask, $fieldName, $this->errorMessage);
         }
         return $this->errorMessage;
     } else {
         $validator = str_replace('{@validate:', '', $validator);
         $pos1 = strpos($validator, '(');
         $type = substr($validator, 0, $pos1);
         switch ($type) {
             case "date":
                 return MessageHelper::getMessage("VALIDATESVC_DATE_INVALID", array($fieldName));
                 break;
             case "email":
                 return MessageHelper::getMessage("VALIDATESVC_EMAIL_INVALID", array($fieldName));
                 break;
             case "phone":
                 return MessageHelper::getMessage("VALIDATESVC_PHONE_INVALID", array($fieldName));
                 break;
             case "zip":
                 return MessageHelper::getMessage("VALIDATESVC_ZIP_INVALID", array($fieldName));
                 break;
             case "social":
                 return MessageHelper::getMessage("VALIDATESVC_SOCIAL_INVALID", array($fieldName));
                 break;
             case "credit":
                 return MessageHelper::getMessage("VALIDATESVC_CREDIT_INVALID", array($fieldName));
                 break;
             case "street":
                 return MessageHelper::getMessage("VALIDATESVC_STREET_INVALID", array($fieldName));
                 break;
             case "strongPassword":
                 return MessageHelper::getMessage("VALIDATESVC_PASSWORD_NOT_STRONG", array($fieldName));
                 break;
         }
         return MessageHelper::getMessage("VALIDATESVC_INVALID", array($fieldName));
     }
 }
 /**
  * Read Metadata from xml array
  *
  * @param array $xmlArr
  * @return void
  */
 protected function readMetadata(&$xmlArr)
 {
     parent::readMetaData($xmlArr);
     $this->inheritFrom = isset($xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["INHERITFROM"]) ? $xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["INHERITFROM"] : null;
     $this->searchRule = isset($xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["SEARCHRULE"]) ? $xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["SEARCHRULE"] : null;
     $this->baseSearchRule = $this->searchRule;
     $this->sortRule = isset($xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["SORTRULE"]) ? $xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["SORTRULE"] : null;
     $this->baseSortRule = $this->sortRule;
     $this->otherSQLRule = isset($xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["OTHERSQLRULE"]) ? $xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["OTHERSQLRULE"] : null;
     $this->baseOtherSQLRule = $this->otherSQLRule;
     $this->accessRule = isset($xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["ACCESSRULE"]) ? $xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["ACCESSRULE"] : null;
     $this->updateCondition = isset($xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["UPDATECONDITION"]) ? $xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["UPDATECONDITION"] : null;
     $this->deleteCondition = isset($xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["DELETECONDITION"]) ? $xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["DELETECONDITION"] : null;
     $this->databaseAliasName = isset($xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["DBNAME"]) ? $xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["DBNAME"] : null;
     if ($this->databaseAliasName == null) {
         $this->databaseAliasName = "Default";
     }
     $this->mainTableName = isset($xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["TABLE"]) ? $xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["TABLE"] : null;
     $this->idGeneration = isset($xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["IDGENERATION"]) ? $xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["IDGENERATION"] : null;
     $this->stateless = isset($xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["STATELESS"]) ? $xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["STATELESS"] : null;
     // read in uniqueness attribute
     $this->uniqueness = isset($xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["UNIQUENESS"]) ? $xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["UNIQUENESS"] : null;
     $this->cacheLifeTime = isset($xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["CACHELIFETIME"]) ? $xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["CACHELIFETIME"] : "0";
     $this->objectName = $this->prefixPackage($this->objectName);
     if ($this->inheritFrom == '@sourceMeta') {
         $this->inheritFrom = '@' . $this->objectName;
     } else {
         $this->inheritFrom = $this->prefixPackage($this->inheritFrom);
     }
     // build BizRecord
     $this->bizRecord = new BizRecord($xmlArr["BIZDATAOBJ"]["BIZFIELDLIST"]["BIZFIELD"], "Openbiz\\Data\\BizField", $this);
     // build TableJoins
     $this->tableJoins = new MetaIterator($xmlArr["BIZDATAOBJ"]["TABLEJOINS"]["JOIN"], "Openbiz\\Data\\Tools\\TableJoin", $this);
     // build ObjReferences
     $this->objReferences = new MetaIterator($xmlArr["BIZDATAOBJ"]["OBJREFERENCES"]["OBJECT"], "Openbiz\\Data\\Tools\\ObjReference", $this);
     // read in parameters
     $this->parameters = new MetaIterator($xmlArr["BIZDATAOBJ"]["PARAMETERS"]["PARAMETER"], "Parameter");
     $this->messageFile = isset($xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["MESSAGEFILE"]) ? $xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["MESSAGEFILE"] : null;
     $this->objectMessages = MessageHelper::loadMessage($this->messageFile, $this->package);
     $this->eventManagerName = isset($xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["EVENTMANAGER"]) ? $xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["EVENTMANAGER"] : null;
     $this->dataPermControl = isset($xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["DATAPERMCONTROL"]) ? strtoupper($xmlArr["BIZDATAOBJ"]["ATTRIBUTES"]["DATAPERMCONTROL"]) : 'N';
 }
Exemple #7
0
 /**
  * Read Metadata from xml array
  * 
  * @param array $xmlArr
  * @return void
  */
 protected function readMetadata(&$xmlArr)
 {
     parent::readMetaData($xmlArr);
     $this->objectName = $this->prefixPackage($this->objectName);
     $this->title = isset($xmlArr["WEBPAGE"]["ATTRIBUTES"]["TITLE"]) ? $xmlArr["WEBPAGE"]["ATTRIBUTES"]["TITLE"] : null;
     $this->keywords = isset($xmlArr["WEBPAGE"]["ATTRIBUTES"]["KEYWORDS"]) ? $xmlArr["WEBPAGE"]["ATTRIBUTES"]["KEYWORDS"] : null;
     $this->templateEngine = isset($xmlArr["WEBPAGE"]["ATTRIBUTES"]["TEMPLATEENGINE"]) ? $xmlArr["WEBPAGE"]["ATTRIBUTES"]["TEMPLATEENGINE"] : null;
     $this->templateFile = isset($xmlArr["WEBPAGE"]["ATTRIBUTES"]["TEMPLATEFILE"]) ? $xmlArr["WEBPAGE"]["ATTRIBUTES"]["TEMPLATEFILE"] : null;
     //echo __METHOD__. '-' . __LINE__ . ' templateFile : ' . $this->templateFile . '<br />';
     $this->viewSet = isset($xmlArr["WEBPAGE"]["ATTRIBUTES"]["VIEWSET"]) ? $xmlArr["WEBPAGE"]["ATTRIBUTES"]["VIEWSET"] : null;
     $this->tab = isset($xmlArr["WEBPAGE"]["ATTRIBUTES"]["TAB"]) ? $xmlArr["WEBPAGE"]["ATTRIBUTES"]["TAB"] : null;
     $this->formRefs = new MetaIterator($xmlArr["WEBPAGE"]["FORMREFERENCES"]["REFERENCE"], "Openbiz\\Easy\\FormReference", $this);
     if ($xmlArr["WEBPAGE"]["FORMREFERENCELIBS"]) {
         $this->formRefLibs = new MetaIterator($xmlArr["WEBPAGE"]["FORMREFERENCELIBS"]["REFERENCE"], "Openbiz\\Easy\\FormReference", $this);
     }
     if ($xmlArr["WEBPAGE"]["WIDGETS"]) {
         $this->widgets = new MetaIterator($xmlArr["WEBPAGE"]["WIDGETS"]["REFERENCE"], "Openbiz\\Easy\\FormReference", $this);
     }
     $this->messageFile = isset($xmlArr["WEBPAGE"]["ATTRIBUTES"]["MESSAGEFILE"]) ? $xmlArr["WEBPAGE"]["ATTRIBUTES"]["MESSAGEFILE"] : null;
     $this->objectMessages = MessageHelper::loadMessage($this->messageFile, $this->package);
     $this->cacheLifeTime = isset($xmlArr["WEBPAGE"]["ATTRIBUTES"]["CACHELIFETIME"]) ? $xmlArr["WEBPAGE"]["ATTRIBUTES"]["CACHELIFETIME"] : "0";
     $this->readTile($xmlArr);
     // TODO: is this needed as title supports expression?
     $this->translate();
     // translate for multi-language support
     if (empty($this->title)) {
         $this->title = $this->objectDescription;
     }
 }
 private function executeRpcMethod($objName, $methodName, $params)
 {
     $obj = Openbiz::getObject($objName);
     if ($obj) {
         if (method_exists($obj, $methodName)) {
             if (!$this->validateRequest($obj, $methodName)) {
                 $errmsg = MessageHelper::getMessage("SYS_ERROR_REQUEST_REJECT", array($obj->objectName, $methodName));
                 trigger_error($errmsg, E_USER_ERROR);
             }
             switch (count($params)) {
                 case 0:
                     $rt_val = $obj->{$methodName}();
                     break;
                 case 1:
                     $rt_val = $obj->{$methodName}($params[0]);
                     break;
                 case 2:
                     $rt_val = $obj->{$methodName}($params[0], $params[1]);
                     break;
                 case 3:
                     $rt_val = $obj->{$methodName}($params[0], $params[1], $params[2]);
                     break;
                 default:
                     $rt_val = call_user_func_array(array($obj, $methodName), $params);
             }
         } else {
             $errmsg = MessageHelper::getMessage("SYS_ERROR_METHODNOTFOUND", array($objName, $methodName));
             trigger_error($errmsg, E_USER_ERROR);
         }
     } else {
         $errmsg = MessageHelper::getMessage("SYS_ERROR_CLASSNOTFOUND", array($objName));
         trigger_error($errmsg, E_USER_ERROR);
     }
     $invocationType = $this->request->getInvocationType();
     if ($invocationType == "Invoke") {
         // no RPC invoke, page reloaded -> rerender view
         if ($this->getClientProxy()->hasOutput()) {
             $this->getClientProxy()->printOutput();
         }
     } else {
         if ($invocationType == "RPCInvoke") {
             // RPC invoke
             if ($this->getClientProxy()->hasOutput()) {
                 if ($_REQUEST['jsrs'] == 1) {
                     echo "<html><body><form name=\"jsrs_Form\"><textarea name=\"jsrs_Payload\" id=\"jsrs_Payload\">";
                 }
                 $this->getClientProxy()->printOutput();
                 if ($_REQUEST['jsrs'] == 1) {
                     echo "</textarea></form></body></html>";
                 }
             } else {
                 return $rt_val;
             }
         }
     }
 }
 protected function readMetadata(&$xmlArr)
 {
     $this->logDataObj = $xmlArr["PLUGINSERVICE"]["ATTRIBUTES"]["BIZDATAOBJ"];
     $this->messageFile = isset($xmlArr["PLUGINSERVICE"]["ATTRIBUTES"]["MESSAGEFILE"]) ? $xmlArr["PLUGINSERVICE"]["ATTRIBUTES"]["MESSAGEFILE"] : null;
     $this->objectMessages = MessageHelper::loadMessage($this->messageFile, "eventlog.");
 }
 protected function readMetadata(&$xmlArr)
 {
     //load message file
     $this->changeLogMessages = MessageHelper::loadMessage("changelog.ini", "changelog");
     parent::readMetaData($xmlArr);
 }
 /**
  * Inherit from parent object. Name, Package, Class cannot be inherited
  *
  * @return void
  */
 protected function inheritParentObj()
 {
     if (!$this->inheritFrom) {
         return;
     }
     $parentObj = Openbiz::getObject($this->inheritFrom);
     $this->title = $this->title ? $this->title : $parentObj->title;
     $this->icon = $this->icon ? $this->icon : $parentObj->icon;
     $this->objectDescription = $this->objectDescription ? $this->objectDescription : $parentObj->objectDescription;
     $this->jsClass = $this->jsClass ? $this->jsClass : $parentObj->jsClass;
     $this->height = $this->height ? $this->height : $parentObj->height;
     $this->width = $this->width ? $this->width : $parentObj->width;
     $this->templateEngine = $this->templateEngine ? $this->templateEngine : $parentObj->templateEngine;
     $this->templateFile = $this->templateFile ? $this->templateFile : $parentObj->templateFile;
     $this->formType = $this->formType ? $this->formType : $parentObj->formType;
     $this->range = $this->range ? $this->range : $parentObj->range;
     $this->fixSearchRule = $this->fixSearchRule ? $this->fixSearchRule : $parentObj->fixSearchRule;
     $this->defaultFixSearchRule = $this->defaultFixSearchRule ? $this->defaultFixSearchRule : $parentObj->defaultFixSearchRule;
     $this->dataObjName = $this->dataObjName ? $this->dataObjName : $parentObj->dataObjName;
     $this->eventName = $this->eventName ? $this->eventName : $parentObj->eventName;
     $this->messageFile = $this->messageFile ? $this->messageFile : $parentObj->messageFile;
     $this->objectMessages = MessageHelper::loadMessage($this->messageFile, $this->package);
     $this->cacheLifeTime = $this->cacheLifeTime ? $this->cacheLifeTime : $parentObj->cacheLifeTime;
     $this->dataPanel->merge($parentObj->dataPanel);
     $this->actionPanel->merge($parentObj->actionPanel);
     $this->navPanel->merge($parentObj->navPanel);
     $this->searchPanel->merge($parentObj->searchPanel);
     if ($this->dataPanel->current()) {
         foreach ($this->dataPanel as $elem) {
             $elem->adjustFormName($this->objectName);
         }
     }
     if ($this->actionPanel->current()) {
         foreach ($this->actionPanel as $elem) {
             $elem->adjustFormName($this->objectName);
         }
     }
     if ($this->navPanel->current()) {
         foreach ($this->navPanel as $elem) {
             $elem->adjustFormName($this->objectName);
         }
     }
     if ($this->searchPanel->current()) {
         foreach ($this->searchPanel as $elem) {
             $elem->adjustFormName($this->objectName);
         }
     }
     $this->panels = array($this->dataPanel, $this->actionPanel, $this->navPanel, $this->searchPanel);
 }