本文整理匯總了PHP中eZProductCollection::cleanupList方法的典型用法代碼示例。如果您正苦於以下問題:PHP eZProductCollection::cleanupList方法的具體用法?PHP eZProductCollection::cleanupList怎麽用?PHP eZProductCollection::cleanupList使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類eZProductCollection
的用法示例。
在下文中一共展示了eZProductCollection::cleanupList方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的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: 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;
}
示例3: 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);
}
示例4: cleanup
static function cleanup()
{
$db = eZDB::instance();
$rows = $db->arrayQuery("SELECT productcollection_id FROM ezorder");
$db = eZDB::instance();
$db->begin();
if (count($rows) > 0) {
$productCollectionIDList = array();
foreach ($rows as $row) {
$productCollectionIDList[] = $row['productcollection_id'];
}
eZProductCollection::cleanupList($productCollectionIDList);
}
// Who deletes which order in shop should be logged.
eZAudit::writeAudit('order-delete', array('Comment' => 'Removed all orders from the database: eZOrder::cleanup()'));
eZOrderItem::cleanup();
$db->query("DELETE FROM ezorder_status_history");
$db->query("DELETE FROM ezorder");
$db->commit();
}
示例5: 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();
}