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'; }
/** * 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); }