*/ class SlideItemLoop extends BaseLoop implements PropelSearchLoopInterface { protected $timestampable = false; protected $versionable = false; /** * @param LoopResult $loopResult * * @return LoopResult */ public function parseResults(LoopResult $loopResult) { /** @var SlideItem $slideItem */ foreach ($loopResult->getResultDataCollection() as $slideItem) { $loopResultRow = new LoopResultRow($slideItem); $loopResultRow ->set("ID", $slideItem->getId()) ->set("TITLE", $slideItem->getTitle()) ->set("CONTENT", $slideItem->getContent()); $this->addOutputFields($loopResultRow, $slideItem); $loopResult->addRow($loopResultRow); } return $loopResult; } /** * this method returns a Propel ModelCriteria * * @return \Propel\Runtime\ActiveQuery\ModelCriteria */ public function buildModelCriteria() { $query = SlideItemQuery::create(); $id = $this->getArgValue('id'); if (null !== $id) { $query->filterById($id, Criteria::IN); } $orders = $this->getArgValue('order'); foreach ($orders as $order) { switch ($order) { case "id": $query->orderById(Criteria::ASC); break; case "id_reverse": $query->orderById(Criteria::DESC); break; } } return $query; } /** * Definition of loop arguments * * example : * * public function getArgDefinitions() * { * return new ArgumentCollection( * * Argument::createIntListTypeArgument('id'), * new Argument( * 'ref', * new TypeCollection( * new Type\AlphaNumStringListType() * ) * ), * Argument::createIntListTypeArgument('category'), * Argument::createBooleanTypeArgument('new'), * ... * ); * } * * @return \Thelia\Core\Template\Loop\Argument\ArgumentCollection */ protected function getArgDefinitions() { return new ArgumentCollection( Argument::createIntListTypeArgument('id'), new Argument( 'order', new TypeCollection( new EnumListType( [ 'id', 'id_reverse' ] ) ), 'id' ) ); } }