public function removeFromBasket($vdada7698e90003048a305e981875250f) { $v161c9aaa4fe035e7b2f465bc59f3ab45 = new umiEventPoint("eshop_remove_frombasket"); $v161c9aaa4fe035e7b2f465bc59f3ab45->setMode("before"); $v161c9aaa4fe035e7b2f465bc59f3ab45->setParam("element_id", $vdada7698e90003048a305e981875250f); def_module::setEventPoint($v161c9aaa4fe035e7b2f465bc59f3ab45); if ($this->oUserBasket instanceof umiObject) { $v6a183de20981accc6e2669cd7c8e9f37 = $this->getBasketItem($vdada7698e90003048a305e981875250f); if ($v6a183de20981accc6e2669cd7c8e9f37 instanceof umiObject) { umiObjectsCollection::getInstance()->delObject($v6a183de20981accc6e2669cd7c8e9f37->getId()); $v6f6b8983aa8e35763123f65ae38eb0b2 = $this->oUserBasket->getValue('items'); if (is_array($v6f6b8983aa8e35763123f65ae38eb0b2)) { $v6f6b8983aa8e35763123f65ae38eb0b2 = array_diff($v6f6b8983aa8e35763123f65ae38eb0b2, array($v6a183de20981accc6e2669cd7c8e9f37->getId())); $this->oUserBasket->setValue('items', $v6f6b8983aa8e35763123f65ae38eb0b2); } $this->oUserBasket->commit(); $this->recalcBasket(); } } elseif (isset($this->arrBasket[$vdada7698e90003048a305e981875250f])) { unset($this->arrBasket[$vdada7698e90003048a305e981875250f]); $this->recalcBasket(); } }
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; }