public function __call($vea9f6aca279138c58f705c8d4cb4b8ce, $args) { $vea9f6aca279138c58f705c8d4cb4b8ce = strtolower($vea9f6aca279138c58f705c8d4cb4b8ce); if (in_array($vea9f6aca279138c58f705c8d4cb4b8ce, $this->modes)) { $v2063c1608d6e0baf80249c42e2be5804 = sizeof($args) ? $args[0] : null; if ($v2063c1608d6e0baf80249c42e2be5804 instanceof iUmiEntinty) { $v2063c1608d6e0baf80249c42e2be5804 = $v2063c1608d6e0baf80249c42e2be5804->getId(); } if (isset($this->fieldId)) { $v06e3d36fa30cea095545139854ad1fb9 = selector::get('field')->id($this->fieldId); if ($v6b1a57fa235477758817df3c91158006 = $v06e3d36fa30cea095545139854ad1fb9->getRestrictionId()) { $v3dadfaeb46ec74762b37de11fea7605c = baseRestriction::get($v6b1a57fa235477758817df3c91158006); if ($v3dadfaeb46ec74762b37de11fea7605c instanceof iNormalizeInRestriction) { $v2063c1608d6e0baf80249c42e2be5804 = $v3dadfaeb46ec74762b37de11fea7605c->normalizeIn($v2063c1608d6e0baf80249c42e2be5804); } } if (is_numeric($v2063c1608d6e0baf80249c42e2be5804) && substr($v2063c1608d6e0baf80249c42e2be5804, 0, 1) !== "0") { $v2063c1608d6e0baf80249c42e2be5804 = (double) $v2063c1608d6e0baf80249c42e2be5804; } if ($v06e3d36fa30cea095545139854ad1fb9->getDataType() == 'relation' && is_string($v2063c1608d6e0baf80249c42e2be5804)) { if ($v52eb29c6d8ea0d3a5bb3654f49bbd7c7 = $v06e3d36fa30cea095545139854ad1fb9->getGuideId()) { $v8be74552df93e31bbdd6b36ed74bdb6a = new selector('objects'); $v8be74552df93e31bbdd6b36ed74bdb6a->types('object-type')->id($v52eb29c6d8ea0d3a5bb3654f49bbd7c7); $v8be74552df93e31bbdd6b36ed74bdb6a->where('*')->ilike($v2063c1608d6e0baf80249c42e2be5804); $v2fa47f7c65fec19cc163b195725e3844 = sizeof($v8be74552df93e31bbdd6b36ed74bdb6a->result); if ($v2fa47f7c65fec19cc163b195725e3844 > 0 && $v2fa47f7c65fec19cc163b195725e3844 < 100) { $v2063c1608d6e0baf80249c42e2be5804 = $v8be74552df93e31bbdd6b36ed74bdb6a->result; } } } if ($v06e3d36fa30cea095545139854ad1fb9->getDataType() == 'date' && is_string($v2063c1608d6e0baf80249c42e2be5804)) { $v5fc732311905cb27e82d67f4f6511f7f = new umiDate(); $v5fc732311905cb27e82d67f4f6511f7f->setDateByString(trim($v2063c1608d6e0baf80249c42e2be5804, ' %')); $v2063c1608d6e0baf80249c42e2be5804 = $v5fc732311905cb27e82d67f4f6511f7f->getDateTimeStamp(); } } $this->value = $v2063c1608d6e0baf80249c42e2be5804; $this->mode = $vea9f6aca279138c58f705c8d4cb4b8ce; } else { throw new selectorException("This property doesn't support \"{$vea9f6aca279138c58f705c8d4cb4b8ce}\" method"); } }
public function save_editable_region() { // fix for 2.7.4 eip if (cmsController::getInstance()->getCurrentMode() != 'admin') { return self::old_eip_save_editable_region(); } $iEntityId = getRequest('param0'); $sPropName = getRequest('param1'); $content = getRequest('data'); $bIsObject = (bool) getRequest('is_object'); if (is_array($content) && count($content) == 1) { $content = $content[0]; } else { if (is_array($content) && isset($content[0])) { $temp = array(); foreach ($content as $item) { $temp[] = is_array($item) ? $item[0] : $item; } $content = $temp; } } $oEntity = $bIsObject ? umiObjectsCollection::getInstance()->getObject($iEntityId) : umiHierarchy::getInstance()->getElement($iEntityId); // Checking rights $bDisallowed = false; $permissions = permissionsCollection::getInstance(); $userId = $permissions->getUserId(); if (!$permissions->isSv($userId)) { if ($bIsObject) { $bDisallowed = !($oEntity->getOwnerId() == $userId); if ($bDisallowed) { //Check module permissions $object = selector::get('object')->id($iEntityId); $module = $object->getModule(); $method = $object->getMethod(); if ($module && $method) { $bDisallowed = !$permissions->isAllowedMethod($userId, $module, $method); } } } else { list($r, $w) = $permissions->isAllowedObject($userId, $iEntityId); if (!$w) { $bDisallowed = true; } } } if ($bDisallowed) { throw new publicAdminException(getLabel('error-no-permissions')); } $event = new umiEventPoint("systemModifyPropertyValue"); $event->addRef("entity", $oEntity); $event->setParam("property", $sPropName); $event->addRef("newValue", $content); $event->setMode("before"); try { $event->call(); } catch (wrongValueException $e) { throw new publicAdminException($e->getMessage()); } if ($oEntity instanceof iUmiHierarchyElement) { $backupModel = backupModel::getInstance(); $backupModel->addLogMessage($oEntity->getId()); } if ($bIsObject && !$this->checkAllowedColumn($oEntity, $sPropName)) { throw new publicAdminException(getLabel('error-no-permissions')); } if ($bIsObject && $sPropName == 'is_activated') { $guestId = $permissions->getGuestId(); if ($iEntityId == SV_USER_ID) { throw new publicAdminException(getLabel('error-users-swtich-activity-sv')); } if ($iEntityId == $guestId) { throw new publicAdminException(getLabel('error-users-swtich-activity-guest')); } if ($iEntityId == $userId) { throw new publicAdminException(getLabel('error-users-swtich-activity-self')); } } $sPropValue = ""; if ($oEntity) { $bOldVal = umiObjectProperty::$IGNORE_FILTER_INPUT_STRING; umiObjectProperty::$IGNORE_FILTER_INPUT_STRING = true; $oObject = !$bIsObject ? $oEntity->getObject() : $oEntity; $oldValue = null; try { if ($sPropName == 'name') { if (is_string($content) && strlen($content)) { $oldValue = $oEntity->name; $oEntity->name = $content; if ($oEntity instanceof iUmiHierarchyElement) { $oEntity->h1 = $content; } } $result = array('name' => $content); } else { $property = $oObject->getPropByName($sPropName); if ($property->getDataType() == 'date') { $date = new umiDate(); $date->setDateByString($content); $content = $date; } $oldValue = $oEntity->getValue($sPropName); $oEntity->setValue($sPropName, $content); if ($oEntity instanceof iUmiHierarchyElement && $sPropName == 'h1') { $oEntity->name = $content; } $result = array('property' => $property); translatorWrapper::get($property); umiObjectPropertyWrapper::$showEmptyFields = true; } } catch (fieldRestrictionException $e) { throw new publicAdminException($e->getMessage()); } $oEntity->commit(); umiObjectProperty::$IGNORE_FILTER_INPUT_STRING = $bOldVal; $oObject->update(); $oEntity->update(); if ($oEntity instanceof umiEntinty) { $oEntity->commit(); } $event->setParam("oldValue", $oldValue); $event->setParam("newValue", $content); $event->setMode("after"); $event->call(); $this->setData($result); return $this->doData(); } }
/** * TODO PHPDoc * Enter description here ... * @param unknown_type $object_id * @param unknown_type $is_new * @param unknown_type $b_force_owner * @param unknown_type $all */ public function saveEditedObject($object_id, $is_new = false, $b_force_owner = false, $all = false) { global $_FILES; $cmsController = cmsController::getInstance(); $permissions = permissionsCollection::getInstance(); if (!($object = umiObjectsCollection::getInstance()->getObject($object_id))) { return false; } if (!$b_force_owner && !$permissions->isOwnerOfObject($object_id)) { return false; } $object_type_id = $object->getTypeId(); $object_type = umiObjectTypesCollection::getInstance()->getType($object_type_id); $key = $is_new ? "new" : $object_id; if (is_null(getRequest('data'))) { if (is_null($_FILES)) { return true; } else { $_REQUEST['data'][$key] = array(); } } $data = isset($_REQUEST['data'][$key]) ? $_REQUEST['data'][$key] : array(); foreach ($_REQUEST as $skey => $value) { $real_key = substr($skey, 7); if (substr($skey, 0, 7) == 'select_' && !isset($data[$real_key])) { $data[$real_key] = $value; } } if (isset($_FILES['data']['tmp_name'][$key])) { foreach ($_FILES['data']['tmp_name'][$key] as $i => $v) { $data[$i] = $v; } } $data = $this->checkRequiredData($object_type, $data, $object_id, $is_new); $data = $this->checkAllowedData($object_type, $data); foreach ($data as $field_name => $field_value) { if (!($field_id = $object_type->getFieldId($field_name))) { continue; } $field = umiFieldsCollection::getInstance()->getField($field_id); if (!$field->getIsVisible() && !$all) { //continue; } $field_type = $field->getFieldType(); $data_type = $field_type->getDataType(); $fldr_name = $field_name . '/'; switch ($data_type) { case "password": if (isset($field_value[1])) { $field_value = $field_value[0] == $field_value[1] ? md5($field_value[0]) : NULL; } else { if (is_array($field_value)) { $field_value = $field_value[0] ? md5($field_value[0]) : NULL; } else { $field_value = $field_value ? md5($field_value) : NULL; } } break; case "date": $oDate = new umiDate(); $oDate->setDateByString($field_value); $field_value = $oDate; break; case "img_file": switch ($field_name) { case "menu_pic_ua": $destination_folder = "./images/cms/menu/"; break; case "header_pic": $destination_folder = "./images/cms/headers/"; break; case "menu_pic_a": $destination_folder = "./images/cms/menu/"; break; default: $destination_folder = "./images/cms/data/"; break; } // TODO: вставить проверку на необходимость наложения на картинку водного знака (by lauri) $oldValue = $object->getValue($field_name); if ($value = umiImageFile::upload("data", $field_name, substr($destination_folder, 2), $key)) { $field_value = $value; } else { $file_name = substr($field_value, 0, 2) == "./" ? $field_value : $destination_folder . $field_value; $field_value = new umiImageFile($file_name); } break; case "video_file": case "swf_file": $destination_folder = "./files/" . (is_dir("./files/" . $fldr_name) ? $fldr_name : ''); if ($value = umiFile::upload("data", $field_name, $destination_folder, $key)) { $field_value = $value; } else { $oldvalue = $object->getValue($field_name); if ($oldvalue) { $destination_folder = $oldvalue->getDirName() . "/"; } $file_name = substr($field_value, 0, 2) == "./" ? $field_value : $destination_folder . $field_value; $field_value = new umiFile($file_name); } break; case "file": $destination_folder = "./files/" . (is_dir("./files/" . $fldr_name) ? $fldr_name : ''); if ($value = umiFile::upload("data", $field_name, $destination_folder, $key)) { $field_value = $value; } else { $oldvalue = $object->getValue($field_name); if ($oldvalue) { $destination_folder = $oldvalue->getDirName() . "/"; } $file_name = substr($field_value, 0, 2) == "./" ? $field_value : $destination_folder . $field_value; $field_value = new umiFile($file_name); } break; case "string": case "text": case "wysiwyg": if ($cmsController->getCurrentMode() != "admin") { $field_value = strip_tags($field_value); } break; } $object->setValue($field_name, $field_value); } $object->commit(); return true; }
protected function importPropValue(umiEntinty $vf5e638cc78dd325906c1298a0c21fb6b, DOMElement $vcaf9b6b99962bf5c2264824231d7a40c, $vd08e820fd4eb48eede47aa5985d10cc8 = false) { $v3a229433643cf8ea25f2a9b198ea70d8 = $vcaf9b6b99962bf5c2264824231d7a40c->getAttribute('name'); $vb068931cc450442b63f5b3d276ea4297 = self::translateName($v3a229433643cf8ea25f2a9b198ea70d8); $v1a13105b7e4eb5fb2e7c9515ac06aa48 = $this->parser->evaluate("value", $vcaf9b6b99962bf5c2264824231d7a40c); if (!$v1a13105b7e4eb5fb2e7c9515ac06aa48->length && $vd08e820fd4eb48eede47aa5985d10cc8) { $v1a13105b7e4eb5fb2e7c9515ac06aa48 = $this->parser->evaluate("default-value", $vcaf9b6b99962bf5c2264824231d7a40c); } if (!$v1a13105b7e4eb5fb2e7c9515ac06aa48->length) { if ($vd08e820fd4eb48eede47aa5985d10cc8) { $this->reportError($this->getLabel('label-property') . " \"{$vb068931cc450442b63f5b3d276ea4297}\" " . $this->getLabel('label-has-no-values')); } return false; } $v67236e502346412a98a0bb965b7a59e6 = $v1a13105b7e4eb5fb2e7c9515ac06aa48->item(0); $v94757cae63fd3e398c0811a976dd6bbe = $vf5e638cc78dd325906c1298a0c21fb6b instanceof umiHierarchyElement ? $vf5e638cc78dd325906c1298a0c21fb6b->getObjectTypeId() : $vf5e638cc78dd325906c1298a0c21fb6b->getTypeId(); $v599dcce2998a6b40b1e38e8c6006cb0a = umiObjectTypesCollection::getInstance()->getType($v94757cae63fd3e398c0811a976dd6bbe); $v3aabf39f2d943fa886d86dcbbee4d910 = $v599dcce2998a6b40b1e38e8c6006cb0a->getFieldId($vb068931cc450442b63f5b3d276ea4297, false); $v06e3d36fa30cea095545139854ad1fb9 = umiFieldsCollection::getInstance()->getField($v3aabf39f2d943fa886d86dcbbee4d910); if (!$v06e3d36fa30cea095545139854ad1fb9 instanceof umiField && $vcaf9b6b99962bf5c2264824231d7a40c->getAttribute('allow-runtime-add') == '1') { $v562feb4548b66febf02774b4f339552e = $vcaf9b6b99962bf5c2264824231d7a40c->parentNode; $vdb0f6f37ebeb6ea09489124345af2a45 = $this->importTypeGroup($v599dcce2998a6b40b1e38e8c6006cb0a, $v562feb4548b66febf02774b4f339552e, false); if (!$vdb0f6f37ebeb6ea09489124345af2a45 instanceof umiFieldsGroup) { return false; } $v06e3d36fa30cea095545139854ad1fb9 = $this->importField($vdb0f6f37ebeb6ea09489124345af2a45, $vcaf9b6b99962bf5c2264824231d7a40c); $vf5e638cc78dd325906c1298a0c21fb6b instanceof umiHierarchyElement ? $vf5e638cc78dd325906c1298a0c21fb6b->getObject()->update() : $vf5e638cc78dd325906c1298a0c21fb6b->update(); } if (!$v06e3d36fa30cea095545139854ad1fb9 instanceof umiField) { return false; } switch ($v06e3d36fa30cea095545139854ad1fb9->getDataType()) { case "optioned": case "symlink": return false; case "date": $vd7e6d55ba379a13d08c25d15faf2a23b = intval($v67236e502346412a98a0bb965b7a59e6->getAttribute('unix-timestamp')); $v8059f160e1aa1f9d3921049ce93b00e1 = new umiDate(); if ($vd7e6d55ba379a13d08c25d15faf2a23b) { $v8059f160e1aa1f9d3921049ce93b00e1->setDateByTimeStamp($vd7e6d55ba379a13d08c25d15faf2a23b); } else { $v8059f160e1aa1f9d3921049ce93b00e1->setDateByString($v67236e502346412a98a0bb965b7a59e6->nodeValue); } $vf5e638cc78dd325906c1298a0c21fb6b->setValue($vb068931cc450442b63f5b3d276ea4297, $v8059f160e1aa1f9d3921049ce93b00e1); break; case "price": $vfcaea7edd270964cc145ea48e4367d43 = cmsController::getInstance()->getModule('emarket'); $v78a5eb43deef9a7b5b9ce157b9d52ac4 = $v67236e502346412a98a0bb965b7a59e6->nodeValue; $v78a5eb43deef9a7b5b9ce157b9d52ac4 = str_replace(',', '.', $v78a5eb43deef9a7b5b9ce157b9d52ac4); $v78a5eb43deef9a7b5b9ce157b9d52ac4 = floatval(preg_replace("/[^0-9.,]/", "", $v78a5eb43deef9a7b5b9ce157b9d52ac4)); $v52e3817fff5250b5391ef85b1ce23bdb = $v67236e502346412a98a0bb965b7a59e6->hasAttribute('currency-code') ? $v67236e502346412a98a0bb965b7a59e6->getAttribute('currency-code') : $v67236e502346412a98a0bb965b7a59e6->getAttribute('currency_code'); if (strlen($v52e3817fff5250b5391ef85b1ce23bdb) && $vfcaea7edd270964cc145ea48e4367d43) { $v1af0389838508d7016a9841eb6273962 = $vfcaea7edd270964cc145ea48e4367d43->getCurrency($v52e3817fff5250b5391ef85b1ce23bdb); if ($v1af0389838508d7016a9841eb6273962) { $result = $vfcaea7edd270964cc145ea48e4367d43->formatCurrencyPrice(array($v78a5eb43deef9a7b5b9ce157b9d52ac4), $vfcaea7edd270964cc145ea48e4367d43->getDefaultCurrency(), $v1af0389838508d7016a9841eb6273962); $v78a5eb43deef9a7b5b9ce157b9d52ac4 = $result[0]; } } $vf5e638cc78dd325906c1298a0c21fb6b->setValue($vb068931cc450442b63f5b3d276ea4297, $v78a5eb43deef9a7b5b9ce157b9d52ac4); break; case "file": case "img_file": case "video_file": case "swf_file": if ($this->renameFiles) { $v9d22547e12eafcfadf56ff88b9d67f4d = false; $vf83cd85f6404a7018af0fcf071f35751 = $vf5e638cc78dd325906c1298a0c21fb6b->getValue($vb068931cc450442b63f5b3d276ea4297); if ($vf83cd85f6404a7018af0fcf071f35751 instanceof umiFile) { $v9d22547e12eafcfadf56ff88b9d67f4d = $vf83cd85f6404a7018af0fcf071f35751->getFilePath(); } $vbf0e61d0f411b035bf846149824fe352 = ltrim(trim($v67236e502346412a98a0bb965b7a59e6->nodeValue, "\r\n"), "."); $v435ed7e9f07f740abf511a62c00eef6e = basename($vbf0e61d0f411b035bf846149824fe352); $v736007832d2167baaae763fd3a3f3cf1 = dirname($vbf0e61d0f411b035bf846149824fe352); $vabf77184f55403d75b9d51d79162a7ca = explode(".", $v435ed7e9f07f740abf511a62c00eef6e); $vabf77184f55403d75b9d51d79162a7ca = end($vabf77184f55403d75b9d51d79162a7ca); $vd70819bac4952f91adc9954c5b055aca = translit::convert(trim($vf5e638cc78dd325906c1298a0c21fb6b->getName(), "\r\n")); $v435ed7e9f07f740abf511a62c00eef6e = $vd70819bac4952f91adc9954c5b055aca; $ve2942a04780e223b215eb8b663cf5353 = 0; $v149603e6c03516362a8da23f624db945 = error_reporting(0); while (true) { if (!file_exists(CURRENT_WORKING_DIR . '/' . $vbf0e61d0f411b035bf846149824fe352)) { break 2; } else { if ($v9d22547e12eafcfadf56ff88b9d67f4d) { $v46cd4eff50a3aca89f0fbc7ea6a79453 = CURRENT_WORKING_DIR . ltrim($v9d22547e12eafcfadf56ff88b9d67f4d, "."); if (file_exists($v46cd4eff50a3aca89f0fbc7ea6a79453)) { unlink($v46cd4eff50a3aca89f0fbc7ea6a79453); } } } if (!file_exists(CURRENT_WORKING_DIR . '/' . $v736007832d2167baaae763fd3a3f3cf1 . '/' . $v435ed7e9f07f740abf511a62c00eef6e . '.' . $vabf77184f55403d75b9d51d79162a7ca)) { break; } $ve2942a04780e223b215eb8b663cf5353++; $v435ed7e9f07f740abf511a62c00eef6e = $vd70819bac4952f91adc9954c5b055aca . '_' . $ve2942a04780e223b215eb8b663cf5353; } $v435ed7e9f07f740abf511a62c00eef6e .= '.' . $vabf77184f55403d75b9d51d79162a7ca; rename(CURRENT_WORKING_DIR . '/' . $vbf0e61d0f411b035bf846149824fe352, CURRENT_WORKING_DIR . '/' . $v736007832d2167baaae763fd3a3f3cf1 . '/' . $v435ed7e9f07f740abf511a62c00eef6e); error_reporting($v149603e6c03516362a8da23f624db945); $vbf0e61d0f411b035bf846149824fe352 = '.' . $v736007832d2167baaae763fd3a3f3cf1 . '/' . $v435ed7e9f07f740abf511a62c00eef6e; $vf5e638cc78dd325906c1298a0c21fb6b->setValue($vb068931cc450442b63f5b3d276ea4297, $vbf0e61d0f411b035bf846149824fe352); } else { $v47826cacc65c665212b821e6ff80b9b0 = ltrim(trim($v67236e502346412a98a0bb965b7a59e6->nodeValue, "\r\n"), "."); $vf5e638cc78dd325906c1298a0c21fb6b->setValue($vb068931cc450442b63f5b3d276ea4297, "." . $v47826cacc65c665212b821e6ff80b9b0); } break; case "relation": if ($this->auto_guide_creation) { if ($vb068931cc450442b63f5b3d276ea4297 == 'payment_status_id' && $v599dcce2998a6b40b1e38e8c6006cb0a->getMethod() == 'order') { $vfcaea7edd270964cc145ea48e4367d43 = cmsController::getInstance()->getModule('emarket'); if ($vfcaea7edd270964cc145ea48e4367d43) { umiObjectProperty::$USE_FORCE_OBJECTS_CREATION = false; $v903931b3a9d25a70683f51ab9d363d2e = $v67236e502346412a98a0bb965b7a59e6->nodeValue; $v70a17ffa722a3985b86d30b034ad06d7 = order::get($vf5e638cc78dd325906c1298a0c21fb6b->id); $v70a17ffa722a3985b86d30b034ad06d7->setPaymentStatus($v903931b3a9d25a70683f51ab9d363d2e); $v70a17ffa722a3985b86d30b034ad06d7->commit(); umiObjectProperty::$USE_FORCE_OBJECTS_CREATION = true; } } elseif ($vb068931cc450442b63f5b3d276ea4297 == 'status_id' && $v599dcce2998a6b40b1e38e8c6006cb0a->getMethod() == 'order') { $vfcaea7edd270964cc145ea48e4367d43 = cmsController::getInstance()->getModule('emarket'); if ($vfcaea7edd270964cc145ea48e4367d43) { $v903931b3a9d25a70683f51ab9d363d2e = $v67236e502346412a98a0bb965b7a59e6->nodeValue; $v70a17ffa722a3985b86d30b034ad06d7 = order::get($vf5e638cc78dd325906c1298a0c21fb6b->id); $vc8db1069270b4aad8a8d03a1d939bc26 = $v70a17ffa722a3985b86d30b034ad06d7->getOrderStatus(); $vf48da84a2621e8cad36af3c0af958502 = $v70a17ffa722a3985b86d30b034ad06d7->getCodeByStatus($vc8db1069270b4aad8a8d03a1d939bc26); if (!in_array($vf48da84a2621e8cad36af3c0af958502, array('ready', 'canceled', 'rejected'))) { umiObjectProperty::$USE_FORCE_OBJECTS_CREATION = false; $v70a17ffa722a3985b86d30b034ad06d7->setOrderStatus($v903931b3a9d25a70683f51ab9d363d2e); $v70a17ffa722a3985b86d30b034ad06d7->commit(); umiObjectProperty::$USE_FORCE_OBJECTS_CREATION = true; } } } else { $v691d502cfd0e0626cd3b058e5682ad1c = array(); $v1a13105b7e4eb5fb2e7c9515ac06aa48 = $v67236e502346412a98a0bb965b7a59e6->getElementsByTagName("item"); foreach ($v1a13105b7e4eb5fb2e7c9515ac06aa48 as $ve795119eccc6565f098fca8454bad366) { $v691d502cfd0e0626cd3b058e5682ad1c[] = $ve795119eccc6565f098fca8454bad366->getAttribute('name'); } $vf5e638cc78dd325906c1298a0c21fb6b->setValue($vb068931cc450442b63f5b3d276ea4297, $v691d502cfd0e0626cd3b058e5682ad1c); } } break; case "tags": $v1a13105b7e4eb5fb2e7c9515ac06aa48 = $this->parser->evaluate("combined", $vcaf9b6b99962bf5c2264824231d7a40c); if ($v67236e502346412a98a0bb965b7a59e6 = $v1a13105b7e4eb5fb2e7c9515ac06aa48->item(0)) { $vf5e638cc78dd325906c1298a0c21fb6b->setValue($vb068931cc450442b63f5b3d276ea4297, trim($v67236e502346412a98a0bb965b7a59e6->nodeValue, "\r\n")); } break; case "string": case "text": case "wysiwyg": case "boolean": case "counter": case "float": case "int": if ($vb068931cc450442b63f5b3d276ea4297 == 'payment_type_id' || $vb068931cc450442b63f5b3d276ea4297 == 'modificator_type_id' || $vb068931cc450442b63f5b3d276ea4297 == 'rule_type_id' || $vb068931cc450442b63f5b3d276ea4297 == 'delivery_type_id') { $v7f7cfde5ec586119b48911a2c75851e5 = $this->relations->getNewTypeIdRelation($this->source_id, $v67236e502346412a98a0bb965b7a59e6->nodeValue); if ($v7f7cfde5ec586119b48911a2c75851e5) { $vf5e638cc78dd325906c1298a0c21fb6b->setValue($vb068931cc450442b63f5b3d276ea4297, $v7f7cfde5ec586119b48911a2c75851e5); } break; } default: $vf5e638cc78dd325906c1298a0c21fb6b->setValue($vb068931cc450442b63f5b3d276ea4297, trim($v67236e502346412a98a0bb965b7a59e6->nodeValue, "\r\n")); break; } }
protected static function saveFieldValue($name, $value, $target, $save = false) { $hierarchy = umiHierarchy::getInstance(); if ($i = strpos($name, '[')) { if (preg_match_all("/\\[([^\\[^\\]]+)\\]/", substr($name, $i), $out)) { $optionParams = array('filter' => array(), 'field-type' => null); foreach ($out[1] as $param) { if (strpos($param, ':')) { list($seekType, $seekValue) = explode(':', $param); $optionParams['filter'][$seekType] = $seekValue; } else { $optionParams['field-type'] = $param; } } } $name = substr($name, 0, $i); } else { $optionParams = null; } if ($name != 'name' && $name != 'alt_name') { $object = $target instanceof iUmiHierarchyElement ? $target->getObject() : $target; $property = $object->getPropByName($name); if ($property instanceof iUmiObjectProperty == false) { throw new publicException(getLabel('eip-no-field') . ": \"{$name}\""); } $field = $property->getField(); } if ($name == 'name' || $name == 'alt_name') { $type = 'string'; } else { $type = $field->getDataType(); } if (is_string($value)) { $value = __editor_content::filterStringValue($value); } $oldLink = null; $newLink = null; if ($save) { umiObjectProperty::$IGNORE_FILTER_INPUT_STRING = true; if ($name == 'h1' || $name == 'name') { $value = strip_tags($value); $value = str_replace(array(' ', '&'), array(' ', '&'), $value); if ($name === 'name') { // При изменении name: если name==h1, name=h1=new_value // При изменении name: если name!=h1, name=new_value. if ($target->getName() === (string) $target->getValue('h1')) { $target->setValue('h1', $value); } $target->setName($value); } else { // При изменении h1: если h1 == name && name=='', name=h1=new_value // При изменении h1: если h1 == name и name != '', h1=new_value // При изменении h1: если h1 != name, h1=new_value if ($target->getName() === (string) $target->getValue('h1') && $target->getName() === '') { $target->setName($value); } $target->setValue('h1', $value); } if ($target instanceof iUmiHierarchyElement) { $oldLink = $hierarchy->getPathById($target->id); $altName = $target->getAltName(); if (!$altName || substr($altName, 0, 1) == '_') { $target->setAltName($value); $target->commit(); } $newLink = $hierarchy->getPathById($target->id, false, false, true); } } elseif ($name == 'alt_name') { if ($target instanceof iUmiHierarchyElement) { $target->setAltName($value); $target->commit(); $newLink = $hierarchy->getPathById($target->id, false, false, true); } } else { if ($type == 'date') { $date = new umiDate(); $date->setDateByString($value); $value = $date; unset($date); $value = $value->getFormattedDate('U'); } if ($type == 'optioned') { $seekType = getArrayKey($optionParams, 'field-type'); $filter = getArrayKey($optionParams, 'filter'); $oldValue = $target->getValue($name); foreach ($oldValue as $i => $v) { foreach ($filter as $t => $s) { if (getArrayKey($v, $t) != $s) { continue 2; } $oldValue[$i][$seekType] = $value; } } $value = $oldValue; unset($oldValue); } if ($type == 'symlink') { $value = $value; } if ($type == 'wysiwyg') { $out = array(); if (preg_match_all("/href=[\"']?([^ ^\"^']+)[\"']?/i", $value, $out)) { foreach ($out[1] as $link) { $id = $hierarchy->getIdByPath($link); if ($id) { $link = str_replace("/", "\\/", $link); $value = preg_replace("/(href=[\"']?)" . $link . "([\"']?)/i", "\\1%content get_page_url({$id})%\\2", $value); } } } } else { $value = str_replace(array(' ', '&'), array(' ', '&'), $value); } if (in_array($type, array('text', 'string', 'int', 'float', 'price', 'date', 'tags', 'counter'))) { $value = preg_replace("/<br ?\\/?>/i", "\n", $value); $value = strip_tags($value); } if (in_array($type, array('img_file', 'swf_file', 'file', 'video_file')) && $value) { if (substr($value, 0, 1) != '.') { $value = '.' . $value; } } $target->setValue($name, $value); } $target->commit(); umiObjectProperty::$IGNORE_FILTER_INPUT_STRING = false; if ($target instanceof iUmiHierarchyElement) { $backup = backupModel::getInstance(); $backup->fakeBackup($target->id); } $oEventPoint = new umiEventPoint("eipSave"); $oEventPoint->setMode("after"); $oEventPoint->setParam("field_name", $name); $oEventPoint->setParam("obj", $target); def_module::setEventPoint($oEventPoint); } if ($name == 'name') { $value = $target->getName(); } else { $value = $target->getValue($name, $optionParams); } if ($save) { $value = xmlTranslator::executeMacroses($value); } if ($type == 'date') { if ($value) { $date = new umiDate(); $date->setDateByString($value); $value = $date->getFormattedDate('Y-m-d H:i'); } else { $value = ''; } } if ($type == 'tags' && is_array($value)) { $value = implode(', ', $value); } if ($type == 'optioned' && !is_null($optionParams)) { $value = isset($value[0]) ? $value[0] : ''; $type = getArrayKey($optionParams, 'field-type'); } $result = array('attribute:name' => $name, 'attribute:type' => $type); if ($type == 'relation') { $items_arr = array(); if ($value) { if (!is_array($value)) { $value = array($value); } $objects = umiObjectsCollection::getInstance(); foreach ($value as $objectId) { $object = $objects->getObject($objectId); $items_arr[] = $object; } } $result['attribute:guide-id'] = $field->getGuideId(); if ($field->getFieldType()->getIsMultiple()) { $result['attribute:multiple'] = 'multiple'; } $type = selector::get('object-type')->id($field->getGuideId()); if ($type && $type->getIsPublic()) { $result['attribute:public'] = 'public'; } $result['nodes:item'] = $items_arr; } else { if ($type == 'symlink') { $result['nodes:page'] = is_array($value) ? $value : array(); } else { $result['node:value'] = $value; } } if ($oldLink != $newLink) { $result['attribute:old-link'] = $oldLink; $result['attribute:new-link'] = $newLink; } return $result; }