diff --git a/core/lib/Thelia/Config/Resources/config.xml b/core/lib/Thelia/Config/Resources/config.xml index 2da8a3eea..3ef9b0778 100755 --- a/core/lib/Thelia/Config/Resources/config.xml +++ b/core/lib/Thelia/Config/Resources/config.xml @@ -33,6 +33,7 @@ + diff --git a/core/lib/Thelia/Core/Template/Loop/Coupon.php b/core/lib/Thelia/Core/Template/Loop/Coupon.php new file mode 100755 index 000000000..75fda3d72 --- /dev/null +++ b/core/lib/Thelia/Core/Template/Loop/Coupon.php @@ -0,0 +1,102 @@ +. */ +/* */ +/**********************************************************************************/ + +namespace Thelia\Core\Template\Loop; + +use Propel\Runtime\ActiveQuery\Criteria; +use Thelia\Core\Template\Element\BaseI18nLoop; +use Thelia\Core\Template\Element\LoopResult; +use Thelia\Core\Template\Element\LoopResultRow; + +use Thelia\Core\Template\Loop\Argument\ArgumentCollection; +use Thelia\Core\Template\Loop\Argument\Argument; + +use Thelia\Model\Base\CategoryQuery; +use Thelia\Model\ConfigQuery; +use Thelia\Model\CouponQuery; +use Thelia\Model\Coupon as MCoupon; +use Thelia\Model\Map\ProductCategoryTableMap; +use Thelia\Type; +use Thelia\Type\BooleanOrBothType; + +/** + * Created by JetBrains PhpStorm. + * Date: 8/19/13 + * Time: 3:24 PM + * + * Coupon Loop + * + * @package Thelia\Core\Template\Loop + * @author Guillaume MOREL + * + */ +class Coupon extends BaseI18nLoop +{ + /** + * @return ArgumentCollection + */ + protected function getArgDefinitions() + { + return new ArgumentCollection( + Argument::createIntListTypeArgument('id') + ); + } + + /** + * @param $pagination + * + * @return \Thelia\Core\Template\Element\LoopResult + */ + public function exec(&$pagination) + { + $search = CouponQuery::create(); + + /* manage translations */ + $locale = $this->configureI18nProcessing($search, array()); + + $id = $this->getId(); + + if (null !== $id) { + $search->filterById($id, Criteria::IN); + } + + // Perform search + $coupons = $this->search($search, $pagination); + + $loopResult = new LoopResult(); + + /** @var MCoupon $coupon */ + foreach ($coupons as $coupon) { + $loopResultRow = new LoopResultRow(); + $loopResultRow->set("ID", $coupon->getId()) + ->set("IS_TRANSLATED", $coupon->getVirtualColumn('IS_TRANSLATED')) + ->set("LOCALE", $locale) + ->set("TITLE", $coupon->getVirtualColumn('i18n_TITLE')) + ->set("CODE", $coupon->getVirtualColumn('i18n_CODE')); + + $loopResult->addRow($loopResultRow); + } + + return $loopResult; + } +}