Merge branch 'master' into tax

Conflicts:
	templates/default_save/product.html
This commit is contained in:
Etienne Roudeix
2013-09-10 19:15:15 +02:00
46 changed files with 1550 additions and 751 deletions

View File

@@ -281,22 +281,6 @@ final class TheliaEvents
*/
const AFTER_CONSUME_COUPON = "action.after_consume_coupon";
/**
* Sent when attempting to create Coupon Rule
*/
const COUPON_RULE_CREATE = "action.create_coupon_rule";
/**
* Sent just before an attempt to create a Coupon Rule
*/
const BEFORE_COUPON_RULE_CREATE = "action.before_create_coupon_rule";
/**
* Sent just after an attempt to create a Coupon Rule
*/
const AFTER_COUPON_RULE_CREATE = "action.after_create_coupon_rule";
/**
* Sent when attempting to update Coupon Rule
*/

View File

@@ -24,6 +24,9 @@
namespace Thelia\Core\Template\Loop;
use Propel\Runtime\ActiveQuery\Criteria;
use Thelia\Constraint\ConstraintFactory;
use Thelia\Constraint\Rule\CouponRuleInterface;
use Thelia\Core\HttpFoundation\Request;
use Thelia\Core\Template\Element\BaseI18nLoop;
use Thelia\Core\Template\Element\LoopResult;
use Thelia\Core\Template\Element\LoopResultRow;
@@ -84,10 +87,27 @@ class Coupon extends BaseI18nLoop
$coupons = $this->search($search, $pagination);
$loopResult = new LoopResult();
/** @var ConstraintFactory $constraintFactory */
$constraintFactory = $this->container->get('thelia.constraint.factory');
/** @var Request $request */
$request = $this->container->get('request');
/** @var Lang $lang */
$lang = $request->getSession()->getLang();
/** @var MCoupon $coupon */
foreach ($coupons as $coupon) {
$loopResultRow = new LoopResultRow();
$rules = $constraintFactory->unserializeCouponRuleCollection(
$coupon->getSerializedRules()
);
$cleanedRules = array();
/** @var CouponRuleInterface $rule */
foreach ($rules->getRules() as $key => $rule) {
$cleanedRules[] = $rule->getToolTip();
}
$loopResultRow->set("ID", $coupon->getId())
->set("IS_TRANSLATED", $coupon->getVirtualColumn('IS_TRANSLATED'))
->set("LOCALE", $locale)
@@ -95,13 +115,13 @@ class Coupon extends BaseI18nLoop
->set("TITLE", $coupon->getVirtualColumn('i18n_TITLE'))
->set("SHORT_DESCRIPTION", $coupon->getVirtualColumn('i18n_SHORT_DESCRIPTION'))
->set("DESCRIPTION", $coupon->getVirtualColumn('i18n_DESCRIPTION'))
->set("EXPIRATION_DATE", $coupon->getExpirationDate())
->set("EXPIRATION_DATE", $coupon->getExpirationDate($lang->getDateFormat()))
->set("USAGE_LEFT", $coupon->getMaxUsage())
->set("IS_CUMULATIVE", $coupon->getIsCumulative())
->set("IS_REMOVING_POSTAGE", $coupon->getIsRemovingPostage())
->set("IS_ENABLED", $coupon->getIsEnabled())
->set("AMOUNT", $coupon->getAmount())
->set("APPLICATION_CONDITIONS", $coupon->getRules());
->set("APPLICATION_CONDITIONS", $cleanedRules);
$loopResult->addRow($loopResultRow);
}

View File

@@ -82,19 +82,10 @@ class SmartyParser extends Smarty implements ParserInterface
// The default HTTP status
$this->status = 200;
$this->registerFilter('pre', array($this, "preThelia"));
$this->registerFilter('output', array($this, "removeBlankLines"));
$this->registerFilter('variable', array(__CLASS__, "theliaEscape"));
}
public function preThelia($tpl_source, \Smarty_Internal_Template $template)
{
$new_source = preg_replace('`{#([a-zA-Z][a-zA-Z0-9_]*)(.*)}`', '{\$$1$2}', $tpl_source);
$new_source = preg_replace('`#([a-zA-Z][a-zA-Z0-9_]*)`', '{\$$1|dieseCanceller:\'#$1\'}', $new_source);
return $new_source;
}
public function removeBlankLines($tpl_source, \Smarty_Internal_Template $template)
{
return preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $tpl_source);
@@ -102,7 +93,7 @@ class SmartyParser extends Smarty implements ParserInterface
public static function theliaEscape($content, $smarty)
{
if(!is_object($content)) {
if(is_scalar($content)) {
return htmlspecialchars($content ,ENT_QUOTES, Smarty::$_CHARSET);
} else {
return $content;