This commit is contained in:
Etienne Roudeix
2013-07-15 11:21:25 +02:00
parent 028a5d124e
commit 4ddc7f12b1
3 changed files with 11 additions and 15 deletions

View File

@@ -143,8 +143,6 @@ abstract class BaseLoop
$argument->setValue($value); $argument->setValue($value);
} }
$this->args->next();
} }
if (!empty($faultActor)) { if (!empty($faultActor)) {

View File

@@ -79,21 +79,20 @@ class Product extends BaseLoop
Argument::createFloatTypeArgument('max_weight'), Argument::createFloatTypeArgument('max_weight'),
Argument::createBooleanTypeArgument('current'), Argument::createBooleanTypeArgument('current'),
Argument::createBooleanTypeArgument('current_category'), Argument::createBooleanTypeArgument('current_category'),
Argument::createIntTypeArgument('depth'), Argument::createIntTypeArgument('depth', 1),
Argument::createBooleanTypeArgument('visible', 1), Argument::createBooleanTypeArgument('visible', 1),
new Argument( new Argument(
'order', 'order',
new TypeCollection( new TypeCollection(
new Type\EnumListType(array('alpha', 'alpha_reverse', 'reverse', 'min_price', 'max_price', 'manual', 'manual_reverse', 'ref', 'promo', 'new')) new Type\EnumListType(array('alpha', 'alpha_reverse', 'reverse', 'min_price', 'max_price', 'manual', 'manual_reverse', 'ref', 'promo', 'new', 'random'))
) )
), ),
Argument::createBooleanTypeArgument('random', 0),
Argument::createIntListTypeArgument('exclude'), Argument::createIntListTypeArgument('exclude'),
Argument::createIntListTypeArgument('exclude_category'), Argument::createIntListTypeArgument('exclude_category'),
new Argument( new Argument(
'feature_available', 'feature_available',
new TypeCollection( new TypeCollection(
new Type\IntToCombinedIntsListType(array('alpha', 'alpha_reverse', 'reverse', 'min_price', 'max_price', 'manual', 'manual_reverse', 'ref', 'promo', 'new')) new Type\IntToCombinedIntsListType()
) )
) )
); );
@@ -243,7 +242,9 @@ class Product extends BaseLoop
); );
} }
$search->filterByVisible($this->getVisible()); $visible = $this->getVisible();
$search->filterByVisible($visible);
$orders = $this->getOrder(); $orders = $this->getOrder();
@@ -287,6 +288,10 @@ class Product extends BaseLoop
case "new": case "new":
$search->addDescendingOrderByColumn(ProductTableMap::NEWNESS); $search->addDescendingOrderByColumn(ProductTableMap::NEWNESS);
break; break;
case "random":
$search->clearOrderByColumns();
$search->addAscendingOrderByColumn('RAND()');
break(2);
default: default:
$search->orderByPosition(); $search->orderByPosition();
break; break;
@@ -294,13 +299,6 @@ class Product extends BaseLoop
} }
} }
$random = $this->getRandom();
if ($random === true) {
$search->clearOrderByColumns();
$search->addAscendingOrderByColumn('RAND()');
}
$exclude = $this->getExclude(); $exclude = $this->getExclude();
if (!is_null($exclude)) { if (!is_null($exclude)) {

View File

@@ -28,7 +28,7 @@
weight : #WEIGHT<br /> weight : #WEIGHT<br />
{/loop*} {/loop*}
{loop name="product" type="product" order="ref" feature_available="1:*"} {loop name="product" type="product" order="ref" feature_available="1: (1 | 2) , 2: 4, 3: 433"}
<h3>PRODUCT : #REF / #TITLE</h3> <h3>PRODUCT : #REF / #TITLE</h3>
price : #PRICE €<br /> price : #PRICE €<br />
promo price : #PROMO_PRICE €<br /> promo price : #PROMO_PRICE €<br />