本文整理汇总了PHP中Aimeos\MShop\Common\Item\Iface::getId方法的典型用法代码示例。如果您正苦于以下问题:PHP Iface::getId方法的具体用法?PHP Iface::getId怎么用?PHP Iface::getId使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Aimeos\MShop\Common\Item\Iface
的用法示例。
在下文中一共展示了Iface::getId方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: saveItem
/**
* Adds a new site to the storage or updates an existing one.
*
* @param \Aimeos\MShop\Common\Item\Iface $item New site item for saving to the storage
* @param boolean $fetch True if the new ID should be returned in the item
* @throws \Aimeos\MShop\Locale\Exception
*/
public function saveItem(\Aimeos\MShop\Common\Item\Iface $item, $fetch = true)
{
$iface = '\\Aimeos\\MShop\\Locale\\Item\\Site\\Iface';
if (!$item instanceof $iface) {
throw new \Aimeos\MShop\Locale\Exception(sprintf('Object is not of required type "%1$s"', $iface));
}
if ($item->getId() === null) {
throw new \Aimeos\MShop\Locale\Exception(sprintf('Newly created site can not be saved using method "saveItem()". Try using method "insertItem()" instead.'));
}
if (!$item->isModified()) {
return;
}
$context = $this->getContext();
$dbm = $context->getDatabaseManager();
$dbname = $this->getResourceName();
$conn = $dbm->acquire($dbname);
try {
$id = $item->getId();
/** mshop/locale/manager/site/standard/update
* Updates an existing site record in the database
*
* The SQL statement must be a string suitable for being used as
* prepared statement. It must include question marks for binding
* the values from the log item to the statement before they are
* sent to the database server. The order of the columns must
* correspond to the order in the saveItems() method, so the
* correct values are bound to the columns.
*
* The SQL statement should conform to the ANSI standard to be
* compatible with most relational database systems. This also
* includes using double quotes for table and column names.
*
* @param string SQL statement for updating records
* @since 2014.03
* @category Developer
* @see mshop/locale/manager/site/standard/insert
* @see mshop/locale/manager/site/standard/delete
* @see mshop/locale/manager/site/standard/search
* @see mshop/locale/manager/site/standard/count
* @see mshop/locale/manager/site/standard/newid
*/
$path = 'mshop/locale/manager/site/standard/update';
$stmt = $this->getCachedStatement($conn, $path);
$stmt->bind(1, $item->getCode());
$stmt->bind(2, $item->getLabel());
$stmt->bind(3, json_encode($item->getConfig()));
$stmt->bind(4, $item->getStatus(), \Aimeos\MW\DB\Statement\Base::PARAM_INT);
$stmt->bind(5, $context->getEditor());
$stmt->bind(6, date('Y-m-d H:i:s'));
// mtime
$stmt->bind(7, $id, \Aimeos\MW\DB\Statement\Base::PARAM_INT);
$stmt->execute()->finish();
$item->setId($id);
// set Modified false
$dbm->release($conn, $dbname);
} catch (\Exception $e) {
$dbm->release($conn, $dbname);
throw $e;
}
}
示例2: saveItem
/**
* Adds or updates an item object.
*
* @param \Aimeos\MShop\Common\Item\Iface $item Item object whose data should be saved
* @param boolean $fetch True if the new ID should be returned in the item
*/
public function saveItem(\Aimeos\MShop\Common\Item\Iface $item, $fetch = true)
{
if ($item->getId() !== null && $item->isModified()) {
$actual = $this->getManager()->getItem($item->getId())->getSiteId();
$siteId = $this->getContext()->getLocale()->getSiteId();
if ($actual !== null && $actual != $siteId) {
return;
}
}
parent::saveItem($item, $fetch);
}
示例3: saveItem
/**
* Updates or adds a common list item object.
*
* @param \Aimeos\MShop\Common\Item\Lists\Iface $item List item object which should be saved
* @param boolean $fetch True if the new ID should be returned in the item
*/
public function saveItem(\Aimeos\MShop\Common\Item\Iface $item, $fetch = true)
{
$iface = '\\Aimeos\\MShop\\Common\\Item\\Lists\\Iface';
if (!$item instanceof $iface) {
throw new \Aimeos\MShop\Exception(sprintf('Object is not of required type "%1$s"', $iface));
}
$context = $this->getContext();
$dbm = $context->getDatabaseManager();
$dbname = $this->getResourceName();
$conn = $dbm->acquire($dbname);
try {
$id = $item->getId();
if ($id === null) {
$type = 'insert';
} else {
$type = 'update';
}
$time = date('Y-m-d H:i:s');
$statement = $this->getCachedStatement($conn, $this->getConfigPath() . $type);
$statement->bind(1, $item->getParentId(), \Aimeos\MW\DB\Statement\Base::PARAM_INT);
$statement->bind(2, $context->getLocale()->getSiteId(), \Aimeos\MW\DB\Statement\Base::PARAM_INT);
$statement->bind(3, $item->getTypeId(), \Aimeos\MW\DB\Statement\Base::PARAM_INT);
$statement->bind(4, $item->getDomain(), \Aimeos\MW\DB\Statement\Base::PARAM_STR);
$statement->bind(5, $item->getRefId(), \Aimeos\MW\DB\Statement\Base::PARAM_STR);
$statement->bind(6, $item->getDateStart(), \Aimeos\MW\DB\Statement\Base::PARAM_STR);
$statement->bind(7, $item->getDateEnd(), \Aimeos\MW\DB\Statement\Base::PARAM_STR);
$statement->bind(8, json_encode($item->getConfig()), \Aimeos\MW\DB\Statement\Base::PARAM_STR);
$statement->bind(9, $item->getPosition(), \Aimeos\MW\DB\Statement\Base::PARAM_INT);
$statement->bind(10, $item->getStatus(), \Aimeos\MW\DB\Statement\Base::PARAM_INT);
$statement->bind(11, $time);
//mtime
$statement->bind(12, $this->getContext()->getEditor());
if ($id !== null) {
$statement->bind(13, $id, \Aimeos\MW\DB\Statement\Base::PARAM_INT);
} else {
$statement->bind(13, $time);
//ctime
}
$statement->execute()->finish();
if ($fetch === true) {
if ($id === null) {
$path = $this->getConfigPath() . 'newid';
$item->setId($this->newId($conn, $path));
} else {
$item->setId($id);
// modified false
}
}
$dbm->release($conn, $dbname);
} catch (\Exception $e) {
$dbm->release($conn, $dbname);
throw $e;
}
}
示例4: saveItem
/**
* Adds a new cache to the storage.
*
* @param \Aimeos\MAdmin\Cache\Item\Iface $item Cache item that should be saved to the storage
* @param boolean $fetch True if the new ID should be returned in the item
*/
public function saveItem(\Aimeos\MShop\Common\Item\Iface $item, $fetch = true)
{
$iface = '\\Aimeos\\MAdmin\\Cache\\Item\\Iface';
if (!$item instanceof $iface) {
throw new \Aimeos\MAdmin\Cache\Exception(sprintf('Object is not of required type "%1$s"', $iface));
}
if (!$item->isModified()) {
return;
}
$id = $item->getId();
$cache = $this->getCache();
$cache->delete($id);
$cache->set($id, $item->getValue(), $item->getTags(), $item->getTimeExpire());
}
示例5: set
/**
* Adds the product ID to the cache
*
* @param \Aimeos\MShop\Common\Item\Iface $item Product object
*/
public function set(\Aimeos\MShop\Common\Item\Iface $item)
{
$this->prodmap[$item->getCode()] = $item->getId();
}
示例6: saveItem
/**
* Stores a new item into the index
*
* @param \Aimeos\MShop\Common\Item\Iface $item Product item
* @param boolean $fetch True if the new ID should be set in the item
*/
public function saveItem(\Aimeos\MShop\Common\Item\Iface $item, $fetch = true)
{
$this->rebuildIndex(array($item->getId() => $item));
}
示例7: saveItem
/**
* Adds a new cache to the storage.
*
* @param \Aimeos\MAdmin\Cache\Item\Iface $item Cache item that should be saved to the storage
* @param boolean $fetch True if the new ID should be returned in the item
*/
public function saveItem(\Aimeos\MShop\Common\Item\Iface $item, $fetch = true)
{
$iface = '\\Aimeos\\MAdmin\\Cache\\Item\\Iface';
if (!$item instanceof $iface) {
throw new \Aimeos\MAdmin\Cache\Exception(sprintf('Object is not of required type "%1$s"', $iface));
}
if (!$item->isModified()) {
return;
}
/** madmin/cache/manager/standard/set/mysql
* Inserts the cache entry into the database
*
* @see madmin/cache/manager/standard/set/ansi
*/
/** madmin/cache/manager/standard/set/ansi
* Inserts the cache entry into the database
*
* The ID, value and expiration timestamp are inserted as new record
* into the cache database. Any existing record must be deleted before
* the new one can be inserted.
*
* The SQL statement must be a string suitable for being used as
* prepared statement. It must include question marks for binding
* the values from the cache item to the statement before they are
* sent to the database server. The number of question marks must
* be the same as the number of columns listed in the INSERT
* statement. The order of the columns must correspond to the
* order in the set() method, so the correct values are bound to the
* columns.
*
* The SQL statement should conform to the ANSI standard to be
* compatible with most relational database systems. This also
* includes using double quotes for table and column names.
*
* @param string SQL statement for inserting a new cache entry
* @since 2014.03
* @category Developer
* @see madmin/cache/manager/standard/delete/ansi
* @see madmin/cache/manager/standard/deletebytag/ansi
* @see madmin/cache/manager/standard/get/ansi
* @see madmin/cache/manager/standard/getbytag/ansi
* @see madmin/cache/manager/standard/settag/ansi
* @see madmin/cache/manager/standard/search/ansi
* @see madmin/cache/manager/standard/count/ansi
*/
/** madmin/cache/manager/standard/settag/mysql
* Inserts a new tag to an existing cache entry
*
* @see madmin/cache/manager/standard/settag/ansi
*/
/** madmin/cache/manager/standard/settag/ansi
* Inserts a new tag to an existing cache entry
*
* The ID of the cache entry and the tag name are inserted as a new
* record into the cache database. Any existing tag record that
* conflicts with the new one must be deleted before it can be inserted.
*
* The SQL statement must be a string suitable for being used as
* prepared statement. It must include question marks for binding
* the cache ID and tag name from the cache item to the statement
* before they are sent to the database server. The number of question
* marks must be the same as the number of columns listed in the INSERT
* statement. The order of the columns must correspond to the order in
* the saveItems() method, so the correct values are bound to the
* columns.
*
* The SQL statement should conform to the ANSI standard to be
* compatible with most relational database systems. This also
* includes using double quotes for table and column names.
*
* @param string SQL statement for inserting a new tag to an existing cache entry
* @since 2014.03
* @category Developer
* @see madmin/cache/manager/standard/delete/ansi
* @see madmin/cache/manager/standard/deletebytag/ansi
* @see madmin/cache/manager/standard/get/ansi
* @see madmin/cache/manager/standard/getbytag/ansi
* @see madmin/cache/manager/standard/set/ansi
* @see madmin/cache/manager/standard/search/ansi
* @see madmin/cache/manager/standard/count/ansi
*/
$id = $item->getId();
$cache = $this->getCache();
$cache->delete($id);
$cache->set($id, $item->getValue(), $item->getTags(), $item->getTimeExpire());
}
示例8: addMetaItemSingle
/**
* Adds expire date and tags for a single item.
*
* @param \Aimeos\MShop\Common\Item\Iface $item Item, maybe with associated list items
* @param string $domain Name of the domain the item is from
* @param string|null &$expire Expiration date that will be overwritten if an earlier date is found
* @param array &$tags List of tags the new tags will be added to
* @param boolean $tagAll True of tags for all items should be added, false if only for the main item
*/
private function addMetaItemSingle(\Aimeos\MShop\Common\Item\Iface $item, $domain, &$expire, array &$tags, $tagAll)
{
$expires = array();
$domain = str_replace('/', '_', $domain);
// maximum compatiblity
if ($tagAll === true) {
$tags[] = $domain . '-' . $item->getId();
}
if ($item instanceof \Aimeos\MShop\Common\Item\Time\Iface && ($date = $item->getDateEnd()) !== null) {
$expires[] = $date;
}
if ($item instanceof \Aimeos\MShop\Common\Item\ListRef\Iface) {
foreach ($item->getListItems() as $listitem) {
if ($tagAll === true) {
$tags[] = str_replace('/', '_', $listitem->getDomain()) . '-' . $listitem->getRefId();
}
if (($date = $listitem->getDateEnd()) !== null) {
$expires[] = $date;
}
}
}
if (!empty($expires)) {
$expire = min($expires);
}
}
示例9: saveItem
/**
* Stores a new item in the index.
*
* @param \Aimeos\MShop\Common\Item\Iface $item Product item
* @param boolean $fetch True if the new ID should be returned in the item
*/
public function saveItem(\Aimeos\MShop\Common\Item\Iface $item, $fetch = true)
{
$iface = '\\Aimeos\\MShop\\Product\\Item\\Iface';
if (!$item instanceof $iface) {
throw new \Aimeos\MShop\Index\Exception(sprintf('Object is not of required type "%1$s"', $iface));
}
if ($item->getId() === null) {
throw new \Aimeos\MShop\Index\Exception(sprintf('Item could not be saved using method saveItem(). Item ID not available.'));
}
$this->rebuildIndex(array($item->getId() => $item));
}
示例10: saveRelationships
/**
* Saves the item references associated via the list
*
* @param \Aimeos\MShop\Common\Manager\Iface $manager Manager responsible for the items
* @param \Aimeos\MShop\Common\Item\Iface $item Domain item with an unique ID set
* @param \stdClass $relationships Object including the <domain>/data/attributes structure
*/
protected function saveRelationships(\Aimeos\MShop\Common\Manager\Iface $manager, \Aimeos\MShop\Common\Item\Iface $item, \stdClass $relationships)
{
$id = $item->getId();
$listManager = $manager->getSubManager('lists');
foreach ((array) $relationships as $domain => $list) {
if (isset($list->data)) {
foreach ((array) $list->data as $data) {
$listItem = $this->addItemData($listManager, $listManager->createItem(), $data, $domain);
if (isset($data->id)) {
$listItem->setRefId($data->id);
}
$listItem->setParentId($id);
$listItem->setDomain($domain);
$listManager->saveItem($listItem, false);
}
}
}
}
示例11: saveItem
/**
* Saves a customer item object.
*
* @param \Aimeos\MShop\Customer\Item\Iface $item Customer item object
* @param boolean $fetch True if the new ID should be returned in the item
*/
public function saveItem(\Aimeos\MShop\Common\Item\Iface $item, $fetch = true)
{
$iface = '\\Aimeos\\MShop\\Customer\\Item\\Iface';
if (!$item instanceof $iface) {
throw new \Aimeos\MShop\Customer\Exception(sprintf('Object is not of required type "%1$s"', $iface));
}
if (!$item->isModified()) {
return;
}
$context = $this->getContext();
$class = '\\Aimeos\\MShop\\Context\\Item\\Ezpublish';
if (!is_a($context, $class)) {
throw new \Aimeos\MShop\Customer\Exception(sprintf('Object is not of required type "%1$s"', $class));
}
$service = $context->getEzUserService();
$email = $item->getPaymentAddress()->getEmail();
if ($item->getId() !== null) {
$struct = $service->newUserUpdateStruct();
$struct->password = $item->getPassword();
$struct->enabled = $item->getStatus();
$struct->email = $email;
$user = $service->loadUser($item->getId());
$service->updateUser($user, $struct);
} else {
$struct = $service->newUserCreateStruct($item->getCode(), $email, $item->getPassword(), 'eng-GB');
$struct->enabled = $item->getStatus();
$user = $service->createUser($struct, array());
$item->setId($user->getUserId());
}
$dbm = $context->getDatabaseManager();
$dbname = $this->getResourceName();
$conn = $dbm->acquire($dbname);
try {
$date = date('Y-m-d H:i:s');
$ctime = $item->getTimeCreated() ? $item->getTimeCreated() : $date;
$billingAddress = $item->getPaymentAddress();
$path = 'mshop/customer/manager/ezpublish/update';
$stmt = $this->getCachedStatement($conn, $path);
$stmt->bind(1, $billingAddress->getCompany());
$stmt->bind(2, $billingAddress->getVatID());
$stmt->bind(3, $billingAddress->getSalutation());
$stmt->bind(4, $billingAddress->getTitle());
$stmt->bind(5, $billingAddress->getFirstname());
$stmt->bind(6, $billingAddress->getLastname());
$stmt->bind(7, $billingAddress->getAddress1());
$stmt->bind(8, $billingAddress->getAddress2());
$stmt->bind(9, $billingAddress->getAddress3());
$stmt->bind(10, $billingAddress->getPostal());
$stmt->bind(11, $billingAddress->getCity());
$stmt->bind(12, $billingAddress->getState());
$stmt->bind(13, $billingAddress->getCountryId());
$stmt->bind(14, $billingAddress->getLanguageId());
$stmt->bind(15, $billingAddress->getTelephone());
$stmt->bind(16, $billingAddress->getTelefax());
$stmt->bind(17, $billingAddress->getWebsite());
$stmt->bind(18, $item->getBirthday());
$stmt->bind(19, $item->getDateVerified());
$stmt->bind(20, $date);
// Modification time
$stmt->bind(21, $context->getEditor());
$stmt->bind(22, $ctime);
// Creation time
$stmt->bind(23, $item->getId(), \Aimeos\MW\DB\Statement\Base::PARAM_INT);
$stmt->execute()->finish();
$dbm->release($conn, $dbname);
} catch (\Exception $e) {
$dbm->release($conn, $dbname);
throw $e;
}
}
示例12: addMetaItemSingle
/**
* Adds expire date and tags for a single item.
*
* @param \Aimeos\MShop\Common\Item\Iface $item Item, maybe with associated list items
* @param array &$expires Will contain the list of expiration dates
* @param array &$tags List of tags the new tags will be added to
* @param boolean $tagAll True of tags for all items should be added, false if only for the main item
*/
private function addMetaItemSingle(\Aimeos\MShop\Common\Item\Iface $item, array &$expires, array &$tags, $tagAll)
{
$domain = str_replace('/', '_', $item->getResourceType());
// maximum compatiblity
if ($tagAll === true) {
$tags[] = $domain . '-' . $item->getId();
} else {
$tags[] = $domain;
}
if ($item instanceof \Aimeos\MShop\Common\Item\Time\Iface && ($date = $item->getDateEnd()) !== null) {
$expires[] = $date;
}
}
示例13: saveItem
/**
* Adds or updates an order base item in the storage.
*
* @param \Aimeos\MShop\Common\Item\Iface $item Order base object (sub-items are not saved)
* @param boolean $fetch True if the new ID should be returned in the item
*/
public function saveItem(\Aimeos\MShop\Common\Item\Iface $item, $fetch = true)
{
$iface = '\\Aimeos\\MShop\\Order\\Item\\Base\\Iface';
if (!$item instanceof $iface) {
throw new \Aimeos\MShop\Order\Exception(sprintf('Object is not of required type "%1$s"', $iface));
}
if (!$item->isModified()) {
return;
}
$context = $this->getContext();
$dbm = $context->getDatabaseManager();
$dbname = $this->getResourceName();
$conn = $dbm->acquire($dbname);
try {
$id = $item->getId();
$date = date('Y-m-d H:i:s');
if ($id === null) {
/** mshop/order/manager/base/standard/insert
* Inserts a new order record into the database table
*
* Items with no ID yet (i.e. the ID is NULL) will be created in
* the database and the newly created ID retrieved afterwards
* using the "newid" SQL statement.
*
* The SQL statement must be a string suitable for being used as
* prepared statement. It must include question marks for binding
* the values from the order item to the statement before they are
* sent to the database server. The number of question marks must
* be the same as the number of columns listed in the INSERT
* statement. The order of the columns must correspond to the
* order in the saveItems() method, so the correct values are
* bound to the columns.
*
* The SQL statement should conform to the ANSI standard to be
* compatible with most relational database systems. This also
* includes using double quotes for table and column names.
*
* @param string SQL statement for inserting records
* @since 2014.03
* @category Developer
* @see mshop/order/manager/base/standard/update
* @see mshop/order/manager/base/standard/newid
* @see mshop/order/manager/base/standard/delete
* @see mshop/order/manager/base/standard/search
* @see mshop/order/manager/base/standard/count
*/
$path = 'mshop/order/manager/base/standard/insert';
} else {
/** mshop/order/manager/base/standard/update
* Updates an existing order record in the database
*
* Items which already have an ID (i.e. the ID is not NULL) will
* be updated in the database.
*
* The SQL statement must be a string suitable for being used as
* prepared statement. It must include question marks for binding
* the values from the order item to the statement before they are
* sent to the database server. The order of the columns must
* correspond to the order in the saveItems() method, so the
* correct values are bound to the columns.
*
* The SQL statement should conform to the ANSI standard to be
* compatible with most relational database systems. This also
* includes using double quotes for table and column names.
*
* @param string SQL statement for updating records
* @since 2014.03
* @category Developer
* @see mshop/order/manager/base/standard/insert
* @see mshop/order/manager/base/standard/newid
* @see mshop/order/manager/base/standard/delete
* @see mshop/order/manager/base/standard/search
* @see mshop/order/manager/base/standard/count
*/
$path = 'mshop/order/manager/base/standard/update';
}
$priceItem = $item->getPrice();
$localeItem = $context->getLocale();
$stmt = $this->getCachedStatement($conn, $path);
$stmt->bind(1, $localeItem->getSiteId(), \Aimeos\MW\DB\Statement\Base::PARAM_INT);
$stmt->bind(2, $item->getCustomerId());
$stmt->bind(3, $localeItem->getSite()->getCode());
$stmt->bind(4, $item->getLocale()->getLanguageId());
$stmt->bind(5, $priceItem->getCurrencyId());
$stmt->bind(6, $priceItem->getValue());
$stmt->bind(7, $priceItem->getCosts());
$stmt->bind(8, $priceItem->getRebate());
$stmt->bind(9, $item->getComment());
$stmt->bind(10, $item->getStatus());
$stmt->bind(11, $date);
// mtime
$stmt->bind(12, $context->getEditor());
if ($id !== null) {
$stmt->bind(13, $id, \Aimeos\MW\DB\Statement\Base::PARAM_INT);
//.........这里部分代码省略.........
示例14: saveItem
/**
* Saves a currency item to the storage.
*
* @param \Aimeos\MShop\Common\Item\Iface $item Currency item to save in the storage
* @param boolean $fetch True if the new ID should be returned in the item
*
* @throws \Aimeos\MW\DB\Exception If currency object couldn't be saved
* @throws \Aimeos\MShop\Locale\Exception If failures with currency item object
*/
public function saveItem(\Aimeos\MShop\Common\Item\Iface $item, $fetch = true)
{
$iface = '\\Aimeos\\MShop\\Locale\\Item\\Currency\\Iface';
if (!$item instanceof $iface) {
throw new \Aimeos\MShop\Locale\Exception(sprintf('Object is not of required type "%1$s"', $iface));
}
if (!$item->isModified()) {
return;
}
$context = $this->getContext();
$dbm = $context->getDatabaseManager();
$dbname = $this->getResourceName();
$conn = $dbm->acquire($dbname);
try {
$id = $item->getId();
$date = date('Y-m-d H:i:s');
if ($id === null) {
/** mshop/locale/manager/currency/standard/insert
* Inserts a new currency record into the database table
*
* The SQL statement must be a string suitable for being used as
* prepared statement. It must include question marks for binding
* the values from the log item to the statement before they are
* sent to the database server. The number of question marks must
* be the same as the number of columns listed in the INSERT
* statement. The order of the columns must correspond to the
* order in the saveItems() method, so the correct values are
* bound to the columns.
*
* The SQL statement should conform to the ANSI standard to be
* compatible with most relational database systems. This also
* includes using double quotes for table and column names.
*
* @param string SQL statement for inserting records
* @since 2014.03
* @category Developer
* @see mshop/locale/manager/currency/standard/update
* @see mshop/locale/manager/currency/standard/delete
* @see mshop/locale/manager/currency/standard/search
* @see mshop/locale/manager/currency/standard/count
*/
$path = 'mshop/locale/manager/currency/standard/insert';
} else {
/** mshop/locale/manager/currency/standard/update
* Updates an existing currency record in the database
*
* The SQL statement must be a string suitable for being used as
* prepared statement. It must include question marks for binding
* the values from the log item to the statement before they are
* sent to the database server. The order of the columns must
* correspond to the order in the saveItems() method, so the
* correct values are bound to the columns.
*
* The SQL statement should conform to the ANSI standard to be
* compatible with most relational database systems. This also
* includes using double quotes for table and column names.
*
* @param string SQL statement for updating records
* @since 2014.03
* @category Developer
* @see mshop/locale/manager/currency/standard/insert
* @see mshop/locale/manager/currency/standard/delete
* @see mshop/locale/manager/currency/standard/search
* @see mshop/locale/manager/currency/standard/count
*/
$path = 'mshop/locale/manager/currency/standard/update';
}
$stmt = $this->getCachedStatement($conn, $path);
$stmt->bind(1, $item->getLabel());
$stmt->bind(2, $item->getStatus(), \Aimeos\MW\DB\Statement\Base::PARAM_INT);
$stmt->bind(3, $item->getSiteId(), \Aimeos\MW\DB\Statement\Base::PARAM_INT);
$stmt->bind(4, $date);
// mtime
$stmt->bind(5, $context->getEditor());
// bind ID but code and id are identical after saveing the stuff
// id is the flag to detect updates or inserts!
$stmt->bind(6, $item->getCode());
if ($id === null) {
$stmt->bind(7, $date);
// ctime
}
$stmt->execute()->finish();
$item->setId($item->getCode());
// set modified flag to false
$dbm->release($conn, $dbname);
} catch (\Exception $e) {
$dbm->release($conn, $dbname);
throw $e;
}
}
示例15: saveItem
/**
* Saves a customer item object.
*
* @param \Aimeos\MShop\Customer\Item\Iface $item Customer item object
* @param boolean $fetch True if the new ID should be returned in the item
*/
public function saveItem(\Aimeos\MShop\Common\Item\Iface $item, $fetch = true)
{
$iface = '\\Aimeos\\MShop\\Customer\\Item\\Iface';
if (!$item instanceof $iface) {
throw new \Aimeos\MShop\Customer\Exception(sprintf('Object is not of required type "%1$s"', $iface));
}
if (!$item->isModified()) {
return;
}
$context = $this->getContext();
$dbm = $context->getDatabaseManager();
$dbname = $this->getResourceName();
$conn = $dbm->acquire($dbname);
try {
$id = $item->getId();
$billingAddress = $item->getPaymentAddress();
if ($id === null) {
/** mshop/customer/manager/typo3/insert
* Inserts a new customer record into the database table
*
* Items with no ID yet (i.e. the ID is NULL) will be created in
* the database and the newly created ID retrieved afterwards
* using the "newid" SQL statement.
*
* The SQL statement must be a string suitable for being used as
* prepared statement. It must include question marks for binding
* the values from the customer item to the statement before they are
* sent to the database server. The number of question marks must
* be the same as the number of columns listed in the INSERT
* statement. The order of the columns must correspond to the
* order in the saveItems() method, so the correct values are
* bound to the columns.
*
* The SQL statement should conform to the ANSI standard to be
* compatible with most relational database systems. This also
* includes using double quotes for table and column names.
*
* @param string SQL statement for inserting records
* @since 2014.03
* @category Developer
* @see mshop/customer/manager/typo3/update
* @see mshop/customer/manager/typo3/newid
* @see mshop/customer/manager/typo3/delete
* @see mshop/customer/manager/typo3/search
* @see mshop/customer/manager/typo3/count
*/
$path = 'mshop/customer/manager/typo3/insert';
} else {
/** mshop/customer/manager/typo3/update
* Updates an existing customer record in the database
*
* Items which already have an ID (i.e. the ID is not NULL) will
* be updated in the database.
*
* The SQL statement must be a string suitable for being used as
* prepared statement. It must include question marks for binding
* the values from the customer item to the statement before they are
* sent to the database server. The order of the columns must
* correspond to the order in the saveItems() method, so the
* correct values are bound to the columns.
*
* The SQL statement should conform to the ANSI standard to be
* compatible with most relational database systems. This also
* includes using double quotes for table and column names.
*
* @param string SQL statement for updating records
* @since 2014.03
* @category Developer
* @see mshop/customer/manager/typo3/insert
* @see mshop/customer/manager/typo3/newid
* @see mshop/customer/manager/typo3/delete
* @see mshop/customer/manager/typo3/search
* @see mshop/customer/manager/typo3/count
*/
$path = 'mshop/customer/manager/typo3/update';
}
$stmt = $this->getCachedStatement($conn, $path);
$address = $billingAddress->getAddress1();
if (($part = $billingAddress->getAddress2()) != '') {
$address .= ' ' . $part;
}
if (($part = $billingAddress->getAddress3()) != '') {
$address .= ' ' . $part;
}
// TYPO3 fe_users.static_info_country is a three letter ISO code instead a two letter one
$stmt->bind(1, $item->getLabel());
$stmt->bind(2, $item->getCode());
$stmt->bind(3, $this->plugins['customer.salutation']->translate($billingAddress->getSalutation()), \Aimeos\MW\DB\Statement\Base::PARAM_INT);
$stmt->bind(4, $billingAddress->getCompany());
$stmt->bind(5, $billingAddress->getVatID());
$stmt->bind(6, $billingAddress->getTitle());
$stmt->bind(7, $billingAddress->getFirstname());
$stmt->bind(8, $billingAddress->getLastname());
$stmt->bind(9, $address);
//.........这里部分代码省略.........