本文整理汇总了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();
}