Merge branch 'master' into loops
Conflicts: core/lib/Thelia/Core/Template/Loop/Category.php core/lib/Thelia/Core/Template/Loop/FeatureValue.php core/lib/Thelia/Core/Template/Loop/Folder.php core/lib/Thelia/Core/Template/Loop/Product.php core/lib/Thelia/Core/Template/Smarty/Plugins/TheliaLoop.php install/faker.php
This commit is contained in:
0
documentation/api/files/Core/Template/Assets/AsseticHelper.php.txt
Normal file → Executable file
0
documentation/api/files/Core/Template/Assets/AsseticHelper.php.txt
Normal file → Executable file
82
documentation/api/files/Core/Template/Element/BaseLoop.php.txt
Normal file → Executable file
82
documentation/api/files/Core/Template/Element/BaseLoop.php.txt
Normal file → Executable file
@@ -51,7 +51,6 @@ abstract class BaseLoop
|
||||
*/
|
||||
protected $securityContext;
|
||||
|
||||
|
||||
protected $args;
|
||||
|
||||
/**
|
||||
@@ -77,11 +76,11 @@ abstract class BaseLoop
|
||||
*/
|
||||
protected function getDefaultArgs()
|
||||
{
|
||||
return array(
|
||||
return array(
|
||||
Argument::createIntTypeArgument('offset', 0),
|
||||
Argument::createIntTypeArgument('page'),
|
||||
Argument::createIntTypeArgument('limit', PHP_INT_MAX),
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -93,17 +92,17 @@ abstract class BaseLoop
|
||||
* @return null
|
||||
* @throws \InvalidArgumentException if the parameter is unknown or the method name is not supported.
|
||||
*/
|
||||
public function __call($name, $arguments) {
|
||||
public function __call($name, $arguments)
|
||||
{
|
||||
if (substr($name, 0, 3) == 'get') {
|
||||
|
||||
if (substr($name, 0, 3) == 'get') {
|
||||
// camelCase to underscore: getNotEmpty -> not_empty
|
||||
$argName = strtolower(preg_replace('/([^A-Z])([A-Z])/', "$1_$2", substr($name, 3)));
|
||||
|
||||
// camelCase to underscore: getNotEmpty -> not_empty
|
||||
$argName = strtolower(preg_replace('/([^A-Z])([A-Z])/', "$1_$2", substr($name, 3)));
|
||||
return $this->getArg($argName)->getValue();
|
||||
}
|
||||
|
||||
return $this->getArg($argName)->getValue();
|
||||
}
|
||||
|
||||
throw new \InvalidArgumentException(sprintf("Unsupported magic method %s. only getArgname() is supported.", $name));
|
||||
throw new \InvalidArgumentException(sprintf("Unsupported magic method %s. only getArgname() is supported.", $name));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -113,8 +112,8 @@ abstract class BaseLoop
|
||||
*
|
||||
* @throws \InvalidArgumentException if somùe argument values are missing, or invalid
|
||||
*/
|
||||
public function initializeArgs(array $nameValuePairs) {
|
||||
|
||||
public function initializeArgs(array $nameValuePairs)
|
||||
{
|
||||
$faultActor = array();
|
||||
$faultDetails = array();
|
||||
|
||||
@@ -127,29 +126,26 @@ abstract class BaseLoop
|
||||
$value = isset($nameValuePairs[$argument->name]) ? $nameValuePairs[$argument->name] : null;
|
||||
|
||||
/* check if mandatory */
|
||||
if($value === null && $argument->mandatory) {
|
||||
if ($value === null && $argument->mandatory) {
|
||||
$faultActor[] = $argument->name;
|
||||
$faultDetails[] = sprintf('"%s" parameter is missing in loop type: %s, name: %s', $argument->name, $loopType, $loopName);
|
||||
}
|
||||
else if($value === '' && !$argument->empty) {
|
||||
/* check if empty */
|
||||
} else if ($value === '' && !$argument->empty) {
|
||||
/* check if empty */
|
||||
$faultActor[] = $argument->name;
|
||||
$faultDetails[] = sprintf('"%s" parameter cannot be empty in loop type: %s, name: %s', $argument->name, $loopType, $loopName);
|
||||
}
|
||||
else if($value !== null && !$argument->type->isValid($value)) {
|
||||
/* check type */
|
||||
} elseif ($value !== null && !$argument->type->isValid($value)) {
|
||||
/* check type */
|
||||
$faultActor[] = $argument->name;
|
||||
$faultDetails[] = sprintf('Invalid value for "%s" argument in loop type: %s, name: %s', $argument->name, $loopType, $loopName);
|
||||
}
|
||||
else {
|
||||
/* set default */
|
||||
/* did it as last checking for we consider default value is acceptable no matter type or empty restriction */
|
||||
if($value === null) {
|
||||
$value = $argument->default;
|
||||
}
|
||||
} else {
|
||||
/* set default */
|
||||
/* did it as last checking for we consider default value is acceptable no matter type or empty restriction */
|
||||
if ($value === null) {
|
||||
$value = $argument->default;
|
||||
}
|
||||
|
||||
$argument->setValue($value);
|
||||
}
|
||||
$argument->setValue($value);
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($faultActor)) {
|
||||
@@ -165,16 +161,16 @@ abstract class BaseLoop
|
||||
* @param string $argumentName the argument name
|
||||
*
|
||||
* @throws \InvalidArgumentException if argument is not found in loop argument list
|
||||
* @return Argument the loop argument.
|
||||
* @return Argument the loop argument.
|
||||
*/
|
||||
public function getArg($argumentName) {
|
||||
public function getArg($argumentName)
|
||||
{
|
||||
$arg = $this->args->get($argumentName);
|
||||
|
||||
$arg = $this->args->get($argumentName);
|
||||
if ($arg === null)
|
||||
throw new \InvalidArgumentException("Undefined loop argument '$argumentName'");
|
||||
|
||||
if ($arg === null)
|
||||
throw new \InvalidArgumentException("Undefined loop argument '$argumentName'");
|
||||
|
||||
return $arg;
|
||||
return $arg;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -183,11 +179,11 @@ abstract class BaseLoop
|
||||
* @param string $argumentName the argument name
|
||||
*
|
||||
* @throws \InvalidArgumentException if argument is not found in loop argument list
|
||||
* @return Argument the loop argument.
|
||||
* @return Argument the loop argument.
|
||||
*/
|
||||
public function getArgValue($argumentName) {
|
||||
|
||||
return $this->getArg($argumentName)->getValue();
|
||||
public function getArgValue($argumentName)
|
||||
{
|
||||
return $this->getArg($argumentName)->getValue();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -198,7 +194,7 @@ abstract class BaseLoop
|
||||
*/
|
||||
public function search(ModelCriteria $search, &$pagination = null)
|
||||
{
|
||||
if($this->getArgValue('page') !== null) {
|
||||
if ($this->getArgValue('page') !== null) {
|
||||
return $this->searchWithPagination($search, $pagination);
|
||||
} else {
|
||||
return $this->searchWithOffset($search);
|
||||
@@ -212,7 +208,7 @@ abstract class BaseLoop
|
||||
*/
|
||||
public function searchWithOffset(ModelCriteria $search)
|
||||
{
|
||||
if($this->getArgValue('limit') >= 0) {
|
||||
if ($this->getArgValue('limit') >= 0) {
|
||||
$search->limit($this->getArgValue('limit'));
|
||||
}
|
||||
$search->offset($this->getArgValue('offset'));
|
||||
@@ -230,7 +226,7 @@ abstract class BaseLoop
|
||||
{
|
||||
$pagination = $search->paginate($this->getArgValue('page'), $this->getArgValue('limit'));
|
||||
|
||||
if($this->getArgValue('page') > $pagination->getLastPage()) {
|
||||
if ($this->getArgValue('page') > $pagination->getLastPage()) {
|
||||
return array();
|
||||
} else {
|
||||
return $pagination;
|
||||
|
||||
0
documentation/api/files/Core/Template/Element/Exception/ElementNotFoundException.php.txt
Normal file → Executable file
0
documentation/api/files/Core/Template/Element/Exception/ElementNotFoundException.php.txt
Normal file → Executable file
0
documentation/api/files/Core/Template/Element/Exception/InvalidElementException.php.txt
Normal file → Executable file
0
documentation/api/files/Core/Template/Element/Exception/InvalidElementException.php.txt
Normal file → Executable file
0
documentation/api/files/Core/Template/Element/LoopResult.php.txt
Normal file → Executable file
0
documentation/api/files/Core/Template/Element/LoopResult.php.txt
Normal file → Executable file
2
documentation/api/files/Core/Template/Element/LoopResultRow.php.txt
Normal file → Executable file
2
documentation/api/files/Core/Template/Element/LoopResultRow.php.txt
Normal file → Executable file
@@ -46,7 +46,7 @@ class LoopResultRow
|
||||
|
||||
public function getVars()
|
||||
{
|
||||
return array_keys($this->substitution);
|
||||
return array_keys($this->substitution);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
0
documentation/api/files/Core/Template/Exception/ResourceNotFoundException.php.txt
Normal file → Executable file
0
documentation/api/files/Core/Template/Exception/ResourceNotFoundException.php.txt
Normal file → Executable file
13
documentation/api/files/Core/Template/Loop/Accessory.php.txt
Normal file → Executable file
13
documentation/api/files/Core/Template/Loop/Accessory.php.txt
Normal file → Executable file
@@ -26,19 +26,12 @@ namespace Thelia\Core\Template\Loop;
|
||||
use Thelia\Core\Template\Loop\Product;
|
||||
|
||||
use Propel\Runtime\ActiveQuery\Criteria;
|
||||
use Propel\Runtime\ActiveQuery\Join;
|
||||
use Thelia\Core\Template\Element\BaseLoop;
|
||||
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\Log\Tlog;
|
||||
|
||||
use Thelia\Model\AccessoryQuery;
|
||||
use Thelia\Model\ProductQuery;
|
||||
use Thelia\Model\ConfigQuery;
|
||||
use Thelia\Type\TypeCollection;
|
||||
use Thelia\Type;
|
||||
|
||||
/**
|
||||
@@ -86,12 +79,12 @@ class Accessory extends Product
|
||||
$order = $this->getOrder();
|
||||
$orderByAccessory = array_search('accessory', $order);
|
||||
$orderByAccessoryReverse = array_search('accessory_reverse', $order);
|
||||
if($orderByAccessory !== false) {
|
||||
if ($orderByAccessory !== false) {
|
||||
$search->orderByPosition(Criteria::ASC);
|
||||
$order[$orderByAccessory] = 'given_id';
|
||||
$this->args->get('order')->setValue( implode(',', $order) );
|
||||
}
|
||||
if($orderByAccessoryReverse !== false) {
|
||||
if ($orderByAccessoryReverse !== false) {
|
||||
$search->orderByPosition(Criteria::DESC);
|
||||
$order[$orderByAccessoryReverse] = 'given_id';
|
||||
$this->args->get('order')->setValue( implode(',', $order) );
|
||||
@@ -107,7 +100,7 @@ class Accessory extends Product
|
||||
$receivedIdList = $this->getId();
|
||||
|
||||
/* if an Id list is receive, loop will only match accessories from this list */
|
||||
if($receivedIdList === null) {
|
||||
if ($receivedIdList === null) {
|
||||
$this->args->get('id')->setValue( implode(',', $accessoryIdList) );
|
||||
} else {
|
||||
$this->args->get('id')->setValue( implode(',', array_intersect($receivedIdList, $accessoryIdList)) );
|
||||
|
||||
9
documentation/api/files/Core/Template/Loop/Address.php.txt
Normal file → Executable file
9
documentation/api/files/Core/Template/Loop/Address.php.txt
Normal file → Executable file
@@ -30,10 +30,8 @@ use Thelia\Core\Template\Element\LoopResultRow;
|
||||
|
||||
use Thelia\Core\Template\Loop\Argument\ArgumentCollection;
|
||||
use Thelia\Core\Template\Loop\Argument\Argument;
|
||||
use Thelia\Log\Tlog;
|
||||
|
||||
use Thelia\Model\AddressQuery;
|
||||
use Thelia\Model\ConfigQuery;
|
||||
use Thelia\Type\TypeCollection;
|
||||
use Thelia\Type;
|
||||
|
||||
@@ -77,7 +75,7 @@ class Address extends BaseLoop
|
||||
{
|
||||
$search = AddressQuery::create();
|
||||
|
||||
$id = $this->getId();
|
||||
$id = $this->getId();
|
||||
|
||||
if (null !== $id) {
|
||||
$search->filterById($id, Criteria::IN);
|
||||
@@ -87,7 +85,7 @@ class Address extends BaseLoop
|
||||
|
||||
if ($customer === 'current') {
|
||||
$currentCustomer = $this->request->getSession()->getCustomerUser();
|
||||
if($currentCustomer === null) {
|
||||
if ($currentCustomer === null) {
|
||||
return new LoopResult();
|
||||
} else {
|
||||
$search->filterByCustomerId($currentCustomer->getId(), Criteria::EQUAL);
|
||||
@@ -100,7 +98,7 @@ class Address extends BaseLoop
|
||||
|
||||
if ($default === true) {
|
||||
$search->filterByIsDefault(1, Criteria::EQUAL);
|
||||
} elseif($default === false) {
|
||||
} elseif ($default === false) {
|
||||
$search->filterByIsDefault(1, Criteria::NOT_EQUAL);
|
||||
}
|
||||
|
||||
@@ -139,3 +137,4 @@ class Address extends BaseLoop
|
||||
return $loopResult;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
28
documentation/api/files/Core/Template/Loop/Argument/Argument.php.txt
Normal file → Executable file
28
documentation/api/files/Core/Template/Loop/Argument/Argument.php.txt
Normal file → Executable file
@@ -51,12 +51,14 @@ class Argument
|
||||
$this->setValue($value);
|
||||
}
|
||||
|
||||
public function getValue() {
|
||||
return $this->type->getFormattedValue($this->value);
|
||||
public function getValue()
|
||||
{
|
||||
return $this->type->getFormattedValue($this->value);
|
||||
}
|
||||
|
||||
public function setValue($value) {
|
||||
$this->value = $value === null ? null : (string)$value;
|
||||
public function setValue($value)
|
||||
{
|
||||
$this->value = $value === null ? null : (string) $value;
|
||||
}
|
||||
|
||||
public static function createAnyTypeArgument($name, $default=null, $mandatory=false, $empty=true)
|
||||
@@ -113,15 +115,15 @@ class Argument
|
||||
|
||||
public static function createBooleanOrBothTypeArgument($name, $default=null, $mandatory=false, $empty=true)
|
||||
{
|
||||
return new Argument(
|
||||
$name,
|
||||
new TypeCollection(
|
||||
new Type\BooleanOrBothType()
|
||||
),
|
||||
$default,
|
||||
$mandatory,
|
||||
$empty
|
||||
);
|
||||
return new Argument(
|
||||
$name,
|
||||
new TypeCollection(
|
||||
new Type\BooleanOrBothType()
|
||||
),
|
||||
$default,
|
||||
$mandatory,
|
||||
$empty
|
||||
);
|
||||
}
|
||||
|
||||
public static function createIntListTypeArgument($name, $default=null, $mandatory=false, $empty=true)
|
||||
|
||||
18
documentation/api/files/Core/Template/Loop/Argument/ArgumentCollection.php.txt
Normal file → Executable file
18
documentation/api/files/Core/Template/Loop/Argument/ArgumentCollection.php.txt
Normal file → Executable file
@@ -37,12 +37,14 @@ class ArgumentCollection implements \Iterator
|
||||
$this->addArguments(func_get_args(), true);
|
||||
}
|
||||
|
||||
public function hasKey($key) {
|
||||
return isset($this->arguments[$key]);
|
||||
public function hasKey($key)
|
||||
{
|
||||
return isset($this->arguments[$key]);
|
||||
}
|
||||
|
||||
public function get($key) {
|
||||
return $this->hasKey($key) ? $this->arguments[$key] : null;
|
||||
public function get($key)
|
||||
{
|
||||
return $this->hasKey($key) ? $this->arguments[$key] : null;
|
||||
}
|
||||
|
||||
public function isEmpty()
|
||||
@@ -51,14 +53,14 @@ class ArgumentCollection implements \Iterator
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $argumentList
|
||||
* @param $force
|
||||
* @param array $argumentList
|
||||
* @param $force
|
||||
*
|
||||
* @return ArgumentCollection
|
||||
*/
|
||||
public function addArguments(array $argumentList, $force = true)
|
||||
{
|
||||
foreach($argumentList as $argument) {
|
||||
foreach ($argumentList as $argument) {
|
||||
$this->addArgument($argument, $force);
|
||||
}
|
||||
|
||||
@@ -73,7 +75,7 @@ class ArgumentCollection implements \Iterator
|
||||
*/
|
||||
public function addArgument(Argument $argument, $force = true)
|
||||
{
|
||||
if(isset($this->arguments[$argument->name]) && ! $force) {
|
||||
if (isset($this->arguments[$argument->name]) && ! $force) {
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
55
documentation/api/files/Core/Template/Loop/Auth.php.txt
Normal file → Executable file
55
documentation/api/files/Core/Template/Loop/Auth.php.txt
Normal file → Executable file
@@ -30,11 +30,6 @@ use Thelia\Core\Template\Element\LoopResultRow;
|
||||
use Thelia\Core\Template\Loop\Argument\ArgumentCollection;
|
||||
use Thelia\Core\Template\Loop\Argument\Argument;
|
||||
|
||||
use Thelia\Type\TypeCollection;
|
||||
use Thelia\Type;
|
||||
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
/**
|
||||
*
|
||||
* @package Thelia\Core\Template\Loop
|
||||
@@ -46,24 +41,24 @@ class Auth extends BaseLoop
|
||||
public function getArgDefinitions()
|
||||
{
|
||||
return new ArgumentCollection(
|
||||
Argument::createAnyTypeArgument('roles', null, true),
|
||||
Argument::createAnyTypeArgument('permissions'),
|
||||
Argument::createAnyTypeArgument('context', 'front', false)
|
||||
Argument::createAnyTypeArgument('roles', null, true),
|
||||
Argument::createAnyTypeArgument('permissions'),
|
||||
Argument::createAnyTypeArgument('context', 'front', false)
|
||||
);
|
||||
}
|
||||
|
||||
private function _explode($commaSeparatedValues)
|
||||
{
|
||||
|
||||
$array = explode(',', $commaSeparatedValues);
|
||||
$array = explode(',', $commaSeparatedValues);
|
||||
|
||||
if (array_walk($array, function(&$item) {
|
||||
$item = strtoupper(trim($item));
|
||||
})) {
|
||||
return $array;
|
||||
}
|
||||
if (array_walk($array, function(&$item) {
|
||||
$item = strtoupper(trim($item));
|
||||
})) {
|
||||
return $array;
|
||||
}
|
||||
|
||||
return array();
|
||||
return array();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -73,25 +68,25 @@ class Auth extends BaseLoop
|
||||
*/
|
||||
public function exec(&$pagination)
|
||||
{
|
||||
$context = $this->getContext();
|
||||
$roles = $this->_explode($this->getRoles());
|
||||
$permissions = $this->_explode($this->getPermissions());
|
||||
$context = $this->getContext();
|
||||
$roles = $this->_explode($this->getRoles());
|
||||
$permissions = $this->_explode($this->getPermissions());
|
||||
|
||||
$loopResult = new LoopResult();
|
||||
$loopResult = new LoopResult();
|
||||
|
||||
try {
|
||||
$this->securityContext->setContext($context);
|
||||
try {
|
||||
$this->securityContext->setContext($context);
|
||||
|
||||
if (true === $this->securityContext->isGranted($roles, $permissions == null ? array() : $permissions)) {
|
||||
if (true === $this->securityContext->isGranted($roles, $permissions == null ? array() : $permissions)) {
|
||||
|
||||
// Create an empty row: loop is no longer empty :)
|
||||
$loopResult->addRow(new LoopResultRow());
|
||||
}
|
||||
}
|
||||
catch (\Exception $ex) {
|
||||
// Not granted, loop is empty
|
||||
}
|
||||
// Create an empty row: loop is no longer empty :)
|
||||
$loopResult->addRow(new LoopResultRow());
|
||||
}
|
||||
} catch (\Exception $ex) {
|
||||
// Not granted, loop is empty
|
||||
}
|
||||
|
||||
return $loopResult;
|
||||
return $loopResult;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
9
documentation/api/files/Core/Template/Loop/Cart.php.txt
Normal file → Executable file
9
documentation/api/files/Core/Template/Loop/Cart.php.txt
Normal file → Executable file
@@ -9,13 +9,13 @@
|
||||
|
||||
namespace Thelia\Core\Template\Loop;
|
||||
|
||||
|
||||
use Thelia\Core\Template\Element\BaseLoop;
|
||||
use Thelia\Core\Template\Element\LoopResult;
|
||||
use Thelia\Core\Template\Element\LoopResultRow;
|
||||
use Thelia\Core\Template\Loop\Argument\ArgumentCollection;
|
||||
|
||||
class Cart extends BaseLoop {
|
||||
class Cart extends BaseLoop
|
||||
{
|
||||
use \Thelia\Cart\CartTrait;
|
||||
/**
|
||||
*
|
||||
@@ -74,11 +74,10 @@ class Cart extends BaseLoop {
|
||||
$result = new LoopResult();
|
||||
$cart = $this->getCart($this->request);
|
||||
|
||||
if($cart === null) {
|
||||
if ($cart === null) {
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
$cartItems = $cart->getCartItems();
|
||||
|
||||
foreach ($cartItems as $cartItem) {
|
||||
@@ -99,5 +98,5 @@ class Cart extends BaseLoop {
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
45
documentation/api/files/Core/Template/Loop/Category.php.txt
Normal file → Executable file
45
documentation/api/files/Core/Template/Loop/Category.php.txt
Normal file → Executable file
@@ -30,7 +30,6 @@ use Thelia\Core\Template\Element\LoopResultRow;
|
||||
|
||||
use Thelia\Core\Template\Loop\Argument\ArgumentCollection;
|
||||
use Thelia\Core\Template\Loop\Argument\Argument;
|
||||
use Thelia\Log\Tlog;
|
||||
|
||||
use Thelia\Model\CategoryQuery;
|
||||
use Thelia\Model\ConfigQuery;
|
||||
@@ -95,7 +94,7 @@ class Category extends BaseLoop
|
||||
{
|
||||
$search = CategoryQuery::create();
|
||||
|
||||
$id = $this->getId();
|
||||
$id = $this->getId();
|
||||
|
||||
if (!is_null($id)) {
|
||||
$search->filterById($id, Criteria::IN);
|
||||
@@ -107,8 +106,7 @@ class Category extends BaseLoop
|
||||
$search->filterByParent($parent);
|
||||
}
|
||||
|
||||
|
||||
$current = $this->getCurrent();
|
||||
$current = $this->getCurrent();
|
||||
|
||||
if ($current === true) {
|
||||
$search->filterById($this->request->get("category_id"));
|
||||
@@ -116,7 +114,6 @@ class Category extends BaseLoop
|
||||
$search->filterById($this->request->get("category_id"), Criteria::NOT_IN);
|
||||
}
|
||||
|
||||
|
||||
$exclude = $this->getExclude();
|
||||
|
||||
if (!is_null($exclude)) {
|
||||
@@ -124,11 +121,11 @@ class Category extends BaseLoop
|
||||
}
|
||||
|
||||
if ($this->getVisible() != BooleanOrBothType::ANY)
|
||||
$search->filterByVisible($this->getVisible() ? 1 : 0);
|
||||
$search->filterByVisible($this->getVisible() ? 1 : 0);
|
||||
|
||||
$orders = $this->getOrder();
|
||||
|
||||
foreach($orders as $order) {
|
||||
foreach ($orders as $order) {
|
||||
switch ($order) {
|
||||
case "alpha":
|
||||
$search->addAscendingOrderByColumn(\Thelia\Model\Map\CategoryI18nTableMap::TITLE);
|
||||
@@ -171,27 +168,26 @@ class Category extends BaseLoop
|
||||
|
||||
if ($this->getNotEmpty() && $category->countAllProducts() == 0) continue;
|
||||
|
||||
|
||||
$loopResultRow = new LoopResultRow();
|
||||
|
||||
$loopResultRow
|
||||
->set("ID", $category->getId())
|
||||
->set("TITLE",$category->getTitle())
|
||||
->set("CHAPO", $category->getChapo())
|
||||
->set("DESCRIPTION", $category->getDescription())
|
||||
->set("POSTSCRIPTUM", $category->getPostscriptum())
|
||||
->set("PARENT", $category->getParent())
|
||||
->set("URL", $category->getUrl())
|
||||
->set("PRODUCT_COUNT", $category->countChild())
|
||||
->set("VISIBLE", $category->getVisible() ? "1" : "0")
|
||||
->set("POSITION", $category->getPosition())
|
||||
->set("ID", $category->getId())
|
||||
->set("TITLE",$category->getTitle())
|
||||
->set("CHAPO", $category->getChapo())
|
||||
->set("DESCRIPTION", $category->getDescription())
|
||||
->set("POSTSCRIPTUM", $category->getPostscriptum())
|
||||
->set("PARENT", $category->getParent())
|
||||
->set("URL", $category->getUrl())
|
||||
->set("PRODUCT_COUNT", $category->countChild())
|
||||
->set("VISIBLE", $category->getVisible() ? "1" : "0")
|
||||
->set("POSITION", $category->getPosition())
|
||||
|
||||
->set("CREATE_DATE", $category->getCreatedAt())
|
||||
->set("UPDATE_DATE", $category->getUpdatedAt())
|
||||
->set("VERSION", $category->getVersion())
|
||||
->set("VERSION_DATE", $category->getVersionCreatedAt())
|
||||
->set("VERSION_AUTHOR", $category->getVersionCreatedBy())
|
||||
;
|
||||
->set("CREATE_DATE", $category->getCreatedAt())
|
||||
->set("UPDATE_DATE", $category->getUpdatedAt())
|
||||
->set("VERSION", $category->getVersion())
|
||||
->set("VERSION_DATE", $category->getVersionCreatedAt())
|
||||
->set("VERSION_AUTHOR", $category->getVersionCreatedBy())
|
||||
;
|
||||
|
||||
$loopResult->addRow($loopResultRow);
|
||||
}
|
||||
@@ -199,3 +195,4 @@ class Category extends BaseLoop
|
||||
return $loopResult;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
66
documentation/api/files/Core/Template/Loop/CategoryPath.php.txt
Normal file → Executable file
66
documentation/api/files/Core/Template/Loop/CategoryPath.php.txt
Normal file → Executable file
@@ -23,18 +23,14 @@
|
||||
|
||||
namespace Thelia\Core\Template\Loop;
|
||||
|
||||
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\Loop\Argument\ArgumentCollection;
|
||||
use Thelia\Core\Template\Loop\Argument\Argument;
|
||||
use Thelia\Log\Tlog;
|
||||
|
||||
use Thelia\Model\CategoryQuery;
|
||||
use Thelia\Model\ConfigQuery;
|
||||
use Thelia\Type\TypeCollection;
|
||||
use Thelia\Type;
|
||||
use Thelia\Type\BooleanOrBothType;
|
||||
|
||||
@@ -69,7 +65,7 @@ class CategoryPath extends BaseLoop
|
||||
Argument::createIntTypeArgument('category', null, true),
|
||||
Argument::createIntTypeArgument('depth'),
|
||||
Argument::createIntTypeArgument('level'),
|
||||
Argument::createBooleanOrBothTypeArgument('visible', true, false)
|
||||
Argument::createBooleanOrBothTypeArgument('visible', true, false)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -80,50 +76,49 @@ class CategoryPath extends BaseLoop
|
||||
*/
|
||||
public function exec(&$pagination)
|
||||
{
|
||||
$id = $this->getCategory();
|
||||
$visible = $this->getVisible();
|
||||
$id = $this->getCategory();
|
||||
$visible = $this->getVisible();
|
||||
|
||||
$search = CategoryQuery::create();
|
||||
$search->filterById($id);
|
||||
if ($visible != BooleanOrBothType::ANY) $search->filterByVisible($visible);
|
||||
$search->filterById($id);
|
||||
if ($visible != BooleanOrBothType::ANY) $search->filterByVisible($visible);
|
||||
|
||||
$results = array();
|
||||
$results = array();
|
||||
|
||||
$ids = array();
|
||||
$ids = array();
|
||||
|
||||
do {
|
||||
$category = $search->findOne();
|
||||
do {
|
||||
$category = $search->findOne();
|
||||
|
||||
if ($category != null) {
|
||||
if ($category != null) {
|
||||
|
||||
$loopResultRow = new LoopResultRow();
|
||||
$loopResultRow = new LoopResultRow();
|
||||
|
||||
$loopResultRow
|
||||
->set("TITLE",$category->getTitle())
|
||||
->set("URL", $category->getUrl())
|
||||
->set("ID", $category->getId())
|
||||
;
|
||||
$loopResultRow
|
||||
->set("TITLE",$category->getTitle())
|
||||
->set("URL", $category->getUrl())
|
||||
->set("ID", $category->getId())
|
||||
;
|
||||
|
||||
$results[] = $loopResultRow;
|
||||
$results[] = $loopResultRow;
|
||||
|
||||
$parent = $category->getParent();
|
||||
$parent = $category->getParent();
|
||||
|
||||
if ($parent > 0) {
|
||||
if ($parent > 0) {
|
||||
|
||||
// Prevent circular refererences
|
||||
if (in_array($parent, $ids)) {
|
||||
throw new \LogicException(sprintf("Circular reference detected in category ID=%d hierarchy (category ID=%d appears more than one times in path)", $id, $parent));
|
||||
}
|
||||
// Prevent circular refererences
|
||||
if (in_array($parent, $ids)) {
|
||||
throw new \LogicException(sprintf("Circular reference detected in category ID=%d hierarchy (category ID=%d appears more than one times in path)", $id, $parent));
|
||||
}
|
||||
|
||||
$ids[] = $parent;
|
||||
$ids[] = $parent;
|
||||
|
||||
$search = CategoryQuery::create();
|
||||
$search->filterById($parent);
|
||||
if ($visible == true) $search->filterByVisible($visible);
|
||||
}
|
||||
}
|
||||
}
|
||||
while ($category != null && $parent > 0);
|
||||
$search = CategoryQuery::create();
|
||||
$search->filterById($parent);
|
||||
if ($visible == true) $search->filterByVisible($visible);
|
||||
}
|
||||
}
|
||||
} while ($category != null && $parent > 0);
|
||||
|
||||
// Reverse list and build the final result
|
||||
$results = array_reverse($results);
|
||||
@@ -135,3 +130,4 @@ class CategoryPath extends BaseLoop
|
||||
return $loopResult;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
66
documentation/api/files/Core/Template/Loop/CategoryTree.php.txt
Normal file → Executable file
66
documentation/api/files/Core/Template/Loop/CategoryTree.php.txt
Normal file → Executable file
@@ -30,11 +30,8 @@ use Thelia\Core\Template\Element\LoopResultRow;
|
||||
|
||||
use Thelia\Core\Template\Loop\Argument\ArgumentCollection;
|
||||
use Thelia\Core\Template\Loop\Argument\Argument;
|
||||
use Thelia\Log\Tlog;
|
||||
|
||||
use Thelia\Model\CategoryQuery;
|
||||
use Thelia\Model\ConfigQuery;
|
||||
use Thelia\Type\TypeCollection;
|
||||
use Thelia\Type;
|
||||
use Thelia\Type\BooleanOrBothType;
|
||||
|
||||
@@ -59,45 +56,45 @@ class CategoryTree extends BaseLoop
|
||||
return new ArgumentCollection(
|
||||
Argument::createIntTypeArgument('category', null, true),
|
||||
Argument::createIntTypeArgument('depth', PHP_INT_MAX),
|
||||
Argument::createBooleanOrBothTypeArgument('visible', true, false),
|
||||
Argument::createIntListTypeArgument('exclude', array())
|
||||
Argument::createBooleanOrBothTypeArgument('visible', true, false),
|
||||
Argument::createIntListTypeArgument('exclude', array())
|
||||
);
|
||||
}
|
||||
|
||||
// changement de rubrique
|
||||
protected function buildCategoryTree($parent, $visible, $level, $max_level, array $exclude, LoopResult &$loopResult) {
|
||||
protected function buildCategoryTree($parent, $visible, $level, $max_level, array $exclude, LoopResult &$loopResult)
|
||||
{
|
||||
if ($level > $max_level) return;
|
||||
|
||||
if ($level > $max_level) return;
|
||||
$search = CategoryQuery::create();
|
||||
|
||||
$search = CategoryQuery::create();
|
||||
$search->filterByParent($parent);
|
||||
|
||||
$search->filterByParent($parent);
|
||||
if ($visible != BooleanOrBothType::ANY) $search->filterByVisible($visible);
|
||||
|
||||
if ($visible != BooleanOrBothType::ANY) $search->filterByVisible($visible);
|
||||
$search->filterById($exclude, Criteria::NOT_IN);
|
||||
|
||||
$search->filterById($exclude, Criteria::NOT_IN);
|
||||
$search->orderByPosition(Criteria::ASC);
|
||||
|
||||
$search->orderByPosition(Criteria::ASC);
|
||||
$results = $search->find();
|
||||
|
||||
$results = $search->find();
|
||||
foreach ($results as $result) {
|
||||
|
||||
foreach($results as $result) {
|
||||
$loopResultRow = new LoopResultRow();
|
||||
|
||||
$loopResultRow = new LoopResultRow();
|
||||
$loopResultRow
|
||||
->set("ID", $result->getId())
|
||||
->set("TITLE",$result->getTitle())
|
||||
->set("PARENT", $result->getParent())
|
||||
->set("URL", $result->getUrl())
|
||||
->set("VISIBLE", $result->getVisible() ? "1" : "0")
|
||||
->set("LEVEL", $level)
|
||||
;
|
||||
|
||||
$loopResultRow
|
||||
->set("ID", $result->getId())
|
||||
->set("TITLE",$result->getTitle())
|
||||
->set("PARENT", $result->getParent())
|
||||
->set("URL", $result->getUrl())
|
||||
->set("VISIBLE", $result->getVisible() ? "1" : "0")
|
||||
->set("LEVEL", $level)
|
||||
;
|
||||
$loopResult->addRow($loopResultRow);
|
||||
|
||||
$loopResult->addRow($loopResultRow);
|
||||
|
||||
$this->buildCategoryTree($result->getId(), $visible, 1 + $level, $max_level, $exclude, $loopResult);
|
||||
}
|
||||
$this->buildCategoryTree($result->getId(), $visible, 1 + $level, $max_level, $exclude, $loopResult);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -107,17 +104,18 @@ class CategoryTree extends BaseLoop
|
||||
*/
|
||||
public function exec(&$pagination)
|
||||
{
|
||||
$id = $this->getCategory();
|
||||
$depth = $this->getDepth();
|
||||
$visible = $this->getVisible();
|
||||
$exclude = $this->getExclude();
|
||||
$id = $this->getCategory();
|
||||
$depth = $this->getDepth();
|
||||
$visible = $this->getVisible();
|
||||
$exclude = $this->getExclude();
|
||||
|
||||
//echo "exclude=".print_r($exclude);
|
||||
//echo "exclude=".print_r($exclude);
|
||||
|
||||
$loopResult = new LoopResult();
|
||||
$loopResult = new LoopResult();
|
||||
|
||||
$this->buildCategoryTree($id, $visible, 0, $depth, $exclude, $loopResult);
|
||||
$this->buildCategoryTree($id, $visible, 0, $depth, $exclude, $loopResult);
|
||||
|
||||
return $loopResult;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
27
documentation/api/files/Core/Template/Loop/Content.php.txt
Normal file → Executable file
27
documentation/api/files/Core/Template/Loop/Content.php.txt
Normal file → Executable file
@@ -24,16 +24,13 @@
|
||||
namespace Thelia\Core\Template\Loop;
|
||||
|
||||
use Propel\Runtime\ActiveQuery\Criteria;
|
||||
use Propel\Runtime\ActiveQuery\Join;
|
||||
use Thelia\Core\Template\Element\BaseLoop;
|
||||
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\Log\Tlog;
|
||||
|
||||
use Thelia\Model\Base\FeatureContentQuery;
|
||||
use Thelia\Model\FolderQuery;
|
||||
use Thelia\Model\Map\ContentTableMap;
|
||||
use Thelia\Model\ContentFolderQuery;
|
||||
@@ -101,8 +98,8 @@ class Content extends BaseLoop
|
||||
|
||||
$depth = $this->getDepth();
|
||||
|
||||
if(null !== $depth) {
|
||||
foreach(FolderQuery::findAllChild($folder, $depth) as $subFolder) {
|
||||
if (null !== $depth) {
|
||||
foreach (FolderQuery::findAllChild($folder, $depth) as $subFolder) {
|
||||
$folders->prepend($subFolder);
|
||||
}
|
||||
}
|
||||
@@ -117,7 +114,7 @@ class Content extends BaseLoop
|
||||
|
||||
if ($current === true) {
|
||||
$search->filterById($this->request->get("content_id"));
|
||||
} elseif($current === false) {
|
||||
} elseif ($current === false) {
|
||||
$search->filterById($this->request->get("content_id"), Criteria::NOT_IN);
|
||||
}
|
||||
|
||||
@@ -134,7 +131,7 @@ class Content extends BaseLoop
|
||||
)->find(),
|
||||
Criteria::IN
|
||||
);
|
||||
} elseif($current_folder === false) {
|
||||
} elseif ($current_folder === false) {
|
||||
$search->filterByFolder(
|
||||
FolderQuery::create()->filterByContent(
|
||||
ContentFolderQuery::create()->filterByContentId(
|
||||
@@ -153,7 +150,7 @@ class Content extends BaseLoop
|
||||
|
||||
$orders = $this->getOrder();
|
||||
|
||||
foreach($orders as $order) {
|
||||
foreach ($orders as $order) {
|
||||
switch ($order) {
|
||||
case "alpha":
|
||||
$search->addAscendingOrderByColumn(\Thelia\Model\Map\ContentI18nTableMap::TITLE);
|
||||
@@ -174,7 +171,7 @@ class Content extends BaseLoop
|
||||
case "given_id":
|
||||
if(null === $id)
|
||||
throw new \InvalidArgumentException('Given_id order cannot be set without `id` argument');
|
||||
foreach($id as $singleId) {
|
||||
foreach ($id as $singleId) {
|
||||
$givenIdMatched = 'given_id_matched_' . $singleId;
|
||||
$search->withColumn(ContentTableMap::ID . "='$singleId'", $givenIdMatched);
|
||||
$search->orderBy($givenIdMatched, Criteria::DESC);
|
||||
@@ -223,12 +220,12 @@ class Content extends BaseLoop
|
||||
$loopResultRow = new LoopResultRow();
|
||||
|
||||
$loopResultRow->set("ID", $content->getId())
|
||||
->set("TITLE",$content->getTitle())
|
||||
->set("CHAPO", $content->getChapo())
|
||||
->set("DESCRIPTION", $content->getDescription())
|
||||
->set("POSTSCRIPTUM", $content->getPostscriptum())
|
||||
->set("POSITION", $content->getPosition())
|
||||
;
|
||||
->set("TITLE",$content->getTitle())
|
||||
->set("CHAPO", $content->getChapo())
|
||||
->set("DESCRIPTION", $content->getDescription())
|
||||
->set("POSTSCRIPTUM", $content->getPostscriptum())
|
||||
->set("POSITION", $content->getPosition())
|
||||
;
|
||||
|
||||
$loopResult->addRow($loopResultRow);
|
||||
}
|
||||
|
||||
6
documentation/api/files/Core/Template/Loop/Country.php.txt
Normal file → Executable file
6
documentation/api/files/Core/Template/Loop/Country.php.txt
Normal file → Executable file
@@ -30,12 +30,9 @@ use Thelia\Core\Template\Element\LoopResultRow;
|
||||
|
||||
use Thelia\Core\Template\Loop\Argument\ArgumentCollection;
|
||||
use Thelia\Core\Template\Loop\Argument\Argument;
|
||||
use Thelia\Log\Tlog;
|
||||
|
||||
use Thelia\Model\CountryQuery;
|
||||
use Thelia\Model\ConfigQuery;
|
||||
use Thelia\Type\TypeCollection;
|
||||
use Thelia\Type;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -71,7 +68,7 @@ class Country extends BaseLoop
|
||||
{
|
||||
$search = CountryQuery::create();
|
||||
|
||||
$id = $this->getId();
|
||||
$id = $this->getId();
|
||||
|
||||
if (null !== $id) {
|
||||
$search->filterById($id, Criteria::IN);
|
||||
@@ -132,3 +129,4 @@ class Country extends BaseLoop
|
||||
return $loopResult;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
11
documentation/api/files/Core/Template/Loop/Customer.php.txt
Normal file → Executable file
11
documentation/api/files/Core/Template/Loop/Customer.php.txt
Normal file → Executable file
@@ -30,10 +30,8 @@ use Thelia\Core\Template\Element\LoopResultRow;
|
||||
|
||||
use Thelia\Core\Template\Loop\Argument\ArgumentCollection;
|
||||
use Thelia\Core\Template\Loop\Argument\Argument;
|
||||
use Thelia\Log\Tlog;
|
||||
|
||||
use Thelia\Model\CustomerQuery;
|
||||
use Thelia\Model\ConfigQuery;
|
||||
use Thelia\Type\TypeCollection;
|
||||
use Thelia\Type;
|
||||
|
||||
@@ -76,18 +74,18 @@ class Customer extends BaseLoop
|
||||
{
|
||||
$search = CustomerQuery::create();
|
||||
|
||||
$current = $this->getCurrent();
|
||||
$current = $this->getCurrent();
|
||||
|
||||
if ($current === true) {
|
||||
$currentCustomer = $this->request->getSession()->getCustomerUser();
|
||||
if($currentCustomer === null) {
|
||||
if ($currentCustomer === null) {
|
||||
return new LoopResult();
|
||||
} else {
|
||||
$search->filterById($currentCustomer->getId(), Criteria::EQUAL);
|
||||
}
|
||||
}
|
||||
|
||||
$id = $this->getId();
|
||||
$id = $this->getId();
|
||||
|
||||
if (null !== $id) {
|
||||
$search->filterById($id, Criteria::IN);
|
||||
@@ -103,7 +101,7 @@ class Customer extends BaseLoop
|
||||
|
||||
if ($reseller === true) {
|
||||
$search->filterByReseller(1, Criteria::EQUAL);
|
||||
} else if($reseller === false) {
|
||||
} elseif ($reseller === false) {
|
||||
$search->filterByReseller(0, Criteria::EQUAL);
|
||||
}
|
||||
|
||||
@@ -135,3 +133,4 @@ class Customer extends BaseLoop
|
||||
return $loopResult;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
11
documentation/api/files/Core/Template/Loop/Feature.php.txt
Normal file → Executable file
11
documentation/api/files/Core/Template/Loop/Feature.php.txt
Normal file → Executable file
@@ -24,14 +24,12 @@
|
||||
namespace Thelia\Core\Template\Loop;
|
||||
|
||||
use Propel\Runtime\ActiveQuery\Criteria;
|
||||
use Propel\Runtime\ActiveQuery\Join;
|
||||
use Thelia\Core\Template\Element\BaseLoop;
|
||||
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\Log\Tlog;
|
||||
|
||||
use Thelia\Model\Base\CategoryQuery;
|
||||
use Thelia\Model\Base\ProductCategoryQuery;
|
||||
@@ -102,17 +100,17 @@ class Feature extends BaseLoop
|
||||
$product = $this->getProduct();
|
||||
$category = $this->getCategory();
|
||||
|
||||
if(null !== $product) {
|
||||
if (null !== $product) {
|
||||
$productCategories = ProductCategoryQuery::create()->select(array(ProductCategoryTableMap::CATEGORY_ID))->filterByProductId($product, Criteria::IN)->find()->getData();
|
||||
|
||||
if(null === $category) {
|
||||
if (null === $category) {
|
||||
$category = $productCategories;
|
||||
} else {
|
||||
$category = array_merge($category, $productCategories);
|
||||
}
|
||||
}
|
||||
|
||||
if(null !== $category) {
|
||||
if (null !== $category) {
|
||||
$search->filterByCategory(
|
||||
CategoryQuery::create()->filterById($category)->find(),
|
||||
Criteria::IN
|
||||
@@ -121,7 +119,7 @@ class Feature extends BaseLoop
|
||||
|
||||
$orders = $this->getOrder();
|
||||
|
||||
foreach($orders as $order) {
|
||||
foreach ($orders as $order) {
|
||||
switch ($order) {
|
||||
case "alpha":
|
||||
$search->addAscendingOrderByColumn(\Thelia\Model\Map\FeatureI18nTableMap::TITLE);
|
||||
@@ -167,3 +165,4 @@ class Feature extends BaseLoop
|
||||
return $loopResult;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
7
documentation/api/files/Core/Template/Loop/FeatureAvailable.php.txt
Normal file → Executable file
7
documentation/api/files/Core/Template/Loop/FeatureAvailable.php.txt
Normal file → Executable file
@@ -24,14 +24,12 @@
|
||||
namespace Thelia\Core\Template\Loop;
|
||||
|
||||
use Propel\Runtime\ActiveQuery\Criteria;
|
||||
use Propel\Runtime\ActiveQuery\Join;
|
||||
use Thelia\Core\Template\Element\BaseLoop;
|
||||
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\Log\Tlog;
|
||||
|
||||
use Thelia\Model\Base\FeatureAvQuery;
|
||||
use Thelia\Model\ConfigQuery;
|
||||
@@ -91,13 +89,13 @@ class FeatureAvailable extends BaseLoop
|
||||
|
||||
$feature = $this->getFeature();
|
||||
|
||||
if(null !== $feature) {
|
||||
if (null !== $feature) {
|
||||
$search->filterByFeatureId($feature, Criteria::IN);
|
||||
}
|
||||
|
||||
$orders = $this->getOrder();
|
||||
|
||||
foreach($orders as $order) {
|
||||
foreach ($orders as $order) {
|
||||
switch ($order) {
|
||||
case "alpha":
|
||||
$search->addAscendingOrderByColumn(\Thelia\Model\Map\FeatureAvI18nTableMap::TITLE);
|
||||
@@ -143,3 +141,4 @@ class FeatureAvailable extends BaseLoop
|
||||
return $loopResult;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
9
documentation/api/files/Core/Template/Loop/FeatureValue.php.txt
Normal file → Executable file
9
documentation/api/files/Core/Template/Loop/FeatureValue.php.txt
Normal file → Executable file
@@ -24,14 +24,12 @@
|
||||
namespace Thelia\Core\Template\Loop;
|
||||
|
||||
use Propel\Runtime\ActiveQuery\Criteria;
|
||||
use Propel\Runtime\ActiveQuery\Join;
|
||||
use Thelia\Core\Template\Element\BaseLoop;
|
||||
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\Log\Tlog;
|
||||
|
||||
use Thelia\Model\Base\FeatureProductQuery;
|
||||
use Thelia\Model\ConfigQuery;
|
||||
@@ -94,18 +92,18 @@ class FeatureValue extends BaseLoop
|
||||
}
|
||||
|
||||
$excludeFeatureAvailable = $this->getExclude_feature_available();
|
||||
if($excludeFeatureAvailable == true) {
|
||||
if ($excludeFeatureAvailable == true) {
|
||||
$search->filterByFeatureAvId(null, Criteria::NULL);
|
||||
}
|
||||
|
||||
$excludeDefaultValues = $this->getExclude_default_values();
|
||||
if($excludeDefaultValues == true) {
|
||||
if ($excludeDefaultValues == true) {
|
||||
$search->filterByByDefault(null, Criteria::NULL);
|
||||
}
|
||||
|
||||
$orders = $this->getOrder();
|
||||
|
||||
foreach($orders as $order) {
|
||||
foreach ($orders as $order) {
|
||||
switch ($order) {
|
||||
case "alpha":
|
||||
$search->addAscendingOrderByColumn(\Thelia\Model\Map\FeatureI18nTableMap::TITLE);
|
||||
@@ -151,3 +149,4 @@ class FeatureValue extends BaseLoop
|
||||
return $loopResult;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
48
documentation/api/files/Core/Template/Loop/Feed.php.txt
Normal file → Executable file
48
documentation/api/files/Core/Template/Loop/Feed.php.txt
Normal file → Executable file
@@ -30,9 +30,6 @@ use Thelia\Core\Template\Element\LoopResultRow;
|
||||
use Thelia\Core\Template\Loop\Argument\ArgumentCollection;
|
||||
use Thelia\Core\Template\Loop\Argument\Argument;
|
||||
|
||||
use Thelia\Type\TypeCollection;
|
||||
use Thelia\Type;
|
||||
|
||||
/**
|
||||
*
|
||||
* @package Thelia\Core\Template\Loop
|
||||
@@ -44,8 +41,8 @@ class Feed extends BaseLoop
|
||||
public function getArgDefinitions()
|
||||
{
|
||||
return new ArgumentCollection(
|
||||
Argument::createAnyTypeArgument('url', null, true),
|
||||
Argument::createIntTypeArgument('timeout', 10)
|
||||
Argument::createAnyTypeArgument('url', null, true),
|
||||
Argument::createIntTypeArgument('timeout', 10)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -56,13 +53,13 @@ class Feed extends BaseLoop
|
||||
*/
|
||||
public function exec(&$pagination)
|
||||
{
|
||||
$cachedir = THELIA_ROOT . 'cache/feeds';
|
||||
$cachedir = THELIA_ROOT . 'cache/feeds';
|
||||
|
||||
if (! is_dir($cachedir)) {
|
||||
if (! mkdir($cachedir)) {
|
||||
throw new \Exception(sprintf("Failed to create cache directory '%s'", $cachedir));
|
||||
}
|
||||
}
|
||||
if (! is_dir($cachedir)) {
|
||||
if (! mkdir($cachedir)) {
|
||||
throw new \Exception(sprintf("Failed to create cache directory '%s'", $cachedir));
|
||||
}
|
||||
}
|
||||
|
||||
$feed = new \SimplePie($this->getUrl(), THELIA_ROOT . 'cache/feeds');
|
||||
|
||||
@@ -78,29 +75,30 @@ class Feed extends BaseLoop
|
||||
|
||||
$loopResult = new LoopResult();
|
||||
|
||||
for($idx = 0; $idx < $limit; $idx++) {
|
||||
for ($idx = 0; $idx < $limit; $idx++) {
|
||||
|
||||
$item = $items[$idx];
|
||||
$item = $items[$idx];
|
||||
|
||||
$link = $item->get_permalink();
|
||||
$link = $item->get_permalink();
|
||||
|
||||
$title = $item->get_title();
|
||||
$author = $item->get_author();
|
||||
$description = $item->get_description();
|
||||
$title = $item->get_title();
|
||||
$author = $item->get_author();
|
||||
$description = $item->get_description();
|
||||
|
||||
$date = $item->get_date('d/m/Y');
|
||||
$date = $item->get_date('d/m/Y');
|
||||
|
||||
$loopResultRow = new LoopResultRow();
|
||||
$loopResultRow = new LoopResultRow();
|
||||
|
||||
$loopResultRow->set("URL", $item->get_permalink());
|
||||
$loopResultRow->set("TITLE", $item->get_title());
|
||||
$loopResultRow->set("AUTHOR", $item->get_author());
|
||||
$loopResultRow->set("DESCRIPTION", $item->get_description());
|
||||
$loopResultRow->set("DATE", $item->get_date('d/m/Y')); // FIXME - date format should be an intl parameter
|
||||
$loopResultRow->set("URL", $item->get_permalink());
|
||||
$loopResultRow->set("TITLE", $item->get_title());
|
||||
$loopResultRow->set("AUTHOR", $item->get_author());
|
||||
$loopResultRow->set("DESCRIPTION", $item->get_description());
|
||||
$loopResultRow->set("DATE", $item->get_date('d/m/Y')); // FIXME - date format should be an intl parameter
|
||||
|
||||
$loopResult->addRow($loopResultRow);
|
||||
$loopResult->addRow($loopResultRow);
|
||||
}
|
||||
|
||||
return $loopResult;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
40
documentation/api/files/Core/Template/Loop/Folder.php.txt
Normal file → Executable file
40
documentation/api/files/Core/Template/Loop/Folder.php.txt
Normal file → Executable file
@@ -30,7 +30,6 @@ use Thelia\Core\Template\Element\LoopResultRow;
|
||||
|
||||
use Thelia\Core\Template\Loop\Argument\ArgumentCollection;
|
||||
use Thelia\Core\Template\Loop\Argument\Argument;
|
||||
use Thelia\Log\Tlog;
|
||||
|
||||
use Thelia\Model\FolderQuery;
|
||||
use Thelia\Model\ConfigQuery;
|
||||
@@ -77,7 +76,7 @@ class Folder extends BaseLoop
|
||||
{
|
||||
$search = FolderQuery::create();
|
||||
|
||||
$id = $this->getId();
|
||||
$id = $this->getId();
|
||||
|
||||
if (!is_null($id)) {
|
||||
$search->filterById($id, Criteria::IN);
|
||||
@@ -89,8 +88,7 @@ class Folder extends BaseLoop
|
||||
$search->filterByParent($parent);
|
||||
}
|
||||
|
||||
|
||||
$current = $this->getCurrent();
|
||||
$current = $this->getCurrent();
|
||||
|
||||
if ($current === true) {
|
||||
$search->filterById($this->request->get("folder_id"));
|
||||
@@ -98,7 +96,6 @@ class Folder extends BaseLoop
|
||||
$search->filterById($this->request->get("folder_id"), Criteria::NOT_IN);
|
||||
}
|
||||
|
||||
|
||||
$exclude = $this->getExclude();
|
||||
|
||||
if (!is_null($exclude)) {
|
||||
@@ -111,7 +108,7 @@ class Folder extends BaseLoop
|
||||
|
||||
$orders = $this->getOrder();
|
||||
|
||||
foreach($orders as $order) {
|
||||
foreach ($orders as $order) {
|
||||
switch ($order) {
|
||||
case "alpha":
|
||||
$search->addAscendingOrderByColumn(\Thelia\Model\Map\FolderI18nTableMap::TITLE);
|
||||
@@ -157,22 +154,22 @@ class Folder extends BaseLoop
|
||||
$loopResultRow = new LoopResultRow();
|
||||
|
||||
$loopResultRow
|
||||
->set("ID", $folder->getId())
|
||||
->set("TITLE",$folder->getTitle())
|
||||
->set("CHAPO", $folder->getChapo())
|
||||
->set("DESCRIPTION", $folder->getDescription())
|
||||
->set("POSTSCRIPTUM", $folder->getPostscriptum())
|
||||
->set("PARENT", $folder->getParent())
|
||||
->set("CONTENT_COUNT", $folder->countChild())
|
||||
->set("VISIBLE", $folder->getVisible() ? "1" : "0")
|
||||
->set("POSITION", $folder->getPosition())
|
||||
->set("ID", $folder->getId())
|
||||
->set("TITLE",$folder->getTitle())
|
||||
->set("CHAPO", $folder->getChapo())
|
||||
->set("DESCRIPTION", $folder->getDescription())
|
||||
->set("POSTSCRIPTUM", $folder->getPostscriptum())
|
||||
->set("PARENT", $folder->getParent())
|
||||
->set("CONTENT_COUNT", $folder->countChild())
|
||||
->set("VISIBLE", $folder->getVisible() ? "1" : "0")
|
||||
->set("POSITION", $folder->getPosition())
|
||||
|
||||
->set("CREATE_DATE", $folder->getCreatedAt())
|
||||
->set("UPDATE_DATE", $folder->getUpdatedAt())
|
||||
->set("VERSION", $folder->getVersion())
|
||||
->set("VERSION_DATE", $folder->getVersionCreatedAt())
|
||||
->set("VERSION_AUTHOR", $folder->getVersionCreatedBy())
|
||||
;
|
||||
->set("CREATE_DATE", $folder->getCreatedAt())
|
||||
->set("UPDATE_DATE", $folder->getUpdatedAt())
|
||||
->set("VERSION", $folder->getVersion())
|
||||
->set("VERSION_DATE", $folder->getVersionCreatedAt())
|
||||
->set("VERSION_AUTHOR", $folder->getVersionCreatedBy())
|
||||
;
|
||||
|
||||
$loopResult->addRow($loopResultRow);
|
||||
}
|
||||
@@ -180,3 +177,4 @@ class Folder extends BaseLoop
|
||||
return $loopResult;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
43
documentation/api/files/Core/Template/Loop/Lang.php.txt
Normal file → Executable file
43
documentation/api/files/Core/Template/Loop/Lang.php.txt
Normal file → Executable file
@@ -30,8 +30,6 @@ use Thelia\Core\Template\Element\LoopResultRow;
|
||||
|
||||
use Thelia\Core\Template\Loop\Argument\Argument;
|
||||
|
||||
use Thelia\Type\TypeCollection;
|
||||
use Thelia\Type;
|
||||
use Thelia\Model\LangQuery;
|
||||
use Thelia\Core\Template\Loop\Argument\ArgumentCollection;
|
||||
|
||||
@@ -66,20 +64,20 @@ class Lang extends BaseLoop
|
||||
*/
|
||||
public function exec(&$pagination)
|
||||
{
|
||||
$id = $this->getId();
|
||||
$exclude = $this->getExclude();
|
||||
$default_only = $this->getDefaultOnly();
|
||||
$id = $this->getId();
|
||||
$exclude = $this->getExclude();
|
||||
$default_only = $this->getDefaultOnly();
|
||||
|
||||
$search = LangQuery::create();
|
||||
|
||||
if (! is_null($id))
|
||||
$search->filterById($id);
|
||||
$search->filterById($id);
|
||||
|
||||
if ($default_only)
|
||||
$search->filterByByDefault(true);
|
||||
$search->filterByByDefault(true);
|
||||
|
||||
if (! is_null($exclude)) {
|
||||
$search->filterById($exclude, Criteria::NOT_IN);
|
||||
$search->filterById($exclude, Criteria::NOT_IN);
|
||||
}
|
||||
|
||||
$search->orderByPosition(Criteria::ASC);
|
||||
@@ -90,25 +88,26 @@ class Lang extends BaseLoop
|
||||
|
||||
foreach ($results as $result) {
|
||||
|
||||
$loopResultRow = new LoopResultRow();
|
||||
$loopResultRow = new LoopResultRow();
|
||||
|
||||
$loopResultRow
|
||||
->set("ID", $result->getId())
|
||||
->set("TITLE",$result->getTitle())
|
||||
->set("CODE", $result->getCode())
|
||||
->set("LOCALE", $result->getLocale())
|
||||
->set("URL", $result->getUrl())
|
||||
->set("IS_DEFAULT", $result->getByDefault())
|
||||
->set("URL", $result->getUrl())
|
||||
->set("POSITION", $result->getPosition())
|
||||
$loopResultRow
|
||||
->set("ID", $result->getId())
|
||||
->set("TITLE",$result->getTitle())
|
||||
->set("CODE", $result->getCode())
|
||||
->set("LOCALE", $result->getLocale())
|
||||
->set("URL", $result->getUrl())
|
||||
->set("IS_DEFAULT", $result->getByDefault())
|
||||
->set("URL", $result->getUrl())
|
||||
->set("POSITION", $result->getPosition())
|
||||
|
||||
->set("CREATE_DATE", $result->getCreatedAt())
|
||||
->set("UPDATE_DATE", $result->getUpdatedAt())
|
||||
;
|
||||
->set("CREATE_DATE", $result->getCreatedAt())
|
||||
->set("UPDATE_DATE", $result->getUpdatedAt())
|
||||
;
|
||||
|
||||
$loopResult->addRow($loopResultRow);
|
||||
$loopResult->addRow($loopResultRow);
|
||||
}
|
||||
|
||||
return $loopResult;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
7
documentation/api/files/Core/Template/Loop/Order.php.txt
Normal file → Executable file
7
documentation/api/files/Core/Template/Loop/Order.php.txt
Normal file → Executable file
@@ -25,14 +25,10 @@ namespace Thelia\Core\Template\Loop;
|
||||
|
||||
use Thelia\Core\Template\Element\BaseLoop;
|
||||
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\Type\TypeCollection;
|
||||
use Thelia\Type;
|
||||
|
||||
/**
|
||||
*
|
||||
* @package Thelia\Core\Template\Loop
|
||||
@@ -53,7 +49,8 @@ class Order extends BaseLoop
|
||||
*/
|
||||
public function exec(&$pagination)
|
||||
{
|
||||
// TODO : a coder !
|
||||
// TODO : a coder !
|
||||
return new LoopResult();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
7
documentation/api/files/Core/Template/Loop/OrderStatus.php.txt
Normal file → Executable file
7
documentation/api/files/Core/Template/Loop/OrderStatus.php.txt
Normal file → Executable file
@@ -25,14 +25,10 @@ namespace Thelia\Core\Template\Loop;
|
||||
|
||||
use Thelia\Core\Template\Element\BaseLoop;
|
||||
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\Type\TypeCollection;
|
||||
use Thelia\Type;
|
||||
|
||||
/**
|
||||
*
|
||||
* @package Thelia\Core\Template\Loop
|
||||
@@ -53,7 +49,8 @@ class OrderStatus extends BaseLoop
|
||||
*/
|
||||
public function exec(&$pagination)
|
||||
{
|
||||
// TODO : a coder !
|
||||
// TODO : a coder !
|
||||
return new LoopResult();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
72
documentation/api/files/Core/Template/Loop/Product.php.txt
Normal file → Executable file
72
documentation/api/files/Core/Template/Loop/Product.php.txt
Normal file → Executable file
@@ -24,20 +24,14 @@
|
||||
namespace Thelia\Core\Template\Loop;
|
||||
|
||||
use Propel\Runtime\ActiveQuery\Criteria;
|
||||
use Propel\Runtime\ActiveQuery\Join;
|
||||
use Thelia\Core\Template\Element\BaseLoop;
|
||||
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\Log\Tlog;
|
||||
|
||||
use Thelia\Model\Base\FeatureProductQuery;
|
||||
use Thelia\Model\CategoryQuery;
|
||||
use Thelia\Model\FeatureAvQuery;
|
||||
use Thelia\Model\FeatureQuery;
|
||||
use Thelia\Model\Map\FeatureProductTableMap;
|
||||
use Thelia\Model\Map\ProductTableMap;
|
||||
use Thelia\Model\ProductCategoryQuery;
|
||||
use Thelia\Model\ProductQuery;
|
||||
@@ -130,15 +124,15 @@ class Product extends BaseLoop
|
||||
$search->filterByRef($ref, Criteria::IN);
|
||||
}
|
||||
|
||||
$category = $this->getCategory();
|
||||
$category = $this->getCategory();
|
||||
|
||||
if (!is_null($category)) {
|
||||
$categories = CategoryQuery::create()->filterById($category, Criteria::IN)->find();
|
||||
|
||||
$depth = $this->getDepth();
|
||||
|
||||
if(null !== $depth) {
|
||||
foreach(CategoryQuery::findAllChild($category, $depth) as $subCategory) {
|
||||
if (null !== $depth) {
|
||||
foreach (CategoryQuery::findAllChild($category, $depth) as $subCategory) {
|
||||
$categories->prepend($subCategory);
|
||||
}
|
||||
}
|
||||
@@ -153,7 +147,7 @@ class Product extends BaseLoop
|
||||
|
||||
if ($new === true) {
|
||||
$search->filterByNewness(1, Criteria::EQUAL);
|
||||
} else if($new === false) {
|
||||
} elseif ($new === false) {
|
||||
$search->filterByNewness(0, Criteria::EQUAL);
|
||||
}
|
||||
|
||||
@@ -161,7 +155,7 @@ class Product extends BaseLoop
|
||||
|
||||
if ($promo === true) {
|
||||
$search->filterByPromo(1, Criteria::EQUAL);
|
||||
} else if($promo === false) {
|
||||
} elseif ($promo === false) {
|
||||
$search->filterByNewness(0, Criteria::EQUAL);
|
||||
}
|
||||
|
||||
@@ -173,7 +167,7 @@ class Product extends BaseLoop
|
||||
|
||||
$min_price = $this->getMin_price();*/
|
||||
|
||||
//if(null !== $min_price) {
|
||||
//if (null !== $min_price) {
|
||||
/**
|
||||
* Following should work but does not :
|
||||
*
|
||||
@@ -190,7 +184,7 @@ class Product extends BaseLoop
|
||||
|
||||
$max_price = $this->getMax_price();*/
|
||||
|
||||
//if(null !== $max_price) {
|
||||
//if (null !== $max_price) {
|
||||
/**
|
||||
* Following should work but does not :
|
||||
*
|
||||
@@ -207,13 +201,13 @@ class Product extends BaseLoop
|
||||
|
||||
/*$min_weight = $this->getMin_weight();
|
||||
|
||||
if(null !== $min_weight) {
|
||||
if (null !== $min_weight) {
|
||||
$search->filterByWeight($min_weight, Criteria::GREATER_EQUAL);
|
||||
}
|
||||
|
||||
$max_weight = $this->getMax_weight();
|
||||
|
||||
if(null !== $max_weight) {
|
||||
if (null !== $max_weight) {
|
||||
$search->filterByWeight($max_weight, Criteria::LESS_EQUAL);
|
||||
}*/
|
||||
|
||||
@@ -221,7 +215,7 @@ class Product extends BaseLoop
|
||||
|
||||
if ($current === true) {
|
||||
$search->filterById($this->request->get("product_id"));
|
||||
} elseif($current === false) {
|
||||
} elseif ($current === false) {
|
||||
$search->filterById($this->request->get("product_id"), Criteria::NOT_IN);
|
||||
}
|
||||
|
||||
@@ -238,7 +232,7 @@ class Product extends BaseLoop
|
||||
)->find(),
|
||||
Criteria::IN
|
||||
);
|
||||
} elseif($current_category === false) {
|
||||
} elseif ($current_category === false) {
|
||||
$search->filterByCategory(
|
||||
CategoryQuery::create()->filterByProduct(
|
||||
ProductCategoryQuery::create()->filterByProductId(
|
||||
@@ -257,7 +251,7 @@ class Product extends BaseLoop
|
||||
|
||||
$orders = $this->getOrder();
|
||||
|
||||
foreach($orders as $order) {
|
||||
foreach ($orders as $order) {
|
||||
switch ($order) {
|
||||
case "alpha":
|
||||
$search->addAscendingOrderByColumn(\Thelia\Model\Map\ProductI18nTableMap::TITLE);
|
||||
@@ -293,7 +287,7 @@ class Product extends BaseLoop
|
||||
case "given_id":
|
||||
if(null === $id)
|
||||
throw new \InvalidArgumentException('Given_id order cannot be set without `id` argument');
|
||||
foreach($id as $singleId) {
|
||||
foreach ($id as $singleId) {
|
||||
$givenIdMatched = 'given_id_matched_' . $singleId;
|
||||
$search->withColumn(ProductTableMap::ID . "='$singleId'", $givenIdMatched);
|
||||
$search->orderBy($givenIdMatched, Criteria::DESC);
|
||||
@@ -323,9 +317,9 @@ class Product extends BaseLoop
|
||||
|
||||
$feature_available = $this->getFeature_available();
|
||||
|
||||
if(null !== $feature_available) {
|
||||
foreach($feature_available as $feature => $feature_choice) {
|
||||
foreach($feature_choice['values'] as $feature_av) {
|
||||
if (null !== $feature_available) {
|
||||
foreach ($feature_available as $feature => $feature_choice) {
|
||||
foreach ($feature_choice['values'] as $feature_av) {
|
||||
$featureAlias = 'fa_' . $feature;
|
||||
if($feature_av != '*')
|
||||
$featureAlias .= '_' . $feature_av;
|
||||
@@ -337,7 +331,7 @@ class Product extends BaseLoop
|
||||
|
||||
/* format for mysql */
|
||||
$sqlWhereString = $feature_choice['expression'];
|
||||
if($sqlWhereString == '*') {
|
||||
if ($sqlWhereString == '*') {
|
||||
$sqlWhereString = 'NOT ISNULL(`fa_' . $feature . '`.ID)';
|
||||
} else {
|
||||
$sqlWhereString = preg_replace('#([0-9]+)#', 'NOT ISNULL(`fa_' . $feature . '_' . '\1`.ID)', $sqlWhereString);
|
||||
@@ -351,9 +345,9 @@ class Product extends BaseLoop
|
||||
|
||||
$feature_values = $this->getFeature_values();
|
||||
|
||||
if(null !== $feature_values) {
|
||||
foreach($feature_values as $feature => $feature_choice) {
|
||||
foreach($feature_choice['values'] as $feature_value) {
|
||||
if (null !== $feature_values) {
|
||||
foreach ($feature_values as $feature => $feature_choice) {
|
||||
foreach ($feature_choice['values'] as $feature_value) {
|
||||
$featureAlias = 'fv_' . $feature;
|
||||
if($feature_value != '*')
|
||||
$featureAlias .= '_' . $feature_value;
|
||||
@@ -365,7 +359,7 @@ class Product extends BaseLoop
|
||||
|
||||
/* format for mysql */
|
||||
$sqlWhereString = $feature_choice['expression'];
|
||||
if($sqlWhereString == '*') {
|
||||
if ($sqlWhereString == '*') {
|
||||
$sqlWhereString = 'NOT ISNULL(`fv_' . $feature . '`.ID)';
|
||||
} else {
|
||||
$sqlWhereString = preg_replace('#([a-zA-Z0-9_\-]+)#', 'NOT ISNULL(`fv_' . $feature . '_' . '\1`.ID)', $sqlWhereString);
|
||||
@@ -398,18 +392,18 @@ class Product extends BaseLoop
|
||||
$loopResultRow = new LoopResultRow();
|
||||
|
||||
$loopResultRow->set("ID", $product->getId())
|
||||
->set("REF",$product->getRef())
|
||||
->set("TITLE",$product->getTitle())
|
||||
->set("CHAPO", $product->getChapo())
|
||||
->set("DESCRIPTION", $product->getDescription())
|
||||
->set("POSTSCRIPTUM", $product->getPostscriptum())
|
||||
//->set("PRICE", $product->getPrice())
|
||||
//->set("PROMO_PRICE", $product->getPrice2())
|
||||
//->set("WEIGHT", $product->getWeight())
|
||||
//->set("PROMO", $product->getPromo())
|
||||
//->set("NEW", $product->getNewness())
|
||||
->set("POSITION", $product->getPosition())
|
||||
;
|
||||
->set("REF",$product->getRef())
|
||||
->set("TITLE",$product->getTitle())
|
||||
->set("CHAPO", $product->getChapo())
|
||||
->set("DESCRIPTION", $product->getDescription())
|
||||
->set("POSTSCRIPTUM", $product->getPostscriptum())
|
||||
//->set("PRICE", $product->getPrice())
|
||||
//->set("PROMO_PRICE", $product->getPrice2())
|
||||
//->set("WEIGHT", $product->getWeight())
|
||||
//->set("PROMO", $product->getPromo())
|
||||
//->set("NEW", $product->getNewness())
|
||||
->set("POSITION", $product->getPosition())
|
||||
;
|
||||
|
||||
$loopResult->addRow($loopResultRow);
|
||||
}
|
||||
|
||||
6
documentation/api/files/Core/Template/Loop/Title.php.txt
Normal file → Executable file
6
documentation/api/files/Core/Template/Loop/Title.php.txt
Normal file → Executable file
@@ -30,12 +30,9 @@ use Thelia\Core\Template\Element\LoopResultRow;
|
||||
|
||||
use Thelia\Core\Template\Loop\Argument\ArgumentCollection;
|
||||
use Thelia\Core\Template\Loop\Argument\Argument;
|
||||
use Thelia\Log\Tlog;
|
||||
|
||||
use Thelia\Model\CustomerTitleQuery;
|
||||
use Thelia\Model\ConfigQuery;
|
||||
use Thelia\Type\TypeCollection;
|
||||
use Thelia\Type;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -67,7 +64,7 @@ class Title extends BaseLoop
|
||||
{
|
||||
$search = CustomerTitleQuery::create();
|
||||
|
||||
$id = $this->getId();
|
||||
$id = $this->getId();
|
||||
|
||||
if (null !== $id) {
|
||||
$search->filterById($id, Criteria::IN);
|
||||
@@ -103,3 +100,4 @@ class Title extends BaseLoop
|
||||
return $loopResult;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
95
documentation/api/files/Core/Template/ParserContext.php.txt
Normal file → Executable file
95
documentation/api/files/Core/Template/ParserContext.php.txt
Normal file → Executable file
@@ -35,63 +35,68 @@ use Thelia\Form\BaseForm;
|
||||
*/
|
||||
class ParserContext implements \IteratorAggregate
|
||||
{
|
||||
private $store = array();
|
||||
private $store = array();
|
||||
|
||||
public function __construct(Request $request) {
|
||||
public function __construct(Request $request)
|
||||
{
|
||||
// Setup basic variables
|
||||
$this
|
||||
->set('BASE_URL' , ConfigQuery::read('base_url', '/'))
|
||||
->set('INDEX_PAGE' , URL::getIndexPage())
|
||||
->set('RETURN_TO_URL' , URL::absoluteUrl($request->getSession()->getReturnToUrl()))
|
||||
->set('THELIA_VERSION' , ConfigQuery::read('thelia_version', 'undefined'))
|
||||
;
|
||||
}
|
||||
|
||||
// Setup basic variables
|
||||
$this
|
||||
->set('BASE_URL' , ConfigQuery::read('base_url', '/'))
|
||||
->set('INDEX_PAGE' , URL::getIndexPage())
|
||||
->set('RETURN_TO_URL' , URL::absoluteUrl($request->getSession()->getReturnToUrl()))
|
||||
->set('THELIA_VERSION' , ConfigQuery::read('thelia_version', 'undefined'))
|
||||
;
|
||||
}
|
||||
// -- Error form -----------------------------------------------------------
|
||||
|
||||
// -- Error form -----------------------------------------------------------
|
||||
/**
|
||||
* @param BaseForm $form the errored form
|
||||
*/
|
||||
public function setErrorForm(BaseForm $form)
|
||||
{
|
||||
$this->set('error_form', $form);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param BaseForm $form the errored form
|
||||
*/
|
||||
public function setErrorForm(BaseForm $form)
|
||||
{
|
||||
$this->set('error_form', $form);
|
||||
}
|
||||
public function setGeneralError($error)
|
||||
{
|
||||
$this->set('general_error', $error);
|
||||
}
|
||||
|
||||
public function getErrorForm()
|
||||
{
|
||||
return $this->get('error_form', null);
|
||||
}
|
||||
public function getErrorForm()
|
||||
{
|
||||
return $this->get('error_form', null);
|
||||
}
|
||||
|
||||
public function clearErrorForm()
|
||||
{
|
||||
return $this->remove('error_form');
|
||||
}
|
||||
public function clearErrorForm()
|
||||
{
|
||||
return $this->remove('error_form');
|
||||
}
|
||||
|
||||
// -- Internal table manipulation ------------------------------------------
|
||||
// -- Internal table manipulation ------------------------------------------
|
||||
|
||||
public function set($name, $value)
|
||||
{
|
||||
$this->store[$name] = $value;
|
||||
public function set($name, $value)
|
||||
{
|
||||
$this->store[$name] = $value;
|
||||
|
||||
return $this;
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function remove($name)
|
||||
{
|
||||
unset($this->store[$name]);
|
||||
public function remove($name)
|
||||
{
|
||||
unset($this->store[$name]);
|
||||
|
||||
return $this;
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function get($name, $default = null)
|
||||
{
|
||||
return isset($this->store[$name]) ? $this->store[$name] : $default;
|
||||
}
|
||||
public function get($name, $default = null)
|
||||
{
|
||||
return isset($this->store[$name]) ? $this->store[$name] : $default;
|
||||
}
|
||||
|
||||
public function getIterator()
|
||||
{
|
||||
return new \ArrayIterator( $this->store );
|
||||
}
|
||||
public function getIterator()
|
||||
{
|
||||
return new \ArrayIterator( $this->store );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
0
documentation/api/files/Core/Template/ParserInterface.php.txt
Normal file → Executable file
0
documentation/api/files/Core/Template/ParserInterface.php.txt
Normal file → Executable file
108
documentation/api/files/Core/Template/Smarty/AbstractSmartyPlugin.php.txt
Normal file → Executable file
108
documentation/api/files/Core/Template/Smarty/AbstractSmartyPlugin.php.txt
Normal file → Executable file
@@ -32,70 +32,68 @@ namespace Thelia\Core\Template\Smarty;
|
||||
*/
|
||||
abstract class AbstractSmartyPlugin
|
||||
{
|
||||
/**
|
||||
* Explode a comma separated list in a array, trimming all array elements
|
||||
*
|
||||
* @param unknown $commaSeparatedValues
|
||||
* @return multitype:
|
||||
*/
|
||||
protected function _explode($commaSeparatedValues)
|
||||
{
|
||||
$array = explode(',', $commaSeparatedValues);
|
||||
/**
|
||||
* Explode a comma separated list in a array, trimming all array elements
|
||||
*
|
||||
* @param unknown $commaSeparatedValues
|
||||
* @return multitype:
|
||||
*/
|
||||
protected function _explode($commaSeparatedValues)
|
||||
{
|
||||
$array = explode(',', $commaSeparatedValues);
|
||||
|
||||
if (array_walk($array, function(&$item) {
|
||||
$item = strtoupper(trim($item));
|
||||
})) {
|
||||
return $array;
|
||||
}
|
||||
if (array_walk($array, function(&$item) {
|
||||
$item = strtoupper(trim($item));
|
||||
})) {
|
||||
return $array;
|
||||
}
|
||||
|
||||
return array();
|
||||
}
|
||||
return array();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a function or block parameter value, and normalize it, trimming balnks and
|
||||
* making it lowercase
|
||||
*
|
||||
* @param array $params the parameters array
|
||||
* @param mixed $name as single parameter name, or an array of names. In this case, the first defined parameter is returned. Use this for aliases (context, ctx, c)
|
||||
* @param mixed $default the defaut value if parameter is missing (default to null)
|
||||
* @return mixed the parameter value, or the default value if it is not found.
|
||||
*/
|
||||
public function getNormalizedParam($params, $name, $default = null)
|
||||
{
|
||||
$value = $this->getParam($params, $name, $default);
|
||||
/**
|
||||
* Get a function or block parameter value, and normalize it, trimming balnks and
|
||||
* making it lowercase
|
||||
*
|
||||
* @param array $params the parameters array
|
||||
* @param mixed $name as single parameter name, or an array of names. In this case, the first defined parameter is returned. Use this for aliases (context, ctx, c)
|
||||
* @param mixed $default the defaut value if parameter is missing (default to null)
|
||||
* @return mixed the parameter value, or the default value if it is not found.
|
||||
*/
|
||||
public function getNormalizedParam($params, $name, $default = null)
|
||||
{
|
||||
$value = $this->getParam($params, $name, $default);
|
||||
|
||||
if (is_string($value)) $value = strtolower(trim($value));
|
||||
if (is_string($value)) $value = strtolower(trim($value));
|
||||
return $value;
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
/**
|
||||
* Get a function or block parameter value
|
||||
*
|
||||
* @param array $params the parameters array
|
||||
* @param mixed $name as single parameter name, or an array of names. In this case, the first defined parameter is returned. Use this for aliases (context, ctx, c)
|
||||
* @param mixed $default the defaut value if parameter is missing (default to null)
|
||||
* @return mixed the parameter value, or the default value if it is not found.
|
||||
*/
|
||||
public function getParam($params, $name, $default = null)
|
||||
{
|
||||
if (is_array($name)) {
|
||||
foreach ($name as $test) {
|
||||
if (isset($params[$test])) {
|
||||
return $params[$test];
|
||||
}
|
||||
}
|
||||
} elseif (isset($params[$name])) {
|
||||
return $params[$name];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a function or block parameter value
|
||||
*
|
||||
* @param array $params the parameters array
|
||||
* @param mixed $name as single parameter name, or an array of names. In this case, the first defined parameter is returned. Use this for aliases (context, ctx, c)
|
||||
* @param mixed $default the defaut value if parameter is missing (default to null)
|
||||
* @return mixed the parameter value, or the default value if it is not found.
|
||||
*/
|
||||
public function getParam($params, $name, $default = null)
|
||||
{
|
||||
if (is_array($name)) {
|
||||
foreach($name as $test) {
|
||||
if (isset($params[$test])) {
|
||||
return $params[$test];
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (isset($params[$name])) {
|
||||
return $params[$name];
|
||||
}
|
||||
|
||||
return $default;
|
||||
}
|
||||
return $default;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return an array of SmartyPluginDescriptor
|
||||
*/
|
||||
public abstract function getPluginDescriptors();
|
||||
abstract public function getPluginDescriptors();
|
||||
}
|
||||
|
||||
|
||||
6
documentation/api/files/Core/Template/Smarty/Assets/SmartyAssetsManager.php.txt
Normal file → Executable file
6
documentation/api/files/Core/Template/Smarty/Assets/SmartyAssetsManager.php.txt
Normal file → Executable file
@@ -24,7 +24,6 @@
|
||||
namespace Thelia\Core\Template\Smarty\Assets;
|
||||
|
||||
use Thelia\Core\Template\Assets\AsseticHelper;
|
||||
use Thelia\Model\ConfigQuery;
|
||||
use Thelia\Tools\URL;
|
||||
|
||||
class SmartyAssetsManager
|
||||
@@ -50,7 +49,8 @@ class SmartyAssetsManager
|
||||
$this->assetic_manager = new AsseticHelper();
|
||||
}
|
||||
|
||||
public function computeAssetUrl($assetType, $params, \Smarty_Internal_Template $template) {
|
||||
public function computeAssetUrl($assetType, $params, \Smarty_Internal_Template $template)
|
||||
{
|
||||
$file = $params['file'];
|
||||
$filters = isset($params['filters']) ? $params['filters'] : '';
|
||||
$debug = isset($params['debug']) ? trim(strtolower($params['debug'])) == 'true' : false;
|
||||
@@ -83,7 +83,7 @@ class SmartyAssetsManager
|
||||
{
|
||||
// Opening tag (first call only)
|
||||
if ($repeat) {
|
||||
$url = $this->computeAssetUrl($assetType, $params, $template);
|
||||
$url = $this->computeAssetUrl($assetType, $params, $template);
|
||||
|
||||
$template->assign('asset_url', $url);
|
||||
|
||||
|
||||
2
documentation/api/files/Core/Template/Smarty/Plugins/Assetic.php.txt
Normal file → Executable file
2
documentation/api/files/Core/Template/Smarty/Plugins/Assetic.php.txt
Normal file → Executable file
@@ -58,7 +58,7 @@ class Assetic extends AbstractSmartyPlugin
|
||||
|
||||
public function functionImage($params, \Smarty_Internal_Template $template)
|
||||
{
|
||||
return $this->assetManager->computeAssetUrl(SmartyAssetsManager::ASSET_TYPE_AUTO, $params, $template);
|
||||
return $this->assetManager->computeAssetUrl(SmartyAssetsManager::ASSET_TYPE_AUTO, $params, $template);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
51
documentation/api/files/Core/Template/Smarty/Plugins/DataAccessFunctions.php.txt
Normal file → Executable file
51
documentation/api/files/Core/Template/Smarty/Plugins/DataAccessFunctions.php.txt
Normal file → Executable file
@@ -35,24 +35,24 @@ use Thelia\Core\Template\Smarty\SmartyPluginDescriptor;
|
||||
*/
|
||||
class DataAccessFunctions extends AbstractSmartyPlugin
|
||||
{
|
||||
private $securityContext;
|
||||
protected $parserContext;
|
||||
private $securityContext;
|
||||
protected $parserContext;
|
||||
|
||||
public function __construct(SecurityContext $securityContext, ParserContext $parserContext)
|
||||
{
|
||||
$this->securityContext = $securityContext;
|
||||
}
|
||||
public function __construct(SecurityContext $securityContext, ParserContext $parserContext)
|
||||
{
|
||||
$this->securityContext = $securityContext;
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides access to the current logged administrator attributes using the accessors.
|
||||
*
|
||||
* @param array $params
|
||||
* @param array $params
|
||||
* @param unknown $smarty
|
||||
* @return string the value of the requested attribute
|
||||
* @return string the value of the requested attribute
|
||||
*/
|
||||
public function adminDataAccess($params, &$smarty)
|
||||
{
|
||||
return $this->userDataAccess("Admin User", SecurityContext::CONTEXT_BACK_OFFICE, $params);
|
||||
return $this->userDataAccess("Admin User", SecurityContext::CONTEXT_BACK_OFFICE, $params);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -64,38 +64,37 @@ class DataAccessFunctions extends AbstractSmartyPlugin
|
||||
*/
|
||||
public function customerDataAccess($params, &$smarty)
|
||||
{
|
||||
return $this->userDataAccess("Customer User", SecurityContext::CONTEXT_FRONT_OFFICE, $params);
|
||||
return $this->userDataAccess("Customer User", SecurityContext::CONTEXT_FRONT_OFFICE, $params);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Provides access to user attributes using the accessors.
|
||||
*
|
||||
* @param array $params
|
||||
* @param unknown $smarty
|
||||
* @return string the value of the requested attribute
|
||||
* @param array $params
|
||||
* @param unknown $smarty
|
||||
* @return string the value of the requested attribute
|
||||
* @throws InvalidArgumentException if the object does not have the requested attribute.
|
||||
*/
|
||||
protected function userDataAccess($objectLabel, $context, $params)
|
||||
{
|
||||
$attribute = $this->getNormalizedParam($params, array('attribute', 'attrib', 'attr'));
|
||||
$attribute = $this->getNormalizedParam($params, array('attribute', 'attrib', 'attr'));
|
||||
|
||||
if (! empty($attribute)) {
|
||||
$user = $this->securityContext->setContext($context)->getUser();
|
||||
if (! empty($attribute)) {
|
||||
$user = $this->securityContext->setContext($context)->getUser();
|
||||
|
||||
if (null != $user) {
|
||||
$getter = sprintf("get%s", ucfirst($attribute));
|
||||
if (null != $user) {
|
||||
$getter = sprintf("get%s", ucfirst($attribute));
|
||||
|
||||
if (method_exists($user, $getter)) {
|
||||
return $user->$getter();
|
||||
}
|
||||
if (method_exists($user, $getter)) {
|
||||
return $user->$getter();
|
||||
}
|
||||
|
||||
throw new \InvalidArgumentException(sprintf("%s has no '%s' attribute", $objectLabel, $attribute));
|
||||
throw new \InvalidArgumentException(sprintf("%s has no '%s' attribute", $objectLabel, $attribute));
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return '';
|
||||
return '';
|
||||
}
|
||||
/**
|
||||
* Define the various smarty plugins hendled by this class
|
||||
|
||||
75
documentation/api/files/Core/Template/Smarty/Plugins/Form.php.txt
Normal file → Executable file
75
documentation/api/files/Core/Template/Smarty/Plugins/Form.php.txt
Normal file → Executable file
@@ -28,7 +28,6 @@ use Thelia\Core\Template\Element\Exception\ElementNotFoundException;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Thelia\Core\Template\Smarty\SmartyPluginDescriptor;
|
||||
use Thelia\Core\Template\Smarty\AbstractSmartyPlugin;
|
||||
use Thelia\Log\Tlog;
|
||||
use Thelia\Core\Template\ParserContext;
|
||||
|
||||
/**
|
||||
@@ -85,7 +84,7 @@ class Form extends AbstractSmartyPlugin
|
||||
{
|
||||
if ($repeat) {
|
||||
|
||||
$name = $this->getParam($params, 'name');
|
||||
$name = $this->getParam($params, 'name');
|
||||
|
||||
if (null == $name) {
|
||||
throw new \InvalidArgumentException("Missing 'name' parameter in form arguments");
|
||||
@@ -98,11 +97,11 @@ class Form extends AbstractSmartyPlugin
|
||||
|
||||
if (null != $errorForm && $errorForm->getName() == $instance->getName()) {
|
||||
|
||||
// Re-use the errored form
|
||||
$instance = $errorForm;
|
||||
// Re-use the errored form
|
||||
$instance = $errorForm;
|
||||
|
||||
// Don't do that, as we may want to use this form firther in the template code
|
||||
//$this->parserContext->clearErrorForm();
|
||||
// Don't do that, as we may want to use this form firther in the template code
|
||||
//$this->parserContext->clearErrorForm();
|
||||
}
|
||||
|
||||
$instance->createView();
|
||||
@@ -111,8 +110,7 @@ class Form extends AbstractSmartyPlugin
|
||||
|
||||
$template->assign("form_error", $instance->hasError() ? true : false);
|
||||
$template->assign("form_error_message", $instance->getErrorMessage());
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
return $content;
|
||||
}
|
||||
}
|
||||
@@ -121,7 +119,7 @@ class Form extends AbstractSmartyPlugin
|
||||
{
|
||||
if ($repeat) {
|
||||
|
||||
$formFieldView = $this->getFormFieldView($params);
|
||||
$formFieldView = $this->getFormFieldView($params);
|
||||
|
||||
$template->assign("options", $formFieldView->vars);
|
||||
$template->assign("name", $formFieldView->vars["full_name"]);
|
||||
@@ -133,7 +131,7 @@ class Form extends AbstractSmartyPlugin
|
||||
$template->assign("error", empty($errors) ? false : true);
|
||||
|
||||
if (! empty($errors)) {
|
||||
$this->assignFieldErrorVars($template, $errors);
|
||||
$this->assignFieldErrorVars($template, $errors);
|
||||
}
|
||||
|
||||
$attr = array();
|
||||
@@ -145,8 +143,7 @@ class Form extends AbstractSmartyPlugin
|
||||
$template->assign("attr", implode(" ", $attr));
|
||||
|
||||
$formFieldView->setRendered();
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
return $content;
|
||||
}
|
||||
}
|
||||
@@ -155,7 +152,7 @@ class Form extends AbstractSmartyPlugin
|
||||
{
|
||||
$field = '<input type="hidden" name="%s" value="%s">';
|
||||
|
||||
$instance = $this->getInstanceFromParams($params);
|
||||
$instance = $this->getInstanceFromParams($params);
|
||||
|
||||
$formView = $instance->getView();
|
||||
|
||||
@@ -172,7 +169,7 @@ class Form extends AbstractSmartyPlugin
|
||||
|
||||
public function formEnctype($params, \Smarty_Internal_Template $template)
|
||||
{
|
||||
$instance = $this->getInstanceFromParams($params);
|
||||
$instance = $this->getInstanceFromParams($params);
|
||||
|
||||
$formView = $instance->getForm();
|
||||
|
||||
@@ -183,18 +180,17 @@ class Form extends AbstractSmartyPlugin
|
||||
|
||||
public function formError($params, $content, \Smarty_Internal_Template $template, &$repeat)
|
||||
{
|
||||
$formFieldView = $this->getFormFieldView($params);
|
||||
$formFieldView = $this->getFormFieldView($params);
|
||||
|
||||
$errors = $formFieldView->vars["errors"];
|
||||
$errors = $formFieldView->vars["errors"];
|
||||
|
||||
if (empty($errors)) {
|
||||
return "";
|
||||
}
|
||||
|
||||
if ($repeat) {
|
||||
$this->assignFieldErrorVars($template, $errors);
|
||||
}
|
||||
else {
|
||||
$this->assignFieldErrorVars($template, $errors);
|
||||
} else {
|
||||
return $content;
|
||||
}
|
||||
}
|
||||
@@ -202,45 +198,46 @@ class Form extends AbstractSmartyPlugin
|
||||
|
||||
protected function assignFieldErrorVars(\Smarty_Internal_Template $template, array $errors)
|
||||
{
|
||||
$template->assign("message", $errors[0]->getMessage());
|
||||
$template->assign("parameters", $errors[0]->getMessageParameters());
|
||||
$template->assign("pluralization", $errors[0]->getMessagePluralization());
|
||||
$template->assign("message", $errors[0]->getMessage());
|
||||
$template->assign("parameters", $errors[0]->getMessageParameters());
|
||||
$template->assign("pluralization", $errors[0]->getMessagePluralization());
|
||||
}
|
||||
|
||||
protected function isHidden(FormView $formView)
|
||||
{
|
||||
return array_search("hidden", $formView->vars["block_prefixes"]);
|
||||
return array_search("hidden", $formView->vars["block_prefixes"]);
|
||||
}
|
||||
|
||||
protected function getFormFieldView($params) {
|
||||
$instance = $this->getInstanceFromParams($params);
|
||||
protected function getFormFieldView($params)
|
||||
{
|
||||
$instance = $this->getInstanceFromParams($params);
|
||||
|
||||
$fieldName = $this->getParam($params, 'field');
|
||||
$fieldName = $this->getParam($params, 'field');
|
||||
|
||||
if (null == $fieldName)
|
||||
throw new \InvalidArgumentException("'field' parameter is missing");
|
||||
if (null == $fieldName)
|
||||
throw new \InvalidArgumentException("'field' parameter is missing");
|
||||
|
||||
|
||||
if (empty($instance->getView()[$fieldName]))
|
||||
throw new \InvalidArgumentException(sprintf("Field name '%s' not found in form %s", $fieldName, $instance->getName()));
|
||||
throw new \InvalidArgumentException(sprintf("Field name '%s' not found in form %s", $fieldName, $instance->getName()));
|
||||
|
||||
return $instance->getView()[$fieldName];
|
||||
}
|
||||
|
||||
protected function getInstanceFromParams($params) {
|
||||
protected function getInstanceFromParams($params)
|
||||
{
|
||||
$instance = $this->getParam($params, 'form');
|
||||
|
||||
$instance = $this->getParam($params, 'form');
|
||||
if (null == $instance) {
|
||||
throw new \InvalidArgumentException("Missing 'form' parameter in form arguments");
|
||||
}
|
||||
|
||||
if (null == $instance) {
|
||||
throw new \InvalidArgumentException("Missing 'form' parameter in form arguments");
|
||||
}
|
||||
|
||||
if (! $instance instanceof \Thelia\Form\BaseForm) {
|
||||
throw new \InvalidArgumentException(sprintf("form parameter in form_field block must be an instance of
|
||||
if (! $instance instanceof \Thelia\Form\BaseForm) {
|
||||
throw new \InvalidArgumentException(sprintf("form parameter in form_field block must be an instance of
|
||||
\Thelia\Form\BaseForm, instance of %s found", get_class($instance)));
|
||||
}
|
||||
}
|
||||
|
||||
return $instance;
|
||||
return $instance;
|
||||
}
|
||||
|
||||
protected function createInstance($name)
|
||||
|
||||
0
documentation/api/files/Core/Template/Smarty/Plugins/Module.php.txt
Normal file → Executable file
0
documentation/api/files/Core/Template/Smarty/Plugins/Module.php.txt
Normal file → Executable file
51
documentation/api/files/Core/Template/Smarty/Plugins/Security.php.txt
Normal file → Executable file
51
documentation/api/files/Core/Template/Smarty/Plugins/Security.php.txt
Normal file → Executable file
@@ -25,54 +25,53 @@ namespace Thelia\Core\Template\Smarty\Plugins;
|
||||
|
||||
use Thelia\Core\Template\Smarty\SmartyPluginDescriptor;
|
||||
use Thelia\Core\Template\Smarty\AbstractSmartyPlugin;
|
||||
use Thelia\Core\Template\Smarty\Assets\SmartyAssetsManager;
|
||||
use Thelia\Core\Security\SecurityContext;
|
||||
use Thelia\Core\Security\Exception\AuthenticationException;
|
||||
|
||||
class Security extends AbstractSmartyPlugin
|
||||
{
|
||||
private $securityContext;
|
||||
private $securityContext;
|
||||
|
||||
public function __construct(SecurityContext $securityContext)
|
||||
{
|
||||
$this->securityContext = $securityContext;
|
||||
}
|
||||
public function __construct(SecurityContext $securityContext)
|
||||
{
|
||||
$this->securityContext = $securityContext;
|
||||
}
|
||||
|
||||
/**
|
||||
* Process security check function
|
||||
*
|
||||
* @param array $params
|
||||
* @param array $params
|
||||
* @param unknown $smarty
|
||||
* @return string no text is returned.
|
||||
* @return string no text is returned.
|
||||
*/
|
||||
public function checkAuthFunction($params, &$smarty)
|
||||
{
|
||||
// Context: 'front' or 'admin'
|
||||
$context = $this->getNormalizedParam($params, 'context');
|
||||
// Context: 'front' or 'admin'
|
||||
$context = $this->getNormalizedParam($params, 'context');
|
||||
|
||||
$this->securityContext->setContext($context);
|
||||
$this->securityContext->setContext($context);
|
||||
|
||||
$roles = $this->_explode($this->getParam($params, 'roles'));
|
||||
$permissions = $this->_explode($this->getParam($params, 'permissions'));
|
||||
$roles = $this->_explode($this->getParam($params, 'roles'));
|
||||
$permissions = $this->_explode($this->getParam($params, 'permissions'));
|
||||
|
||||
if (! $this->securityContext->isGranted($roles, $permissions)) {
|
||||
if (! $this->securityContext->isGranted($roles, $permissions)) {
|
||||
|
||||
$ex = new AuthenticationException(
|
||||
sprintf("User not granted for roles '%s', permissions '%s' in context '%s'.",
|
||||
implode(',', $roles), implode(',', $permissions), $context
|
||||
)
|
||||
);
|
||||
$ex = new AuthenticationException(
|
||||
sprintf("User not granted for roles '%s', permissions '%s' in context '%s'.",
|
||||
implode(',', $roles), implode(',', $permissions), $context
|
||||
)
|
||||
);
|
||||
|
||||
$loginTpl = $this->getParam($params, 'login_tpl');
|
||||
$loginTpl = $this->getParam($params, 'login_tpl');
|
||||
|
||||
if (null != $loginTpl) {
|
||||
$ex->setLoginTemplate($loginTpl);
|
||||
}
|
||||
if (null != $loginTpl) {
|
||||
$ex->setLoginTemplate($loginTpl);
|
||||
}
|
||||
|
||||
throw $ex;
|
||||
}
|
||||
throw $ex;
|
||||
}
|
||||
|
||||
return '';
|
||||
return '';
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
90
documentation/api/files/Core/Template/Smarty/Plugins/TheliaLoop.php.txt
Normal file → Executable file
90
documentation/api/files/Core/Template/Smarty/Plugins/TheliaLoop.php.txt
Normal file → Executable file
@@ -61,7 +61,7 @@ class TheliaLoop extends AbstractSmartyPlugin
|
||||
*/
|
||||
public static function getPagination($loopId)
|
||||
{
|
||||
if(!empty(self::$pagination[$loopId])) {
|
||||
if (!empty(self::$pagination[$loopId])) {
|
||||
return self::$pagination[$loopId];
|
||||
} else {
|
||||
return null;
|
||||
@@ -73,18 +73,18 @@ class TheliaLoop extends AbstractSmartyPlugin
|
||||
*/
|
||||
public function theliaCount($params, $template)
|
||||
{
|
||||
$type = $this->getParam($params, 'type');
|
||||
$type = $this->getParam($params, 'type');
|
||||
|
||||
if (null == $type)
|
||||
if (null == $type)
|
||||
throw new \InvalidArgumentException("Missing 'type' parameter in count arguments");
|
||||
|
||||
$loop = $this->createLoopInstance($params);
|
||||
|
||||
$dummy = null;
|
||||
|
||||
$loopResults = $loop->exec($dummy);
|
||||
$loopResults = $loop->exec($dummy);
|
||||
|
||||
return $loopResults->valid() ? $loopResults->getCount() : 0;
|
||||
return $loopResults->valid() ? $loopResults->getCount() : 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -99,7 +99,7 @@ class TheliaLoop extends AbstractSmartyPlugin
|
||||
*/
|
||||
public function theliaLoop($params, $content, $template, &$repeat)
|
||||
{
|
||||
$name = $this->getParam($params, 'name');
|
||||
$name = $this->getParam($params, 'name');
|
||||
|
||||
if (null == $name)
|
||||
throw new \InvalidArgumentException("Missing 'name' parameter in loop arguments");
|
||||
@@ -112,14 +112,14 @@ class TheliaLoop extends AbstractSmartyPlugin
|
||||
if ($content === null) {
|
||||
// Check if a loop with the same name exists in the current scope, and abort if it's the case.
|
||||
if (array_key_exists($name, $this->varstack)) {
|
||||
throw new \InvalidArgumentException("A loop named '$name' already exists in the current scope.");
|
||||
throw new \InvalidArgumentException("A loop named '$name' already exists in the current scope.");
|
||||
}
|
||||
|
||||
$loop = $this->createLoopInstance($params);
|
||||
|
||||
self::$pagination[$name] = null;
|
||||
|
||||
$loopResults = $loop->exec(self::$pagination[$name]);
|
||||
$loopResults = $loop->exec(self::$pagination[$name]);
|
||||
|
||||
$this->loopstack[$name] = $loopResults;
|
||||
|
||||
@@ -144,35 +144,35 @@ class TheliaLoop extends AbstractSmartyPlugin
|
||||
$varlist[] = 'LOOP_COUNT';
|
||||
$varlist[] = 'LOOP_TOTAL';
|
||||
|
||||
foreach($varlist as $var) {
|
||||
foreach ($varlist as $var) {
|
||||
$saved_vars[$var] = $template->getTemplateVars($var);
|
||||
}
|
||||
|
||||
$this->varstack[$name] = $saved_vars;
|
||||
}
|
||||
|
||||
foreach($loopResultRow->getVarVal() as $var => $val) {
|
||||
$template->assign($var, $val);
|
||||
}
|
||||
foreach ($loopResultRow->getVarVal() as $var => $val) {
|
||||
$template->assign($var, $val);
|
||||
}
|
||||
|
||||
$repeat = true;
|
||||
}
|
||||
$repeat = true;
|
||||
}
|
||||
|
||||
// Assign meta information
|
||||
$template->assign('LOOP_COUNT', 1 + $loopResults->key());
|
||||
$template->assign('LOOP_TOTAL', $loopResults->getCount());
|
||||
|
||||
// Loop is terminated. Cleanup.
|
||||
if (! $repeat) {
|
||||
// Restore previous variables values before terminating
|
||||
if (isset($this->varstack[$name])) {
|
||||
foreach($this->varstack[$name] as $var => $value) {
|
||||
$template->assign($var, $value);
|
||||
}
|
||||
// Loop is terminated. Cleanup.
|
||||
if (! $repeat) {
|
||||
// Restore previous variables values before terminating
|
||||
if (isset($this->varstack[$name])) {
|
||||
foreach ($this->varstack[$name] as $var => $value) {
|
||||
$template->assign($var, $value);
|
||||
}
|
||||
|
||||
unset($this->varstack[$name]);
|
||||
}
|
||||
}
|
||||
unset($this->varstack[$name]);
|
||||
}
|
||||
}
|
||||
|
||||
if ($content !== null) {
|
||||
if ($loopResults->isEmpty()) {
|
||||
@@ -195,10 +195,10 @@ class TheliaLoop extends AbstractSmartyPlugin
|
||||
public function theliaElseloop($params, $content, $template, &$repeat)
|
||||
{
|
||||
|
||||
// When encoutering close tag, check if loop has results.
|
||||
if ($repeat === false) {
|
||||
return $this->checkEmptyLoop($params, $template) ? $content : '';
|
||||
}
|
||||
// When encoutering close tag, check if loop has results.
|
||||
if ($repeat === false) {
|
||||
return $this->checkEmptyLoop($params, $template) ? $content : '';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -212,10 +212,10 @@ class TheliaLoop extends AbstractSmartyPlugin
|
||||
*/
|
||||
public function theliaIfLoop($params, $content, $template, &$repeat)
|
||||
{
|
||||
// When encountering close tag, check if loop has results.
|
||||
if ($repeat === false) {
|
||||
return $this->checkEmptyLoop($params, $template) ? '' : $content;
|
||||
}
|
||||
// When encountering close tag, check if loop has results.
|
||||
if ($repeat === false) {
|
||||
return $this->checkEmptyLoop($params, $template) ? '' : $content;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -231,7 +231,7 @@ class TheliaLoop extends AbstractSmartyPlugin
|
||||
*/
|
||||
public function theliaPageLoop($params, $content, $template, &$repeat)
|
||||
{
|
||||
$loopName = $this->getParam($params, 'rel');
|
||||
$loopName = $this->getParam($params, 'rel');
|
||||
|
||||
if (null == $loopName)
|
||||
throw new \InvalidArgumentException("Missing 'rel' parameter in page loop");
|
||||
@@ -248,7 +248,7 @@ class TheliaLoop extends AbstractSmartyPlugin
|
||||
throw new \InvalidArgumentException("Loop $loopName is not defined");
|
||||
}
|
||||
|
||||
if($pagination->getNbResults() == 0) {
|
||||
if ($pagination->getNbResults() == 0) {
|
||||
return '';
|
||||
}
|
||||
|
||||
@@ -282,10 +282,10 @@ class TheliaLoop extends AbstractSmartyPlugin
|
||||
*/
|
||||
protected function checkEmptyLoop($params, $template)
|
||||
{
|
||||
$loopName = $this->getParam($params, 'rel');
|
||||
$loopName = $this->getParam($params, 'rel');
|
||||
|
||||
if (null == $loopName)
|
||||
throw new \InvalidArgumentException("Missing 'rel' parameter in ifloop/elseloop arguments");
|
||||
if (null == $loopName)
|
||||
throw new \InvalidArgumentException("Missing 'rel' parameter in ifloop/elseloop arguments");
|
||||
|
||||
if (! isset($this->loopstack[$loopName])) {
|
||||
throw new \InvalidArgumentException("Loop $loopName is not defined.");
|
||||
@@ -298,14 +298,14 @@ class TheliaLoop extends AbstractSmartyPlugin
|
||||
*
|
||||
* find the loop class with his name and construct an instance of this class
|
||||
*
|
||||
* @param string $name
|
||||
* @param string $name
|
||||
* @return \Thelia\Core\Template\Element\BaseLoop
|
||||
* @throws InvalidElementException
|
||||
* @throws ElementNotFoundException
|
||||
*/
|
||||
protected function createLoopInstance($smartyParams)
|
||||
{
|
||||
$type = strtolower($smartyParams['type']);
|
||||
$type = strtolower($smartyParams['type']);
|
||||
|
||||
if (! isset($this->loopDefinition[$type])) {
|
||||
throw new ElementNotFoundException(sprintf("%s loop does not exists", $type));
|
||||
@@ -321,7 +321,7 @@ class TheliaLoop extends AbstractSmartyPlugin
|
||||
$loop = $class->newInstance(
|
||||
$this->request,
|
||||
$this->dispatcher,
|
||||
$this->securityContext
|
||||
$this->securityContext
|
||||
);
|
||||
|
||||
$loop->initializeArgs($smartyParams);
|
||||
@@ -367,11 +367,11 @@ class TheliaLoop extends AbstractSmartyPlugin
|
||||
{
|
||||
return array(
|
||||
|
||||
new SmartyPluginDescriptor('function', 'count' , $this, 'theliaCount'),
|
||||
new SmartyPluginDescriptor('block' , 'loop' , $this, 'theliaLoop'),
|
||||
new SmartyPluginDescriptor('block' , 'elseloop' , $this, 'theliaElseloop'),
|
||||
new SmartyPluginDescriptor('block' , 'ifloop' , $this, 'theliaIfLoop'),
|
||||
new SmartyPluginDescriptor('block' , 'pageloop' , $this, 'theliaPageLoop'),
|
||||
new SmartyPluginDescriptor('function', 'count' , $this, 'theliaCount'),
|
||||
new SmartyPluginDescriptor('block' , 'loop' , $this, 'theliaLoop'),
|
||||
new SmartyPluginDescriptor('block' , 'elseloop' , $this, 'theliaElseloop'),
|
||||
new SmartyPluginDescriptor('block' , 'ifloop' , $this, 'theliaIfLoop'),
|
||||
new SmartyPluginDescriptor('block' , 'pageloop' , $this, 'theliaPageLoop'),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
2
documentation/api/files/Core/Template/Smarty/Plugins/TheliaSyntax.php.txt
Normal file → Executable file
2
documentation/api/files/Core/Template/Smarty/Plugins/TheliaSyntax.php.txt
Normal file → Executable file
@@ -35,7 +35,7 @@ class TheliaSyntax extends AbstractSmartyPlugin
|
||||
{
|
||||
public function dieseCancel($value, $diese)
|
||||
{
|
||||
if($value === null) {
|
||||
if ($value === null) {
|
||||
return $diese;
|
||||
}
|
||||
|
||||
|
||||
23
documentation/api/files/Core/Template/Smarty/Plugins/Translation.php.txt
Normal file → Executable file
23
documentation/api/files/Core/Template/Smarty/Plugins/Translation.php.txt
Normal file → Executable file
@@ -29,11 +29,12 @@ use Symfony\Component\Translation\TranslatorInterface;
|
||||
|
||||
class Translation extends AbstractSmartyPlugin
|
||||
{
|
||||
protected $translator;
|
||||
protected $translator;
|
||||
|
||||
public function __construct(TranslatorInterface $translator) {
|
||||
$this->translator = $translator;
|
||||
}
|
||||
public function __construct(TranslatorInterface $translator)
|
||||
{
|
||||
$this->translator = $translator;
|
||||
}
|
||||
|
||||
/**
|
||||
* Process translate function
|
||||
@@ -44,15 +45,15 @@ class Translation extends AbstractSmartyPlugin
|
||||
*/
|
||||
public function translate($params, &$smarty)
|
||||
{
|
||||
// All parameters other than 'l' are supposed to be variables. Build an array of var => value pairs
|
||||
// and pass it to the translator
|
||||
$vars = array();
|
||||
// All parameters other than 'l' are supposed to be variables. Build an array of var => value pairs
|
||||
// and pass it to the translator
|
||||
$vars = array();
|
||||
|
||||
foreach($params as $name => $value) {
|
||||
if ($name != 'l') $vars["%$name"] = $value;
|
||||
}
|
||||
foreach ($params as $name => $value) {
|
||||
if ($name != 'l') $vars["%$name"] = $value;
|
||||
}
|
||||
|
||||
return $this->translator->trans($this->getParam($params, 'l'), $vars);
|
||||
return $this->translator->trans($this->getParam($params, 'l'), $vars);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
52
documentation/api/files/Core/Template/Smarty/Plugins/UrlGenerator.php.txt
Normal file → Executable file
52
documentation/api/files/Core/Template/Smarty/Plugins/UrlGenerator.php.txt
Normal file → Executable file
@@ -37,19 +37,24 @@ class UrlGenerator extends AbstractSmartyPlugin
|
||||
$this->request = $request;
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* Process url generator function
|
||||
*
|
||||
* @param array $params
|
||||
* @param array $params
|
||||
* @param unknown $smarty
|
||||
* @return string no text is returned.
|
||||
* @return string no text is returned.
|
||||
*/
|
||||
public function generateUrlFunction($params, &$smarty)
|
||||
{
|
||||
// the path to process
|
||||
$path = $this->getParam($params, 'path');
|
||||
// the path to process
|
||||
$path = $this->getParam($params, 'path');
|
||||
|
||||
return URL::absoluteUrl($path, $this->getArgsFromParam($params, array('path')));
|
||||
$target = $this->getParam($params, 'target', null);
|
||||
|
||||
$url = URL::absoluteUrl($path, $this->getArgsFromParam($params, array('path', 'target')));
|
||||
|
||||
if ($target != null) $url .= '#'.$target;
|
||||
return $url;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -61,7 +66,7 @@ class UrlGenerator extends AbstractSmartyPlugin
|
||||
*/
|
||||
public function generateFrontViewUrlFunction($params, &$smarty)
|
||||
{
|
||||
return $this->generateViewUrlFunction($params, false);
|
||||
return $this->generateViewUrlFunction($params, false);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -73,22 +78,21 @@ class UrlGenerator extends AbstractSmartyPlugin
|
||||
*/
|
||||
public function generateAdminViewUrlFunction($params, &$smarty)
|
||||
{
|
||||
return $this->generateViewUrlFunction($params, true);
|
||||
return $this->generateViewUrlFunction($params, true);
|
||||
}
|
||||
|
||||
protected function generateViewUrlFunction($params, $forAdmin)
|
||||
{
|
||||
// the view name (without .html)
|
||||
$view = $this->getParam($params,'view');
|
||||
// the view name (without .html)
|
||||
$view = $this->getParam($params,'view');
|
||||
|
||||
// the related action (optionale)
|
||||
$action = $this->getParam($params, 'action');
|
||||
// the related action (optionale)
|
||||
$action = $this->getParam($params, 'action');
|
||||
|
||||
$args = $this->getArgsFromParam($params, array('view', 'action'));
|
||||
$args = $this->getArgsFromParam($params, array('view', 'action', 'target'));
|
||||
|
||||
if (! empty($action)) $args['action'] = $action;
|
||||
|
||||
return $forAdmin ? URL::adminViewUrl($view, $args) : URL::viewUrl($view, $args);
|
||||
if (! empty($action)) $args['action'] = $action;
|
||||
return $forAdmin ? URL::adminViewUrl($view, $args) : URL::viewUrl($view, $args);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -97,18 +101,18 @@ class UrlGenerator extends AbstractSmartyPlugin
|
||||
* @param array $params Smarty function params
|
||||
* @return array the parameters array (either emply, of valued)
|
||||
*/
|
||||
private function getArgsFromParam($params, $exclude = array()) {
|
||||
private function getArgsFromParam($params, $exclude = array())
|
||||
{
|
||||
$pairs = array();
|
||||
|
||||
$pairs = array();
|
||||
foreach ($params as $name => $value) {
|
||||
|
||||
foreach($params as $name => $value) {
|
||||
if (in_array($name, $exclude)) continue;
|
||||
|
||||
if (in_array($name, $exclude)) continue;
|
||||
$pairs[$name] = $value;
|
||||
}
|
||||
|
||||
$pairs[$name] = $value;
|
||||
}
|
||||
|
||||
return $pairs;
|
||||
return $pairs;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
27
documentation/api/files/Core/Template/Smarty/SmartyParser.php.txt
Normal file → Executable file
27
documentation/api/files/Core/Template/Smarty/SmartyParser.php.txt
Normal file → Executable file
@@ -41,8 +41,8 @@ class SmartyParser extends Smarty implements ParserInterface
|
||||
* @param bool $debug
|
||||
*/
|
||||
public function __construct(
|
||||
Request $request, EventDispatcherInterface $dispatcher, ParserContext $parserContext,
|
||||
$template = false, $env = "prod", $debug = false)
|
||||
Request $request, EventDispatcherInterface $dispatcher, ParserContext $parserContext,
|
||||
$template = false, $env = "prod", $debug = false)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
@@ -69,7 +69,7 @@ class SmartyParser extends Smarty implements ParserInterface
|
||||
$this->error_reporting = E_ALL ^ E_NOTICE;
|
||||
|
||||
// Si on n'est pas en mode debug, activer le cache, avec une lifetime de 15mn, et en vérifiant que les templates sources n'ont pas été modifiés.
|
||||
if($debug === false) {
|
||||
if ($debug === false) {
|
||||
$this->caching = Smarty::CACHING_LIFETIME_CURRENT;
|
||||
$this->cache_lifetime = 300;
|
||||
$this->compile_check = true;
|
||||
@@ -87,15 +87,15 @@ class SmartyParser extends Smarty implements ParserInterface
|
||||
|
||||
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);
|
||||
$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;
|
||||
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);
|
||||
return preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $tpl_source);
|
||||
}
|
||||
|
||||
public function setTemplate($template_path_from_template_base)
|
||||
@@ -119,10 +119,10 @@ class SmartyParser extends Smarty implements ParserInterface
|
||||
*/
|
||||
public function render($realTemplateName, array $parameters = array())
|
||||
{
|
||||
// Assign the parserContext variables
|
||||
foreach($this->parserContext as $var => $value) {
|
||||
$this->assign($var, $value);
|
||||
}
|
||||
// Assign the parserContext variables
|
||||
foreach ($this->parserContext as $var => $value) {
|
||||
$this->assign($var, $value);
|
||||
}
|
||||
|
||||
$this->assign($parameters);
|
||||
|
||||
@@ -138,8 +138,7 @@ class SmartyParser extends Smarty implements ParserInterface
|
||||
{
|
||||
try {
|
||||
$templateFile = $this->getTemplateFilePath();
|
||||
}
|
||||
catch(\RuntimeException $e) {
|
||||
} catch (\RuntimeException $e) {
|
||||
return new Response($e->getMessage(), "404");
|
||||
}
|
||||
|
||||
@@ -219,7 +218,7 @@ class SmartyParser extends Smarty implements ParserInterface
|
||||
if (!file_exists($fileName)) {
|
||||
$fileName .= ".html";
|
||||
|
||||
if(!file_exists($fileName)) {
|
||||
if (!file_exists($fileName)) {
|
||||
throw new ResourceNotFoundException(sprintf("%s file not found in %s template", $file, $this->template));
|
||||
}
|
||||
}
|
||||
|
||||
0
documentation/api/files/Core/Template/Smarty/SmartyPluginDescriptor.php.txt
Normal file → Executable file
0
documentation/api/files/Core/Template/Smarty/SmartyPluginDescriptor.php.txt
Normal file → Executable file
Reference in New Issue
Block a user