本文整理汇总了PHP中Mage_Catalog_Model_Resource_Product_Collection::getFlag方法的典型用法代码示例。如果您正苦于以下问题:PHP Mage_Catalog_Model_Resource_Product_Collection::getFlag方法的具体用法?PHP Mage_Catalog_Model_Resource_Product_Collection::getFlag怎么用?PHP Mage_Catalog_Model_Resource_Product_Collection::getFlag使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mage_Catalog_Model_Resource_Product_Collection
的用法示例。
在下文中一共展示了Mage_Catalog_Model_Resource_Product_Collection::getFlag方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: sort
/**
* @param Mage_Catalog_Model_Resource_Product_Collection $productCollection
* @return mixed
*/
public function sort(Mage_Catalog_Model_Resource_Product_Collection $productCollection)
{
//Pass a small validation
if (!$this->_getHelper()->isCategorySortingEnable() || $productCollection->getFlag(self::MARKETO_SORTED)) {
return $productCollection;
}
$categoriesList = $this->_getPesonalizeCalculator()->getScoreCategoryParams(HooshMarketing_Marketo_Model_Personalize_Calculator::CATEGORY_ID_AND_SCORE);
//get List of categories with key -> Category_id and value - Score
if (!count($categoriesList)) {
//if we havn`t score categories do nothing
return $productCollection;
}
uasort($categoriesList, function ($f, $s) {
return $f > $s ? 1 : -1;
//sort by descending
});
//Sort categories in order to show top scored categories first
$categoriesList = array_keys($categoriesList);
// get only category ids
try {
$productCategoryTable = $this->_getCoreResource()->getTableName("catalog_category_product");
$productCollection->getSelect()->joinLeft(array("marketo_category_table" => $productCategoryTable), "marketo_category_table.product_id = e.entity_id", array("top_category_id" => "marketo_category_table.category_id"))->group("entity_id")->order("FIELD(top_category_id, " . implode(',', $categoriesList) . ") DESC");
//order by top
$productCollection->setFlag(self::MARKETO_SORTED, true);
//to set order only one time
} catch (Exception $e) {
Mage::logException($e);
}
return $productCollection;
}
示例2: addIndexToProductCollection
/**
* Add index select in product collection
*
* @param Mage_Catalog_Model_Resource_Product_Collection $collection
* @param int $customerGroupId
* @return Enterprise_CatalogPermissions_Model_Resource_Permission_Index
*/
public function addIndexToProductCollection($collection, $customerGroupId)
{
$parts = $collection->getSelect()->getPart(Zend_Db_Select::FROM);
if (isset($parts['perm'])) {
return $this;
}
if ($collection->getFlag('disable_root_category_filter')) {
$permColumns = $this->_getPermColumns();
} else {
$permColumns = array('grant_catalog_category_view', 'grant_catalog_product_price', 'grant_checkout_items');
}
$collection->getSelect()->joinLeft(array('perm' => $this->getTable('permission_index')), 'perm.category_id=cat_index.category_id
AND perm.customer_group_id= ' . $customerGroupId . ' AND perm.website_id=' . Mage::app()->getStore()->getWebsiteId(), $permColumns);
if (!Mage::helper('enterprise_catalogpermissions')->isAllowedCategoryView()) {
$collection->getSelect()->where('perm.grant_catalog_category_view = ?', Enterprise_CatalogPermissions_Model_Permission::PERMISSION_ALLOW);
} else {
$collection->getSelect()->where('perm.grant_catalog_category_view != ?' . ' OR perm.grant_catalog_category_view IS NULL', Enterprise_CatalogPermissions_Model_Permission::PERMISSION_DENY);
}
$collection->getSelect()->where('cat_index.store_id=' . $collection->getStoreId());
if ($collection->getFlag('disable_root_category_filter')) {
$collection->getSelect()->where('cat_index.is_parent=1');
$collection->getSelect()->group('cat_index.product_id');
}
if ($this->_isLinkCollection($collection)) {
$collection->getSelect()->where('perm.grant_catalog_product_price!=' . Enterprise_CatalogPermissions_Model_Permission::PERMISSION_DENY . ' OR perm.grant_catalog_product_price IS NULL')->where('perm.grant_checkout_items!=' . Enterprise_CatalogPermissions_Model_Permission::PERMISSION_DENY . ' OR perm.grant_checkout_items IS NULL');
}
return $this;
}