. */ /* */ /*************************************************************************************/ namespace FreeShipping\Loop; use FreeShipping\Model\Base\FreeShippingQuery; use Propel\Runtime\ActiveQuery\Criteria; use Thelia\Core\Template\Element\BaseLoop; use Thelia\Core\Template\Element\LoopResult; use Thelia\Core\Template\Element\LoopResultRow; use Thelia\Core\Template\Element\PropelSearchLoopInterface; use Thelia\Core\Template\Loop\Argument\Argument; use Thelia\Core\Template\Loop\Argument\ArgumentCollection; use Thelia\Model\Base\AreaQuery; use Thelia\Type; use Thelia\Type\TypeCollection; /** * * FreeShipping loop * * * Class FreeShipping * @package FreeShipping\Loop * @author Michaƫl Espeche */ class FreeShipping extends BaseLoop implements PropelSearchLoopInterface { /** * @return ArgumentCollection */ protected function getArgDefinitions() { return new ArgumentCollection( Argument::createIntListTypeArgument('id'), new Argument( 'order', new TypeCollection( new Type\EnumListType(array('alpha', 'alpha-reverse', 'manual', 'manual_reverse', 'random', 'given_id')) ), 'alpha' ) ); } public function buildModelCriteria() { $search = FreeShippingQuery::create(); $id = $this->getId(); if (!is_null($id)) { $search->filterById($id, Criteria::IN); } return $search; } public function parseResults(LoopResult $loopResult) { foreach ($loopResult->getResultDataCollection() as $rule) { $loopResultRow = new LoopResultRow($rule); $area = AreaQuery::create()->findOneById($rule->getAreaId()); $loopResultRow ->set("ID", $rule->getId()) ->set("AMOUNT", $rule->getAmount()) ->set("AREA_ID", $rule->getAreaId()) ->set("AREA_NAME", $area->getName()) ; $loopResult->addRow($loopResultRow); } return $loopResult; } }