x right to 7

feature filter in product loop
This commit is contained in:
Etienne Roudeix
2013-07-11 11:25:47 +02:00
parent ab7a9b3cd8
commit 26b1806156
413 changed files with 78 additions and 108 deletions

0
core/lib/Thelia/Admin/Controller/SessionController.php Normal file → Executable file
View File

0
core/lib/Thelia/Core/Event/CustomRefEvent.php Normal file → Executable file
View File

0
core/lib/Thelia/Core/HttpFoundation/Request.php Normal file → Executable file
View File

View File

View File

View File

0
core/lib/Thelia/Core/Security/Role/Role.php Normal file → Executable file
View File

0
core/lib/Thelia/Core/Security/Role/RoleInterface.php Normal file → Executable file
View File

0
core/lib/Thelia/Core/Security/SecurityManager.php Normal file → Executable file
View File

0
core/lib/Thelia/Core/Security/Token/AbstractToken.php Normal file → Executable file
View File

0
core/lib/Thelia/Core/Security/Token/TokenInterface.php Normal file → Executable file
View File

View File

View File

View File

0
core/lib/Thelia/Core/Security/User/UserInterface.php Normal file → Executable file
View File

View File

View File

0
core/lib/Thelia/Core/Template/Loop/Feed.php Normal file → Executable file
View File

View File

@@ -319,65 +319,29 @@ class Product extends BaseLoop
$feature_available = $this->getFeature_available();
if(null !== $feature_available) {
//$search->joinFeatureProd('fa2', Criteria::LEFT_JOIN)->condition('foocond', '`fa2`.`product_id`=1')->setJoinCondition('fa2', 'foocond');
//$search->joinFeatureProd('fa3', Criteria::LEFT_JOIN)->condition('foocond2', 'fa3.product_id=?', 2)->setJoinCondition('fa3', 'foocond2');
/* fonctionne mais pas avec ?
$search->joinFeatureProd('fa3', Criteria::LEFT_JOIN)->addJoinCondition('fa3', "'fa3.PRODUCT_ID' = 4");
$search->joinFeatureProd('fa2', Criteria::LEFT_JOIN)->addJoinCondition('fa2', "'fa2.PRODUCT_ID' = 3");
*/
/* pas mieux
$x = new Join(ProductTableMap::ID, FeatureProdTableMap::PRODUCT_ID, Criteria::LEFT_JOIN);
$x->setRightTableAlias('fa0');
$search->addJoinObject($x, 'fa0')->addJoinCondition('fa0', "PRODUCT_ID = ?", 0);
*/
foreach($feature_available as $feature => $feature_choice) {
foreach($feature_choice['values'] as $feature_av) {
$featureAlias = 'fa_' . $feature . '_' . $feature_av;
$featureAlias = 'fa_' . $feature;
if($feature_av != '*')
$featureAlias .= '_' . $feature_av;
$search->joinFeatureProd($featureAlias, Criteria::LEFT_JOIN)
->addJoinCondition($featureAlias, "`$featureAlias`.FEATURE_ID = ?", $feature, null, \PDO::PARAM_INT)
->addJoinCondition($featureAlias, "`$featureAlias`.FEATURE_AV_ID = ?", $feature_av, null, \PDO::PARAM_INT);
->addJoinCondition($featureAlias, "`$featureAlias`.FEATURE_ID = ?", $feature, null, \PDO::PARAM_INT);
if($feature_av != '*')
$search->addJoinCondition($featureAlias, "`$featureAlias`.FEATURE_AV_ID = ?", $feature_av, null, \PDO::PARAM_INT);
}
$bigDealFeatureWhereCondition = str_replace('&', ' AND ', $feature_choice['values']);
/* format for mysql */
$sqlWhereString = $feature_choice['expression'];
if($sqlWhereString == '*') {
$sqlWhereString = 'NOT ISNULL(`fa_' . $feature . '`.ID)';
} else {
$sqlWhereString = preg_replace('#(^|[^0-9])([0-9]+)([^0-9]|$)#', '\1NOT ISNULL(`fa_' . $feature . '_' . '\2`.ID)\3', $sqlWhereString);
$sqlWhereString = str_replace('&', ' AND ', $sqlWhereString);
$sqlWhereString = str_replace('|', ' OR ', $sqlWhereString);
}
$search->where($sqlWhereString);
}
/*
* ne marche pas de cette façon :
*
*
$search->filterByFeatureProd(
FeatureProdQuery::create('fa')
->filterByFeature(
FeatureQuery::create('fq')
->filterById(array(1,2,3), Criteria::IN)
->find()
)
->filterByFeatureAv(
FeatureAvQuery::create()
->filterById(array(1,2,3), Criteria::IN)
->find()
)
->find()
);
*/
/*
CategoryQuery::create()->filterByProduct(
ProductCategoryQuery::create()->filterByProductId(
$this->request->get("product_id"),
Criteria::EQUAL
)->find(),
Criteria::IN
)->find(),
Criteria::NOT_IN
*/
}
/**
@@ -391,6 +355,8 @@ class Product extends BaseLoop
(ConfigQuery::read("default_lang_without_translation", 1)) ? Criteria::LEFT_JOIN : Criteria::INNER_JOIN
);
$search->groupBy(ProductTableMap::ID);
$products = $this->search($search, $pagination);
$loopResult = new LoopResult();

0
core/lib/Thelia/Core/Template/Smarty/Plugins/Form.php Normal file → Executable file
View File

View File

View File

0
core/lib/Thelia/Form/AdminLogin.php Normal file → Executable file
View File

0
core/lib/Thelia/Form/BaseForm.php Normal file → Executable file
View File

0
core/lib/Thelia/Form/CustomerCreation.php Normal file → Executable file
View File

0
core/lib/Thelia/Form/CustomerModification.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Accessory.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/AccessoryQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Address.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/AddressQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Admin.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/AdminGroup.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/AdminGroupQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/AdminLog.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/AdminLogQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/AdminQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Area.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/AreaQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Attribute.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/AttributeAv.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/AttributeAvI18n.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/AttributeAvI18nQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/AttributeAvQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/AttributeCategory.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/AttributeCategoryQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/AttributeCombination.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/AttributeCombinationQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/AttributeI18n.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/AttributeI18nQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/AttributeQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/Accessory.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/AccessoryQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/Address.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/AddressQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/Admin.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/AdminGroup.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/AdminGroupQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/AdminLog.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/AdminLogQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/AdminQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/Area.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/AreaQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/Attribute.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/AttributeAv.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/AttributeAvI18n.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/AttributeAvI18nQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/AttributeAvQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/AttributeCategory.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/AttributeCategoryQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/AttributeCombination.php Normal file → Executable file
View File

View File

0
core/lib/Thelia/Model/Base/AttributeI18n.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/AttributeI18nQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/AttributeQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/Category.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/CategoryI18n.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/CategoryI18nQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/CategoryQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/CategoryVersion.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/CategoryVersionQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/Combination.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/CombinationQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/Config.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/ConfigI18n.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/ConfigI18nQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/ConfigQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/Content.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/ContentAssoc.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/ContentAssocQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/ContentFolder.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/ContentFolderQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/ContentI18n.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/ContentI18nQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/ContentQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/ContentVersion.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/ContentVersionQuery.php Normal file → Executable file
View File

0
core/lib/Thelia/Model/Base/Country.php Normal file → Executable file
View File

Some files were not shown because too many files have changed in this diff Show More