/** * Populate model object properties by the passed data * * @param array $data Data to set * * @return void */ protected function setModelProperties(array $data) { foreach ($data as $name => $value) { if (strpos($name, 'parameter_') === 0) { $paramName = substr($name, 10); $this->getModelObject()->setParameterValue($paramName, $value); // Remove already set properties unset($data[$name]); } } parent::setModelProperties($data); }
/** * Populate model object properties by the passed data * * @param array $data Data to set * * @return void */ protected function setModelProperties(array $data) { if (isset($data['country_of_origin'])) { $data['country_of_origin'] = \XLite\Core\Database::getRepo('XLite\\Model\\Country')->find($data['country_of_origin']); } parent::setModelProperties($data); /** @var \XLite\Model\Product $model */ $model = $this->getModelObject(); $model->update(); $this->setProduct($model); }
/** * Populate model object properties by the passed data * * @param array $data Data to set * * @return void */ protected function setModelProperties(array $data) { if (!isset($data['onDemand'])) { $data['onDemand'] = array(); } if (!isset($data['carrierAccessorialFees'])) { $data['carrierAccessorialFees'] = array(); } parent::setModelProperties($data); }
/** * Populate model object properties by the passed data * * @param array $data Data to set * * @return void */ protected function setModelProperties(array $data) { $permissions = $data['permissions']; unset($data['permissions']); if ($this->getModelObject()->isPermanentRole()) { $data['enabled'] = 1; } else { $data['enabled'] = isset($data['enabled']) ? intval($data['enabled']) : 0; } if (!empty($data['name'])) { $data['name'] = strip_tags($data['name']); } parent::setModelProperties($data); $model = $this->getModelObject(); if (!$model->isPermanentRole()) { // Remove old links foreach ($model->getPermissions() as $perm) { $perm->getRoles()->removeElement($model); } $model->getPermissions()->clear(); $permanent = \XLite\Core\Database::getRepo('XLite\\Model\\Role')->getPermanentRole(); if ($permanent->getId() == $model->getId()) { $root = \XLite\Core\Database::getRepo('XLite\\Model\\Role\\Permission')->findOneBy(array('code' => \XLite\Model\Role\Permission::ROOT_ACCESS)); if ($root && !in_array($root->getId(), $permissions)) { $permissions[] = $root->getId(); } } // Add new links foreach ($permissions as $pid) { $permission = \XLite\Core\Database::getRepo('XLite\\Model\\Role\\Permission')->find($pid); if ($permission) { $model->addPermissions($permission); $permission->addRoles($model); } } } }
/** * Populate model object properties by the passed data * * @param array $data Data to set * * @return void */ protected function setModelProperties(array $data) { if (isset($data['enabled'])) { $data['enabled'] = !empty($data['enabled']) ? 1 : 0; } parent::setModelProperties($data); }
/** * Populate model object properties by the passed data * * @param array $data Data to set * * @return void */ protected function setModelProperties(array $data) { if ($this->getModelObject()->getProfile()) { if (!$this->getModelObject()->getProfile()->getBillingAddress()) { $data['is_billing'] = true; } if (!$this->getModelObject()->getProfile()->getShippingAddress()) { $data['is_shipping'] = true; } } parent::setModelProperties($data); }
/** * Populate model object properties by the passed data * * @param array $data Data to set * * @return void */ protected function setModelProperties(array $data) { $productClasses = isset($data['productClasses']) ? $data['productClasses'] : null; $memberships = isset($data['memberships']) ? $data['memberships'] : null; $categories = isset($data['categories']) ? $data['categories'] : null; unset($data['productClasses'], $data['memberships'], $data['categories']); if (!empty($data['dateRangeEnd'])) { $data['dateRangeEnd'] = mktime(23, 59, 59, date('n', $data['dateRangeEnd']), date('j', $data['dateRangeEnd']), date('Y', $data['dateRangeEnd'])); } if (empty($data['usesLimitCheck'])) { $data['usesLimit'] = 0; } $data['singleUse'] = empty($data['singleUse']) ? 0 : 1; parent::setModelProperties($data); $entity = $this->getModelObject(); // Product classes foreach ($entity->getProductClasses() as $class) { $class->getCoupons()->removeElement($entity); } $entity->getProductClasses()->clear(); if (is_array($productClasses)) { foreach ($productClasses as $id) { $class = \XLite\Core\Database::getRepo('XLite\\Model\\ProductClass')->find($id); if ($class) { $entity->addProductClasses($class); $class->addCoupons($entity); } } } // Memberships foreach ($entity->getMemberships() as $m) { $m->getCoupons()->removeElement($entity); } $entity->getMemberships()->clear(); if (is_array($memberships)) { foreach ($memberships as $id) { $m = \XLite\Core\Database::getRepo('XLite\\Model\\Membership')->find($id); if ($m) { $entity->addMemberships($m); $m->addCoupons($entity); } } } // Categories foreach ($entity->getCategories() as $c) { $c->getCoupons()->removeElement($entity); } $entity->getCategories()->clear(); if (is_array($categories)) { foreach ($categories as $id) { $c = \XLite\Core\Database::getRepo('XLite\\Model\\Category')->find($id); if ($c) { $entity->addCategories($c); $c->addCoupons($entity); } } } }
/** * Populate model object properties by the passed data * * @param array $data Data to set * * @return void */ protected function setModelProperties(array $data) { $data['attribute_group'] = \XLite\Core\Database::getRepo('XLite\\Model\\AttributeGroup')->find($data['attribute_group']); if (!isset($data['addToNew'])) { $data['addToNew'] = array(); } parent::setModelProperties($data); $this->getModelObject()->setProductClass($this->getProductClass()); }
/** * Populate model object properties by the passed data * * @param array $data Data to set * * @return void */ protected function setModelProperties(array $data) { parent::setModelProperties($data); }
/** * Populate model object properties by the passed data * * @param array $data Data to set * * @return void */ protected function setModelProperties(array $data) { if ($this->getPostedData('autogenerateCleanURL')) { $data['cleanURL'] = $this->generateCleanURL($data['name']); } if (!$data['cleanURL']) { unset($data['cleanURL']); } parent::setModelProperties($data); }
/** * Populate model object properties by the passed data * * @param array $data Data to set * * @return void */ protected function setModelProperties(array $data) { $data['content'] = $data['contentTab']; $this->prepareObjectForMapping()->setProduct($this->getProduct()); $this->getProduct()->addTabs($this->prepareObjectForMapping()); parent::setModelProperties($data); }
/** * Populate model object properties by the passed data * * @param array $data Data to set * * @return void */ protected function setModelProperties(array $data) { unset($data['shippingZone']); parent::setModelProperties($data); }
/** * Populate model object properties by the passed data * * @param array $data Data to set * * @return void */ protected function setModelProperties(array $data) { $body = $data['body']; unset($data['body']); $data['date'] = LC_START_TIME; $localPath = ''; if (\XLite\Core\Request::getInstance()->template) { $localPath = \XLite\Core\Request::getInstance()->template; } elseif ($this->getModelObject()->getId()) { $localPath = $this->getModelObjectValue('template'); } if ($localPath) { $fullPath = $this->getFullPathByLocalPath($localPath, 'theme_tweaker/default'); \Includes\Utils\FileManager::write($fullPath, $body); $data['template'] = substr($fullPath, strlen(LC_DIR_SKINS)); \XLite\Core\FlexyCompiler::getInstance()->remove($fullPath); } parent::setModelProperties($data); }
/** * Populate model object properties by the passed data * * @param array $data Data to set * * @return void */ protected function setModelProperties(array $data) { $memberships = !empty($data['memberships']) ? $data['memberships'] : null; unset($data['memberships']); $parentId = (int) (!empty($data['parent']) ? $data['parent'] : \XLite\Core\Request::getInstance()->parent); unset($data['parent']); parent::setModelProperties($data); $model = $this->getModelObject(); // Remove old links foreach ($model->getMemberships() as $membership) { $membership->getCategories()->removeElement($model); } $model->getMemberships()->clear(); if ($memberships) { // Add new links foreach ($memberships as $mid) { $membership = \XLite\Core\Database::getRepo('XLite\\Model\\Membership')->find($mid); if ($membership) { $model->addMemberships($membership); $membership->addCategory($model); } } } $currentParentId = $model->getParent() ? $model->getParent()->getCategoryId() : null; $isRootCategory = \XLite\Core\Database::getRepo('XLite\\Model\\Category')->getRootCategoryId() == $model->getCategoryId(); if (!$isRootCategory && (!$model->isPersistent() || !$currentParentId || $parentId && $currentParentId != $parentId)) { // Set parent $parent = null; if ($parentId) { $parent = \XLite\Core\Database::getRepo('XLite\\Model\\Category')->find($parentId); } if (!$parent) { $parent = \XLite\Core\Database::getRepo('XLite\\Model\\Category')->getRootCategory(); } $model->setParent($parent); // Update lpos, rpos, depth properties of categories tree \XLite\Core\Database::getRepo('XLite\\Model\\Category')->correctCategoriesStructure(); } if (!$model->isPersistent()) { // Resort $pos = 0; $model->setPos($pos); foreach ($parent->getChildren() as $child) { $pos += 10; $child->setPos($pos); } } }
/** * Populate model object properties by the passed data. * Specific wrapper for setModelProperties method. * * @param array $data Data to set * * @return void */ protected function updateModelProperties(array $data) { $categoryIds = isset($data['categories']) ? array_map('intval', $data['categories']) : array(); unset($data['categories']); $memberships = isset($data['memberships']) ? $data['memberships'] : array(); unset($data['memberships']); // Flag variables foreach (array('shippable', 'useSeparateBox') as $value) { if (isset($data[$value]) && is_string($data[$value])) { $data[$value] = 'Y' === $data[$value]; } } if (isset($data['useSeparateBox']) && $data['useSeparateBox']) { foreach (array('boxLength', 'boxWidth', 'boxHeight', 'itemsPerBox') as $var) { $data[$var] = $this->getPostedData($var); } } $time = \XLite\Core\Converter::time(); if (isset($data['arrivalDate'])) { $data['arrivalDate'] = (int) strtotime($data['arrivalDate']) ?: mktime(0, 0, 0, date('m', $time), date('j', $time), date('Y', $time)); } if (isset($data['productClass'])) { $data['productClass'] = \XLite\Core\Database::getRepo('XLite\\Model\\ProductClass')->find($data['productClass']); } if (isset($data['taxClass'])) { $data['taxClass'] = \XLite\Core\Database::getRepo('XLite\\Model\\TaxClass')->find($data['taxClass']); } if ($this->getModelObject() && !$this->getModelObject()->getInventory()->isPersistent()) { $this->getModelObject()->setInventory($this->getModelObject()->getInventory()); } if (isset($data['qty'])) { if ($this->getModelObject() && $this->getModelObject()->getInventory()) { $this->getModelObject()->getInventory()->setAmount($data['qty']); } unset($data['qty']); } parent::setModelProperties($data); /** @var \XLite\Model\Product $model */ $model = $this->getModelObject(); $isNew = !$model->isPersistent(); $model->update(); if ($isNew) { \XLite\Core\Database::getRepo('XLite\\Model\\Attribute')->generateAttributeValues($model); } // Update product categories $this->updateProductCategories($model, $categoryIds); // Update SKU if (null === $model->getSku()) { $model->setSku(\XLite\Core\Database::getRepo('XLite\\Model\\Product')->generateSKU($model)); } // Update memberships foreach ($model->getMemberships() as $membership) { $membership->getProducts()->removeElement($model); } $model->getMemberships()->clear(); if (null !== $memberships && $memberships) { // Add new links foreach ($memberships as $mid) { $membership = \XLite\Core\Database::getRepo('XLite\\Model\\Membership')->find($mid); if ($membership) { $model->addMemberships($membership); $membership->addProduct($model); } } } // Set the controller model product $this->setProduct($model); }
/** * Populate model object properties by the passed data * * @param array $data Data to set * * @return void */ protected function setModelProperties(array $data) { $adminAccessLevel = \XLite\Core\Auth::getInstance()->getAdminAccessLevel(); if (!empty($data['password'])) { // Encrypt password if if is not empty $data['password'] = \XLite\Core\Auth::encryptPassword($data['password']); } elseif (isset($data['password'])) { // Otherwise unset password to avoid passing empty password to the database unset($data['password']); } // Cannot change the status of own profile if ($this->isLoggedProfile()) { unset($data['status']); } // Apply the access level only during the profile creation if (!$this->isRegisterMode()) { unset($data['access_level']); } if (isset($data['forceChangePassword']) && is_string($data['forceChangePassword'])) { $data['forceChangePassword'] = (bool) $data['forceChangePassword']; } $isRoot = \XLite\Core\Auth::getInstance()->isPermissionAllowed(\XLite\Model\Role\Permission::ROOT_ACCESS); if (isset($data['roles']) && (!$isRoot || isset($data['access_level']) && $adminAccessLevel != $data['access_level'])) { unset($data['roles']); } $model = $this->getModelObject(); // Assign only role for admin $isAdmin = isset($data['access_level']) && $adminAccessLevel == $data['access_level'] || $model->getProfileId() && $model->isAdmin(); if ($isAdmin && $this->needSetRootAccess($this->getModelObject())) { $rootRole = \XLite\Core\Database::getRepo('XLite\\Model\\Role')->findOneRoot(); if ($rootRole) { if (!isset($data['roles'])) { $data['roles'] = array(); } $data['roles'][] = $rootRole->getId(); } } if (isset($data['roles']) || isset($data['access_level']) && $adminAccessLevel != $data['access_level'] || $model->getProfileId() && !$model->isAdmin()) { // Remove old links foreach ($model->getRoles() as $role) { $role->getProfiles()->removeElement($model); } $model->getRoles()->clear(); } // Add new links if (isset($data['roles']) && is_array($data['roles'])) { $data['roles'] = array_unique($data['roles']); foreach ($data['roles'] as $rid) { $role = \XLite\Core\Database::getRepo('XLite\\Model\\Role')->find($rid); if ($role) { $model->addRoles($role); $role->addProfiles($model); } } } if (isset($data['roles'])) { unset($data['roles']); } parent::setModelProperties($data); }
/** * Populate model object properties by the passed data * * @param array $data Data to set * * @return void */ protected function setModelProperties(array $data) { $data['date'] = strtotime($data['date']); parent::setModelProperties($data); }