本文整理汇总了PHP中Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection::getItems方法的典型用法代码示例。如果您正苦于以下问题:PHP Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection::getItems方法的具体用法?PHP Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection::getItems怎么用?PHP Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection::getItems使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection
的用法示例。
在下文中一共展示了Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection::getItems方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: addPriceIndexToCollection
/**
* Add bundle price range index to Product collection
*
* @param Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection $collection
* @return Mage_Bundle_Model_Price_Index
*/
public function addPriceIndexToCollection($collection)
{
$productObjects = array();
$productIds = array();
foreach ($collection->getItems() as $product) {
/* @var $product Mage_Catalog_Model_Product */
if ($product->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_BUNDLE) {
$productIds[] = $product->getEntityId();
$productObjects[$product->getEntityId()] = $product;
}
}
$websiteId = Mage::app()->getStore($collection->getStoreId())->getWebsiteId();
$groupId = Mage::getSingleton('customer/session')->getCustomerGroupId();
$addOptionsToResult = false;
$prices = $this->_getResource()->loadPriceIndex($productIds, $websiteId, $groupId);
foreach ($productIds as $productId) {
if (isset($prices[$productId])) {
$productObjects[$productId]->setData('_price_index', true)->setData('_price_index_min_price', $prices[$productId]['min_price'])->setData('_price_index_max_price', $prices[$productId]['max_price']);
} else {
$addOptionsToResult = true;
}
}
if ($addOptionsToResult) {
$collection->addOptionsToResult();
}
return $this;
}
示例2: appendSummary
/**
* Append review summary to product collection
*
* @param Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection $collection
* @return Mage_Review_Model_Review
*/
public function appendSummary($collection)
{
$entityIds = array();
foreach ($collection->getItems() as $_itemId => $_item) {
$entityIds[] = $_item->getEntityId();
}
if (sizeof($entityIds) == 0) {
return $this;
}
$summaryData = Mage::getResourceModel('review/review_summary_collection')->addEntityFilter($entityIds)->addStoreFilter(Mage::app()->getStore()->getId())->load();
foreach ($collection->getItems() as $_item) {
foreach ($summaryData as $_summary) {
if ($_summary->getEntityPkValue() == $_item->getEntityId()) {
$_item->setRatingSummary($_summary);
}
}
}
return $this;
}
示例3: getTouchedProducts
/**
* Retrieve specific data from products, that were intrested to patricular customer.
* Writes Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection
* to $_touchedProductsCollection
*
* @return array
* (
* 'catalog_product_view' => array(),
* 'catalog_product_comare_add' => array(),
* 'checkout_cart_add_product' => array(),
* 'wishlist_add_product' => array(),
* 'shopping_cart_product' => array(),
* 'wishlist_product' => array()
* )
*/
public function getTouchedProducts()
{
$result = array();
$ids = array();
foreach (Mage::getModel('checkout/cart')->getQuoteProductIds() as $productId) {
$ids[$productId] = $productId;
$result['shopping_cart_product'][$productId] = array('weight' => 1);
}
if (Mage::getSingleton('customer/session')->isLoggedIn()) {
$result['wishlist_product'] = array();
foreach (Mage::getModel('wishlist/wishlist')->loadByCustomer(Mage::getSingleton('customer/session')->getCustomer())->getProductCollection()->getItems() as $item) {
$ids[$item->getProductId()] = $item->getProductId();
$result['wishlist_product'][$item->getProductId()] = array('weight' => 1);
}
}
// get recently viewed products, added to shopping cart, to whishlist, to compare.
$lastViewed = false;
$breakTheViewsInRow = array();
foreach ($this->getResource()->getRecentlyIntrestedProductIds() as $item) {
$ids[$item['product_id']] = $item['product_id'];
$eventName = $item['event_name'];
unset($item['event_name']);
if (!isset($result[$eventName][$item['product_id']])) {
$result[$eventName][$item['product_id']] = array('logged_at' => $item['logged_at'], 'product_id' => $item['product_id'], 'weight' => 0);
}
$result[$eventName][$item['product_id']]['weight']++;
// calculating how many last views in a row of particular product we have
if (!isset($result[$eventName][$item['product_id']]['view_in_row'])) {
$result[$eventName][$item['product_id']]['view_in_row'] = 1;
} elseif (false === $lastViewed || $lastViewed == $item['product_id'] && !isset($breakTheViewsInRow[$item['product_id']])) {
$result[$eventName][$item['product_id']]['view_in_row']++;
} else {
$breakTheViewsInRow[$item['product_id']] = true;
}
$lastViewed = $item['product_id'];
}
// fill event recieved array with category_id, attribute_set_id, price
$groups = $this->_getProductGroups();
$this->_touchedProductsCollection = Mage::getModel('catalog/product')->getCollection()->addAttributeToFilter('entity_id', array('in' => $ids))->addFinalPrice();
// comment this line for out of stock items
foreach ($this->_touchedProductsCollection->getItems() as $item) {
foreach ($groups as $group) {
if (isset($result[$group]) && isset($result[$group][$item->getEntityId()])) {
$result[$group][$item->getEntityId()]['product_id'] = $item->getEntityId();
$price = $item->getFinalPrice();
if (!$price) {
$price = $item->getCalculatedFinalPrice();
}
if (!$price) {
$price = $item->getPrice();
}
$result[$group][$item->getEntityId()]['price'] = $price;
if ($item->getAttributeSetId()) {
$result[$group][$item->getEntityId()]['attribute_set_id'] = $item->getAttributeSetId();
}
/*
$categoryIds = $item->getCategoryIds();
$category = Mage::registry('current_category');
if (!$category || !in_array($category->getId(), $categoryIds)) {
$category = $item->getCategoryCollection()
->setOrder('level', 'desc')
->getFirstItem();
}
if ($category) {
$result[$group][$item->getEntityId()]['category_id']
= array($category->getId());
}
*/
$result[$group][$item->getEntityId()]['category_id'] = $item->getCategoryIds();
$weightFactor = Mage::getStoreConfig("smartsuggest/event_importance/{$group}");
$result[$group][$item->getEntityId()]['weight'] *= is_numeric($weightFactor) ? $weightFactor : 1;
}
}
}
$result = array_merge(array_fill_keys($groups, array()), $result);
return $result;
}