本文整理汇总了PHP中eZProductCollection类的典型用法代码示例。如果您正苦于以下问题:PHP eZProductCollection类的具体用法?PHP eZProductCollection怎么用?PHP eZProductCollection使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了eZProductCollection类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testCleanupList
/**
* Unit test for eZProductCollection::cleanupList()
*
* Outline:
* 1) Create 10 eZProductCollection objects
* 2) Pick 5 random ID of created items
* 3) Call cleanupList() on these 5 items
* 4) Check that the 5 items have been removed
* 5) Check that the 5 other items haven't been removed
*/
public function testCleanupList()
{
// Create a few collections
$row = array( 'created' => time(), 'currency_code' => 'EUR' );
$collection = new eZProductCollection( $row );
$collection->store();
$collectionIDArray[] = $collection->attribute( 'id' );
for( $i = 0; $i < 1500; $i++ )
{
$newCollection = $collection->copy();
$collectionIDArray[] = $newCollection->attribute( 'id' );
}
// pick a few random ID to delete
$deleteIDArray = array_rand( $collectionIDArray, round( count( $collectionIDArray ) / 2 ) );
$remainingIDArray = array_diff( $collectionIDArray, $deleteIDArray );
eZProductCollection::cleanupList( $deleteIDArray );
// Check that each item of deleteIDArray has been removed
foreach( $deleteIDArray as $id )
{
$this->assertNull( eZProductCollection::fetch( $id ) );
}
// And check that each item of remainingIDArray hasn't been deleted
foreach( $remainingIDArray as $id )
{
$this->assertInstanceOf( 'eZProductCollection', eZProductCollection::fetch( $id ) );
}
}
示例2: fetchBasket
function fetchBasket()
{
$http = eZHTTPTool::instance();
$sessionID = $http->sessionID();
$basketList = eZPersistentObject::fetchObjectList(eZBasket::definition(), null, array("session_id" => $sessionID), null, null, true);
$currentBasket = false;
if (count($basketList) == 0) {
// If we don't have a stored basket we create a temporary
// one which can be returned.
$collection = eZProductCollection::create();
$currentBasket = new eZBasket(array("session_id" => $sessionID, "productcollection_id" => 0));
} else {
$currentBasket = $basketList[0];
}
if ($currentBasket === null) {
$result = array('error' => array('error_type' => 'kernel', 'error_code' => eZError::KERNEL_NOT_FOUND));
} else {
$result = array('result' => $currentBasket);
}
return $result;
}
示例3: verify
static function verify($id)
{
$invalidItemArray = array();
$collection = eZProductCollection::fetch($id);
if (!is_object($collection)) {
return $invalidItemArray;
}
$currency = $collection->attribute('currency_code');
$productItemList = eZPersistentObject::fetchObjectList(eZProductCollectionItem::definition(), null, array("productcollection_id" => $id), null, null, true);
$isValid = true;
foreach ($productItemList as $productItem) {
if (!$productItem->verify($currency)) {
$invalidItemArray[] = $productItem;
$isValid = false;
}
}
if (!$isValid) {
return $invalidItemArray;
}
return $isValid;
}
示例4: cleanupCurrentBasket
static function cleanupCurrentBasket($useSetting = true)
{
$ini = eZINI::instance();
$removeBasket = true;
if ($useSetting) {
$removeBasket = $ini->hasVariable('ShopSettings', 'ClearBasketOnLogout') ? $ini->variable('ShopSettings', 'ClearBasketOnLogout') == 'enabled' : false;
}
if ($removeBasket) {
$basket = eZBasket::currentBasket();
if (!is_object($basket)) {
return false;
}
$db = eZDB::instance();
$db->begin();
$productCollectionID = $basket->attribute('productcollection_id');
eZProductCollection::cleanupList(array($productCollectionID));
$basket->remove();
$db->commit();
}
return true;
}
示例5:
if ( $clean['tipafriend'] )
{
$cli->output( "Removing all counters for tip-a-friend" );
eZTipafriendCounter::cleanup();
}
if ( $clean['shop'] )
{
$cli->output( "Removing all baskets" );
eZBasket::cleanup();
$cli->output( "Removing all wishlists" );
eZWishList::cleanup();
$cli->output( "Removing all orders" );
eZOrder::cleanup();
$productCount = eZPersistentObject::count( eZProductCollection::definition() );
if ( $productCount > 0 )
{
$cli->warning( "$productCount product collections still exists, must be a leak" );
}
}
if ( $clean['forgotpassword'] )
{
$cli->output( "Removing all forgot password requests" );
eZForgotPassword::cleanup();
}
if ( $clean['workflow'] )
{
$cli->output( "Removing all workflow processes and operation mementos" );
示例6: collectBaskets
function collectBaskets($maxTime = false, $sleepTime = false, $limit = false)
{
$db = eZDB::instance();
if ($maxTime === false and $db->hasRequiredServerVersion('4.0', 'mysql')) {
$sql = "DELETE FROM ezbasket, ezproductcollection, ezproductcollection_item, ezproductcollection_item_opt\nUSING ezsession\n RIGHT JOIN ezbasket\n ON ezsession.session_key = ezbasket.session_id\n LEFT JOIN ezproductcollection\n ON ezbasket.productcollection_id = ezproductcollection.id\n LEFT JOIN ezproductcollection_item\n ON ezproductcollection.id = ezproductcollection_item.productcollection_id\n LEFT JOIN ezproductcollection_item_opt\n ON ezproductcollection_item.id = ezproductcollection_item_opt.item_id\nWHERE ezsession.session_key IS NULL";
$db->query($sql);
return;
}
// Find all baskets which are lacking a session (db leaks)
if ($db->hasRequiredServerVersion('8', 'oracle')) {
$sql = "SELECT id, productcollection_id\nFROM ezsession, ezbasket\nWHERE ezbasket.session_id = ezsession.session_key (+) AND\n ezsession.session_key IS NULL";
} else {
$sql = "SELECT id, productcollection_id\nFROM ezsession\n RIGHT JOIN ezbasket\n ON ezbasket.session_id = ezsession.session_key\nWHERE ezsession.session_key IS NULL";
}
if ($limit === false) {
$limit = eZDBGarbageCollector::ITEM_LIMIT;
}
$end = false;
if (is_numeric($maxTime)) {
$end = time() + $maxTime;
}
do {
$rows = $db->arrayQuery($sql, array('offset' => 0, 'limit' => $limit));
if (count($rows) == 0) {
break;
}
$productCollectionIDList = array();
$idList = array();
foreach ($rows as $row) {
$idList[] = (int) $row['id'];
$productCollectionIDList[] = (int) $row['productcollection_id'];
}
eZProductCollection::cleanupList($productCollectionIDList);
$ids = implode(', ', $idList);
$db->query("DELETE FROM ezbasket WHERE id IN ( {$ids} )");
// Stop when we used up our time
if ($end !== false and time() > $end) {
break;
}
// Sleep a little if required, reduces load on server
if ($sleepTime !== false) {
sleep($sleepTime);
}
} while (true);
}
示例7: currencyCode
function currencyCode($collection = false)
{
if (is_string($collection) and $collection != '') {
$currencyCode = $collection;
} else {
if ($collection instanceof eZProductCollection === false) {
$collection = eZProductCollection::fetch($this->attribute('productcollection_id'));
}
$currencyCode = $collection->attribute('currency_code');
}
// Backwards compability for orders done with the price datatype.
if ($currencyCode == '') {
$currencyCode = eZOrder::fetchLocaleCurrencyCode();
}
return $currencyCode;
}
示例8: foreach
}
if ($http->hasPostVariable("RemoveProductItemButton")) {
$itemList = $http->postVariable("RemoveProductItemDeleteList");
$wishList = eZWishList::currentWishList();
$db = eZDB::instance();
$db->begin();
foreach ($itemList as $item) {
$wishList->removeItem($item);
}
$db->commit();
$module->redirectTo($module->functionURI("wishlist") . "/");
return;
}
if ($http->hasPostVariable("StoreChangesButton")) {
$wishList = eZWishList::currentWishList();
$collection = eZProductCollection::fetch($wishList->attribute('productcollection_id'));
if ($collection and $http->hasPostVariable("ProductItemIDList")) {
$collectionItems = $collection->itemList();
$productItemIDlist = $http->postVariable("ProductItemIDList");
$productItemCountList = $http->hasPostVariable("ProductItemCountList") ? $http->postVariable("ProductItemCountList") : false;
if ($productItemCountList == false) {
$module->redirectTo($module->functionURI("wishlist") . "/");
return;
}
$productItemsCount = array();
// Create array of productItemID (as index) and productItemCount (as value)
foreach ($productItemIDlist as $key => $productItemID) {
if (isset($productItemCountList[$key])) {
$productItemsCount[$productItemID] = $productItemCountList[$key];
}
}
示例9: cleanup
static function cleanup()
{
$db = eZDB::instance();
$db->begin();
$rows = $db->arrayQuery("SELECT productcollection_id FROM ezwishlist");
if (count($rows) > 0) {
$productCollectionIDList = array();
foreach ($rows as $row) {
$productCollectionIDList[] = $row['productcollection_id'];
}
eZProductCollection::cleanupList($productCollectionIDList);
}
$db->query("DELETE FROM ezwishlist");
$db->commit();
}
示例10: array
return;
}
}
}
// Fetch the shop account handler
$accountHandler = eZShopAccountHandler::instance();
// Do we have all the information we need to start the checkout
if (!$accountHandler->verifyAccountInformation()) {
// Fetches the account information, normally done with a redirect
$accountHandler->fetchAccountInformation($module);
return;
} else {
// Creates an order and redirects
$basket = eZBasket::currentBasket();
$productCollectionID = $basket->attribute('productcollection_id');
$verifyResult = eZProductCollection::verify($productCollectionID);
$db = eZDB::instance();
$db->begin();
$basket->updatePrices();
if ($verifyResult === true) {
$order = $basket->createOrder();
$order->setAttribute('account_identifier', "default");
$order->store();
$http->setSessionVariable('MyTemporaryOrderID', $order->attribute('id'));
$db->commit();
$module->redirectTo('/shop/confirmorder/');
return;
} else {
$basket = eZBasket::currentBasket();
$removedItems = array();
foreach ($itemList as $item) {