Implemented mail messages templates and layouts
This commit is contained in:
committed by
Manuel Raynaud
parent
e675be4cff
commit
33e0a854f2
@@ -82,9 +82,15 @@ class Message extends BaseAction implements EventSubscriberInterface
|
||||
|
||||
->setTitle($event->getTitle())
|
||||
->setSubject($event->getSubject())
|
||||
|
||||
->setHtmlMessage($event->getHtmlMessage())
|
||||
->setTextMessage($event->getTextMessage())
|
||||
|
||||
->setHtmlLayoutFileName($event->getHtmlLayoutFileName())
|
||||
->setHtmlTemplateFileName($event->getHtmlTemplateFileName())
|
||||
->setTextLayoutFileName($event->getTextLayoutFileName())
|
||||
->setTextTemplateFileName($event->getTextTemplateFileName())
|
||||
|
||||
->save();
|
||||
|
||||
$event->setMessage($message);
|
||||
|
||||
@@ -288,8 +288,18 @@ class Order extends BaseAction implements EventSubscriberInterface
|
||||
*/
|
||||
public function sendOrderEmail(OrderEvent $event)
|
||||
{
|
||||
$store_email = ConfigQuery::read('store_email');
|
||||
if($store_email) {
|
||||
$contact_email = ConfigQuery::read('contact_email');
|
||||
|
||||
if($contact_email) {
|
||||
|
||||
$message = MessageQuery::create()
|
||||
->filterByName('order_confirmation')
|
||||
->findOne();
|
||||
|
||||
if (false === $message) {
|
||||
throw new \Exception("Failed to load message 'order_confirmation'.");
|
||||
}
|
||||
|
||||
$order = $event->getOrder();
|
||||
$customer = $order->getCustomer();
|
||||
|
||||
@@ -298,24 +308,16 @@ class Order extends BaseAction implements EventSubscriberInterface
|
||||
$parser->assign('order_id', $order->getId());
|
||||
$parser->assign('order_ref', $order->getRef());
|
||||
|
||||
$message = MessageQuery::create()
|
||||
->filterByName('order_confirmation')
|
||||
->findOne();
|
||||
|
||||
$message
|
||||
->setLocale($order->getLang()->getLocale());
|
||||
|
||||
$subject = $parser->fetch(sprintf("string:%s", $message->getSubject()));
|
||||
$htmlMessage = $parser->fetch(sprintf("string:%s", $message->getHtmlMessage()));
|
||||
$textMessage = $parser->fetch(sprintf("string:%s", $message->getTextMessage()));
|
||||
|
||||
$instance = \Swift_Message::newInstance($subject)
|
||||
$instance = \Swift_Message::newInstance()
|
||||
->addTo($customer->getEmail(), $customer->getFirstname()." ".$customer->getLastname())
|
||||
->addFrom($store_email, ConfigQuery::read('store_name'))
|
||||
->addFrom(ConfigQuery::read('contact_email'), ConfigQuery::read('company_name'))
|
||||
;
|
||||
$instance
|
||||
->setBody($htmlMessage, 'text/html')
|
||||
->addPart($textMessage, 'text/plain');
|
||||
|
||||
// Build subject and body
|
||||
$message->build($parser, $instance);
|
||||
|
||||
$mail = $this->getMailer()->send($instance);
|
||||
}
|
||||
|
||||
@@ -411,9 +411,9 @@ abstract class AbstractCrudController extends BaseAdminController
|
||||
} catch (FormValidationException $ex) {
|
||||
// Form cannot be validated
|
||||
$error_msg = $this->createStandardFormValidationErrorMessage($ex);
|
||||
} catch (\Exception $ex) {
|
||||
/*} catch (\Exception $ex) {
|
||||
// Any other error
|
||||
$error_msg = $ex->getMessage();
|
||||
$error_msg = $ex->getMessage();*/
|
||||
}
|
||||
|
||||
$this->setupFormErrorContext(
|
||||
|
||||
@@ -30,6 +30,9 @@ use Thelia\Core\Event\Message\MessageCreateEvent;
|
||||
use Thelia\Model\MessageQuery;
|
||||
use Thelia\Form\MessageModificationForm;
|
||||
use Thelia\Form\MessageCreationForm;
|
||||
use Symfony\Component\Finder\Finder;
|
||||
use Thelia\Model\ConfigQuery;
|
||||
use Thelia\Core\Template\TemplateHelper;
|
||||
|
||||
/**
|
||||
* Manages messages sent by mail
|
||||
@@ -90,6 +93,10 @@ class MessageController extends AbstractCrudController
|
||||
->setLocale($formData["locale"])
|
||||
->setTitle($formData['title'])
|
||||
->setSubject($formData['subject'])
|
||||
->setHtmlLayoutFileName($formData['html_layout_file_name'])
|
||||
->setHtmlTemplateFileName($formData['html_template_file_name'])
|
||||
->setTextLayoutFileName($formData['text_layout_file_name'])
|
||||
->setTextTemplateFileName($formData['text_template_file_name'])
|
||||
->setHtmlMessage($formData['html_message'])
|
||||
->setTextMessage($formData['text_message'])
|
||||
;
|
||||
@@ -111,14 +118,19 @@ class MessageController extends AbstractCrudController
|
||||
{
|
||||
// Prepare the data that will hydrate the form
|
||||
$data = array(
|
||||
'id' => $object->getId(),
|
||||
'name' => $object->getName(),
|
||||
'secured' => $object->getSecured(),
|
||||
'locale' => $object->getLocale(),
|
||||
'title' => $object->getTitle(),
|
||||
'subject' => $object->getSubject(),
|
||||
'html_message' => $object->getHtmlMessage(),
|
||||
'text_message' => $object->getTextMessage()
|
||||
'id' => $object->getId(),
|
||||
'name' => $object->getName(),
|
||||
'secured' => $object->getSecured(),
|
||||
'locale' => $object->getLocale(),
|
||||
'title' => $object->getTitle(),
|
||||
'subject' => $object->getSubject(),
|
||||
'html_message' => $object->getHtmlMessage(),
|
||||
'text_message' => $object->getTextMessage(),
|
||||
|
||||
'html_layout_file_name' => $object->getHtmlLayoutFileName(),
|
||||
'html_template_file_name' => $object->getHtmlTemplateFileName(),
|
||||
'text_layout_file_name' => $object->getTextLayoutFileName(),
|
||||
'text_template_file_name' => $object->getTextTemplateFileName(),
|
||||
);
|
||||
|
||||
// Setup the object form
|
||||
@@ -152,17 +164,36 @@ class MessageController extends AbstractCrudController
|
||||
return $this->render('messages');
|
||||
}
|
||||
|
||||
protected function listDirectoryContent($requiredExtension) {
|
||||
|
||||
$list = array();
|
||||
|
||||
$dir = TemplateHelper::getInstance()->getActiveMailTemplate()->getAbsolutePath();
|
||||
|
||||
$finder = Finder::create()->files()->in($dir)->ignoreDotFiles(true)->sortByName()->name("*.$requiredExtension");
|
||||
|
||||
foreach ($finder as $file) {
|
||||
$list[] = $file->getBasename();
|
||||
}
|
||||
|
||||
return $list;
|
||||
}
|
||||
|
||||
protected function renderEditionTemplate()
|
||||
{
|
||||
return $this->render('message-edit', array('message_id' => $this->getRequest()->get('message_id')));
|
||||
return $this->render('message-edit', array(
|
||||
'message_id' => $this->getRequest()->get('message_id'),
|
||||
'layout_list' => $this->listDirectoryContent('tpl'),
|
||||
'html_template_list' => $this->listDirectoryContent('html'),
|
||||
'text_template_list' => $this->listDirectoryContent('txt'),
|
||||
));
|
||||
}
|
||||
|
||||
protected function redirectToEditionTemplate()
|
||||
{
|
||||
$this->redirectToRoute(
|
||||
"admin.configuration.messages.update",
|
||||
array('message_id' => $this->getRequest()->get('message_id'))
|
||||
);
|
||||
$this->redirectToRoute("admin.configuration.messages.update", array(
|
||||
'message_id' => $this->getRequest()->get('message_id')
|
||||
));
|
||||
}
|
||||
|
||||
protected function redirectToListTemplate()
|
||||
|
||||
@@ -71,8 +71,8 @@ class TranslationsController extends BaseAdminController
|
||||
|
||||
case 'mo' :
|
||||
if (null !== $module = ModuleQuery::create()->findPk($item_id)) {
|
||||
$directory = THELIA_MODULE_DIR . $module->getBaseDir();
|
||||
$i18n_directory = THELIA_TEMPLATE_DIR . $module->getI18nPath();
|
||||
$directory = $module->getAbsoluteBaseDir();
|
||||
$i18n_directory = $module->getAbsoluteI18nPath();
|
||||
$walkMode = TemplateHelper::WALK_MODE_PHP;
|
||||
}
|
||||
break;
|
||||
@@ -97,8 +97,8 @@ class TranslationsController extends BaseAdminController
|
||||
}
|
||||
|
||||
if ($template) {
|
||||
$directory = THELIA_TEMPLATE_DIR . $template->getPath();
|
||||
$i18n_directory = THELIA_TEMPLATE_DIR . $template->getI18nPath();
|
||||
$directory = $template->getAbsolutePath();
|
||||
$i18n_directory = $template->getAbsoluteI18nPath();
|
||||
}
|
||||
|
||||
// Load strings to translate
|
||||
|
||||
@@ -68,12 +68,14 @@ class RegisterRouterPass implements CompilerPassInterface
|
||||
|
||||
foreach ($modules as $module) {
|
||||
$moduleBaseDir = $module->getBaseDir();
|
||||
if (file_exists(THELIA_MODULE_DIR . "/" . $moduleBaseDir . "/Config/routing.xml")) {
|
||||
$routingConfigFilePath = $module->getAbsoluteBaseDir() . DS . "Config" . DS . "routing.xml";
|
||||
|
||||
if (file_exists($routingConfigFilePath)) {
|
||||
$definition = new Definition(
|
||||
$container->getParameter("router.class"),
|
||||
array(
|
||||
new Reference("router.module.xmlLoader"),
|
||||
$moduleBaseDir . "/Config/routing.xml",
|
||||
$routingConfigFilePath,
|
||||
array(
|
||||
"cache_dir" => $container->getParameter("kernel.cache_dir"),
|
||||
"debug" => $container->getParameter("kernel.debug"),
|
||||
|
||||
@@ -22,13 +22,18 @@
|
||||
/*************************************************************************************/
|
||||
|
||||
namespace Thelia\Core\Event\Message;
|
||||
|
||||
use Thelia\Core\Event\Message\MessageCreateEvent;
|
||||
|
||||
class MessageUpdateEvent extends MessageCreateEvent
|
||||
{
|
||||
protected $message_id;
|
||||
|
||||
protected $html_layout_file_name;
|
||||
protected $html_template_file_name;
|
||||
|
||||
protected $text_layout_file_name;
|
||||
protected $text_template_file_name;
|
||||
|
||||
protected $text_message;
|
||||
protected $html_message;
|
||||
protected $subject;
|
||||
@@ -85,4 +90,52 @@ class MessageUpdateEvent extends MessageCreateEvent
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getHtmlLayoutFileName()
|
||||
{
|
||||
return $this->html_layout_file_name;
|
||||
}
|
||||
|
||||
public function setHtmlLayoutFileName($html_layout_file_name)
|
||||
{
|
||||
$this->html_layout_file_name = $html_layout_file_name;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getHtmlTemplateFileName()
|
||||
{
|
||||
return $this->html_template_file_name;
|
||||
}
|
||||
|
||||
public function setHtmlTemplateFileName($html_template_file_name)
|
||||
{
|
||||
$this->html_template_file_name = $html_template_file_name;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getTextLayoutFileName()
|
||||
{
|
||||
return $this->text_layout_file_name;
|
||||
}
|
||||
|
||||
public function setTextLayoutFileName($text_layout_file_name)
|
||||
{
|
||||
$this->text_layout_file_name = $text_layout_file_name;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getTextTemplateFileName()
|
||||
{
|
||||
return $this->text_template_file_name;
|
||||
}
|
||||
|
||||
public function setTextTemplateFileName($text_template_file_name)
|
||||
{
|
||||
$this->text_template_file_name = $text_template_file_name;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
@@ -165,7 +165,7 @@ class Module extends BaseI18nLoop implements PropelSearchLoopInterface
|
||||
|
||||
/* if not ; test if it uses admin inclusion : module_configuration.html */
|
||||
if(false === $hasConfigurationInterface) {
|
||||
if(file_exists( sprintf("%s/%s/AdminIncludes/%s.html", THELIA_MODULE_DIR, $module->getBaseDir(), "module_configuration"))) {
|
||||
if(file_exists( sprintf("%s/AdminIncludes/%s.html", $module->getAbsoluteBaseDir(), "module_configuration"))) {
|
||||
$hasConfigurationInterface = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,7 +93,7 @@ class Template extends BaseLoop implements ArraySearchLoopInterface
|
||||
$loopResultRow
|
||||
->set("NAME" , $template->getName())
|
||||
->set("RELATIVE_PATH" , $template->getPath())
|
||||
->set("ABSOLUTE_PATH" , THELIA_TEMPLATE_DIR . $template->getPath())
|
||||
->set("ABSOLUTE_PATH" , $template->getAbsolutePath())
|
||||
;
|
||||
|
||||
$loopResult->addRow($loopResultRow);
|
||||
|
||||
@@ -54,7 +54,7 @@ class Module extends AbstractSmartyPlugin
|
||||
continue;
|
||||
}
|
||||
|
||||
$file = sprintf("%s/%s/AdminIncludes/%s.html", THELIA_MODULE_DIR, $module->getBaseDir(), $location);
|
||||
$file = sprintf("%s/AdminIncludes/%s.html", $module->getAbsoluteBaseDir(), $location);
|
||||
|
||||
if (file_exists($file)) {
|
||||
$content .= file_get_contents($file);
|
||||
|
||||
@@ -16,6 +16,7 @@ use Thelia\Core\Template\ParserContext;
|
||||
use Thelia\Core\Template\TemplateDefinition;
|
||||
use Thelia\Model\ConfigQuery;
|
||||
use Thelia\Core\Template\TemplateHelper;
|
||||
use Thelia\Core\Translation\Translator;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -125,10 +126,10 @@ class SmartyParser extends Smarty implements ParserInterface
|
||||
$this->setTemplateDir(array());
|
||||
|
||||
/* add main template directory */
|
||||
$this->addTemplateDir(THELIA_TEMPLATE_DIR . $this->template, 0);
|
||||
$this->addTemplateDir($templateDefinition->getAbsolutePath(), 0);
|
||||
|
||||
/* define config directory */
|
||||
$configDirectory = THELIA_TEMPLATE_DIR . $this->template . '/configs';
|
||||
$configDirectory = $templateDefinition->getAbsoluteConfigPath();
|
||||
$this->setConfigDir($configDirectory);
|
||||
|
||||
/* add modules template directories */
|
||||
@@ -165,17 +166,16 @@ class SmartyParser extends Smarty implements ParserInterface
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a rendered template file
|
||||
* Return a rendered template, either from file or ftom a string
|
||||
*
|
||||
* @param string $realTemplateName the template name (from the template directory)
|
||||
* @param string $resourceType either 'string' (rendering from a string) or 'file' (rendering a file)
|
||||
* @param string $resourceContent the resource content (a text, or a template file name)
|
||||
* @param array $parameters an associative array of names / value pairs
|
||||
*
|
||||
* @return string the rendered template text
|
||||
*/
|
||||
public function render($realTemplateName, array $parameters = array())
|
||||
protected function internalRenderer($resourceType, $resourceContent, array $parameters)
|
||||
{
|
||||
if(false === $this->templateExists($realTemplateName)) {
|
||||
throw new ResourceNotFoundException();
|
||||
}
|
||||
// Assign the parserContext variables
|
||||
foreach ($this->parserContext as $var => $value) {
|
||||
$this->assign($var, $value);
|
||||
@@ -183,7 +183,35 @@ class SmartyParser extends Smarty implements ParserInterface
|
||||
|
||||
$this->assign($parameters);
|
||||
|
||||
return $this->fetch(sprintf("file:%s", $realTemplateName));
|
||||
return $this->fetch(sprintf("%s:%s", $resourceType, $resourceContent));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return a rendered template file
|
||||
*
|
||||
* @param string $realTemplateName the template name (from the template directory)
|
||||
* @param array $parameters an associative array of names / value pairs
|
||||
* @return string the rendered template text
|
||||
*/
|
||||
public function render($realTemplateName, array $parameters = array()) {
|
||||
|
||||
if(false === $this->templateExists($realTemplateName)) {
|
||||
throw new ResourceNotFoundException(Translator::getInstance()->trans("Template file %file cannot be found.", array('%file', $realTemplateName)));
|
||||
}
|
||||
|
||||
return $this->internalRenderer('file', $realTemplateName, $parameters);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a rendered template text
|
||||
*
|
||||
* @param string $templateText the template text
|
||||
* @param array $parameters an associative array of names / value pairs
|
||||
* @return string the rendered template text
|
||||
*/
|
||||
public function renderString($templateText, array $parameters = array()) {
|
||||
return $this->internalRenderer('string', $templateText, $parameters);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -28,10 +28,12 @@ class TemplateDefinition
|
||||
const FRONT_OFFICE = 1;
|
||||
const BACK_OFFICE = 2;
|
||||
const PDF = 3;
|
||||
const EMAIL = 4;
|
||||
|
||||
const FRONT_OFFICE_SUBDIR = 'frontOffice/';
|
||||
const BACK_OFFICE_SUBDIR = 'backOffice/';
|
||||
const PDF_SUBDIR = 'pdf/';
|
||||
const EMAIL_SUBDIR = 'email/';
|
||||
|
||||
/**
|
||||
* @var the template directory name (e.g. 'default')
|
||||
@@ -64,6 +66,9 @@ class TemplateDefinition
|
||||
case TemplateDefinition::PDF:
|
||||
$this->path = self::PDF_SUBDIR . $name;
|
||||
break;
|
||||
case TemplateDefinition::EMAIL:
|
||||
$this->path = self::EMAIL_SUBDIR . $name;
|
||||
break;
|
||||
default:
|
||||
$this->path = $name;
|
||||
break;
|
||||
@@ -85,11 +90,28 @@ class TemplateDefinition
|
||||
return $this->getPath() . DS . 'I18n';
|
||||
}
|
||||
|
||||
public function getAbsoluteI18nPath() {
|
||||
return THELIA_TEMPLATE_DIR . $this->getI18nPath();
|
||||
}
|
||||
|
||||
public function getPath()
|
||||
{
|
||||
return $this->path;
|
||||
}
|
||||
|
||||
public function getAbsolutePath() {
|
||||
return THELIA_TEMPLATE_DIR . $this->getPath();
|
||||
}
|
||||
|
||||
public function getConfigPath()
|
||||
{
|
||||
return $this->getPath() . DS . 'configs';
|
||||
}
|
||||
|
||||
public function getAbsoluteConfigPath() {
|
||||
return THELIA_TEMPLATE_DIR . $this->getConfigPath();
|
||||
}
|
||||
|
||||
public function setPath($path)
|
||||
{
|
||||
$this->path = $path;
|
||||
@@ -106,5 +128,4 @@ class TemplateDefinition
|
||||
$this->type = $type;
|
||||
return $this;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -46,6 +46,16 @@ class TemplateHelper
|
||||
return self::$instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return TemplateDefinition
|
||||
*/
|
||||
public function getActiveMailTemplate() {
|
||||
return new TemplateDefinition(
|
||||
ConfigQuery::read('active-mail-template', 'default'),
|
||||
TemplateDefinition::EMAIL
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return TemplateDefinition
|
||||
*/
|
||||
|
||||
@@ -145,15 +145,15 @@ class Thelia extends Kernel
|
||||
|
||||
$code = ucfirst($module->getCode());
|
||||
|
||||
$loader = new XmlFileLoader($container, new FileLocator(THELIA_MODULE_DIR . "/" . $code . "/Config"));
|
||||
$loader = new XmlFileLoader($container, new FileLocator($module->getAbsoluteConfigPath()));
|
||||
$loader->load("config.xml");
|
||||
|
||||
if (is_dir($dir = THELIA_MODULE_DIR . "/" . $code . "/I18n")) {
|
||||
if (is_dir($dir = $module->getAbsoluteI18nPath())) {
|
||||
$translationDirs[] = $dir;
|
||||
}
|
||||
|
||||
/* is there a front-office template directory ? */
|
||||
$frontOfficeModuleTemplateDirectory = sprintf("%s%s%stemplates%s%s", THELIA_MODULE_DIR, $code, DS, DS, TemplateDefinition::FRONT_OFFICE_SUBDIR);
|
||||
$frontOfficeModuleTemplateDirectory = sprintf("%s%stemplates%s%s", $module->getAbsoluteBaseDir(), DS, DS, TemplateDefinition::FRONT_OFFICE_SUBDIR);
|
||||
if (is_dir($frontOfficeModuleTemplateDirectory)) {
|
||||
try {
|
||||
$moduleFrontOfficeTemplateBrowser = new \DirectoryIterator($frontOfficeModuleTemplateDirectory);
|
||||
@@ -178,7 +178,7 @@ class Thelia extends Kernel
|
||||
}
|
||||
|
||||
/* is there a back-office template directory ? */
|
||||
$backOfficeModuleTemplateDirectory = sprintf("%s%s%stemplates%s%s", THELIA_MODULE_DIR, $code, DS, DS, TemplateDefinition::BACK_OFFICE_SUBDIR);
|
||||
$backOfficeModuleTemplateDirectory = sprintf("%s%stemplates%s%s", $module->getAbsoluteBaseDir(), DS, DS, TemplateDefinition::BACK_OFFICE_SUBDIR);
|
||||
if (is_dir($backOfficeModuleTemplateDirectory)) {
|
||||
try {
|
||||
$moduleBackOfficeTemplateBrowser = new \DirectoryIterator($backOfficeModuleTemplateDirectory);
|
||||
@@ -210,18 +210,20 @@ class Thelia extends Kernel
|
||||
//core translation
|
||||
$translationDirs[] = THELIA_ROOT . "core/lib/Thelia/Config/I18n";
|
||||
|
||||
$th = TemplateHelper::getInstance();
|
||||
|
||||
// admin template
|
||||
if (is_dir($dir = THELIA_TEMPLATE_DIR . TemplateHelper::getInstance()->getActiveAdminTemplate()->getI18nPath())) {
|
||||
if (is_dir($dir = $th->getActiveAdminTemplate()->getAbsoluteI18nPath())) {
|
||||
$translationDirs[] = $dir;
|
||||
}
|
||||
|
||||
// front template
|
||||
if (is_dir($dir = THELIA_TEMPLATE_DIR . TemplateHelper::getInstance()->getActiveFrontTemplate()->getI18nPath())) {
|
||||
if (is_dir($dir = $th->getActiveFrontTemplate()->getAbsoluteI18nPath())) {
|
||||
$translationDirs[] = $dir;
|
||||
}
|
||||
|
||||
// PDF template
|
||||
if (is_dir($dir = THELIA_TEMPLATE_DIR . TemplateHelper::getInstance()->getActivePdfTemplate()->getI18nPath())) {
|
||||
if (is_dir($dir = $th->getActivePdfTemplate()->getAbsoluteI18nPath())) {
|
||||
$translationDirs[] = $dir;
|
||||
}
|
||||
|
||||
|
||||
@@ -34,10 +34,11 @@ class MessageModificationForm extends BaseForm
|
||||
->add("id" , "hidden", array("constraints" => array(new GreaterThan(array('value' => 0)))))
|
||||
->add("name" , "text" , array(
|
||||
"constraints" => array(new NotBlank()),
|
||||
"label" => Translator::getInstance()->trans('Name *'),
|
||||
"label" => Translator::getInstance()->trans('Name'),
|
||||
"label_attr" => array(
|
||||
"for" => "name"
|
||||
)
|
||||
),
|
||||
"required" => true
|
||||
))
|
||||
->add("secured" , "text" , array(
|
||||
"label" => Translator::getInstance()->trans('Prevent mailing template modification or deletion, except for super-admin')
|
||||
@@ -45,29 +46,61 @@ class MessageModificationForm extends BaseForm
|
||||
->add("locale" , "text" , array())
|
||||
->add("title" , "text" , array(
|
||||
"constraints" => array(new NotBlank()),
|
||||
"label" => Translator::getInstance()->trans('Title *'),
|
||||
"label" => Translator::getInstance()->trans('Title'),
|
||||
"label_attr" => array(
|
||||
"for" => "title"
|
||||
)
|
||||
),
|
||||
"required" => true
|
||||
))
|
||||
->add("subject" , "text" , array(
|
||||
"constraints" => array(new NotBlank()),
|
||||
"label" => Translator::getInstance()->trans('Message subject *'),
|
||||
"label" => Translator::getInstance()->trans('Message subject'),
|
||||
"label_attr" => array(
|
||||
"for" => "subject"
|
||||
)
|
||||
),
|
||||
"required" => true
|
||||
))
|
||||
->add("html_message" , "text" , array(
|
||||
"label" => Translator::getInstance()->trans('HTML Message'),
|
||||
"label_attr" => array(
|
||||
"for" => "html_message"
|
||||
)
|
||||
),
|
||||
"required" => false
|
||||
))
|
||||
->add("text_message" , "text" , array(
|
||||
"label" => Translator::getInstance()->trans('Text Message'),
|
||||
"label_attr" => array(
|
||||
"for" => "text_message"
|
||||
)
|
||||
),
|
||||
"required" => false
|
||||
))
|
||||
->add("html_layout_file_name" , "text" , array(
|
||||
"label" => Translator::getInstance()->trans('Name of the HTML layout file'),
|
||||
"label_attr" => array(
|
||||
"for" => "html_layout_file_name"
|
||||
),
|
||||
"required" => false
|
||||
))
|
||||
->add("html_template_file_name" , "text" , array(
|
||||
"label" => Translator::getInstance()->trans('Name of the HTML template file'),
|
||||
"label_attr" => array(
|
||||
"for" => "html_template_file_name"
|
||||
),
|
||||
"required" => false
|
||||
))
|
||||
->add("text_layout_file_name" , "text" , array(
|
||||
"label" => Translator::getInstance()->trans('Name of the text layout file'),
|
||||
"label_attr" => array(
|
||||
"for" => "text_layout_file_name"
|
||||
),
|
||||
"required" => false
|
||||
))
|
||||
->add("text_template_file_name" , "text" , array(
|
||||
"label" => Translator::getInstance()->trans('Name of the text template file'),
|
||||
"label_attr" => array(
|
||||
"for" => "text_template_file_name"
|
||||
),
|
||||
"required" => false
|
||||
))
|
||||
;
|
||||
}
|
||||
|
||||
@@ -78,6 +78,30 @@ abstract class Message implements ActiveRecordInterface
|
||||
*/
|
||||
protected $secured;
|
||||
|
||||
/**
|
||||
* The value for the text_layout_file_name field.
|
||||
* @var string
|
||||
*/
|
||||
protected $text_layout_file_name;
|
||||
|
||||
/**
|
||||
* The value for the text_template_file_name field.
|
||||
* @var string
|
||||
*/
|
||||
protected $text_template_file_name;
|
||||
|
||||
/**
|
||||
* The value for the html_layout_file_name field.
|
||||
* @var string
|
||||
*/
|
||||
protected $html_layout_file_name;
|
||||
|
||||
/**
|
||||
* The value for the html_template_file_name field.
|
||||
* @var string
|
||||
*/
|
||||
protected $html_template_file_name;
|
||||
|
||||
/**
|
||||
* The value for the created_at field.
|
||||
* @var string
|
||||
@@ -467,6 +491,50 @@ abstract class Message implements ActiveRecordInterface
|
||||
return $this->secured;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the [text_layout_file_name] column value.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getTextLayoutFileName()
|
||||
{
|
||||
|
||||
return $this->text_layout_file_name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the [text_template_file_name] column value.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getTextTemplateFileName()
|
||||
{
|
||||
|
||||
return $this->text_template_file_name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the [html_layout_file_name] column value.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getHtmlLayoutFileName()
|
||||
{
|
||||
|
||||
return $this->html_layout_file_name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the [html_template_file_name] column value.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getHtmlTemplateFileName()
|
||||
{
|
||||
|
||||
return $this->html_template_file_name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the [optionally formatted] temporal [created_at] column value.
|
||||
*
|
||||
@@ -612,6 +680,90 @@ abstract class Message implements ActiveRecordInterface
|
||||
return $this;
|
||||
} // setSecured()
|
||||
|
||||
/**
|
||||
* Set the value of [text_layout_file_name] column.
|
||||
*
|
||||
* @param string $v new value
|
||||
* @return \Thelia\Model\Message The current object (for fluent API support)
|
||||
*/
|
||||
public function setTextLayoutFileName($v)
|
||||
{
|
||||
if ($v !== null) {
|
||||
$v = (string) $v;
|
||||
}
|
||||
|
||||
if ($this->text_layout_file_name !== $v) {
|
||||
$this->text_layout_file_name = $v;
|
||||
$this->modifiedColumns[] = MessageTableMap::TEXT_LAYOUT_FILE_NAME;
|
||||
}
|
||||
|
||||
|
||||
return $this;
|
||||
} // setTextLayoutFileName()
|
||||
|
||||
/**
|
||||
* Set the value of [text_template_file_name] column.
|
||||
*
|
||||
* @param string $v new value
|
||||
* @return \Thelia\Model\Message The current object (for fluent API support)
|
||||
*/
|
||||
public function setTextTemplateFileName($v)
|
||||
{
|
||||
if ($v !== null) {
|
||||
$v = (string) $v;
|
||||
}
|
||||
|
||||
if ($this->text_template_file_name !== $v) {
|
||||
$this->text_template_file_name = $v;
|
||||
$this->modifiedColumns[] = MessageTableMap::TEXT_TEMPLATE_FILE_NAME;
|
||||
}
|
||||
|
||||
|
||||
return $this;
|
||||
} // setTextTemplateFileName()
|
||||
|
||||
/**
|
||||
* Set the value of [html_layout_file_name] column.
|
||||
*
|
||||
* @param string $v new value
|
||||
* @return \Thelia\Model\Message The current object (for fluent API support)
|
||||
*/
|
||||
public function setHtmlLayoutFileName($v)
|
||||
{
|
||||
if ($v !== null) {
|
||||
$v = (string) $v;
|
||||
}
|
||||
|
||||
if ($this->html_layout_file_name !== $v) {
|
||||
$this->html_layout_file_name = $v;
|
||||
$this->modifiedColumns[] = MessageTableMap::HTML_LAYOUT_FILE_NAME;
|
||||
}
|
||||
|
||||
|
||||
return $this;
|
||||
} // setHtmlLayoutFileName()
|
||||
|
||||
/**
|
||||
* Set the value of [html_template_file_name] column.
|
||||
*
|
||||
* @param string $v new value
|
||||
* @return \Thelia\Model\Message The current object (for fluent API support)
|
||||
*/
|
||||
public function setHtmlTemplateFileName($v)
|
||||
{
|
||||
if ($v !== null) {
|
||||
$v = (string) $v;
|
||||
}
|
||||
|
||||
if ($this->html_template_file_name !== $v) {
|
||||
$this->html_template_file_name = $v;
|
||||
$this->modifiedColumns[] = MessageTableMap::HTML_TEMPLATE_FILE_NAME;
|
||||
}
|
||||
|
||||
|
||||
return $this;
|
||||
} // setHtmlTemplateFileName()
|
||||
|
||||
/**
|
||||
* Sets the value of [created_at] column to a normalized version of the date/time value specified.
|
||||
*
|
||||
@@ -767,28 +919,40 @@ abstract class Message implements ActiveRecordInterface
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 2 + $startcol : MessageTableMap::translateFieldName('Secured', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$this->secured = (null !== $col) ? (int) $col : null;
|
||||
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 3 + $startcol : MessageTableMap::translateFieldName('CreatedAt', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 3 + $startcol : MessageTableMap::translateFieldName('TextLayoutFileName', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$this->text_layout_file_name = (null !== $col) ? (string) $col : null;
|
||||
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 4 + $startcol : MessageTableMap::translateFieldName('TextTemplateFileName', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$this->text_template_file_name = (null !== $col) ? (string) $col : null;
|
||||
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 5 + $startcol : MessageTableMap::translateFieldName('HtmlLayoutFileName', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$this->html_layout_file_name = (null !== $col) ? (string) $col : null;
|
||||
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 6 + $startcol : MessageTableMap::translateFieldName('HtmlTemplateFileName', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$this->html_template_file_name = (null !== $col) ? (string) $col : null;
|
||||
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 7 + $startcol : MessageTableMap::translateFieldName('CreatedAt', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
if ($col === '0000-00-00 00:00:00') {
|
||||
$col = null;
|
||||
}
|
||||
$this->created_at = (null !== $col) ? PropelDateTime::newInstance($col, null, '\DateTime') : null;
|
||||
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 4 + $startcol : MessageTableMap::translateFieldName('UpdatedAt', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 8 + $startcol : MessageTableMap::translateFieldName('UpdatedAt', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
if ($col === '0000-00-00 00:00:00') {
|
||||
$col = null;
|
||||
}
|
||||
$this->updated_at = (null !== $col) ? PropelDateTime::newInstance($col, null, '\DateTime') : null;
|
||||
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 5 + $startcol : MessageTableMap::translateFieldName('Version', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 9 + $startcol : MessageTableMap::translateFieldName('Version', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$this->version = (null !== $col) ? (int) $col : null;
|
||||
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 6 + $startcol : MessageTableMap::translateFieldName('VersionCreatedAt', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 10 + $startcol : MessageTableMap::translateFieldName('VersionCreatedAt', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
if ($col === '0000-00-00 00:00:00') {
|
||||
$col = null;
|
||||
}
|
||||
$this->version_created_at = (null !== $col) ? PropelDateTime::newInstance($col, null, '\DateTime') : null;
|
||||
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 7 + $startcol : MessageTableMap::translateFieldName('VersionCreatedBy', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 11 + $startcol : MessageTableMap::translateFieldName('VersionCreatedBy', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$this->version_created_by = (null !== $col) ? (string) $col : null;
|
||||
$this->resetModified();
|
||||
|
||||
@@ -798,7 +962,7 @@ abstract class Message implements ActiveRecordInterface
|
||||
$this->ensureConsistency();
|
||||
}
|
||||
|
||||
return $startcol + 8; // 8 = MessageTableMap::NUM_HYDRATE_COLUMNS.
|
||||
return $startcol + 12; // 12 = MessageTableMap::NUM_HYDRATE_COLUMNS.
|
||||
|
||||
} catch (Exception $e) {
|
||||
throw new PropelException("Error populating \Thelia\Model\Message object", 0, $e);
|
||||
@@ -1077,6 +1241,18 @@ abstract class Message implements ActiveRecordInterface
|
||||
if ($this->isColumnModified(MessageTableMap::SECURED)) {
|
||||
$modifiedColumns[':p' . $index++] = 'SECURED';
|
||||
}
|
||||
if ($this->isColumnModified(MessageTableMap::TEXT_LAYOUT_FILE_NAME)) {
|
||||
$modifiedColumns[':p' . $index++] = 'TEXT_LAYOUT_FILE_NAME';
|
||||
}
|
||||
if ($this->isColumnModified(MessageTableMap::TEXT_TEMPLATE_FILE_NAME)) {
|
||||
$modifiedColumns[':p' . $index++] = 'TEXT_TEMPLATE_FILE_NAME';
|
||||
}
|
||||
if ($this->isColumnModified(MessageTableMap::HTML_LAYOUT_FILE_NAME)) {
|
||||
$modifiedColumns[':p' . $index++] = 'HTML_LAYOUT_FILE_NAME';
|
||||
}
|
||||
if ($this->isColumnModified(MessageTableMap::HTML_TEMPLATE_FILE_NAME)) {
|
||||
$modifiedColumns[':p' . $index++] = 'HTML_TEMPLATE_FILE_NAME';
|
||||
}
|
||||
if ($this->isColumnModified(MessageTableMap::CREATED_AT)) {
|
||||
$modifiedColumns[':p' . $index++] = 'CREATED_AT';
|
||||
}
|
||||
@@ -1112,6 +1288,18 @@ abstract class Message implements ActiveRecordInterface
|
||||
case 'SECURED':
|
||||
$stmt->bindValue($identifier, $this->secured, PDO::PARAM_INT);
|
||||
break;
|
||||
case 'TEXT_LAYOUT_FILE_NAME':
|
||||
$stmt->bindValue($identifier, $this->text_layout_file_name, PDO::PARAM_STR);
|
||||
break;
|
||||
case 'TEXT_TEMPLATE_FILE_NAME':
|
||||
$stmt->bindValue($identifier, $this->text_template_file_name, PDO::PARAM_STR);
|
||||
break;
|
||||
case 'HTML_LAYOUT_FILE_NAME':
|
||||
$stmt->bindValue($identifier, $this->html_layout_file_name, PDO::PARAM_STR);
|
||||
break;
|
||||
case 'HTML_TEMPLATE_FILE_NAME':
|
||||
$stmt->bindValue($identifier, $this->html_template_file_name, PDO::PARAM_STR);
|
||||
break;
|
||||
case 'CREATED_AT':
|
||||
$stmt->bindValue($identifier, $this->created_at ? $this->created_at->format("Y-m-d H:i:s") : null, PDO::PARAM_STR);
|
||||
break;
|
||||
@@ -1199,18 +1387,30 @@ abstract class Message implements ActiveRecordInterface
|
||||
return $this->getSecured();
|
||||
break;
|
||||
case 3:
|
||||
return $this->getCreatedAt();
|
||||
return $this->getTextLayoutFileName();
|
||||
break;
|
||||
case 4:
|
||||
return $this->getUpdatedAt();
|
||||
return $this->getTextTemplateFileName();
|
||||
break;
|
||||
case 5:
|
||||
return $this->getVersion();
|
||||
return $this->getHtmlLayoutFileName();
|
||||
break;
|
||||
case 6:
|
||||
return $this->getVersionCreatedAt();
|
||||
return $this->getHtmlTemplateFileName();
|
||||
break;
|
||||
case 7:
|
||||
return $this->getCreatedAt();
|
||||
break;
|
||||
case 8:
|
||||
return $this->getUpdatedAt();
|
||||
break;
|
||||
case 9:
|
||||
return $this->getVersion();
|
||||
break;
|
||||
case 10:
|
||||
return $this->getVersionCreatedAt();
|
||||
break;
|
||||
case 11:
|
||||
return $this->getVersionCreatedBy();
|
||||
break;
|
||||
default:
|
||||
@@ -1245,11 +1445,15 @@ abstract class Message implements ActiveRecordInterface
|
||||
$keys[0] => $this->getId(),
|
||||
$keys[1] => $this->getName(),
|
||||
$keys[2] => $this->getSecured(),
|
||||
$keys[3] => $this->getCreatedAt(),
|
||||
$keys[4] => $this->getUpdatedAt(),
|
||||
$keys[5] => $this->getVersion(),
|
||||
$keys[6] => $this->getVersionCreatedAt(),
|
||||
$keys[7] => $this->getVersionCreatedBy(),
|
||||
$keys[3] => $this->getTextLayoutFileName(),
|
||||
$keys[4] => $this->getTextTemplateFileName(),
|
||||
$keys[5] => $this->getHtmlLayoutFileName(),
|
||||
$keys[6] => $this->getHtmlTemplateFileName(),
|
||||
$keys[7] => $this->getCreatedAt(),
|
||||
$keys[8] => $this->getUpdatedAt(),
|
||||
$keys[9] => $this->getVersion(),
|
||||
$keys[10] => $this->getVersionCreatedAt(),
|
||||
$keys[11] => $this->getVersionCreatedBy(),
|
||||
);
|
||||
$virtualColumns = $this->virtualColumns;
|
||||
foreach ($virtualColumns as $key => $virtualColumn) {
|
||||
@@ -1307,18 +1511,30 @@ abstract class Message implements ActiveRecordInterface
|
||||
$this->setSecured($value);
|
||||
break;
|
||||
case 3:
|
||||
$this->setCreatedAt($value);
|
||||
$this->setTextLayoutFileName($value);
|
||||
break;
|
||||
case 4:
|
||||
$this->setUpdatedAt($value);
|
||||
$this->setTextTemplateFileName($value);
|
||||
break;
|
||||
case 5:
|
||||
$this->setVersion($value);
|
||||
$this->setHtmlLayoutFileName($value);
|
||||
break;
|
||||
case 6:
|
||||
$this->setVersionCreatedAt($value);
|
||||
$this->setHtmlTemplateFileName($value);
|
||||
break;
|
||||
case 7:
|
||||
$this->setCreatedAt($value);
|
||||
break;
|
||||
case 8:
|
||||
$this->setUpdatedAt($value);
|
||||
break;
|
||||
case 9:
|
||||
$this->setVersion($value);
|
||||
break;
|
||||
case 10:
|
||||
$this->setVersionCreatedAt($value);
|
||||
break;
|
||||
case 11:
|
||||
$this->setVersionCreatedBy($value);
|
||||
break;
|
||||
} // switch()
|
||||
@@ -1348,11 +1564,15 @@ abstract class Message implements ActiveRecordInterface
|
||||
if (array_key_exists($keys[0], $arr)) $this->setId($arr[$keys[0]]);
|
||||
if (array_key_exists($keys[1], $arr)) $this->setName($arr[$keys[1]]);
|
||||
if (array_key_exists($keys[2], $arr)) $this->setSecured($arr[$keys[2]]);
|
||||
if (array_key_exists($keys[3], $arr)) $this->setCreatedAt($arr[$keys[3]]);
|
||||
if (array_key_exists($keys[4], $arr)) $this->setUpdatedAt($arr[$keys[4]]);
|
||||
if (array_key_exists($keys[5], $arr)) $this->setVersion($arr[$keys[5]]);
|
||||
if (array_key_exists($keys[6], $arr)) $this->setVersionCreatedAt($arr[$keys[6]]);
|
||||
if (array_key_exists($keys[7], $arr)) $this->setVersionCreatedBy($arr[$keys[7]]);
|
||||
if (array_key_exists($keys[3], $arr)) $this->setTextLayoutFileName($arr[$keys[3]]);
|
||||
if (array_key_exists($keys[4], $arr)) $this->setTextTemplateFileName($arr[$keys[4]]);
|
||||
if (array_key_exists($keys[5], $arr)) $this->setHtmlLayoutFileName($arr[$keys[5]]);
|
||||
if (array_key_exists($keys[6], $arr)) $this->setHtmlTemplateFileName($arr[$keys[6]]);
|
||||
if (array_key_exists($keys[7], $arr)) $this->setCreatedAt($arr[$keys[7]]);
|
||||
if (array_key_exists($keys[8], $arr)) $this->setUpdatedAt($arr[$keys[8]]);
|
||||
if (array_key_exists($keys[9], $arr)) $this->setVersion($arr[$keys[9]]);
|
||||
if (array_key_exists($keys[10], $arr)) $this->setVersionCreatedAt($arr[$keys[10]]);
|
||||
if (array_key_exists($keys[11], $arr)) $this->setVersionCreatedBy($arr[$keys[11]]);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1367,6 +1587,10 @@ abstract class Message implements ActiveRecordInterface
|
||||
if ($this->isColumnModified(MessageTableMap::ID)) $criteria->add(MessageTableMap::ID, $this->id);
|
||||
if ($this->isColumnModified(MessageTableMap::NAME)) $criteria->add(MessageTableMap::NAME, $this->name);
|
||||
if ($this->isColumnModified(MessageTableMap::SECURED)) $criteria->add(MessageTableMap::SECURED, $this->secured);
|
||||
if ($this->isColumnModified(MessageTableMap::TEXT_LAYOUT_FILE_NAME)) $criteria->add(MessageTableMap::TEXT_LAYOUT_FILE_NAME, $this->text_layout_file_name);
|
||||
if ($this->isColumnModified(MessageTableMap::TEXT_TEMPLATE_FILE_NAME)) $criteria->add(MessageTableMap::TEXT_TEMPLATE_FILE_NAME, $this->text_template_file_name);
|
||||
if ($this->isColumnModified(MessageTableMap::HTML_LAYOUT_FILE_NAME)) $criteria->add(MessageTableMap::HTML_LAYOUT_FILE_NAME, $this->html_layout_file_name);
|
||||
if ($this->isColumnModified(MessageTableMap::HTML_TEMPLATE_FILE_NAME)) $criteria->add(MessageTableMap::HTML_TEMPLATE_FILE_NAME, $this->html_template_file_name);
|
||||
if ($this->isColumnModified(MessageTableMap::CREATED_AT)) $criteria->add(MessageTableMap::CREATED_AT, $this->created_at);
|
||||
if ($this->isColumnModified(MessageTableMap::UPDATED_AT)) $criteria->add(MessageTableMap::UPDATED_AT, $this->updated_at);
|
||||
if ($this->isColumnModified(MessageTableMap::VERSION)) $criteria->add(MessageTableMap::VERSION, $this->version);
|
||||
@@ -1437,6 +1661,10 @@ abstract class Message implements ActiveRecordInterface
|
||||
{
|
||||
$copyObj->setName($this->getName());
|
||||
$copyObj->setSecured($this->getSecured());
|
||||
$copyObj->setTextLayoutFileName($this->getTextLayoutFileName());
|
||||
$copyObj->setTextTemplateFileName($this->getTextTemplateFileName());
|
||||
$copyObj->setHtmlLayoutFileName($this->getHtmlLayoutFileName());
|
||||
$copyObj->setHtmlTemplateFileName($this->getHtmlTemplateFileName());
|
||||
$copyObj->setCreatedAt($this->getCreatedAt());
|
||||
$copyObj->setUpdatedAt($this->getUpdatedAt());
|
||||
$copyObj->setVersion($this->getVersion());
|
||||
@@ -1963,6 +2191,10 @@ abstract class Message implements ActiveRecordInterface
|
||||
$this->id = null;
|
||||
$this->name = null;
|
||||
$this->secured = null;
|
||||
$this->text_layout_file_name = null;
|
||||
$this->text_template_file_name = null;
|
||||
$this->html_layout_file_name = null;
|
||||
$this->html_template_file_name = null;
|
||||
$this->created_at = null;
|
||||
$this->updated_at = null;
|
||||
$this->version = null;
|
||||
@@ -2284,6 +2516,10 @@ abstract class Message implements ActiveRecordInterface
|
||||
$version->setId($this->getId());
|
||||
$version->setName($this->getName());
|
||||
$version->setSecured($this->getSecured());
|
||||
$version->setTextLayoutFileName($this->getTextLayoutFileName());
|
||||
$version->setTextTemplateFileName($this->getTextTemplateFileName());
|
||||
$version->setHtmlLayoutFileName($this->getHtmlLayoutFileName());
|
||||
$version->setHtmlTemplateFileName($this->getHtmlTemplateFileName());
|
||||
$version->setCreatedAt($this->getCreatedAt());
|
||||
$version->setUpdatedAt($this->getUpdatedAt());
|
||||
$version->setVersion($this->getVersion());
|
||||
@@ -2329,6 +2565,10 @@ abstract class Message implements ActiveRecordInterface
|
||||
$this->setId($version->getId());
|
||||
$this->setName($version->getName());
|
||||
$this->setSecured($version->getSecured());
|
||||
$this->setTextLayoutFileName($version->getTextLayoutFileName());
|
||||
$this->setTextTemplateFileName($version->getTextTemplateFileName());
|
||||
$this->setHtmlLayoutFileName($version->getHtmlLayoutFileName());
|
||||
$this->setHtmlTemplateFileName($version->getHtmlTemplateFileName());
|
||||
$this->setCreatedAt($version->getCreatedAt());
|
||||
$this->setUpdatedAt($version->getUpdatedAt());
|
||||
$this->setVersion($version->getVersion());
|
||||
|
||||
@@ -25,6 +25,10 @@ use Thelia\Model\Map\MessageTableMap;
|
||||
* @method ChildMessageQuery orderById($order = Criteria::ASC) Order by the id column
|
||||
* @method ChildMessageQuery orderByName($order = Criteria::ASC) Order by the name column
|
||||
* @method ChildMessageQuery orderBySecured($order = Criteria::ASC) Order by the secured column
|
||||
* @method ChildMessageQuery orderByTextLayoutFileName($order = Criteria::ASC) Order by the text_layout_file_name column
|
||||
* @method ChildMessageQuery orderByTextTemplateFileName($order = Criteria::ASC) Order by the text_template_file_name column
|
||||
* @method ChildMessageQuery orderByHtmlLayoutFileName($order = Criteria::ASC) Order by the html_layout_file_name column
|
||||
* @method ChildMessageQuery orderByHtmlTemplateFileName($order = Criteria::ASC) Order by the html_template_file_name column
|
||||
* @method ChildMessageQuery orderByCreatedAt($order = Criteria::ASC) Order by the created_at column
|
||||
* @method ChildMessageQuery orderByUpdatedAt($order = Criteria::ASC) Order by the updated_at column
|
||||
* @method ChildMessageQuery orderByVersion($order = Criteria::ASC) Order by the version column
|
||||
@@ -34,6 +38,10 @@ use Thelia\Model\Map\MessageTableMap;
|
||||
* @method ChildMessageQuery groupById() Group by the id column
|
||||
* @method ChildMessageQuery groupByName() Group by the name column
|
||||
* @method ChildMessageQuery groupBySecured() Group by the secured column
|
||||
* @method ChildMessageQuery groupByTextLayoutFileName() Group by the text_layout_file_name column
|
||||
* @method ChildMessageQuery groupByTextTemplateFileName() Group by the text_template_file_name column
|
||||
* @method ChildMessageQuery groupByHtmlLayoutFileName() Group by the html_layout_file_name column
|
||||
* @method ChildMessageQuery groupByHtmlTemplateFileName() Group by the html_template_file_name column
|
||||
* @method ChildMessageQuery groupByCreatedAt() Group by the created_at column
|
||||
* @method ChildMessageQuery groupByUpdatedAt() Group by the updated_at column
|
||||
* @method ChildMessageQuery groupByVersion() Group by the version column
|
||||
@@ -58,6 +66,10 @@ use Thelia\Model\Map\MessageTableMap;
|
||||
* @method ChildMessage findOneById(int $id) Return the first ChildMessage filtered by the id column
|
||||
* @method ChildMessage findOneByName(string $name) Return the first ChildMessage filtered by the name column
|
||||
* @method ChildMessage findOneBySecured(int $secured) Return the first ChildMessage filtered by the secured column
|
||||
* @method ChildMessage findOneByTextLayoutFileName(string $text_layout_file_name) Return the first ChildMessage filtered by the text_layout_file_name column
|
||||
* @method ChildMessage findOneByTextTemplateFileName(string $text_template_file_name) Return the first ChildMessage filtered by the text_template_file_name column
|
||||
* @method ChildMessage findOneByHtmlLayoutFileName(string $html_layout_file_name) Return the first ChildMessage filtered by the html_layout_file_name column
|
||||
* @method ChildMessage findOneByHtmlTemplateFileName(string $html_template_file_name) Return the first ChildMessage filtered by the html_template_file_name column
|
||||
* @method ChildMessage findOneByCreatedAt(string $created_at) Return the first ChildMessage filtered by the created_at column
|
||||
* @method ChildMessage findOneByUpdatedAt(string $updated_at) Return the first ChildMessage filtered by the updated_at column
|
||||
* @method ChildMessage findOneByVersion(int $version) Return the first ChildMessage filtered by the version column
|
||||
@@ -67,6 +79,10 @@ use Thelia\Model\Map\MessageTableMap;
|
||||
* @method array findById(int $id) Return ChildMessage objects filtered by the id column
|
||||
* @method array findByName(string $name) Return ChildMessage objects filtered by the name column
|
||||
* @method array findBySecured(int $secured) Return ChildMessage objects filtered by the secured column
|
||||
* @method array findByTextLayoutFileName(string $text_layout_file_name) Return ChildMessage objects filtered by the text_layout_file_name column
|
||||
* @method array findByTextTemplateFileName(string $text_template_file_name) Return ChildMessage objects filtered by the text_template_file_name column
|
||||
* @method array findByHtmlLayoutFileName(string $html_layout_file_name) Return ChildMessage objects filtered by the html_layout_file_name column
|
||||
* @method array findByHtmlTemplateFileName(string $html_template_file_name) Return ChildMessage objects filtered by the html_template_file_name column
|
||||
* @method array findByCreatedAt(string $created_at) Return ChildMessage objects filtered by the created_at column
|
||||
* @method array findByUpdatedAt(string $updated_at) Return ChildMessage objects filtered by the updated_at column
|
||||
* @method array findByVersion(int $version) Return ChildMessage objects filtered by the version column
|
||||
@@ -167,7 +183,7 @@ abstract class MessageQuery extends ModelCriteria
|
||||
*/
|
||||
protected function findPkSimple($key, $con)
|
||||
{
|
||||
$sql = 'SELECT ID, NAME, SECURED, CREATED_AT, UPDATED_AT, VERSION, VERSION_CREATED_AT, VERSION_CREATED_BY FROM message WHERE ID = :p0';
|
||||
$sql = 'SELECT ID, NAME, SECURED, TEXT_LAYOUT_FILE_NAME, TEXT_TEMPLATE_FILE_NAME, HTML_LAYOUT_FILE_NAME, HTML_TEMPLATE_FILE_NAME, CREATED_AT, UPDATED_AT, VERSION, VERSION_CREATED_AT, VERSION_CREATED_BY FROM message WHERE ID = :p0';
|
||||
try {
|
||||
$stmt = $con->prepare($sql);
|
||||
$stmt->bindValue(':p0', $key, PDO::PARAM_INT);
|
||||
@@ -367,6 +383,122 @@ abstract class MessageQuery extends ModelCriteria
|
||||
return $this->addUsingAlias(MessageTableMap::SECURED, $secured, $comparison);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query on the text_layout_file_name column
|
||||
*
|
||||
* Example usage:
|
||||
* <code>
|
||||
* $query->filterByTextLayoutFileName('fooValue'); // WHERE text_layout_file_name = 'fooValue'
|
||||
* $query->filterByTextLayoutFileName('%fooValue%'); // WHERE text_layout_file_name LIKE '%fooValue%'
|
||||
* </code>
|
||||
*
|
||||
* @param string $textLayoutFileName The value to use as filter.
|
||||
* Accepts wildcards (* and % trigger a LIKE)
|
||||
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
||||
*
|
||||
* @return ChildMessageQuery The current query, for fluid interface
|
||||
*/
|
||||
public function filterByTextLayoutFileName($textLayoutFileName = null, $comparison = null)
|
||||
{
|
||||
if (null === $comparison) {
|
||||
if (is_array($textLayoutFileName)) {
|
||||
$comparison = Criteria::IN;
|
||||
} elseif (preg_match('/[\%\*]/', $textLayoutFileName)) {
|
||||
$textLayoutFileName = str_replace('*', '%', $textLayoutFileName);
|
||||
$comparison = Criteria::LIKE;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->addUsingAlias(MessageTableMap::TEXT_LAYOUT_FILE_NAME, $textLayoutFileName, $comparison);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query on the text_template_file_name column
|
||||
*
|
||||
* Example usage:
|
||||
* <code>
|
||||
* $query->filterByTextTemplateFileName('fooValue'); // WHERE text_template_file_name = 'fooValue'
|
||||
* $query->filterByTextTemplateFileName('%fooValue%'); // WHERE text_template_file_name LIKE '%fooValue%'
|
||||
* </code>
|
||||
*
|
||||
* @param string $textTemplateFileName The value to use as filter.
|
||||
* Accepts wildcards (* and % trigger a LIKE)
|
||||
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
||||
*
|
||||
* @return ChildMessageQuery The current query, for fluid interface
|
||||
*/
|
||||
public function filterByTextTemplateFileName($textTemplateFileName = null, $comparison = null)
|
||||
{
|
||||
if (null === $comparison) {
|
||||
if (is_array($textTemplateFileName)) {
|
||||
$comparison = Criteria::IN;
|
||||
} elseif (preg_match('/[\%\*]/', $textTemplateFileName)) {
|
||||
$textTemplateFileName = str_replace('*', '%', $textTemplateFileName);
|
||||
$comparison = Criteria::LIKE;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->addUsingAlias(MessageTableMap::TEXT_TEMPLATE_FILE_NAME, $textTemplateFileName, $comparison);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query on the html_layout_file_name column
|
||||
*
|
||||
* Example usage:
|
||||
* <code>
|
||||
* $query->filterByHtmlLayoutFileName('fooValue'); // WHERE html_layout_file_name = 'fooValue'
|
||||
* $query->filterByHtmlLayoutFileName('%fooValue%'); // WHERE html_layout_file_name LIKE '%fooValue%'
|
||||
* </code>
|
||||
*
|
||||
* @param string $htmlLayoutFileName The value to use as filter.
|
||||
* Accepts wildcards (* and % trigger a LIKE)
|
||||
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
||||
*
|
||||
* @return ChildMessageQuery The current query, for fluid interface
|
||||
*/
|
||||
public function filterByHtmlLayoutFileName($htmlLayoutFileName = null, $comparison = null)
|
||||
{
|
||||
if (null === $comparison) {
|
||||
if (is_array($htmlLayoutFileName)) {
|
||||
$comparison = Criteria::IN;
|
||||
} elseif (preg_match('/[\%\*]/', $htmlLayoutFileName)) {
|
||||
$htmlLayoutFileName = str_replace('*', '%', $htmlLayoutFileName);
|
||||
$comparison = Criteria::LIKE;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->addUsingAlias(MessageTableMap::HTML_LAYOUT_FILE_NAME, $htmlLayoutFileName, $comparison);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query on the html_template_file_name column
|
||||
*
|
||||
* Example usage:
|
||||
* <code>
|
||||
* $query->filterByHtmlTemplateFileName('fooValue'); // WHERE html_template_file_name = 'fooValue'
|
||||
* $query->filterByHtmlTemplateFileName('%fooValue%'); // WHERE html_template_file_name LIKE '%fooValue%'
|
||||
* </code>
|
||||
*
|
||||
* @param string $htmlTemplateFileName The value to use as filter.
|
||||
* Accepts wildcards (* and % trigger a LIKE)
|
||||
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
||||
*
|
||||
* @return ChildMessageQuery The current query, for fluid interface
|
||||
*/
|
||||
public function filterByHtmlTemplateFileName($htmlTemplateFileName = null, $comparison = null)
|
||||
{
|
||||
if (null === $comparison) {
|
||||
if (is_array($htmlTemplateFileName)) {
|
||||
$comparison = Criteria::IN;
|
||||
} elseif (preg_match('/[\%\*]/', $htmlTemplateFileName)) {
|
||||
$htmlTemplateFileName = str_replace('*', '%', $htmlTemplateFileName);
|
||||
$comparison = Criteria::LIKE;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->addUsingAlias(MessageTableMap::HTML_TEMPLATE_FILE_NAME, $htmlTemplateFileName, $comparison);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query on the created_at column
|
||||
*
|
||||
|
||||
@@ -73,6 +73,30 @@ abstract class MessageVersion implements ActiveRecordInterface
|
||||
*/
|
||||
protected $secured;
|
||||
|
||||
/**
|
||||
* The value for the text_layout_file_name field.
|
||||
* @var string
|
||||
*/
|
||||
protected $text_layout_file_name;
|
||||
|
||||
/**
|
||||
* The value for the text_template_file_name field.
|
||||
* @var string
|
||||
*/
|
||||
protected $text_template_file_name;
|
||||
|
||||
/**
|
||||
* The value for the html_layout_file_name field.
|
||||
* @var string
|
||||
*/
|
||||
protected $html_layout_file_name;
|
||||
|
||||
/**
|
||||
* The value for the html_template_file_name field.
|
||||
* @var string
|
||||
*/
|
||||
protected $html_template_file_name;
|
||||
|
||||
/**
|
||||
* The value for the created_at field.
|
||||
* @var string
|
||||
@@ -421,6 +445,50 @@ abstract class MessageVersion implements ActiveRecordInterface
|
||||
return $this->secured;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the [text_layout_file_name] column value.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getTextLayoutFileName()
|
||||
{
|
||||
|
||||
return $this->text_layout_file_name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the [text_template_file_name] column value.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getTextTemplateFileName()
|
||||
{
|
||||
|
||||
return $this->text_template_file_name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the [html_layout_file_name] column value.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getHtmlLayoutFileName()
|
||||
{
|
||||
|
||||
return $this->html_layout_file_name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the [html_template_file_name] column value.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getHtmlTemplateFileName()
|
||||
{
|
||||
|
||||
return $this->html_template_file_name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the [optionally formatted] temporal [created_at] column value.
|
||||
*
|
||||
@@ -570,6 +638,90 @@ abstract class MessageVersion implements ActiveRecordInterface
|
||||
return $this;
|
||||
} // setSecured()
|
||||
|
||||
/**
|
||||
* Set the value of [text_layout_file_name] column.
|
||||
*
|
||||
* @param string $v new value
|
||||
* @return \Thelia\Model\MessageVersion The current object (for fluent API support)
|
||||
*/
|
||||
public function setTextLayoutFileName($v)
|
||||
{
|
||||
if ($v !== null) {
|
||||
$v = (string) $v;
|
||||
}
|
||||
|
||||
if ($this->text_layout_file_name !== $v) {
|
||||
$this->text_layout_file_name = $v;
|
||||
$this->modifiedColumns[] = MessageVersionTableMap::TEXT_LAYOUT_FILE_NAME;
|
||||
}
|
||||
|
||||
|
||||
return $this;
|
||||
} // setTextLayoutFileName()
|
||||
|
||||
/**
|
||||
* Set the value of [text_template_file_name] column.
|
||||
*
|
||||
* @param string $v new value
|
||||
* @return \Thelia\Model\MessageVersion The current object (for fluent API support)
|
||||
*/
|
||||
public function setTextTemplateFileName($v)
|
||||
{
|
||||
if ($v !== null) {
|
||||
$v = (string) $v;
|
||||
}
|
||||
|
||||
if ($this->text_template_file_name !== $v) {
|
||||
$this->text_template_file_name = $v;
|
||||
$this->modifiedColumns[] = MessageVersionTableMap::TEXT_TEMPLATE_FILE_NAME;
|
||||
}
|
||||
|
||||
|
||||
return $this;
|
||||
} // setTextTemplateFileName()
|
||||
|
||||
/**
|
||||
* Set the value of [html_layout_file_name] column.
|
||||
*
|
||||
* @param string $v new value
|
||||
* @return \Thelia\Model\MessageVersion The current object (for fluent API support)
|
||||
*/
|
||||
public function setHtmlLayoutFileName($v)
|
||||
{
|
||||
if ($v !== null) {
|
||||
$v = (string) $v;
|
||||
}
|
||||
|
||||
if ($this->html_layout_file_name !== $v) {
|
||||
$this->html_layout_file_name = $v;
|
||||
$this->modifiedColumns[] = MessageVersionTableMap::HTML_LAYOUT_FILE_NAME;
|
||||
}
|
||||
|
||||
|
||||
return $this;
|
||||
} // setHtmlLayoutFileName()
|
||||
|
||||
/**
|
||||
* Set the value of [html_template_file_name] column.
|
||||
*
|
||||
* @param string $v new value
|
||||
* @return \Thelia\Model\MessageVersion The current object (for fluent API support)
|
||||
*/
|
||||
public function setHtmlTemplateFileName($v)
|
||||
{
|
||||
if ($v !== null) {
|
||||
$v = (string) $v;
|
||||
}
|
||||
|
||||
if ($this->html_template_file_name !== $v) {
|
||||
$this->html_template_file_name = $v;
|
||||
$this->modifiedColumns[] = MessageVersionTableMap::HTML_TEMPLATE_FILE_NAME;
|
||||
}
|
||||
|
||||
|
||||
return $this;
|
||||
} // setHtmlTemplateFileName()
|
||||
|
||||
/**
|
||||
* Sets the value of [created_at] column to a normalized version of the date/time value specified.
|
||||
*
|
||||
@@ -725,28 +877,40 @@ abstract class MessageVersion implements ActiveRecordInterface
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 2 + $startcol : MessageVersionTableMap::translateFieldName('Secured', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$this->secured = (null !== $col) ? (int) $col : null;
|
||||
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 3 + $startcol : MessageVersionTableMap::translateFieldName('CreatedAt', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 3 + $startcol : MessageVersionTableMap::translateFieldName('TextLayoutFileName', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$this->text_layout_file_name = (null !== $col) ? (string) $col : null;
|
||||
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 4 + $startcol : MessageVersionTableMap::translateFieldName('TextTemplateFileName', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$this->text_template_file_name = (null !== $col) ? (string) $col : null;
|
||||
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 5 + $startcol : MessageVersionTableMap::translateFieldName('HtmlLayoutFileName', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$this->html_layout_file_name = (null !== $col) ? (string) $col : null;
|
||||
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 6 + $startcol : MessageVersionTableMap::translateFieldName('HtmlTemplateFileName', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$this->html_template_file_name = (null !== $col) ? (string) $col : null;
|
||||
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 7 + $startcol : MessageVersionTableMap::translateFieldName('CreatedAt', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
if ($col === '0000-00-00 00:00:00') {
|
||||
$col = null;
|
||||
}
|
||||
$this->created_at = (null !== $col) ? PropelDateTime::newInstance($col, null, '\DateTime') : null;
|
||||
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 4 + $startcol : MessageVersionTableMap::translateFieldName('UpdatedAt', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 8 + $startcol : MessageVersionTableMap::translateFieldName('UpdatedAt', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
if ($col === '0000-00-00 00:00:00') {
|
||||
$col = null;
|
||||
}
|
||||
$this->updated_at = (null !== $col) ? PropelDateTime::newInstance($col, null, '\DateTime') : null;
|
||||
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 5 + $startcol : MessageVersionTableMap::translateFieldName('Version', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 9 + $startcol : MessageVersionTableMap::translateFieldName('Version', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$this->version = (null !== $col) ? (int) $col : null;
|
||||
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 6 + $startcol : MessageVersionTableMap::translateFieldName('VersionCreatedAt', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 10 + $startcol : MessageVersionTableMap::translateFieldName('VersionCreatedAt', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
if ($col === '0000-00-00 00:00:00') {
|
||||
$col = null;
|
||||
}
|
||||
$this->version_created_at = (null !== $col) ? PropelDateTime::newInstance($col, null, '\DateTime') : null;
|
||||
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 7 + $startcol : MessageVersionTableMap::translateFieldName('VersionCreatedBy', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 11 + $startcol : MessageVersionTableMap::translateFieldName('VersionCreatedBy', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$this->version_created_by = (null !== $col) ? (string) $col : null;
|
||||
$this->resetModified();
|
||||
|
||||
@@ -756,7 +920,7 @@ abstract class MessageVersion implements ActiveRecordInterface
|
||||
$this->ensureConsistency();
|
||||
}
|
||||
|
||||
return $startcol + 8; // 8 = MessageVersionTableMap::NUM_HYDRATE_COLUMNS.
|
||||
return $startcol + 12; // 12 = MessageVersionTableMap::NUM_HYDRATE_COLUMNS.
|
||||
|
||||
} catch (Exception $e) {
|
||||
throw new PropelException("Error populating \Thelia\Model\MessageVersion object", 0, $e);
|
||||
@@ -986,6 +1150,18 @@ abstract class MessageVersion implements ActiveRecordInterface
|
||||
if ($this->isColumnModified(MessageVersionTableMap::SECURED)) {
|
||||
$modifiedColumns[':p' . $index++] = 'SECURED';
|
||||
}
|
||||
if ($this->isColumnModified(MessageVersionTableMap::TEXT_LAYOUT_FILE_NAME)) {
|
||||
$modifiedColumns[':p' . $index++] = 'TEXT_LAYOUT_FILE_NAME';
|
||||
}
|
||||
if ($this->isColumnModified(MessageVersionTableMap::TEXT_TEMPLATE_FILE_NAME)) {
|
||||
$modifiedColumns[':p' . $index++] = 'TEXT_TEMPLATE_FILE_NAME';
|
||||
}
|
||||
if ($this->isColumnModified(MessageVersionTableMap::HTML_LAYOUT_FILE_NAME)) {
|
||||
$modifiedColumns[':p' . $index++] = 'HTML_LAYOUT_FILE_NAME';
|
||||
}
|
||||
if ($this->isColumnModified(MessageVersionTableMap::HTML_TEMPLATE_FILE_NAME)) {
|
||||
$modifiedColumns[':p' . $index++] = 'HTML_TEMPLATE_FILE_NAME';
|
||||
}
|
||||
if ($this->isColumnModified(MessageVersionTableMap::CREATED_AT)) {
|
||||
$modifiedColumns[':p' . $index++] = 'CREATED_AT';
|
||||
}
|
||||
@@ -1021,6 +1197,18 @@ abstract class MessageVersion implements ActiveRecordInterface
|
||||
case 'SECURED':
|
||||
$stmt->bindValue($identifier, $this->secured, PDO::PARAM_INT);
|
||||
break;
|
||||
case 'TEXT_LAYOUT_FILE_NAME':
|
||||
$stmt->bindValue($identifier, $this->text_layout_file_name, PDO::PARAM_STR);
|
||||
break;
|
||||
case 'TEXT_TEMPLATE_FILE_NAME':
|
||||
$stmt->bindValue($identifier, $this->text_template_file_name, PDO::PARAM_STR);
|
||||
break;
|
||||
case 'HTML_LAYOUT_FILE_NAME':
|
||||
$stmt->bindValue($identifier, $this->html_layout_file_name, PDO::PARAM_STR);
|
||||
break;
|
||||
case 'HTML_TEMPLATE_FILE_NAME':
|
||||
$stmt->bindValue($identifier, $this->html_template_file_name, PDO::PARAM_STR);
|
||||
break;
|
||||
case 'CREATED_AT':
|
||||
$stmt->bindValue($identifier, $this->created_at ? $this->created_at->format("Y-m-d H:i:s") : null, PDO::PARAM_STR);
|
||||
break;
|
||||
@@ -1101,18 +1289,30 @@ abstract class MessageVersion implements ActiveRecordInterface
|
||||
return $this->getSecured();
|
||||
break;
|
||||
case 3:
|
||||
return $this->getCreatedAt();
|
||||
return $this->getTextLayoutFileName();
|
||||
break;
|
||||
case 4:
|
||||
return $this->getUpdatedAt();
|
||||
return $this->getTextTemplateFileName();
|
||||
break;
|
||||
case 5:
|
||||
return $this->getVersion();
|
||||
return $this->getHtmlLayoutFileName();
|
||||
break;
|
||||
case 6:
|
||||
return $this->getVersionCreatedAt();
|
||||
return $this->getHtmlTemplateFileName();
|
||||
break;
|
||||
case 7:
|
||||
return $this->getCreatedAt();
|
||||
break;
|
||||
case 8:
|
||||
return $this->getUpdatedAt();
|
||||
break;
|
||||
case 9:
|
||||
return $this->getVersion();
|
||||
break;
|
||||
case 10:
|
||||
return $this->getVersionCreatedAt();
|
||||
break;
|
||||
case 11:
|
||||
return $this->getVersionCreatedBy();
|
||||
break;
|
||||
default:
|
||||
@@ -1147,11 +1347,15 @@ abstract class MessageVersion implements ActiveRecordInterface
|
||||
$keys[0] => $this->getId(),
|
||||
$keys[1] => $this->getName(),
|
||||
$keys[2] => $this->getSecured(),
|
||||
$keys[3] => $this->getCreatedAt(),
|
||||
$keys[4] => $this->getUpdatedAt(),
|
||||
$keys[5] => $this->getVersion(),
|
||||
$keys[6] => $this->getVersionCreatedAt(),
|
||||
$keys[7] => $this->getVersionCreatedBy(),
|
||||
$keys[3] => $this->getTextLayoutFileName(),
|
||||
$keys[4] => $this->getTextTemplateFileName(),
|
||||
$keys[5] => $this->getHtmlLayoutFileName(),
|
||||
$keys[6] => $this->getHtmlTemplateFileName(),
|
||||
$keys[7] => $this->getCreatedAt(),
|
||||
$keys[8] => $this->getUpdatedAt(),
|
||||
$keys[9] => $this->getVersion(),
|
||||
$keys[10] => $this->getVersionCreatedAt(),
|
||||
$keys[11] => $this->getVersionCreatedBy(),
|
||||
);
|
||||
$virtualColumns = $this->virtualColumns;
|
||||
foreach ($virtualColumns as $key => $virtualColumn) {
|
||||
@@ -1206,18 +1410,30 @@ abstract class MessageVersion implements ActiveRecordInterface
|
||||
$this->setSecured($value);
|
||||
break;
|
||||
case 3:
|
||||
$this->setCreatedAt($value);
|
||||
$this->setTextLayoutFileName($value);
|
||||
break;
|
||||
case 4:
|
||||
$this->setUpdatedAt($value);
|
||||
$this->setTextTemplateFileName($value);
|
||||
break;
|
||||
case 5:
|
||||
$this->setVersion($value);
|
||||
$this->setHtmlLayoutFileName($value);
|
||||
break;
|
||||
case 6:
|
||||
$this->setVersionCreatedAt($value);
|
||||
$this->setHtmlTemplateFileName($value);
|
||||
break;
|
||||
case 7:
|
||||
$this->setCreatedAt($value);
|
||||
break;
|
||||
case 8:
|
||||
$this->setUpdatedAt($value);
|
||||
break;
|
||||
case 9:
|
||||
$this->setVersion($value);
|
||||
break;
|
||||
case 10:
|
||||
$this->setVersionCreatedAt($value);
|
||||
break;
|
||||
case 11:
|
||||
$this->setVersionCreatedBy($value);
|
||||
break;
|
||||
} // switch()
|
||||
@@ -1247,11 +1463,15 @@ abstract class MessageVersion implements ActiveRecordInterface
|
||||
if (array_key_exists($keys[0], $arr)) $this->setId($arr[$keys[0]]);
|
||||
if (array_key_exists($keys[1], $arr)) $this->setName($arr[$keys[1]]);
|
||||
if (array_key_exists($keys[2], $arr)) $this->setSecured($arr[$keys[2]]);
|
||||
if (array_key_exists($keys[3], $arr)) $this->setCreatedAt($arr[$keys[3]]);
|
||||
if (array_key_exists($keys[4], $arr)) $this->setUpdatedAt($arr[$keys[4]]);
|
||||
if (array_key_exists($keys[5], $arr)) $this->setVersion($arr[$keys[5]]);
|
||||
if (array_key_exists($keys[6], $arr)) $this->setVersionCreatedAt($arr[$keys[6]]);
|
||||
if (array_key_exists($keys[7], $arr)) $this->setVersionCreatedBy($arr[$keys[7]]);
|
||||
if (array_key_exists($keys[3], $arr)) $this->setTextLayoutFileName($arr[$keys[3]]);
|
||||
if (array_key_exists($keys[4], $arr)) $this->setTextTemplateFileName($arr[$keys[4]]);
|
||||
if (array_key_exists($keys[5], $arr)) $this->setHtmlLayoutFileName($arr[$keys[5]]);
|
||||
if (array_key_exists($keys[6], $arr)) $this->setHtmlTemplateFileName($arr[$keys[6]]);
|
||||
if (array_key_exists($keys[7], $arr)) $this->setCreatedAt($arr[$keys[7]]);
|
||||
if (array_key_exists($keys[8], $arr)) $this->setUpdatedAt($arr[$keys[8]]);
|
||||
if (array_key_exists($keys[9], $arr)) $this->setVersion($arr[$keys[9]]);
|
||||
if (array_key_exists($keys[10], $arr)) $this->setVersionCreatedAt($arr[$keys[10]]);
|
||||
if (array_key_exists($keys[11], $arr)) $this->setVersionCreatedBy($arr[$keys[11]]);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1266,6 +1486,10 @@ abstract class MessageVersion implements ActiveRecordInterface
|
||||
if ($this->isColumnModified(MessageVersionTableMap::ID)) $criteria->add(MessageVersionTableMap::ID, $this->id);
|
||||
if ($this->isColumnModified(MessageVersionTableMap::NAME)) $criteria->add(MessageVersionTableMap::NAME, $this->name);
|
||||
if ($this->isColumnModified(MessageVersionTableMap::SECURED)) $criteria->add(MessageVersionTableMap::SECURED, $this->secured);
|
||||
if ($this->isColumnModified(MessageVersionTableMap::TEXT_LAYOUT_FILE_NAME)) $criteria->add(MessageVersionTableMap::TEXT_LAYOUT_FILE_NAME, $this->text_layout_file_name);
|
||||
if ($this->isColumnModified(MessageVersionTableMap::TEXT_TEMPLATE_FILE_NAME)) $criteria->add(MessageVersionTableMap::TEXT_TEMPLATE_FILE_NAME, $this->text_template_file_name);
|
||||
if ($this->isColumnModified(MessageVersionTableMap::HTML_LAYOUT_FILE_NAME)) $criteria->add(MessageVersionTableMap::HTML_LAYOUT_FILE_NAME, $this->html_layout_file_name);
|
||||
if ($this->isColumnModified(MessageVersionTableMap::HTML_TEMPLATE_FILE_NAME)) $criteria->add(MessageVersionTableMap::HTML_TEMPLATE_FILE_NAME, $this->html_template_file_name);
|
||||
if ($this->isColumnModified(MessageVersionTableMap::CREATED_AT)) $criteria->add(MessageVersionTableMap::CREATED_AT, $this->created_at);
|
||||
if ($this->isColumnModified(MessageVersionTableMap::UPDATED_AT)) $criteria->add(MessageVersionTableMap::UPDATED_AT, $this->updated_at);
|
||||
if ($this->isColumnModified(MessageVersionTableMap::VERSION)) $criteria->add(MessageVersionTableMap::VERSION, $this->version);
|
||||
@@ -1344,6 +1568,10 @@ abstract class MessageVersion implements ActiveRecordInterface
|
||||
$copyObj->setId($this->getId());
|
||||
$copyObj->setName($this->getName());
|
||||
$copyObj->setSecured($this->getSecured());
|
||||
$copyObj->setTextLayoutFileName($this->getTextLayoutFileName());
|
||||
$copyObj->setTextTemplateFileName($this->getTextTemplateFileName());
|
||||
$copyObj->setHtmlLayoutFileName($this->getHtmlLayoutFileName());
|
||||
$copyObj->setHtmlTemplateFileName($this->getHtmlTemplateFileName());
|
||||
$copyObj->setCreatedAt($this->getCreatedAt());
|
||||
$copyObj->setUpdatedAt($this->getUpdatedAt());
|
||||
$copyObj->setVersion($this->getVersion());
|
||||
@@ -1435,6 +1663,10 @@ abstract class MessageVersion implements ActiveRecordInterface
|
||||
$this->id = null;
|
||||
$this->name = null;
|
||||
$this->secured = null;
|
||||
$this->text_layout_file_name = null;
|
||||
$this->text_template_file_name = null;
|
||||
$this->html_layout_file_name = null;
|
||||
$this->html_template_file_name = null;
|
||||
$this->created_at = null;
|
||||
$this->updated_at = null;
|
||||
$this->version = null;
|
||||
|
||||
@@ -24,6 +24,10 @@ use Thelia\Model\Map\MessageVersionTableMap;
|
||||
* @method ChildMessageVersionQuery orderById($order = Criteria::ASC) Order by the id column
|
||||
* @method ChildMessageVersionQuery orderByName($order = Criteria::ASC) Order by the name column
|
||||
* @method ChildMessageVersionQuery orderBySecured($order = Criteria::ASC) Order by the secured column
|
||||
* @method ChildMessageVersionQuery orderByTextLayoutFileName($order = Criteria::ASC) Order by the text_layout_file_name column
|
||||
* @method ChildMessageVersionQuery orderByTextTemplateFileName($order = Criteria::ASC) Order by the text_template_file_name column
|
||||
* @method ChildMessageVersionQuery orderByHtmlLayoutFileName($order = Criteria::ASC) Order by the html_layout_file_name column
|
||||
* @method ChildMessageVersionQuery orderByHtmlTemplateFileName($order = Criteria::ASC) Order by the html_template_file_name column
|
||||
* @method ChildMessageVersionQuery orderByCreatedAt($order = Criteria::ASC) Order by the created_at column
|
||||
* @method ChildMessageVersionQuery orderByUpdatedAt($order = Criteria::ASC) Order by the updated_at column
|
||||
* @method ChildMessageVersionQuery orderByVersion($order = Criteria::ASC) Order by the version column
|
||||
@@ -33,6 +37,10 @@ use Thelia\Model\Map\MessageVersionTableMap;
|
||||
* @method ChildMessageVersionQuery groupById() Group by the id column
|
||||
* @method ChildMessageVersionQuery groupByName() Group by the name column
|
||||
* @method ChildMessageVersionQuery groupBySecured() Group by the secured column
|
||||
* @method ChildMessageVersionQuery groupByTextLayoutFileName() Group by the text_layout_file_name column
|
||||
* @method ChildMessageVersionQuery groupByTextTemplateFileName() Group by the text_template_file_name column
|
||||
* @method ChildMessageVersionQuery groupByHtmlLayoutFileName() Group by the html_layout_file_name column
|
||||
* @method ChildMessageVersionQuery groupByHtmlTemplateFileName() Group by the html_template_file_name column
|
||||
* @method ChildMessageVersionQuery groupByCreatedAt() Group by the created_at column
|
||||
* @method ChildMessageVersionQuery groupByUpdatedAt() Group by the updated_at column
|
||||
* @method ChildMessageVersionQuery groupByVersion() Group by the version column
|
||||
@@ -53,6 +61,10 @@ use Thelia\Model\Map\MessageVersionTableMap;
|
||||
* @method ChildMessageVersion findOneById(int $id) Return the first ChildMessageVersion filtered by the id column
|
||||
* @method ChildMessageVersion findOneByName(string $name) Return the first ChildMessageVersion filtered by the name column
|
||||
* @method ChildMessageVersion findOneBySecured(int $secured) Return the first ChildMessageVersion filtered by the secured column
|
||||
* @method ChildMessageVersion findOneByTextLayoutFileName(string $text_layout_file_name) Return the first ChildMessageVersion filtered by the text_layout_file_name column
|
||||
* @method ChildMessageVersion findOneByTextTemplateFileName(string $text_template_file_name) Return the first ChildMessageVersion filtered by the text_template_file_name column
|
||||
* @method ChildMessageVersion findOneByHtmlLayoutFileName(string $html_layout_file_name) Return the first ChildMessageVersion filtered by the html_layout_file_name column
|
||||
* @method ChildMessageVersion findOneByHtmlTemplateFileName(string $html_template_file_name) Return the first ChildMessageVersion filtered by the html_template_file_name column
|
||||
* @method ChildMessageVersion findOneByCreatedAt(string $created_at) Return the first ChildMessageVersion filtered by the created_at column
|
||||
* @method ChildMessageVersion findOneByUpdatedAt(string $updated_at) Return the first ChildMessageVersion filtered by the updated_at column
|
||||
* @method ChildMessageVersion findOneByVersion(int $version) Return the first ChildMessageVersion filtered by the version column
|
||||
@@ -62,6 +74,10 @@ use Thelia\Model\Map\MessageVersionTableMap;
|
||||
* @method array findById(int $id) Return ChildMessageVersion objects filtered by the id column
|
||||
* @method array findByName(string $name) Return ChildMessageVersion objects filtered by the name column
|
||||
* @method array findBySecured(int $secured) Return ChildMessageVersion objects filtered by the secured column
|
||||
* @method array findByTextLayoutFileName(string $text_layout_file_name) Return ChildMessageVersion objects filtered by the text_layout_file_name column
|
||||
* @method array findByTextTemplateFileName(string $text_template_file_name) Return ChildMessageVersion objects filtered by the text_template_file_name column
|
||||
* @method array findByHtmlLayoutFileName(string $html_layout_file_name) Return ChildMessageVersion objects filtered by the html_layout_file_name column
|
||||
* @method array findByHtmlTemplateFileName(string $html_template_file_name) Return ChildMessageVersion objects filtered by the html_template_file_name column
|
||||
* @method array findByCreatedAt(string $created_at) Return ChildMessageVersion objects filtered by the created_at column
|
||||
* @method array findByUpdatedAt(string $updated_at) Return ChildMessageVersion objects filtered by the updated_at column
|
||||
* @method array findByVersion(int $version) Return ChildMessageVersion objects filtered by the version column
|
||||
@@ -155,7 +171,7 @@ abstract class MessageVersionQuery extends ModelCriteria
|
||||
*/
|
||||
protected function findPkSimple($key, $con)
|
||||
{
|
||||
$sql = 'SELECT ID, NAME, SECURED, CREATED_AT, UPDATED_AT, VERSION, VERSION_CREATED_AT, VERSION_CREATED_BY FROM message_version WHERE ID = :p0 AND VERSION = :p1';
|
||||
$sql = 'SELECT ID, NAME, SECURED, TEXT_LAYOUT_FILE_NAME, TEXT_TEMPLATE_FILE_NAME, HTML_LAYOUT_FILE_NAME, HTML_TEMPLATE_FILE_NAME, CREATED_AT, UPDATED_AT, VERSION, VERSION_CREATED_AT, VERSION_CREATED_BY FROM message_version WHERE ID = :p0 AND VERSION = :p1';
|
||||
try {
|
||||
$stmt = $con->prepare($sql);
|
||||
$stmt->bindValue(':p0', $key[0], PDO::PARAM_INT);
|
||||
@@ -369,6 +385,122 @@ abstract class MessageVersionQuery extends ModelCriteria
|
||||
return $this->addUsingAlias(MessageVersionTableMap::SECURED, $secured, $comparison);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query on the text_layout_file_name column
|
||||
*
|
||||
* Example usage:
|
||||
* <code>
|
||||
* $query->filterByTextLayoutFileName('fooValue'); // WHERE text_layout_file_name = 'fooValue'
|
||||
* $query->filterByTextLayoutFileName('%fooValue%'); // WHERE text_layout_file_name LIKE '%fooValue%'
|
||||
* </code>
|
||||
*
|
||||
* @param string $textLayoutFileName The value to use as filter.
|
||||
* Accepts wildcards (* and % trigger a LIKE)
|
||||
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
||||
*
|
||||
* @return ChildMessageVersionQuery The current query, for fluid interface
|
||||
*/
|
||||
public function filterByTextLayoutFileName($textLayoutFileName = null, $comparison = null)
|
||||
{
|
||||
if (null === $comparison) {
|
||||
if (is_array($textLayoutFileName)) {
|
||||
$comparison = Criteria::IN;
|
||||
} elseif (preg_match('/[\%\*]/', $textLayoutFileName)) {
|
||||
$textLayoutFileName = str_replace('*', '%', $textLayoutFileName);
|
||||
$comparison = Criteria::LIKE;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->addUsingAlias(MessageVersionTableMap::TEXT_LAYOUT_FILE_NAME, $textLayoutFileName, $comparison);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query on the text_template_file_name column
|
||||
*
|
||||
* Example usage:
|
||||
* <code>
|
||||
* $query->filterByTextTemplateFileName('fooValue'); // WHERE text_template_file_name = 'fooValue'
|
||||
* $query->filterByTextTemplateFileName('%fooValue%'); // WHERE text_template_file_name LIKE '%fooValue%'
|
||||
* </code>
|
||||
*
|
||||
* @param string $textTemplateFileName The value to use as filter.
|
||||
* Accepts wildcards (* and % trigger a LIKE)
|
||||
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
||||
*
|
||||
* @return ChildMessageVersionQuery The current query, for fluid interface
|
||||
*/
|
||||
public function filterByTextTemplateFileName($textTemplateFileName = null, $comparison = null)
|
||||
{
|
||||
if (null === $comparison) {
|
||||
if (is_array($textTemplateFileName)) {
|
||||
$comparison = Criteria::IN;
|
||||
} elseif (preg_match('/[\%\*]/', $textTemplateFileName)) {
|
||||
$textTemplateFileName = str_replace('*', '%', $textTemplateFileName);
|
||||
$comparison = Criteria::LIKE;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->addUsingAlias(MessageVersionTableMap::TEXT_TEMPLATE_FILE_NAME, $textTemplateFileName, $comparison);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query on the html_layout_file_name column
|
||||
*
|
||||
* Example usage:
|
||||
* <code>
|
||||
* $query->filterByHtmlLayoutFileName('fooValue'); // WHERE html_layout_file_name = 'fooValue'
|
||||
* $query->filterByHtmlLayoutFileName('%fooValue%'); // WHERE html_layout_file_name LIKE '%fooValue%'
|
||||
* </code>
|
||||
*
|
||||
* @param string $htmlLayoutFileName The value to use as filter.
|
||||
* Accepts wildcards (* and % trigger a LIKE)
|
||||
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
||||
*
|
||||
* @return ChildMessageVersionQuery The current query, for fluid interface
|
||||
*/
|
||||
public function filterByHtmlLayoutFileName($htmlLayoutFileName = null, $comparison = null)
|
||||
{
|
||||
if (null === $comparison) {
|
||||
if (is_array($htmlLayoutFileName)) {
|
||||
$comparison = Criteria::IN;
|
||||
} elseif (preg_match('/[\%\*]/', $htmlLayoutFileName)) {
|
||||
$htmlLayoutFileName = str_replace('*', '%', $htmlLayoutFileName);
|
||||
$comparison = Criteria::LIKE;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->addUsingAlias(MessageVersionTableMap::HTML_LAYOUT_FILE_NAME, $htmlLayoutFileName, $comparison);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query on the html_template_file_name column
|
||||
*
|
||||
* Example usage:
|
||||
* <code>
|
||||
* $query->filterByHtmlTemplateFileName('fooValue'); // WHERE html_template_file_name = 'fooValue'
|
||||
* $query->filterByHtmlTemplateFileName('%fooValue%'); // WHERE html_template_file_name LIKE '%fooValue%'
|
||||
* </code>
|
||||
*
|
||||
* @param string $htmlTemplateFileName The value to use as filter.
|
||||
* Accepts wildcards (* and % trigger a LIKE)
|
||||
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
||||
*
|
||||
* @return ChildMessageVersionQuery The current query, for fluid interface
|
||||
*/
|
||||
public function filterByHtmlTemplateFileName($htmlTemplateFileName = null, $comparison = null)
|
||||
{
|
||||
if (null === $comparison) {
|
||||
if (is_array($htmlTemplateFileName)) {
|
||||
$comparison = Criteria::IN;
|
||||
} elseif (preg_match('/[\%\*]/', $htmlTemplateFileName)) {
|
||||
$htmlTemplateFileName = str_replace('*', '%', $htmlTemplateFileName);
|
||||
$comparison = Criteria::LIKE;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->addUsingAlias(MessageVersionTableMap::HTML_TEMPLATE_FILE_NAME, $htmlTemplateFileName, $comparison);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query on the created_at column
|
||||
*
|
||||
|
||||
@@ -5866,6 +5866,78 @@ abstract class Product implements ActiveRecordInterface
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get the [meta_title] column value.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getMetaTitle()
|
||||
{
|
||||
return $this->getCurrentTranslation()->getMetaTitle();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set the value of [meta_title] column.
|
||||
*
|
||||
* @param string $v new value
|
||||
* @return \Thelia\Model\ProductI18n The current object (for fluent API support)
|
||||
*/
|
||||
public function setMetaTitle($v)
|
||||
{ $this->getCurrentTranslation()->setMetaTitle($v);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get the [meta_description] column value.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getMetaDescription()
|
||||
{
|
||||
return $this->getCurrentTranslation()->getMetaDescription();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set the value of [meta_description] column.
|
||||
*
|
||||
* @param string $v new value
|
||||
* @return \Thelia\Model\ProductI18n The current object (for fluent API support)
|
||||
*/
|
||||
public function setMetaDescription($v)
|
||||
{ $this->getCurrentTranslation()->setMetaDescription($v);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get the [meta_keyword] column value.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getMetaKeyword()
|
||||
{
|
||||
return $this->getCurrentTranslation()->getMetaKeyword();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set the value of [meta_keyword] column.
|
||||
*
|
||||
* @param string $v new value
|
||||
* @return \Thelia\Model\ProductI18n The current object (for fluent API support)
|
||||
*/
|
||||
public function setMetaKeyword($v)
|
||||
{ $this->getCurrentTranslation()->setMetaKeyword($v);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
// versionable behavior
|
||||
|
||||
/**
|
||||
|
||||
@@ -90,6 +90,24 @@ abstract class ProductI18n implements ActiveRecordInterface
|
||||
*/
|
||||
protected $postscriptum;
|
||||
|
||||
/**
|
||||
* The value for the meta_title field.
|
||||
* @var string
|
||||
*/
|
||||
protected $meta_title;
|
||||
|
||||
/**
|
||||
* The value for the meta_description field.
|
||||
* @var string
|
||||
*/
|
||||
protected $meta_description;
|
||||
|
||||
/**
|
||||
* The value for the meta_keyword field.
|
||||
* @var string
|
||||
*/
|
||||
protected $meta_keyword;
|
||||
|
||||
/**
|
||||
* @var Product
|
||||
*/
|
||||
@@ -440,6 +458,39 @@ abstract class ProductI18n implements ActiveRecordInterface
|
||||
return $this->postscriptum;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the [meta_title] column value.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getMetaTitle()
|
||||
{
|
||||
|
||||
return $this->meta_title;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the [meta_description] column value.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getMetaDescription()
|
||||
{
|
||||
|
||||
return $this->meta_description;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the [meta_keyword] column value.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getMetaKeyword()
|
||||
{
|
||||
|
||||
return $this->meta_keyword;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the value of [id] column.
|
||||
*
|
||||
@@ -570,6 +621,69 @@ abstract class ProductI18n implements ActiveRecordInterface
|
||||
return $this;
|
||||
} // setPostscriptum()
|
||||
|
||||
/**
|
||||
* Set the value of [meta_title] column.
|
||||
*
|
||||
* @param string $v new value
|
||||
* @return \Thelia\Model\ProductI18n The current object (for fluent API support)
|
||||
*/
|
||||
public function setMetaTitle($v)
|
||||
{
|
||||
if ($v !== null) {
|
||||
$v = (string) $v;
|
||||
}
|
||||
|
||||
if ($this->meta_title !== $v) {
|
||||
$this->meta_title = $v;
|
||||
$this->modifiedColumns[] = ProductI18nTableMap::META_TITLE;
|
||||
}
|
||||
|
||||
|
||||
return $this;
|
||||
} // setMetaTitle()
|
||||
|
||||
/**
|
||||
* Set the value of [meta_description] column.
|
||||
*
|
||||
* @param string $v new value
|
||||
* @return \Thelia\Model\ProductI18n The current object (for fluent API support)
|
||||
*/
|
||||
public function setMetaDescription($v)
|
||||
{
|
||||
if ($v !== null) {
|
||||
$v = (string) $v;
|
||||
}
|
||||
|
||||
if ($this->meta_description !== $v) {
|
||||
$this->meta_description = $v;
|
||||
$this->modifiedColumns[] = ProductI18nTableMap::META_DESCRIPTION;
|
||||
}
|
||||
|
||||
|
||||
return $this;
|
||||
} // setMetaDescription()
|
||||
|
||||
/**
|
||||
* Set the value of [meta_keyword] column.
|
||||
*
|
||||
* @param string $v new value
|
||||
* @return \Thelia\Model\ProductI18n The current object (for fluent API support)
|
||||
*/
|
||||
public function setMetaKeyword($v)
|
||||
{
|
||||
if ($v !== null) {
|
||||
$v = (string) $v;
|
||||
}
|
||||
|
||||
if ($this->meta_keyword !== $v) {
|
||||
$this->meta_keyword = $v;
|
||||
$this->modifiedColumns[] = ProductI18nTableMap::META_KEYWORD;
|
||||
}
|
||||
|
||||
|
||||
return $this;
|
||||
} // setMetaKeyword()
|
||||
|
||||
/**
|
||||
* Indicates whether the columns in this object are only set to default values.
|
||||
*
|
||||
@@ -628,6 +742,15 @@ abstract class ProductI18n implements ActiveRecordInterface
|
||||
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 5 + $startcol : ProductI18nTableMap::translateFieldName('Postscriptum', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$this->postscriptum = (null !== $col) ? (string) $col : null;
|
||||
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 6 + $startcol : ProductI18nTableMap::translateFieldName('MetaTitle', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$this->meta_title = (null !== $col) ? (string) $col : null;
|
||||
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 7 + $startcol : ProductI18nTableMap::translateFieldName('MetaDescription', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$this->meta_description = (null !== $col) ? (string) $col : null;
|
||||
|
||||
$col = $row[TableMap::TYPE_NUM == $indexType ? 8 + $startcol : ProductI18nTableMap::translateFieldName('MetaKeyword', TableMap::TYPE_PHPNAME, $indexType)];
|
||||
$this->meta_keyword = (null !== $col) ? (string) $col : null;
|
||||
$this->resetModified();
|
||||
|
||||
$this->setNew(false);
|
||||
@@ -636,7 +759,7 @@ abstract class ProductI18n implements ActiveRecordInterface
|
||||
$this->ensureConsistency();
|
||||
}
|
||||
|
||||
return $startcol + 6; // 6 = ProductI18nTableMap::NUM_HYDRATE_COLUMNS.
|
||||
return $startcol + 9; // 9 = ProductI18nTableMap::NUM_HYDRATE_COLUMNS.
|
||||
|
||||
} catch (Exception $e) {
|
||||
throw new PropelException("Error populating \Thelia\Model\ProductI18n object", 0, $e);
|
||||
@@ -875,6 +998,15 @@ abstract class ProductI18n implements ActiveRecordInterface
|
||||
if ($this->isColumnModified(ProductI18nTableMap::POSTSCRIPTUM)) {
|
||||
$modifiedColumns[':p' . $index++] = 'POSTSCRIPTUM';
|
||||
}
|
||||
if ($this->isColumnModified(ProductI18nTableMap::META_TITLE)) {
|
||||
$modifiedColumns[':p' . $index++] = 'META_TITLE';
|
||||
}
|
||||
if ($this->isColumnModified(ProductI18nTableMap::META_DESCRIPTION)) {
|
||||
$modifiedColumns[':p' . $index++] = 'META_DESCRIPTION';
|
||||
}
|
||||
if ($this->isColumnModified(ProductI18nTableMap::META_KEYWORD)) {
|
||||
$modifiedColumns[':p' . $index++] = 'META_KEYWORD';
|
||||
}
|
||||
|
||||
$sql = sprintf(
|
||||
'INSERT INTO product_i18n (%s) VALUES (%s)',
|
||||
@@ -904,6 +1036,15 @@ abstract class ProductI18n implements ActiveRecordInterface
|
||||
case 'POSTSCRIPTUM':
|
||||
$stmt->bindValue($identifier, $this->postscriptum, PDO::PARAM_STR);
|
||||
break;
|
||||
case 'META_TITLE':
|
||||
$stmt->bindValue($identifier, $this->meta_title, PDO::PARAM_STR);
|
||||
break;
|
||||
case 'META_DESCRIPTION':
|
||||
$stmt->bindValue($identifier, $this->meta_description, PDO::PARAM_STR);
|
||||
break;
|
||||
case 'META_KEYWORD':
|
||||
$stmt->bindValue($identifier, $this->meta_keyword, PDO::PARAM_STR);
|
||||
break;
|
||||
}
|
||||
}
|
||||
$stmt->execute();
|
||||
@@ -977,6 +1118,15 @@ abstract class ProductI18n implements ActiveRecordInterface
|
||||
case 5:
|
||||
return $this->getPostscriptum();
|
||||
break;
|
||||
case 6:
|
||||
return $this->getMetaTitle();
|
||||
break;
|
||||
case 7:
|
||||
return $this->getMetaDescription();
|
||||
break;
|
||||
case 8:
|
||||
return $this->getMetaKeyword();
|
||||
break;
|
||||
default:
|
||||
return null;
|
||||
break;
|
||||
@@ -1012,6 +1162,9 @@ abstract class ProductI18n implements ActiveRecordInterface
|
||||
$keys[3] => $this->getDescription(),
|
||||
$keys[4] => $this->getChapo(),
|
||||
$keys[5] => $this->getPostscriptum(),
|
||||
$keys[6] => $this->getMetaTitle(),
|
||||
$keys[7] => $this->getMetaDescription(),
|
||||
$keys[8] => $this->getMetaKeyword(),
|
||||
);
|
||||
$virtualColumns = $this->virtualColumns;
|
||||
foreach ($virtualColumns as $key => $virtualColumn) {
|
||||
@@ -1074,6 +1227,15 @@ abstract class ProductI18n implements ActiveRecordInterface
|
||||
case 5:
|
||||
$this->setPostscriptum($value);
|
||||
break;
|
||||
case 6:
|
||||
$this->setMetaTitle($value);
|
||||
break;
|
||||
case 7:
|
||||
$this->setMetaDescription($value);
|
||||
break;
|
||||
case 8:
|
||||
$this->setMetaKeyword($value);
|
||||
break;
|
||||
} // switch()
|
||||
}
|
||||
|
||||
@@ -1104,6 +1266,9 @@ abstract class ProductI18n implements ActiveRecordInterface
|
||||
if (array_key_exists($keys[3], $arr)) $this->setDescription($arr[$keys[3]]);
|
||||
if (array_key_exists($keys[4], $arr)) $this->setChapo($arr[$keys[4]]);
|
||||
if (array_key_exists($keys[5], $arr)) $this->setPostscriptum($arr[$keys[5]]);
|
||||
if (array_key_exists($keys[6], $arr)) $this->setMetaTitle($arr[$keys[6]]);
|
||||
if (array_key_exists($keys[7], $arr)) $this->setMetaDescription($arr[$keys[7]]);
|
||||
if (array_key_exists($keys[8], $arr)) $this->setMetaKeyword($arr[$keys[8]]);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1121,6 +1286,9 @@ abstract class ProductI18n implements ActiveRecordInterface
|
||||
if ($this->isColumnModified(ProductI18nTableMap::DESCRIPTION)) $criteria->add(ProductI18nTableMap::DESCRIPTION, $this->description);
|
||||
if ($this->isColumnModified(ProductI18nTableMap::CHAPO)) $criteria->add(ProductI18nTableMap::CHAPO, $this->chapo);
|
||||
if ($this->isColumnModified(ProductI18nTableMap::POSTSCRIPTUM)) $criteria->add(ProductI18nTableMap::POSTSCRIPTUM, $this->postscriptum);
|
||||
if ($this->isColumnModified(ProductI18nTableMap::META_TITLE)) $criteria->add(ProductI18nTableMap::META_TITLE, $this->meta_title);
|
||||
if ($this->isColumnModified(ProductI18nTableMap::META_DESCRIPTION)) $criteria->add(ProductI18nTableMap::META_DESCRIPTION, $this->meta_description);
|
||||
if ($this->isColumnModified(ProductI18nTableMap::META_KEYWORD)) $criteria->add(ProductI18nTableMap::META_KEYWORD, $this->meta_keyword);
|
||||
|
||||
return $criteria;
|
||||
}
|
||||
@@ -1197,6 +1365,9 @@ abstract class ProductI18n implements ActiveRecordInterface
|
||||
$copyObj->setDescription($this->getDescription());
|
||||
$copyObj->setChapo($this->getChapo());
|
||||
$copyObj->setPostscriptum($this->getPostscriptum());
|
||||
$copyObj->setMetaTitle($this->getMetaTitle());
|
||||
$copyObj->setMetaDescription($this->getMetaDescription());
|
||||
$copyObj->setMetaKeyword($this->getMetaKeyword());
|
||||
if ($makeNew) {
|
||||
$copyObj->setNew(true);
|
||||
}
|
||||
@@ -1286,6 +1457,9 @@ abstract class ProductI18n implements ActiveRecordInterface
|
||||
$this->description = null;
|
||||
$this->chapo = null;
|
||||
$this->postscriptum = null;
|
||||
$this->meta_title = null;
|
||||
$this->meta_description = null;
|
||||
$this->meta_keyword = null;
|
||||
$this->alreadyInSave = false;
|
||||
$this->clearAllReferences();
|
||||
$this->applyDefaultValues();
|
||||
|
||||
@@ -27,6 +27,9 @@ use Thelia\Model\Map\ProductI18nTableMap;
|
||||
* @method ChildProductI18nQuery orderByDescription($order = Criteria::ASC) Order by the description column
|
||||
* @method ChildProductI18nQuery orderByChapo($order = Criteria::ASC) Order by the chapo column
|
||||
* @method ChildProductI18nQuery orderByPostscriptum($order = Criteria::ASC) Order by the postscriptum column
|
||||
* @method ChildProductI18nQuery orderByMetaTitle($order = Criteria::ASC) Order by the meta_title column
|
||||
* @method ChildProductI18nQuery orderByMetaDescription($order = Criteria::ASC) Order by the meta_description column
|
||||
* @method ChildProductI18nQuery orderByMetaKeyword($order = Criteria::ASC) Order by the meta_keyword column
|
||||
*
|
||||
* @method ChildProductI18nQuery groupById() Group by the id column
|
||||
* @method ChildProductI18nQuery groupByLocale() Group by the locale column
|
||||
@@ -34,6 +37,9 @@ use Thelia\Model\Map\ProductI18nTableMap;
|
||||
* @method ChildProductI18nQuery groupByDescription() Group by the description column
|
||||
* @method ChildProductI18nQuery groupByChapo() Group by the chapo column
|
||||
* @method ChildProductI18nQuery groupByPostscriptum() Group by the postscriptum column
|
||||
* @method ChildProductI18nQuery groupByMetaTitle() Group by the meta_title column
|
||||
* @method ChildProductI18nQuery groupByMetaDescription() Group by the meta_description column
|
||||
* @method ChildProductI18nQuery groupByMetaKeyword() Group by the meta_keyword column
|
||||
*
|
||||
* @method ChildProductI18nQuery leftJoin($relation) Adds a LEFT JOIN clause to the query
|
||||
* @method ChildProductI18nQuery rightJoin($relation) Adds a RIGHT JOIN clause to the query
|
||||
@@ -52,6 +58,9 @@ use Thelia\Model\Map\ProductI18nTableMap;
|
||||
* @method ChildProductI18n findOneByDescription(string $description) Return the first ChildProductI18n filtered by the description column
|
||||
* @method ChildProductI18n findOneByChapo(string $chapo) Return the first ChildProductI18n filtered by the chapo column
|
||||
* @method ChildProductI18n findOneByPostscriptum(string $postscriptum) Return the first ChildProductI18n filtered by the postscriptum column
|
||||
* @method ChildProductI18n findOneByMetaTitle(string $meta_title) Return the first ChildProductI18n filtered by the meta_title column
|
||||
* @method ChildProductI18n findOneByMetaDescription(string $meta_description) Return the first ChildProductI18n filtered by the meta_description column
|
||||
* @method ChildProductI18n findOneByMetaKeyword(string $meta_keyword) Return the first ChildProductI18n filtered by the meta_keyword column
|
||||
*
|
||||
* @method array findById(int $id) Return ChildProductI18n objects filtered by the id column
|
||||
* @method array findByLocale(string $locale) Return ChildProductI18n objects filtered by the locale column
|
||||
@@ -59,6 +68,9 @@ use Thelia\Model\Map\ProductI18nTableMap;
|
||||
* @method array findByDescription(string $description) Return ChildProductI18n objects filtered by the description column
|
||||
* @method array findByChapo(string $chapo) Return ChildProductI18n objects filtered by the chapo column
|
||||
* @method array findByPostscriptum(string $postscriptum) Return ChildProductI18n objects filtered by the postscriptum column
|
||||
* @method array findByMetaTitle(string $meta_title) Return ChildProductI18n objects filtered by the meta_title column
|
||||
* @method array findByMetaDescription(string $meta_description) Return ChildProductI18n objects filtered by the meta_description column
|
||||
* @method array findByMetaKeyword(string $meta_keyword) Return ChildProductI18n objects filtered by the meta_keyword column
|
||||
*
|
||||
*/
|
||||
abstract class ProductI18nQuery extends ModelCriteria
|
||||
@@ -147,7 +159,7 @@ abstract class ProductI18nQuery extends ModelCriteria
|
||||
*/
|
||||
protected function findPkSimple($key, $con)
|
||||
{
|
||||
$sql = 'SELECT ID, LOCALE, TITLE, DESCRIPTION, CHAPO, POSTSCRIPTUM FROM product_i18n WHERE ID = :p0 AND LOCALE = :p1';
|
||||
$sql = 'SELECT ID, LOCALE, TITLE, DESCRIPTION, CHAPO, POSTSCRIPTUM, META_TITLE, META_DESCRIPTION, META_KEYWORD FROM product_i18n WHERE ID = :p0 AND LOCALE = :p1';
|
||||
try {
|
||||
$stmt = $con->prepare($sql);
|
||||
$stmt->bindValue(':p0', $key[0], PDO::PARAM_INT);
|
||||
@@ -436,6 +448,93 @@ abstract class ProductI18nQuery extends ModelCriteria
|
||||
return $this->addUsingAlias(ProductI18nTableMap::POSTSCRIPTUM, $postscriptum, $comparison);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query on the meta_title column
|
||||
*
|
||||
* Example usage:
|
||||
* <code>
|
||||
* $query->filterByMetaTitle('fooValue'); // WHERE meta_title = 'fooValue'
|
||||
* $query->filterByMetaTitle('%fooValue%'); // WHERE meta_title LIKE '%fooValue%'
|
||||
* </code>
|
||||
*
|
||||
* @param string $metaTitle The value to use as filter.
|
||||
* Accepts wildcards (* and % trigger a LIKE)
|
||||
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
||||
*
|
||||
* @return ChildProductI18nQuery The current query, for fluid interface
|
||||
*/
|
||||
public function filterByMetaTitle($metaTitle = null, $comparison = null)
|
||||
{
|
||||
if (null === $comparison) {
|
||||
if (is_array($metaTitle)) {
|
||||
$comparison = Criteria::IN;
|
||||
} elseif (preg_match('/[\%\*]/', $metaTitle)) {
|
||||
$metaTitle = str_replace('*', '%', $metaTitle);
|
||||
$comparison = Criteria::LIKE;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->addUsingAlias(ProductI18nTableMap::META_TITLE, $metaTitle, $comparison);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query on the meta_description column
|
||||
*
|
||||
* Example usage:
|
||||
* <code>
|
||||
* $query->filterByMetaDescription('fooValue'); // WHERE meta_description = 'fooValue'
|
||||
* $query->filterByMetaDescription('%fooValue%'); // WHERE meta_description LIKE '%fooValue%'
|
||||
* </code>
|
||||
*
|
||||
* @param string $metaDescription The value to use as filter.
|
||||
* Accepts wildcards (* and % trigger a LIKE)
|
||||
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
||||
*
|
||||
* @return ChildProductI18nQuery The current query, for fluid interface
|
||||
*/
|
||||
public function filterByMetaDescription($metaDescription = null, $comparison = null)
|
||||
{
|
||||
if (null === $comparison) {
|
||||
if (is_array($metaDescription)) {
|
||||
$comparison = Criteria::IN;
|
||||
} elseif (preg_match('/[\%\*]/', $metaDescription)) {
|
||||
$metaDescription = str_replace('*', '%', $metaDescription);
|
||||
$comparison = Criteria::LIKE;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->addUsingAlias(ProductI18nTableMap::META_DESCRIPTION, $metaDescription, $comparison);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query on the meta_keyword column
|
||||
*
|
||||
* Example usage:
|
||||
* <code>
|
||||
* $query->filterByMetaKeyword('fooValue'); // WHERE meta_keyword = 'fooValue'
|
||||
* $query->filterByMetaKeyword('%fooValue%'); // WHERE meta_keyword LIKE '%fooValue%'
|
||||
* </code>
|
||||
*
|
||||
* @param string $metaKeyword The value to use as filter.
|
||||
* Accepts wildcards (* and % trigger a LIKE)
|
||||
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
|
||||
*
|
||||
* @return ChildProductI18nQuery The current query, for fluid interface
|
||||
*/
|
||||
public function filterByMetaKeyword($metaKeyword = null, $comparison = null)
|
||||
{
|
||||
if (null === $comparison) {
|
||||
if (is_array($metaKeyword)) {
|
||||
$comparison = Criteria::IN;
|
||||
} elseif (preg_match('/[\%\*]/', $metaKeyword)) {
|
||||
$metaKeyword = str_replace('*', '%', $metaKeyword);
|
||||
$comparison = Criteria::LIKE;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->addUsingAlias(ProductI18nTableMap::META_KEYWORD, $metaKeyword, $comparison);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the query by a related \Thelia\Model\Product object
|
||||
*
|
||||
|
||||
@@ -57,7 +57,7 @@ class MessageTableMap extends TableMap
|
||||
/**
|
||||
* The total number of columns
|
||||
*/
|
||||
const NUM_COLUMNS = 8;
|
||||
const NUM_COLUMNS = 12;
|
||||
|
||||
/**
|
||||
* The number of lazy-loaded columns
|
||||
@@ -67,7 +67,7 @@ class MessageTableMap extends TableMap
|
||||
/**
|
||||
* The number of columns to hydrate (NUM_COLUMNS - NUM_LAZY_LOAD_COLUMNS)
|
||||
*/
|
||||
const NUM_HYDRATE_COLUMNS = 8;
|
||||
const NUM_HYDRATE_COLUMNS = 12;
|
||||
|
||||
/**
|
||||
* the column name for the ID field
|
||||
@@ -84,6 +84,26 @@ class MessageTableMap extends TableMap
|
||||
*/
|
||||
const SECURED = 'message.SECURED';
|
||||
|
||||
/**
|
||||
* the column name for the TEXT_LAYOUT_FILE_NAME field
|
||||
*/
|
||||
const TEXT_LAYOUT_FILE_NAME = 'message.TEXT_LAYOUT_FILE_NAME';
|
||||
|
||||
/**
|
||||
* the column name for the TEXT_TEMPLATE_FILE_NAME field
|
||||
*/
|
||||
const TEXT_TEMPLATE_FILE_NAME = 'message.TEXT_TEMPLATE_FILE_NAME';
|
||||
|
||||
/**
|
||||
* the column name for the HTML_LAYOUT_FILE_NAME field
|
||||
*/
|
||||
const HTML_LAYOUT_FILE_NAME = 'message.HTML_LAYOUT_FILE_NAME';
|
||||
|
||||
/**
|
||||
* the column name for the HTML_TEMPLATE_FILE_NAME field
|
||||
*/
|
||||
const HTML_TEMPLATE_FILE_NAME = 'message.HTML_TEMPLATE_FILE_NAME';
|
||||
|
||||
/**
|
||||
* the column name for the CREATED_AT field
|
||||
*/
|
||||
@@ -130,12 +150,12 @@ class MessageTableMap extends TableMap
|
||||
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
|
||||
*/
|
||||
protected static $fieldNames = array (
|
||||
self::TYPE_PHPNAME => array('Id', 'Name', 'Secured', 'CreatedAt', 'UpdatedAt', 'Version', 'VersionCreatedAt', 'VersionCreatedBy', ),
|
||||
self::TYPE_STUDLYPHPNAME => array('id', 'name', 'secured', 'createdAt', 'updatedAt', 'version', 'versionCreatedAt', 'versionCreatedBy', ),
|
||||
self::TYPE_COLNAME => array(MessageTableMap::ID, MessageTableMap::NAME, MessageTableMap::SECURED, MessageTableMap::CREATED_AT, MessageTableMap::UPDATED_AT, MessageTableMap::VERSION, MessageTableMap::VERSION_CREATED_AT, MessageTableMap::VERSION_CREATED_BY, ),
|
||||
self::TYPE_RAW_COLNAME => array('ID', 'NAME', 'SECURED', 'CREATED_AT', 'UPDATED_AT', 'VERSION', 'VERSION_CREATED_AT', 'VERSION_CREATED_BY', ),
|
||||
self::TYPE_FIELDNAME => array('id', 'name', 'secured', 'created_at', 'updated_at', 'version', 'version_created_at', 'version_created_by', ),
|
||||
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, 7, )
|
||||
self::TYPE_PHPNAME => array('Id', 'Name', 'Secured', 'TextLayoutFileName', 'TextTemplateFileName', 'HtmlLayoutFileName', 'HtmlTemplateFileName', 'CreatedAt', 'UpdatedAt', 'Version', 'VersionCreatedAt', 'VersionCreatedBy', ),
|
||||
self::TYPE_STUDLYPHPNAME => array('id', 'name', 'secured', 'textLayoutFileName', 'textTemplateFileName', 'htmlLayoutFileName', 'htmlTemplateFileName', 'createdAt', 'updatedAt', 'version', 'versionCreatedAt', 'versionCreatedBy', ),
|
||||
self::TYPE_COLNAME => array(MessageTableMap::ID, MessageTableMap::NAME, MessageTableMap::SECURED, MessageTableMap::TEXT_LAYOUT_FILE_NAME, MessageTableMap::TEXT_TEMPLATE_FILE_NAME, MessageTableMap::HTML_LAYOUT_FILE_NAME, MessageTableMap::HTML_TEMPLATE_FILE_NAME, MessageTableMap::CREATED_AT, MessageTableMap::UPDATED_AT, MessageTableMap::VERSION, MessageTableMap::VERSION_CREATED_AT, MessageTableMap::VERSION_CREATED_BY, ),
|
||||
self::TYPE_RAW_COLNAME => array('ID', 'NAME', 'SECURED', 'TEXT_LAYOUT_FILE_NAME', 'TEXT_TEMPLATE_FILE_NAME', 'HTML_LAYOUT_FILE_NAME', 'HTML_TEMPLATE_FILE_NAME', 'CREATED_AT', 'UPDATED_AT', 'VERSION', 'VERSION_CREATED_AT', 'VERSION_CREATED_BY', ),
|
||||
self::TYPE_FIELDNAME => array('id', 'name', 'secured', 'text_layout_file_name', 'text_template_file_name', 'html_layout_file_name', 'html_template_file_name', 'created_at', 'updated_at', 'version', 'version_created_at', 'version_created_by', ),
|
||||
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, )
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -145,12 +165,12 @@ class MessageTableMap extends TableMap
|
||||
* e.g. self::$fieldKeys[self::TYPE_PHPNAME]['Id'] = 0
|
||||
*/
|
||||
protected static $fieldKeys = array (
|
||||
self::TYPE_PHPNAME => array('Id' => 0, 'Name' => 1, 'Secured' => 2, 'CreatedAt' => 3, 'UpdatedAt' => 4, 'Version' => 5, 'VersionCreatedAt' => 6, 'VersionCreatedBy' => 7, ),
|
||||
self::TYPE_STUDLYPHPNAME => array('id' => 0, 'name' => 1, 'secured' => 2, 'createdAt' => 3, 'updatedAt' => 4, 'version' => 5, 'versionCreatedAt' => 6, 'versionCreatedBy' => 7, ),
|
||||
self::TYPE_COLNAME => array(MessageTableMap::ID => 0, MessageTableMap::NAME => 1, MessageTableMap::SECURED => 2, MessageTableMap::CREATED_AT => 3, MessageTableMap::UPDATED_AT => 4, MessageTableMap::VERSION => 5, MessageTableMap::VERSION_CREATED_AT => 6, MessageTableMap::VERSION_CREATED_BY => 7, ),
|
||||
self::TYPE_RAW_COLNAME => array('ID' => 0, 'NAME' => 1, 'SECURED' => 2, 'CREATED_AT' => 3, 'UPDATED_AT' => 4, 'VERSION' => 5, 'VERSION_CREATED_AT' => 6, 'VERSION_CREATED_BY' => 7, ),
|
||||
self::TYPE_FIELDNAME => array('id' => 0, 'name' => 1, 'secured' => 2, 'created_at' => 3, 'updated_at' => 4, 'version' => 5, 'version_created_at' => 6, 'version_created_by' => 7, ),
|
||||
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, 7, )
|
||||
self::TYPE_PHPNAME => array('Id' => 0, 'Name' => 1, 'Secured' => 2, 'TextLayoutFileName' => 3, 'TextTemplateFileName' => 4, 'HtmlLayoutFileName' => 5, 'HtmlTemplateFileName' => 6, 'CreatedAt' => 7, 'UpdatedAt' => 8, 'Version' => 9, 'VersionCreatedAt' => 10, 'VersionCreatedBy' => 11, ),
|
||||
self::TYPE_STUDLYPHPNAME => array('id' => 0, 'name' => 1, 'secured' => 2, 'textLayoutFileName' => 3, 'textTemplateFileName' => 4, 'htmlLayoutFileName' => 5, 'htmlTemplateFileName' => 6, 'createdAt' => 7, 'updatedAt' => 8, 'version' => 9, 'versionCreatedAt' => 10, 'versionCreatedBy' => 11, ),
|
||||
self::TYPE_COLNAME => array(MessageTableMap::ID => 0, MessageTableMap::NAME => 1, MessageTableMap::SECURED => 2, MessageTableMap::TEXT_LAYOUT_FILE_NAME => 3, MessageTableMap::TEXT_TEMPLATE_FILE_NAME => 4, MessageTableMap::HTML_LAYOUT_FILE_NAME => 5, MessageTableMap::HTML_TEMPLATE_FILE_NAME => 6, MessageTableMap::CREATED_AT => 7, MessageTableMap::UPDATED_AT => 8, MessageTableMap::VERSION => 9, MessageTableMap::VERSION_CREATED_AT => 10, MessageTableMap::VERSION_CREATED_BY => 11, ),
|
||||
self::TYPE_RAW_COLNAME => array('ID' => 0, 'NAME' => 1, 'SECURED' => 2, 'TEXT_LAYOUT_FILE_NAME' => 3, 'TEXT_TEMPLATE_FILE_NAME' => 4, 'HTML_LAYOUT_FILE_NAME' => 5, 'HTML_TEMPLATE_FILE_NAME' => 6, 'CREATED_AT' => 7, 'UPDATED_AT' => 8, 'VERSION' => 9, 'VERSION_CREATED_AT' => 10, 'VERSION_CREATED_BY' => 11, ),
|
||||
self::TYPE_FIELDNAME => array('id' => 0, 'name' => 1, 'secured' => 2, 'text_layout_file_name' => 3, 'text_template_file_name' => 4, 'html_layout_file_name' => 5, 'html_template_file_name' => 6, 'created_at' => 7, 'updated_at' => 8, 'version' => 9, 'version_created_at' => 10, 'version_created_by' => 11, ),
|
||||
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, )
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -172,6 +192,10 @@ class MessageTableMap extends TableMap
|
||||
$this->addPrimaryKey('ID', 'Id', 'INTEGER', true, null, null);
|
||||
$this->addColumn('NAME', 'Name', 'VARCHAR', true, 255, null);
|
||||
$this->addColumn('SECURED', 'Secured', 'TINYINT', false, null, null);
|
||||
$this->addColumn('TEXT_LAYOUT_FILE_NAME', 'TextLayoutFileName', 'VARCHAR', false, 255, null);
|
||||
$this->addColumn('TEXT_TEMPLATE_FILE_NAME', 'TextTemplateFileName', 'VARCHAR', false, 255, null);
|
||||
$this->addColumn('HTML_LAYOUT_FILE_NAME', 'HtmlLayoutFileName', 'VARCHAR', false, 255, null);
|
||||
$this->addColumn('HTML_TEMPLATE_FILE_NAME', 'HtmlTemplateFileName', 'VARCHAR', false, 255, null);
|
||||
$this->addColumn('CREATED_AT', 'CreatedAt', 'TIMESTAMP', false, null, null);
|
||||
$this->addColumn('UPDATED_AT', 'UpdatedAt', 'TIMESTAMP', false, null, null);
|
||||
$this->addColumn('VERSION', 'Version', 'INTEGER', false, null, 0);
|
||||
@@ -354,6 +378,10 @@ class MessageTableMap extends TableMap
|
||||
$criteria->addSelectColumn(MessageTableMap::ID);
|
||||
$criteria->addSelectColumn(MessageTableMap::NAME);
|
||||
$criteria->addSelectColumn(MessageTableMap::SECURED);
|
||||
$criteria->addSelectColumn(MessageTableMap::TEXT_LAYOUT_FILE_NAME);
|
||||
$criteria->addSelectColumn(MessageTableMap::TEXT_TEMPLATE_FILE_NAME);
|
||||
$criteria->addSelectColumn(MessageTableMap::HTML_LAYOUT_FILE_NAME);
|
||||
$criteria->addSelectColumn(MessageTableMap::HTML_TEMPLATE_FILE_NAME);
|
||||
$criteria->addSelectColumn(MessageTableMap::CREATED_AT);
|
||||
$criteria->addSelectColumn(MessageTableMap::UPDATED_AT);
|
||||
$criteria->addSelectColumn(MessageTableMap::VERSION);
|
||||
@@ -363,6 +391,10 @@ class MessageTableMap extends TableMap
|
||||
$criteria->addSelectColumn($alias . '.ID');
|
||||
$criteria->addSelectColumn($alias . '.NAME');
|
||||
$criteria->addSelectColumn($alias . '.SECURED');
|
||||
$criteria->addSelectColumn($alias . '.TEXT_LAYOUT_FILE_NAME');
|
||||
$criteria->addSelectColumn($alias . '.TEXT_TEMPLATE_FILE_NAME');
|
||||
$criteria->addSelectColumn($alias . '.HTML_LAYOUT_FILE_NAME');
|
||||
$criteria->addSelectColumn($alias . '.HTML_TEMPLATE_FILE_NAME');
|
||||
$criteria->addSelectColumn($alias . '.CREATED_AT');
|
||||
$criteria->addSelectColumn($alias . '.UPDATED_AT');
|
||||
$criteria->addSelectColumn($alias . '.VERSION');
|
||||
|
||||
@@ -57,7 +57,7 @@ class MessageVersionTableMap extends TableMap
|
||||
/**
|
||||
* The total number of columns
|
||||
*/
|
||||
const NUM_COLUMNS = 8;
|
||||
const NUM_COLUMNS = 12;
|
||||
|
||||
/**
|
||||
* The number of lazy-loaded columns
|
||||
@@ -67,7 +67,7 @@ class MessageVersionTableMap extends TableMap
|
||||
/**
|
||||
* The number of columns to hydrate (NUM_COLUMNS - NUM_LAZY_LOAD_COLUMNS)
|
||||
*/
|
||||
const NUM_HYDRATE_COLUMNS = 8;
|
||||
const NUM_HYDRATE_COLUMNS = 12;
|
||||
|
||||
/**
|
||||
* the column name for the ID field
|
||||
@@ -84,6 +84,26 @@ class MessageVersionTableMap extends TableMap
|
||||
*/
|
||||
const SECURED = 'message_version.SECURED';
|
||||
|
||||
/**
|
||||
* the column name for the TEXT_LAYOUT_FILE_NAME field
|
||||
*/
|
||||
const TEXT_LAYOUT_FILE_NAME = 'message_version.TEXT_LAYOUT_FILE_NAME';
|
||||
|
||||
/**
|
||||
* the column name for the TEXT_TEMPLATE_FILE_NAME field
|
||||
*/
|
||||
const TEXT_TEMPLATE_FILE_NAME = 'message_version.TEXT_TEMPLATE_FILE_NAME';
|
||||
|
||||
/**
|
||||
* the column name for the HTML_LAYOUT_FILE_NAME field
|
||||
*/
|
||||
const HTML_LAYOUT_FILE_NAME = 'message_version.HTML_LAYOUT_FILE_NAME';
|
||||
|
||||
/**
|
||||
* the column name for the HTML_TEMPLATE_FILE_NAME field
|
||||
*/
|
||||
const HTML_TEMPLATE_FILE_NAME = 'message_version.HTML_TEMPLATE_FILE_NAME';
|
||||
|
||||
/**
|
||||
* the column name for the CREATED_AT field
|
||||
*/
|
||||
@@ -121,12 +141,12 @@ class MessageVersionTableMap extends TableMap
|
||||
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
|
||||
*/
|
||||
protected static $fieldNames = array (
|
||||
self::TYPE_PHPNAME => array('Id', 'Name', 'Secured', 'CreatedAt', 'UpdatedAt', 'Version', 'VersionCreatedAt', 'VersionCreatedBy', ),
|
||||
self::TYPE_STUDLYPHPNAME => array('id', 'name', 'secured', 'createdAt', 'updatedAt', 'version', 'versionCreatedAt', 'versionCreatedBy', ),
|
||||
self::TYPE_COLNAME => array(MessageVersionTableMap::ID, MessageVersionTableMap::NAME, MessageVersionTableMap::SECURED, MessageVersionTableMap::CREATED_AT, MessageVersionTableMap::UPDATED_AT, MessageVersionTableMap::VERSION, MessageVersionTableMap::VERSION_CREATED_AT, MessageVersionTableMap::VERSION_CREATED_BY, ),
|
||||
self::TYPE_RAW_COLNAME => array('ID', 'NAME', 'SECURED', 'CREATED_AT', 'UPDATED_AT', 'VERSION', 'VERSION_CREATED_AT', 'VERSION_CREATED_BY', ),
|
||||
self::TYPE_FIELDNAME => array('id', 'name', 'secured', 'created_at', 'updated_at', 'version', 'version_created_at', 'version_created_by', ),
|
||||
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, 7, )
|
||||
self::TYPE_PHPNAME => array('Id', 'Name', 'Secured', 'TextLayoutFileName', 'TextTemplateFileName', 'HtmlLayoutFileName', 'HtmlTemplateFileName', 'CreatedAt', 'UpdatedAt', 'Version', 'VersionCreatedAt', 'VersionCreatedBy', ),
|
||||
self::TYPE_STUDLYPHPNAME => array('id', 'name', 'secured', 'textLayoutFileName', 'textTemplateFileName', 'htmlLayoutFileName', 'htmlTemplateFileName', 'createdAt', 'updatedAt', 'version', 'versionCreatedAt', 'versionCreatedBy', ),
|
||||
self::TYPE_COLNAME => array(MessageVersionTableMap::ID, MessageVersionTableMap::NAME, MessageVersionTableMap::SECURED, MessageVersionTableMap::TEXT_LAYOUT_FILE_NAME, MessageVersionTableMap::TEXT_TEMPLATE_FILE_NAME, MessageVersionTableMap::HTML_LAYOUT_FILE_NAME, MessageVersionTableMap::HTML_TEMPLATE_FILE_NAME, MessageVersionTableMap::CREATED_AT, MessageVersionTableMap::UPDATED_AT, MessageVersionTableMap::VERSION, MessageVersionTableMap::VERSION_CREATED_AT, MessageVersionTableMap::VERSION_CREATED_BY, ),
|
||||
self::TYPE_RAW_COLNAME => array('ID', 'NAME', 'SECURED', 'TEXT_LAYOUT_FILE_NAME', 'TEXT_TEMPLATE_FILE_NAME', 'HTML_LAYOUT_FILE_NAME', 'HTML_TEMPLATE_FILE_NAME', 'CREATED_AT', 'UPDATED_AT', 'VERSION', 'VERSION_CREATED_AT', 'VERSION_CREATED_BY', ),
|
||||
self::TYPE_FIELDNAME => array('id', 'name', 'secured', 'text_layout_file_name', 'text_template_file_name', 'html_layout_file_name', 'html_template_file_name', 'created_at', 'updated_at', 'version', 'version_created_at', 'version_created_by', ),
|
||||
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, )
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -136,12 +156,12 @@ class MessageVersionTableMap extends TableMap
|
||||
* e.g. self::$fieldKeys[self::TYPE_PHPNAME]['Id'] = 0
|
||||
*/
|
||||
protected static $fieldKeys = array (
|
||||
self::TYPE_PHPNAME => array('Id' => 0, 'Name' => 1, 'Secured' => 2, 'CreatedAt' => 3, 'UpdatedAt' => 4, 'Version' => 5, 'VersionCreatedAt' => 6, 'VersionCreatedBy' => 7, ),
|
||||
self::TYPE_STUDLYPHPNAME => array('id' => 0, 'name' => 1, 'secured' => 2, 'createdAt' => 3, 'updatedAt' => 4, 'version' => 5, 'versionCreatedAt' => 6, 'versionCreatedBy' => 7, ),
|
||||
self::TYPE_COLNAME => array(MessageVersionTableMap::ID => 0, MessageVersionTableMap::NAME => 1, MessageVersionTableMap::SECURED => 2, MessageVersionTableMap::CREATED_AT => 3, MessageVersionTableMap::UPDATED_AT => 4, MessageVersionTableMap::VERSION => 5, MessageVersionTableMap::VERSION_CREATED_AT => 6, MessageVersionTableMap::VERSION_CREATED_BY => 7, ),
|
||||
self::TYPE_RAW_COLNAME => array('ID' => 0, 'NAME' => 1, 'SECURED' => 2, 'CREATED_AT' => 3, 'UPDATED_AT' => 4, 'VERSION' => 5, 'VERSION_CREATED_AT' => 6, 'VERSION_CREATED_BY' => 7, ),
|
||||
self::TYPE_FIELDNAME => array('id' => 0, 'name' => 1, 'secured' => 2, 'created_at' => 3, 'updated_at' => 4, 'version' => 5, 'version_created_at' => 6, 'version_created_by' => 7, ),
|
||||
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, 7, )
|
||||
self::TYPE_PHPNAME => array('Id' => 0, 'Name' => 1, 'Secured' => 2, 'TextLayoutFileName' => 3, 'TextTemplateFileName' => 4, 'HtmlLayoutFileName' => 5, 'HtmlTemplateFileName' => 6, 'CreatedAt' => 7, 'UpdatedAt' => 8, 'Version' => 9, 'VersionCreatedAt' => 10, 'VersionCreatedBy' => 11, ),
|
||||
self::TYPE_STUDLYPHPNAME => array('id' => 0, 'name' => 1, 'secured' => 2, 'textLayoutFileName' => 3, 'textTemplateFileName' => 4, 'htmlLayoutFileName' => 5, 'htmlTemplateFileName' => 6, 'createdAt' => 7, 'updatedAt' => 8, 'version' => 9, 'versionCreatedAt' => 10, 'versionCreatedBy' => 11, ),
|
||||
self::TYPE_COLNAME => array(MessageVersionTableMap::ID => 0, MessageVersionTableMap::NAME => 1, MessageVersionTableMap::SECURED => 2, MessageVersionTableMap::TEXT_LAYOUT_FILE_NAME => 3, MessageVersionTableMap::TEXT_TEMPLATE_FILE_NAME => 4, MessageVersionTableMap::HTML_LAYOUT_FILE_NAME => 5, MessageVersionTableMap::HTML_TEMPLATE_FILE_NAME => 6, MessageVersionTableMap::CREATED_AT => 7, MessageVersionTableMap::UPDATED_AT => 8, MessageVersionTableMap::VERSION => 9, MessageVersionTableMap::VERSION_CREATED_AT => 10, MessageVersionTableMap::VERSION_CREATED_BY => 11, ),
|
||||
self::TYPE_RAW_COLNAME => array('ID' => 0, 'NAME' => 1, 'SECURED' => 2, 'TEXT_LAYOUT_FILE_NAME' => 3, 'TEXT_TEMPLATE_FILE_NAME' => 4, 'HTML_LAYOUT_FILE_NAME' => 5, 'HTML_TEMPLATE_FILE_NAME' => 6, 'CREATED_AT' => 7, 'UPDATED_AT' => 8, 'VERSION' => 9, 'VERSION_CREATED_AT' => 10, 'VERSION_CREATED_BY' => 11, ),
|
||||
self::TYPE_FIELDNAME => array('id' => 0, 'name' => 1, 'secured' => 2, 'text_layout_file_name' => 3, 'text_template_file_name' => 4, 'html_layout_file_name' => 5, 'html_template_file_name' => 6, 'created_at' => 7, 'updated_at' => 8, 'version' => 9, 'version_created_at' => 10, 'version_created_by' => 11, ),
|
||||
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, )
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -163,6 +183,10 @@ class MessageVersionTableMap extends TableMap
|
||||
$this->addForeignPrimaryKey('ID', 'Id', 'INTEGER' , 'message', 'ID', true, null, null);
|
||||
$this->addColumn('NAME', 'Name', 'VARCHAR', true, 255, null);
|
||||
$this->addColumn('SECURED', 'Secured', 'TINYINT', false, null, null);
|
||||
$this->addColumn('TEXT_LAYOUT_FILE_NAME', 'TextLayoutFileName', 'VARCHAR', false, 255, null);
|
||||
$this->addColumn('TEXT_TEMPLATE_FILE_NAME', 'TextTemplateFileName', 'VARCHAR', false, 255, null);
|
||||
$this->addColumn('HTML_LAYOUT_FILE_NAME', 'HtmlLayoutFileName', 'VARCHAR', false, 255, null);
|
||||
$this->addColumn('HTML_TEMPLATE_FILE_NAME', 'HtmlTemplateFileName', 'VARCHAR', false, 255, null);
|
||||
$this->addColumn('CREATED_AT', 'CreatedAt', 'TIMESTAMP', false, null, null);
|
||||
$this->addColumn('UPDATED_AT', 'UpdatedAt', 'TIMESTAMP', false, null, null);
|
||||
$this->addPrimaryKey('VERSION', 'Version', 'INTEGER', true, null, 0);
|
||||
@@ -245,11 +269,11 @@ class MessageVersionTableMap extends TableMap
|
||||
public static function getPrimaryKeyHashFromRow($row, $offset = 0, $indexType = TableMap::TYPE_NUM)
|
||||
{
|
||||
// If the PK cannot be derived from the row, return NULL.
|
||||
if ($row[TableMap::TYPE_NUM == $indexType ? 0 + $offset : static::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType)] === null && $row[TableMap::TYPE_NUM == $indexType ? 5 + $offset : static::translateFieldName('Version', TableMap::TYPE_PHPNAME, $indexType)] === null) {
|
||||
if ($row[TableMap::TYPE_NUM == $indexType ? 0 + $offset : static::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType)] === null && $row[TableMap::TYPE_NUM == $indexType ? 9 + $offset : static::translateFieldName('Version', TableMap::TYPE_PHPNAME, $indexType)] === null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return serialize(array((string) $row[TableMap::TYPE_NUM == $indexType ? 0 + $offset : static::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType)], (string) $row[TableMap::TYPE_NUM == $indexType ? 5 + $offset : static::translateFieldName('Version', TableMap::TYPE_PHPNAME, $indexType)]));
|
||||
return serialize(array((string) $row[TableMap::TYPE_NUM == $indexType ? 0 + $offset : static::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType)], (string) $row[TableMap::TYPE_NUM == $indexType ? 9 + $offset : static::translateFieldName('Version', TableMap::TYPE_PHPNAME, $indexType)]));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -368,6 +392,10 @@ class MessageVersionTableMap extends TableMap
|
||||
$criteria->addSelectColumn(MessageVersionTableMap::ID);
|
||||
$criteria->addSelectColumn(MessageVersionTableMap::NAME);
|
||||
$criteria->addSelectColumn(MessageVersionTableMap::SECURED);
|
||||
$criteria->addSelectColumn(MessageVersionTableMap::TEXT_LAYOUT_FILE_NAME);
|
||||
$criteria->addSelectColumn(MessageVersionTableMap::TEXT_TEMPLATE_FILE_NAME);
|
||||
$criteria->addSelectColumn(MessageVersionTableMap::HTML_LAYOUT_FILE_NAME);
|
||||
$criteria->addSelectColumn(MessageVersionTableMap::HTML_TEMPLATE_FILE_NAME);
|
||||
$criteria->addSelectColumn(MessageVersionTableMap::CREATED_AT);
|
||||
$criteria->addSelectColumn(MessageVersionTableMap::UPDATED_AT);
|
||||
$criteria->addSelectColumn(MessageVersionTableMap::VERSION);
|
||||
@@ -377,6 +405,10 @@ class MessageVersionTableMap extends TableMap
|
||||
$criteria->addSelectColumn($alias . '.ID');
|
||||
$criteria->addSelectColumn($alias . '.NAME');
|
||||
$criteria->addSelectColumn($alias . '.SECURED');
|
||||
$criteria->addSelectColumn($alias . '.TEXT_LAYOUT_FILE_NAME');
|
||||
$criteria->addSelectColumn($alias . '.TEXT_TEMPLATE_FILE_NAME');
|
||||
$criteria->addSelectColumn($alias . '.HTML_LAYOUT_FILE_NAME');
|
||||
$criteria->addSelectColumn($alias . '.HTML_TEMPLATE_FILE_NAME');
|
||||
$criteria->addSelectColumn($alias . '.CREATED_AT');
|
||||
$criteria->addSelectColumn($alias . '.UPDATED_AT');
|
||||
$criteria->addSelectColumn($alias . '.VERSION');
|
||||
|
||||
@@ -57,7 +57,7 @@ class ProductI18nTableMap extends TableMap
|
||||
/**
|
||||
* The total number of columns
|
||||
*/
|
||||
const NUM_COLUMNS = 6;
|
||||
const NUM_COLUMNS = 9;
|
||||
|
||||
/**
|
||||
* The number of lazy-loaded columns
|
||||
@@ -67,7 +67,7 @@ class ProductI18nTableMap extends TableMap
|
||||
/**
|
||||
* The number of columns to hydrate (NUM_COLUMNS - NUM_LAZY_LOAD_COLUMNS)
|
||||
*/
|
||||
const NUM_HYDRATE_COLUMNS = 6;
|
||||
const NUM_HYDRATE_COLUMNS = 9;
|
||||
|
||||
/**
|
||||
* the column name for the ID field
|
||||
@@ -99,6 +99,21 @@ class ProductI18nTableMap extends TableMap
|
||||
*/
|
||||
const POSTSCRIPTUM = 'product_i18n.POSTSCRIPTUM';
|
||||
|
||||
/**
|
||||
* the column name for the META_TITLE field
|
||||
*/
|
||||
const META_TITLE = 'product_i18n.META_TITLE';
|
||||
|
||||
/**
|
||||
* the column name for the META_DESCRIPTION field
|
||||
*/
|
||||
const META_DESCRIPTION = 'product_i18n.META_DESCRIPTION';
|
||||
|
||||
/**
|
||||
* the column name for the META_KEYWORD field
|
||||
*/
|
||||
const META_KEYWORD = 'product_i18n.META_KEYWORD';
|
||||
|
||||
/**
|
||||
* The default string format for model objects of the related table
|
||||
*/
|
||||
@@ -111,12 +126,12 @@ class ProductI18nTableMap extends TableMap
|
||||
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
|
||||
*/
|
||||
protected static $fieldNames = array (
|
||||
self::TYPE_PHPNAME => array('Id', 'Locale', 'Title', 'Description', 'Chapo', 'Postscriptum', ),
|
||||
self::TYPE_STUDLYPHPNAME => array('id', 'locale', 'title', 'description', 'chapo', 'postscriptum', ),
|
||||
self::TYPE_COLNAME => array(ProductI18nTableMap::ID, ProductI18nTableMap::LOCALE, ProductI18nTableMap::TITLE, ProductI18nTableMap::DESCRIPTION, ProductI18nTableMap::CHAPO, ProductI18nTableMap::POSTSCRIPTUM, ),
|
||||
self::TYPE_RAW_COLNAME => array('ID', 'LOCALE', 'TITLE', 'DESCRIPTION', 'CHAPO', 'POSTSCRIPTUM', ),
|
||||
self::TYPE_FIELDNAME => array('id', 'locale', 'title', 'description', 'chapo', 'postscriptum', ),
|
||||
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, )
|
||||
self::TYPE_PHPNAME => array('Id', 'Locale', 'Title', 'Description', 'Chapo', 'Postscriptum', 'MetaTitle', 'MetaDescription', 'MetaKeyword', ),
|
||||
self::TYPE_STUDLYPHPNAME => array('id', 'locale', 'title', 'description', 'chapo', 'postscriptum', 'metaTitle', 'metaDescription', 'metaKeyword', ),
|
||||
self::TYPE_COLNAME => array(ProductI18nTableMap::ID, ProductI18nTableMap::LOCALE, ProductI18nTableMap::TITLE, ProductI18nTableMap::DESCRIPTION, ProductI18nTableMap::CHAPO, ProductI18nTableMap::POSTSCRIPTUM, ProductI18nTableMap::META_TITLE, ProductI18nTableMap::META_DESCRIPTION, ProductI18nTableMap::META_KEYWORD, ),
|
||||
self::TYPE_RAW_COLNAME => array('ID', 'LOCALE', 'TITLE', 'DESCRIPTION', 'CHAPO', 'POSTSCRIPTUM', 'META_TITLE', 'META_DESCRIPTION', 'META_KEYWORD', ),
|
||||
self::TYPE_FIELDNAME => array('id', 'locale', 'title', 'description', 'chapo', 'postscriptum', 'meta_title', 'meta_description', 'meta_keyword', ),
|
||||
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, 7, 8, )
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -126,12 +141,12 @@ class ProductI18nTableMap extends TableMap
|
||||
* e.g. self::$fieldKeys[self::TYPE_PHPNAME]['Id'] = 0
|
||||
*/
|
||||
protected static $fieldKeys = array (
|
||||
self::TYPE_PHPNAME => array('Id' => 0, 'Locale' => 1, 'Title' => 2, 'Description' => 3, 'Chapo' => 4, 'Postscriptum' => 5, ),
|
||||
self::TYPE_STUDLYPHPNAME => array('id' => 0, 'locale' => 1, 'title' => 2, 'description' => 3, 'chapo' => 4, 'postscriptum' => 5, ),
|
||||
self::TYPE_COLNAME => array(ProductI18nTableMap::ID => 0, ProductI18nTableMap::LOCALE => 1, ProductI18nTableMap::TITLE => 2, ProductI18nTableMap::DESCRIPTION => 3, ProductI18nTableMap::CHAPO => 4, ProductI18nTableMap::POSTSCRIPTUM => 5, ),
|
||||
self::TYPE_RAW_COLNAME => array('ID' => 0, 'LOCALE' => 1, 'TITLE' => 2, 'DESCRIPTION' => 3, 'CHAPO' => 4, 'POSTSCRIPTUM' => 5, ),
|
||||
self::TYPE_FIELDNAME => array('id' => 0, 'locale' => 1, 'title' => 2, 'description' => 3, 'chapo' => 4, 'postscriptum' => 5, ),
|
||||
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, )
|
||||
self::TYPE_PHPNAME => array('Id' => 0, 'Locale' => 1, 'Title' => 2, 'Description' => 3, 'Chapo' => 4, 'Postscriptum' => 5, 'MetaTitle' => 6, 'MetaDescription' => 7, 'MetaKeyword' => 8, ),
|
||||
self::TYPE_STUDLYPHPNAME => array('id' => 0, 'locale' => 1, 'title' => 2, 'description' => 3, 'chapo' => 4, 'postscriptum' => 5, 'metaTitle' => 6, 'metaDescription' => 7, 'metaKeyword' => 8, ),
|
||||
self::TYPE_COLNAME => array(ProductI18nTableMap::ID => 0, ProductI18nTableMap::LOCALE => 1, ProductI18nTableMap::TITLE => 2, ProductI18nTableMap::DESCRIPTION => 3, ProductI18nTableMap::CHAPO => 4, ProductI18nTableMap::POSTSCRIPTUM => 5, ProductI18nTableMap::META_TITLE => 6, ProductI18nTableMap::META_DESCRIPTION => 7, ProductI18nTableMap::META_KEYWORD => 8, ),
|
||||
self::TYPE_RAW_COLNAME => array('ID' => 0, 'LOCALE' => 1, 'TITLE' => 2, 'DESCRIPTION' => 3, 'CHAPO' => 4, 'POSTSCRIPTUM' => 5, 'META_TITLE' => 6, 'META_DESCRIPTION' => 7, 'META_KEYWORD' => 8, ),
|
||||
self::TYPE_FIELDNAME => array('id' => 0, 'locale' => 1, 'title' => 2, 'description' => 3, 'chapo' => 4, 'postscriptum' => 5, 'meta_title' => 6, 'meta_description' => 7, 'meta_keyword' => 8, ),
|
||||
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, 7, 8, )
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -156,6 +171,9 @@ class ProductI18nTableMap extends TableMap
|
||||
$this->addColumn('DESCRIPTION', 'Description', 'CLOB', false, null, null);
|
||||
$this->addColumn('CHAPO', 'Chapo', 'LONGVARCHAR', false, null, null);
|
||||
$this->addColumn('POSTSCRIPTUM', 'Postscriptum', 'LONGVARCHAR', false, null, null);
|
||||
$this->addColumn('META_TITLE', 'MetaTitle', 'VARCHAR', false, 255, null);
|
||||
$this->addColumn('META_DESCRIPTION', 'MetaDescription', 'LONGVARCHAR', false, null, null);
|
||||
$this->addColumn('META_KEYWORD', 'MetaKeyword', 'LONGVARCHAR', false, null, null);
|
||||
} // initialize()
|
||||
|
||||
/**
|
||||
@@ -359,6 +377,9 @@ class ProductI18nTableMap extends TableMap
|
||||
$criteria->addSelectColumn(ProductI18nTableMap::DESCRIPTION);
|
||||
$criteria->addSelectColumn(ProductI18nTableMap::CHAPO);
|
||||
$criteria->addSelectColumn(ProductI18nTableMap::POSTSCRIPTUM);
|
||||
$criteria->addSelectColumn(ProductI18nTableMap::META_TITLE);
|
||||
$criteria->addSelectColumn(ProductI18nTableMap::META_DESCRIPTION);
|
||||
$criteria->addSelectColumn(ProductI18nTableMap::META_KEYWORD);
|
||||
} else {
|
||||
$criteria->addSelectColumn($alias . '.ID');
|
||||
$criteria->addSelectColumn($alias . '.LOCALE');
|
||||
@@ -366,6 +387,9 @@ class ProductI18nTableMap extends TableMap
|
||||
$criteria->addSelectColumn($alias . '.DESCRIPTION');
|
||||
$criteria->addSelectColumn($alias . '.CHAPO');
|
||||
$criteria->addSelectColumn($alias . '.POSTSCRIPTUM');
|
||||
$criteria->addSelectColumn($alias . '.META_TITLE');
|
||||
$criteria->addSelectColumn($alias . '.META_DESCRIPTION');
|
||||
$criteria->addSelectColumn($alias . '.META_KEYWORD');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -230,7 +230,7 @@ class ProductTableMap extends TableMap
|
||||
{
|
||||
return array(
|
||||
'timestampable' => array('create_column' => 'created_at', 'update_column' => 'updated_at', ),
|
||||
'i18n' => array('i18n_table' => '%TABLE%_i18n', 'i18n_phpname' => '%PHPNAME%I18n', 'i18n_columns' => 'title, description, chapo, postscriptum', 'locale_column' => 'locale', 'locale_length' => '5', 'default_locale' => '', 'locale_alias' => '', ),
|
||||
'i18n' => array('i18n_table' => '%TABLE%_i18n', 'i18n_phpname' => '%PHPNAME%I18n', 'i18n_columns' => 'title, description, chapo, postscriptum, meta_title, meta_description, meta_keyword', 'locale_column' => 'locale', 'locale_length' => '5', 'default_locale' => '', 'locale_alias' => '', ),
|
||||
'versionable' => array('version_column' => 'version', 'version_table' => '', 'log_created_at' => 'true', 'log_created_by' => 'true', 'log_comment' => 'false', 'version_created_at_column' => 'version_created_at', 'version_created_by_column' => 'version_created_by', 'version_comment_column' => 'version_comment', ),
|
||||
);
|
||||
} // getBehaviors()
|
||||
|
||||
@@ -6,6 +6,8 @@ use Thelia\Model\Base\Message as BaseMessage;
|
||||
use Propel\Runtime\Connection\ConnectionInterface;
|
||||
use Thelia\Core\Event\TheliaEvents;
|
||||
use Thelia\Core\Event\Message\MessageEvent;
|
||||
use Thelia\Core\Template\ParserInterface;
|
||||
use Thelia\Core\Template\TemplateHelper;
|
||||
|
||||
class Message extends BaseMessage {
|
||||
|
||||
@@ -64,4 +66,97 @@ class Message extends BaseMessage {
|
||||
{
|
||||
$this->dispatchEvent(TheliaEvents::AFTER_DELETEMESSAGE, new MessageEvent($this));
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculate the message body, given the HTML entered in the back-office, the message layout, and the message template
|
||||
*/
|
||||
protected function getMessageBody($parser, $message, $layout, $template) {
|
||||
|
||||
$body = false;
|
||||
|
||||
$mail_template_path = TemplateHelper::getInstance()->getActiveMailTemplate()->getAbsolutePath() . DS;
|
||||
|
||||
// Try to get the body from template file, if a file is defined
|
||||
if (! empty($template)) {
|
||||
try {
|
||||
|
||||
$body = $parser->render($mail_template_path . $template);
|
||||
} catch (ResourceNotFoundException $ex) {
|
||||
// Ignore this.
|
||||
}
|
||||
}
|
||||
|
||||
// We did not get it ? Use the message entered in the back-office
|
||||
if ($body === false) {
|
||||
$body = $parser->renderString($message);
|
||||
}
|
||||
|
||||
// Do we have a layout ?
|
||||
if (! empty($layout)) {
|
||||
|
||||
// Populate the message body variable
|
||||
$parser->assign('message_body', $body);
|
||||
|
||||
// Render the layout file
|
||||
$body = $parser->render($mail_template_path . $layout);
|
||||
}
|
||||
|
||||
return $body;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the HTML message body
|
||||
*/
|
||||
public function getHtmlMessageBody(ParserInterface $parser) {
|
||||
|
||||
return $this->getMessageBody(
|
||||
$parser,
|
||||
$this->getHtmlMessage(),
|
||||
$this->getHtmlLayoutFileName(),
|
||||
$this->getHtmlTemplateFileName()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the TEXT message body
|
||||
*/
|
||||
public function getTextMessageBody(ParserInterface $parser) {
|
||||
|
||||
return $this->getMessageBody(
|
||||
$parser,
|
||||
$this->getTextMessage(),
|
||||
$this->getTextLayoutFileName(),
|
||||
$this->getTextTemplateFileName()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a subject and a body (TEXT, HTML or both, depending on the message
|
||||
* configuration.
|
||||
*/
|
||||
public function buildMessage($parser, \Swift_Message $messageInstance) {
|
||||
|
||||
$subject = $parser->fetch(sprintf("string:%s", $this->getSubject()));
|
||||
$htmlMessage = $this->getHtmlMessageBody($parser);
|
||||
$textMessage = $this->getTextMessageBody($parser);
|
||||
|
||||
$messageInstance->setSubject($subject);
|
||||
|
||||
// If we do not have an HTML message
|
||||
if (empty($htmlMessage)) {
|
||||
// Message body is the text message
|
||||
$messageInstance->setBody($textMessage, 'text/plain');
|
||||
}
|
||||
else {
|
||||
// The main body is the HTML messahe
|
||||
$messageInstance->setBody($htmlMessage, 'text/html');
|
||||
|
||||
// Use the text as a message part, if we have one.
|
||||
if (! empty($textMessage)) {
|
||||
$messageInstance->addPart($textMessage, 'text/plain');
|
||||
}
|
||||
}
|
||||
|
||||
return $messageInstance;
|
||||
}
|
||||
}
|
||||
@@ -22,6 +22,13 @@ class Module extends BaseModule
|
||||
return ucfirst($this->getCode());
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the module's base directory path, relative to THELIA_MODULE_DIR
|
||||
*/
|
||||
public function getAbsoluteBaseDir() {
|
||||
return THELIA_MODULE_DIR . $this->getBaseDir();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the module's config directory path, relative to THELIA_MODULE_DIR
|
||||
*/
|
||||
@@ -29,10 +36,24 @@ class Module extends BaseModule
|
||||
return $this->getBaseDir() . DS . "Config";
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the module's config absolute directory path
|
||||
*/
|
||||
public function getAbsoluteConfigPath() {
|
||||
return THELIA_MODULE_DIR . $this->getConfigPath();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the module's i18N directory path, relative to THELIA_MODULE_DIR
|
||||
*/
|
||||
public function getI18nPath() {
|
||||
return $this->getBaseDir() . DS . "I18n";
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the module's i18N absolute directory path
|
||||
*/
|
||||
public function getAbsoluteI18nPath() {
|
||||
return THELIA_MODULE_DIR . $this->getI18nPath();
|
||||
}
|
||||
}
|
||||
337
core/lib/Thelia/Tests/Model/Message.php
Normal file
337
core/lib/Thelia/Tests/Model/Message.php
Normal file
@@ -0,0 +1,337 @@
|
||||
<?php
|
||||
/*************************************************************************************/
|
||||
/* */
|
||||
/* Thelia */
|
||||
/* */
|
||||
/* Copyright (c) OpenStudio */
|
||||
/* email : info@thelia.net */
|
||||
/* web : http://www.thelia.net */
|
||||
/* */
|
||||
/* This program is free software; you can redistribute it and/or modify */
|
||||
/* it under the terms of the GNU General Public License as published by */
|
||||
/* the Free Software Foundation; either version 3 of the License */
|
||||
/* */
|
||||
/* This program is distributed in the hope that it will be useful, */
|
||||
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
|
||||
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
|
||||
/* GNU General Public License for more details. */
|
||||
/* */
|
||||
/* You should have received a copy of the GNU General Public License */
|
||||
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
/* */
|
||||
/*************************************************************************************/
|
||||
|
||||
namespace Thelia\Tests\Model;
|
||||
|
||||
|
||||
use Thelia\Model\ConfigQuery;
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
use Thelia\Model\Message;
|
||||
use Thelia\Core\Template\Smarty\SmartyParser;
|
||||
use Thelia\Core\Template\ParserContext;
|
||||
use Thelia\Core\Template\TemplateHelper;
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
|
||||
use Thelia\Core\HttpFoundation\Request;
|
||||
use Thelia\Core\HttpFoundation\Session\Session;
|
||||
|
||||
/**
|
||||
* Class CustomerTest
|
||||
* @package Thelia\Tests\Action
|
||||
* @author Etienne Roudeix <eroudeix@openstudio.fr>
|
||||
*/
|
||||
class MessageTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
/**
|
||||
* @var ContainerBuilder $container
|
||||
*/
|
||||
protected $container, $parser;
|
||||
|
||||
private $backup_mail_template = 'undefined';
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
$this->backup_mail_template = ConfigQuery::read('active-mail-template', 'default');
|
||||
|
||||
ConfigQuery::write('active-mail-template', 'test');
|
||||
|
||||
@mkdir(TemplateHelper::getInstance()->getActiveMailTemplate()->getAbsolutePath(), 0777, true);
|
||||
|
||||
$container = new ContainerBuilder();
|
||||
|
||||
$session = new Session(new MockArraySessionStorage());
|
||||
$request = new Request();
|
||||
$dispatcher = $this->getMock("Symfony\Component\EventDispatcher\EventDispatcherInterface");
|
||||
|
||||
$request->setSession($session);
|
||||
|
||||
/*
|
||||
* public function __construct(
|
||||
Request $request, EventDispatcherInterface $dispatcher, ParserContext $parserContext,
|
||||
$env = "prod", $debug = false)
|
||||
|
||||
*/
|
||||
$container->set("event_dispatcher", $dispatcher);
|
||||
$container->set('request', $request);
|
||||
|
||||
$this->parser = new SmartyParser($request, $dispatcher, new ParserContext($request), 'dev', true);
|
||||
$this->parser->setTemplate(TemplateHelper::getInstance()->getActiveMailTemplate());
|
||||
|
||||
$container->set('thelia.parser', $this->parser);
|
||||
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create message with HTML and TEXT body from message HTMl and TEXT fields
|
||||
*/
|
||||
public function testMessageWithTextAndHtmlBody()
|
||||
{
|
||||
$message = new Message();
|
||||
|
||||
$message->setLocale('fr_FR');
|
||||
|
||||
$message->setSubject("The subject");
|
||||
$message->setHtmlMessage("The HTML content");
|
||||
$message->setTextMessage("The TEXT content");
|
||||
|
||||
$instance = \Swift_Message::newInstance();
|
||||
|
||||
$message->buildMessage($this->parser, $instance);
|
||||
|
||||
$this->assertEquals("The subject", $instance->getSubject());
|
||||
$this->assertEquals("The HTML content", $instance->getBody());
|
||||
$this->assertEquals("The TEXT content", $instance->getChildren()[0]->getBody());
|
||||
}
|
||||
|
||||
/**
|
||||
* Create message with TEXT body only from message HTMl and TEXT fields
|
||||
*/
|
||||
public function testMessageWithTextOnlyBody()
|
||||
{
|
||||
$message = new Message();
|
||||
|
||||
$message->setLocale('fr_FR');
|
||||
|
||||
$message->setSubject("The subject");
|
||||
$message->setTextMessage("The TEXT content");
|
||||
|
||||
$instance = \Swift_Message::newInstance();
|
||||
|
||||
$message->buildMessage($this->parser, $instance);
|
||||
|
||||
$this->assertEquals("The subject", $instance->getSubject());
|
||||
$this->assertEquals("The TEXT content", $instance->getBody());
|
||||
$this->assertEquals(0, count($instance->getChildren()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Create message with HTML and TEXT body from message HTMl and TEXT fields
|
||||
* using a text and a html layout
|
||||
*/
|
||||
public function testMessageWithTextAndHtmlBodyAndTextAndHtmlLayout()
|
||||
{
|
||||
$message = new Message();
|
||||
|
||||
$message->setLocale('fr_FR');
|
||||
|
||||
$message->setSubject("The subject");
|
||||
$message->setTextMessage("The TEXT content");
|
||||
$message->setHtmlMessage("The HTML content");
|
||||
|
||||
$message->setHtmlLayoutFileName('layout.html.tpl');
|
||||
$message->setTextLayoutFileName('layout.text.tpl');
|
||||
|
||||
$path = TemplateHelper::getInstance()->getActiveMailTemplate()->getAbsolutePath();
|
||||
|
||||
file_put_contents($path.DS.'layout.html.tpl', 'HTML Layout: {$message_body nofilter}');
|
||||
file_put_contents($path.DS.'layout.text.tpl', 'TEXT Layout: {$message_body nofilter}');
|
||||
|
||||
$instance = \Swift_Message::newInstance();
|
||||
|
||||
$message->buildMessage($this->parser, $instance);
|
||||
|
||||
$this->assertEquals("The subject", $instance->getSubject());
|
||||
$this->assertEquals("HTML Layout: The HTML content", $instance->getBody());
|
||||
$this->assertEquals("TEXT Layout: The TEXT content", $instance->getChildren()[0]->getBody());
|
||||
}
|
||||
|
||||
/**
|
||||
* Create message with TEXT only body from message HTMl and TEXT fields
|
||||
* using a text only layout
|
||||
*/
|
||||
public function testMessageWithTextOnlyBodyAndTextOnlyLayout()
|
||||
{
|
||||
$message = new Message();
|
||||
|
||||
$message->setLocale('fr_FR');
|
||||
|
||||
$message->setSubject("The subject");
|
||||
$message->setTextMessage("The <TEXT> & content");
|
||||
|
||||
$message->setTextLayoutFileName('layout3.text.tpl');
|
||||
|
||||
$path = TemplateHelper::getInstance()->getActiveMailTemplate()->getAbsolutePath();
|
||||
|
||||
file_put_contents($path.DS.'layout3.text.tpl', 'TEXT Layout 3: {$message_body nofilter} :-) <>');
|
||||
|
||||
$instance = \Swift_Message::newInstance();
|
||||
|
||||
$message->buildMessage($this->parser, $instance);
|
||||
|
||||
$this->assertEquals("The subject", $instance->getSubject());
|
||||
$this->assertEquals("TEXT Layout 3: The <TEXT> & content :-) <>", $instance->getBody());
|
||||
$this->assertEquals(0, count($instance->getChildren()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Create message with TEXT and HTML body from message HTMl and TEXT fields
|
||||
* using a text only layout
|
||||
*/
|
||||
public function testMessageWithTextAndHtmlBodyAndTextOnlyLayout()
|
||||
{
|
||||
$message = new Message();
|
||||
|
||||
$message->setLocale('fr_FR');
|
||||
|
||||
$message->setSubject("The subject");
|
||||
$message->setTextMessage("The <TEXT> & content");
|
||||
$message->setHtmlMessage("The <HTML> & content");
|
||||
|
||||
$message->setTextLayoutFileName('layout3.text.tpl');
|
||||
|
||||
$path = TemplateHelper::getInstance()->getActiveMailTemplate()->getAbsolutePath();
|
||||
|
||||
file_put_contents($path.DS.'layout3.text.tpl', 'TEXT Layout 3: {$message_body nofilter} :-) <>');
|
||||
|
||||
$instance = \Swift_Message::newInstance();
|
||||
|
||||
$message->buildMessage($this->parser, $instance);
|
||||
|
||||
$this->assertEquals("The subject", $instance->getSubject());
|
||||
$this->assertEquals("The <HTML> & content", $instance->getBody());
|
||||
$this->assertEquals("TEXT Layout 3: The <TEXT> & content :-) <>", $instance->getChildren()[0]->getBody());
|
||||
}
|
||||
|
||||
/**
|
||||
* Create message with HTML and TEXT body from template HTMl and TEXT fields
|
||||
* using a text and a html layout
|
||||
*/
|
||||
public function testMessageWithTextAndHtmlBodyAndTextAndHtmlLayoutAndTextAndHtmlTemplate()
|
||||
{
|
||||
$message = new Message();
|
||||
|
||||
$message->setLocale('fr_FR');
|
||||
|
||||
$message->setSubject("The subject");
|
||||
$message->setTextMessage("The TEXT content");
|
||||
$message->setHtmlMessage("The HTML content");
|
||||
|
||||
$message->setTextTemplateFileName('template4-text.txt');
|
||||
$message->setHtmlTemplateFileName('template4-html.html');
|
||||
|
||||
$message->setHtmlLayoutFileName('layout4.html.tpl');
|
||||
$message->setTextLayoutFileName('layout4.text.tpl');
|
||||
|
||||
$path = TemplateHelper::getInstance()->getActiveMailTemplate()->getAbsolutePath();
|
||||
|
||||
$this->parser->assign('myvar', 'my-value');
|
||||
|
||||
file_put_contents($path.DS.'layout4.html.tpl', 'HTML Layout 4: {$message_body nofilter}');
|
||||
file_put_contents($path.DS.'layout4.text.tpl', 'TEXT Layout 4: {$message_body nofilter}');
|
||||
|
||||
file_put_contents($path.DS.'template4-html.html', 'HTML <template> & content v={$myvar}');
|
||||
file_put_contents($path.DS.'template4-text.txt', 'TEXT <template> & content v={$myvar}');
|
||||
|
||||
$instance = \Swift_Message::newInstance();
|
||||
|
||||
$message->buildMessage($this->parser, $instance);
|
||||
|
||||
$this->assertEquals("The subject", $instance->getSubject());
|
||||
$this->assertEquals("HTML Layout 4: HTML <template> & content v=my-value", $instance->getBody());
|
||||
$this->assertEquals("TEXT Layout 4: TEXT <template> & content v=my-value", $instance->getChildren()[0]->getBody());
|
||||
}
|
||||
|
||||
/**
|
||||
* Create message with HTML and TEXT body from template HTMl and TEXT fields
|
||||
* using a text and a html layout
|
||||
*/
|
||||
public function testMessageWithTextAndHtmlBodyAndTextAndHtmlLayoutAndTextAndHtmlTemplateWichExtendsLayout()
|
||||
{
|
||||
$message = new Message();
|
||||
|
||||
$message->setLocale('fr_FR');
|
||||
|
||||
$message->setSubject("The subject");
|
||||
$message->setTextMessage("The TEXT content");
|
||||
$message->setHtmlMessage("The HTML content");
|
||||
|
||||
$message->setTextTemplateFileName('template5-text.txt');
|
||||
$message->setHtmlTemplateFileName('template5-html.html');
|
||||
|
||||
//$message->setHtmlLayoutFileName('layout5.html.tpl');
|
||||
//$message->setTextLayoutFileName('layout5.text.tpl');
|
||||
|
||||
$path = TemplateHelper::getInstance()->getActiveMailTemplate()->getAbsolutePath();
|
||||
|
||||
$this->parser->assign('myvar', 'my-value');
|
||||
|
||||
file_put_contents($path.DS.'layout5.html.tpl', 'HTML Layout 5: {block name="message-body"}{$message_body nofilter}{/block}');
|
||||
file_put_contents($path.DS.'layout5.text.tpl', 'TEXT Layout 5: {block name="message-body"}{$message_body nofilter}{/block}');
|
||||
|
||||
file_put_contents($path.DS.'template5-html.html', '{extends file="layout5.html.tpl"}{block name="message-body"}HTML <template> & content v={$myvar}{/block}');
|
||||
file_put_contents($path.DS.'template5-text.txt' , '{extends file="layout5.text.tpl"}{block name="message-body"}TEXT <template> & content v={$myvar}{/block}');
|
||||
|
||||
$instance = \Swift_Message::newInstance();
|
||||
|
||||
$message->buildMessage($this->parser, $instance);
|
||||
|
||||
$this->assertEquals("The subject", $instance->getSubject());
|
||||
$this->assertEquals("HTML Layout 5: HTML <template> & content v=my-value", $instance->getBody());
|
||||
$this->assertEquals("TEXT Layout 5: TEXT <template> & content v=my-value", $instance->getChildren()[0]->getBody());
|
||||
}
|
||||
|
||||
/**
|
||||
* Create message with HTML and TEXT body from template HTMl and TEXT fields
|
||||
* using a text and a html layout
|
||||
*/
|
||||
public function testMessageWithTextAndHtmlBodyAndTextAndHtmlExtendableLayout()
|
||||
{
|
||||
$message = new Message();
|
||||
|
||||
$message->setLocale('fr_FR');
|
||||
|
||||
$message->setSubject("The subject");
|
||||
$message->setTextMessage('TEXT <template> & content v={$myvar}');
|
||||
$message->setHtmlMessage('HTML <template> & content v={$myvar}');
|
||||
|
||||
$message->setHtmlLayoutFileName('layout6.html.tpl');
|
||||
$message->setTextLayoutFileName('layout6.text.tpl');
|
||||
|
||||
$path = TemplateHelper::getInstance()->getActiveMailTemplate()->getAbsolutePath();
|
||||
|
||||
$this->parser->assign('myvar', 'my-value');
|
||||
|
||||
file_put_contents($path.DS.'layout6.html.tpl', 'HTML Layout 6: {block name="message-body"}{$message_body nofilter}{/block}');
|
||||
file_put_contents($path.DS.'layout6.text.tpl', 'TEXT Layout 6: {block name="message-body"}{$message_body nofilter}{/block}');
|
||||
|
||||
$instance = \Swift_Message::newInstance();
|
||||
|
||||
$message->buildMessage($this->parser, $instance);
|
||||
|
||||
$this->assertEquals("The subject", $instance->getSubject());
|
||||
$this->assertEquals("HTML Layout 6: HTML <template> & content v=my-value", $instance->getBody());
|
||||
$this->assertEquals("TEXT Layout 6: TEXT <template> & content v=my-value", $instance->getChildren()[0]->getBody());
|
||||
}
|
||||
|
||||
protected function tearDown() {
|
||||
|
||||
$dir = TemplateHelper::getInstance()->getActiveMailTemplate()->getAbsolutePath();
|
||||
|
||||
ConfigQuery::write('active-mail-template', $this->backup_mail_template);
|
||||
|
||||
$fs = new Filesystem();
|
||||
|
||||
$fs->remove($dir);
|
||||
}
|
||||
}
|
||||
@@ -10,6 +10,7 @@ INSERT INTO `config` (`name`, `value`, `secured`, `hidden`, `created_at`, `updat
|
||||
('active-front-template', 'default', 0, 0, NOW(), NOW()),
|
||||
('active-admin-template', 'default', 0, 0, NOW(), NOW()),
|
||||
('active-pdf-template', 'default', 0, 0, NOW(), NOW()),
|
||||
('active-mail-template', 'default', 0, 0, NOW(), NOW()),
|
||||
('default_lang_without_translation', '1', 1, 1, NOW(), NOW()),
|
||||
('rewriting_enable', '0', 0, 0, NOW(), NOW()),
|
||||
('imagine_graphic_driver', 'gd', 0, 0, NOW(), NOW()),
|
||||
|
||||
@@ -1060,6 +1060,10 @@ CREATE TABLE `message`
|
||||
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
||||
`name` VARCHAR(255) NOT NULL,
|
||||
`secured` TINYINT,
|
||||
`text_layout_file_name` VARCHAR(255),
|
||||
`text_template_file_name` VARCHAR(255),
|
||||
`html_layout_file_name` VARCHAR(255),
|
||||
`html_template_file_name` VARCHAR(255),
|
||||
`created_at` DATETIME,
|
||||
`updated_at` DATETIME,
|
||||
`version` INTEGER DEFAULT 0,
|
||||
@@ -1652,6 +1656,9 @@ CREATE TABLE `product_i18n`
|
||||
`description` LONGTEXT,
|
||||
`chapo` TEXT,
|
||||
`postscriptum` TEXT,
|
||||
`meta_title` VARCHAR(255),
|
||||
`meta_description` TEXT,
|
||||
`meta_keyword` TEXT,
|
||||
PRIMARY KEY (`id`,`locale`),
|
||||
CONSTRAINT `product_i18n_FK_1`
|
||||
FOREIGN KEY (`id`)
|
||||
@@ -2342,6 +2349,10 @@ CREATE TABLE `message_version`
|
||||
`id` INTEGER NOT NULL,
|
||||
`name` VARCHAR(255) NOT NULL,
|
||||
`secured` TINYINT,
|
||||
`text_layout_file_name` VARCHAR(255),
|
||||
`text_template_file_name` VARCHAR(255),
|
||||
`html_layout_file_name` VARCHAR(255),
|
||||
`html_template_file_name` VARCHAR(255),
|
||||
`created_at` DATETIME,
|
||||
`updated_at` DATETIME,
|
||||
`version` INTEGER DEFAULT 0 NOT NULL,
|
||||
|
||||
@@ -29,6 +29,9 @@
|
||||
<column name="description" type="CLOB" />
|
||||
<column name="chapo" type="LONGVARCHAR" />
|
||||
<column name="postscriptum" type="LONGVARCHAR" />
|
||||
<column name="template_id" type="INTEGER" />
|
||||
<column name="meta_title" size="255" type="VARCHAR" />
|
||||
<column name="meta_description" type="LONGVARCHAR" />
|
||||
<column name="meta_keyword" type="LONGVARCHAR" />
|
||||
<foreign-key foreignTable="tax_rule" name="fk_product_tax_rule_id" onDelete="RESTRICT" onUpdate="RESTRICT">
|
||||
<reference foreign="id" local="tax_rule_id" />
|
||||
@@ -46,7 +49,7 @@
|
||||
<index-column name="template_id" />
|
||||
</index>
|
||||
<behavior name="timestampable" />
|
||||
<behavior name="i18n">
|
||||
<behavior name="i18n">
|
||||
<parameter name="i18n_columns" value="title, description, chapo, postscriptum, meta_title, meta_description, meta_keyword" />
|
||||
</behavior>
|
||||
<behavior name="versionable">
|
||||
@@ -820,6 +823,10 @@
|
||||
<column name="title" type="LONGVARCHAR" />
|
||||
<column name="subject" type="LONGVARCHAR" />
|
||||
<column name="text_message" type="CLOB" />
|
||||
<column name="html_message" type="CLOB" />
|
||||
<column name="text_layout_file_name" size="255" type="VARCHAR" />
|
||||
<column name="text_template_file_name" size="255" type="VARCHAR" />
|
||||
<column name="html_layout_file_name" size="255" type="VARCHAR" />
|
||||
<column name="html_template_file_name" size="255" type="VARCHAR" />
|
||||
<unique name="name_UNIQUE">
|
||||
<unique-column name="name" />
|
||||
|
||||
@@ -42,6 +42,11 @@ label {
|
||||
}
|
||||
}
|
||||
|
||||
// Textarea in fixed fonts
|
||||
textarea.fixedfont {
|
||||
font-family: @font-family-monospace;
|
||||
}
|
||||
|
||||
// FORM FIELD FEEDBACK STATES
|
||||
// --------------------------
|
||||
|
||||
|
||||
@@ -55,8 +55,10 @@
|
||||
|
||||
{form_field form=$form field='name'}
|
||||
<div class="form-group {if $error}has-error{/if}">
|
||||
<label for="{$label_attr.for}" class="control-label">{$label} : </label>
|
||||
<input type="text" id="{$label_attr.for}" required="required" name="{$name}" value="{$value}" title="{intl l='Variable name'}" placeholder="{intl l='Variable name'}" class="form-control">
|
||||
<label for="{$label_attr.for}" class="control-label">{$label}{if $required} <span class="required">*</span>{/if} :
|
||||
<span class="label-help-block">{intl l="This the unique name of this message. Do not change this value unless you understand what you do."}</span>
|
||||
</label>
|
||||
<input type="text" id="{$label_attr.for}" {if $required}required="required"{/if} name="{$name}" value="{$value}" title="{intl l='Variable name'}" placeholder="{intl l='Variable name'}" class="form-control">
|
||||
</div>
|
||||
{/form_field}
|
||||
|
||||
@@ -71,40 +73,126 @@
|
||||
|
||||
{form_field form=$form field='title'}
|
||||
<div class="form-group {if $error}has-error{/if}">
|
||||
<label for="{$label_attr.for}" class="control-label">{$label} : </label>
|
||||
<input type="text" id="{$label_attr.for}" name="{$name}" required="required" title="{intl l='Title'}" placeholder="{intl l='Title'}" class="form-control" value="{$value}">
|
||||
<label for="{$label_attr.for}" class="control-label">{$label}{if $required} <span class="required">*</span>{/if} :
|
||||
<span class="label-help-block">{intl l="This is the message purpose, such as 'Order confirmation'."}</span>
|
||||
</label>
|
||||
<input type="text" id="{$label_attr.for}" name="{$name}" {if $required}{if $required}required="required"{/if}{/if} title="{intl l='Title'}" placeholder="{intl l='Title'}" class="form-control" value="{$value}">
|
||||
</div>
|
||||
{/form_field}
|
||||
|
||||
{form_field form=$form field='subject'}
|
||||
<div class="form-group {if $error}has-error{/if}">
|
||||
<label for="{$label_attr.for}" class="control-label">{$label} : </label>
|
||||
<input type="text" id="{$label_attr.for}" name="{$name}" required="required" title="{intl l='Subject'}" placeholder="{intl l='Subject'}" class="form-control" value="{$value}">
|
||||
</div>
|
||||
{/form_field}
|
||||
|
||||
{form_field form=$form field='html_message'}
|
||||
<div class="form-group {if $error}has-error{/if}">
|
||||
<label for="{$label_attr.for}" class="control-label">
|
||||
{$label} :
|
||||
<span class="label-help-block">{intl l="The mailing template in HTML format."}</span>
|
||||
</label>
|
||||
<textarea name="{$name}" id="{$label_attr.for}" rows="10" class="form-control">{$value}</textarea>
|
||||
</div>
|
||||
{/form_field}
|
||||
|
||||
{form_field form=$form field='text_message'}
|
||||
<div class="form-group {if $error}has-error{/if}">
|
||||
<label for="{$label_attr.for}" class="control-label">
|
||||
{$label} :
|
||||
<span class="label-help-block">{intl l="The mailing template in text-only format."}</span>
|
||||
<label for="{$label_attr.for}" class="control-label">{$label}{if $required} <span class="required">*</span>{/if} :
|
||||
<span class="label-help-block">{intl l="This is the subject of the e-mail, such as 'Your order is confirmed'."}</span>
|
||||
</label>
|
||||
<textarea name="{$name}" id="{$label_attr.for}" rows="10" class="form-control">{$value}</textarea>
|
||||
</div>
|
||||
<input type="text" id="{$label_attr.for}" name="{$name}" {if $required}required="required"{/if} title="{intl l='Subject'}" placeholder="{intl l='Subject'}" class="form-control" value="{$value}">
|
||||
</div>
|
||||
{/form_field}
|
||||
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading"><h3 class="panel-title">{intl l="HTML version of this message"}</h3></div>
|
||||
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
{form_field form=$form field='html_layout_file_name'}
|
||||
<div class="form-group {if $error}has-error{/if}">
|
||||
<label for="{$label_attr.for}" class="control-label">{$label}{if $required} <span class="required">*</span>{/if} : </label>
|
||||
<select id="{$label_attr.for}" name="{$name}" {if $required}required="required"{/if} title="{$label}" class="form-control">
|
||||
<option value="">{intl l='Use default layout'}</option>
|
||||
{foreach $layout_list as $layout}
|
||||
<option value="{$layout}" {if $layout == $value}selected="selected"{/if}>{$layout}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
{/form_field}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{form_field form=$form field='html_template_file_name'}
|
||||
<div class="form-group {if $error}has-error{/if}">
|
||||
<label for="{$label_attr.for}" class="control-label">{$label}{if $required} <span class="required">*</span>{/if} : </label>
|
||||
<select data-toggle-textarea="html-message-content" id="{$label_attr.for}" name="{$name}" {if $required}required="required"{/if} title="{$label}" class="textarea-toggle form-control">
|
||||
<option value="">{intl l='Use HTML message defined below'}</option>
|
||||
{foreach $html_template_list as $template}
|
||||
<option value="{$template}" {if $template == $value}selected="selected"{/if}>{$template}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
{if ! empty($value)}{$disable_html='readonly="true"'}{/if}
|
||||
{/form_field}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{form_field form=$form field='html_message'}
|
||||
<div class="form-group {if $error}has-error{/if}">
|
||||
<label for="html-message-content" class="control-label">
|
||||
{$label}{if $required} <span class="required">*</span>{/if} :
|
||||
<span class="label-help-block">{intl l="The mailing template in HTML format."}</span>
|
||||
</label>
|
||||
<textarea {$disable_html} {if $required}required="required"{/if} name="{$name}" id="html-message-content" rows="10" class="fixedfont form-control">{$value}</textarea>
|
||||
</div>
|
||||
{/form_field}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading"><h3 class="panel-title">{intl l="Text version of this message"}</h3></div>
|
||||
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
{form_field form=$form field='text_layout_file_name'}
|
||||
<div class="form-group {if $error}has-error{/if}">
|
||||
<label for="{$label_attr.for}" class="control-label">{$label}{if $required} <span class="required">*</span>{/if} : </label>
|
||||
<select id="{$label_attr.for}" name="{$name}" {if $required}required="required"{/if} title="{$label}" class="form-control">
|
||||
<option value="">{intl l='Use default layout'}</option>
|
||||
{foreach $layout_list as $layout}
|
||||
<option value="{$layout}" {if $layout == $value}selected="selected"{/if}>{$layout}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
{/form_field}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{form_field form=$form field='text_template_file_name'}
|
||||
<div class="form-group {if $error}has-error{/if}">
|
||||
<label for="{$label_attr.for}" class="control-label">{$label}{if $required} <span class="required">*</span>{/if} : </label>
|
||||
<select data-toggle-textarea="text-message-content" id="{$label_attr.for}" name="{$name}" {if $required}required="required"{/if} title="{$label}" class="textarea-toggle form-control">
|
||||
<option value="">{intl l='Use Text message defined below'}</option>
|
||||
{foreach $text_template_list as $template}
|
||||
<option value="{$template}" {if $template == $value}selected="selected"{/if}>{$template}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
{if ! empty($value)}{$disable_text='readonly="true"'}{/if}
|
||||
{/form_field}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{form_field form=$form field='text_message'}
|
||||
<div class="form-group {if $error}has-error{/if}">
|
||||
<label for="text-message-content" class="control-label">
|
||||
{$label}{if $required} <span class="required">*</span>{/if} :
|
||||
<span class="label-help-block">{intl l="The mailing template in text-only format."}</span>
|
||||
</label>
|
||||
<textarea {$disable_text} id="text-message-content" {if $required}required="required"{/if} name="{$name}" rows="10" class="fixedfont form-control">{$value}</textarea>
|
||||
</div>
|
||||
{/form_field}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<p>{intl l='Message created on %date_create. Last modification: %date_change' date_create="{format_date date=$CREATE_DATE}" date_change="{format_date date=$UPDATE_DATE}"}}</p>
|
||||
<p>{intl l='Message created on %date_create. Last modification: %date_change' date_create="{format_date date=$CREATE_DATE}" date_change="{format_date date=$UPDATE_DATE}"}</p>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
@@ -130,3 +218,19 @@
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
{block name="javascript-initialization"}
|
||||
<script>
|
||||
(function($) {
|
||||
$('select.textarea-toggle').change(function(ev) {
|
||||
if ($(this).val() != '') {
|
||||
$('#' + $(this).data('toggle-textarea')).addClass("disabled").prop('readonly', true);
|
||||
}
|
||||
else {
|
||||
$('#' + $(this).data('toggle-textarea')).removeClass('disabled').prop('readonly', false);
|
||||
}
|
||||
});
|
||||
|
||||
})(jQuery);
|
||||
</script>
|
||||
{/block}
|
||||
|
||||
@@ -127,14 +127,14 @@
|
||||
|
||||
{form_field form=$form field='name'}
|
||||
<div class="form-group {if $error}has-error{/if}">
|
||||
<label for="{$label_attr.for}" class="control-label">{$label} : </label>
|
||||
<input type="text" id="{$label_attr.for}" required="required" name="{$name}" value="{$value}" title="{intl l='Mailing template name'}" placeholder="{intl l='Mailing template name'}" class="form-control">
|
||||
<label for="{$label_attr.for}" class="control-label">{$label}{if $required} <span class="required">*</span>{/if} : </label>
|
||||
<input type="text" id="{$label_attr.for}" {if $required}required="required"{/if} name="{$name}" value="{$value}" title="{intl l='Mailing template name'}" placeholder="{intl l='Mailing template name'}" class="form-control">
|
||||
</div>
|
||||
{/form_field}
|
||||
|
||||
{form_field form=$form field='title'}
|
||||
<div class="form-group {if $error}has-error{/if}">
|
||||
<label for="{$label_attr.for}" class="control-label">{$label} : </label>
|
||||
<label for="{$label_attr.for}" class="control-label">{$label}{if $required} <span class="required">*</span>{/if} : </label>
|
||||
|
||||
{loop type="lang" name="default-lang" default_only="1"}
|
||||
|
||||
@@ -142,7 +142,7 @@
|
||||
<input type="hidden" name="edit_language_id" value="{$ID}" />
|
||||
|
||||
<div class="input-group">
|
||||
<input type="text" id="{$label_attr.for}" required="required" name="{$name}" value="{$value}" title="{intl l='Mailing template purpose'}" placeholder="{intl l='Mailing template purpose'}" class="form-control">
|
||||
<input type="text" id="{$label_attr.for}" {if $required}required="required"{/if} name="{$name}" value="{$value}" title="{intl l='Mailing template purpose'}" placeholder="{intl l='Mailing template purpose'}" class="form-control">
|
||||
<span class="input-group-addon"><img src="{image file="assets/img/flags/{$CODE}.gif"}" alt="{intl l=$TITLE}" /></span>
|
||||
</div>
|
||||
|
||||
|
||||
71
templates/email/default/README
Normal file
71
templates/email/default/README
Normal file
@@ -0,0 +1,71 @@
|
||||
About mail layout and templates
|
||||
-------------------------------
|
||||
|
||||
Layouts
|
||||
-------
|
||||
|
||||
Mail layouts are used to provide a layout to all or some of the e-mails sent by
|
||||
the Thelia core or the modules.
|
||||
|
||||
The layouts should have the 'tpl' extension, and shoud use {$message_body} as the
|
||||
placeholder of the final message content.
|
||||
|
||||
For example, a minimal layout is :
|
||||
|
||||
{$message_body}
|
||||
|
||||
There are no specific limitations in the content of the layout. For exemple, you
|
||||
can forecast inheritance, using a block :
|
||||
|
||||
{block name='message-body'}{$message_body nofilter}{/block}
|
||||
|
||||
(In fact, this is the content of the default HTML layout, default-html-layout.tpl)
|
||||
|
||||
This way, you can extends the layout in message templates :
|
||||
|
||||
{block name='message-body'}
|
||||
|
||||
Here is the template content
|
||||
|
||||
{/block}
|
||||
|
||||
|
||||
Templates
|
||||
---------
|
||||
|
||||
A Template contains the body of a specific message. It can be used It may extends a layout, but
|
||||
in this case, you SHOULD NOT select this layout as the message layout in the back office.
|
||||
|
||||
HTML templates SHOULD have the 'html' extension to be displayed in the "Name of
|
||||
the text template file" menu in the back-office.
|
||||
|
||||
TEXT templates SHOULD have the 'text' extension to be displayed in the "Name of
|
||||
the text template file" menu in the back-office.
|
||||
|
||||
|
||||
What you can do with this stuff ?
|
||||
---------------------------------
|
||||
|
||||
For a specific message, you can :
|
||||
|
||||
Not use templates or layouts, and rely on HTML and TEXT entered in the back-
|
||||
office.
|
||||
|
||||
Use only layouts, to define a common look and feel to your mails. These layouts
|
||||
are be populated (through {$message_body}) with HTML or TEXT entered in the back-
|
||||
office.
|
||||
|
||||
Use only templates, without layouts, to define message content. In this case,
|
||||
HTML or TEXT entered in the back-office is ignored.
|
||||
|
||||
Use layouts and templates, without inheritance. This way, layouts are populated
|
||||
(through {$message_body}) with HTML or TEXT found in the message templates.
|
||||
HTML or TEXT entered in the back-office is ignored.
|
||||
|
||||
Use templates which inherit from a layout. In the layout, {$message_body}
|
||||
(if present) is then ignored, and the classic Smarty bock-based inheritance
|
||||
is used.
|
||||
Be sure in this case to not define an extended layout as ther message layout,
|
||||
or unexpected results may be generated (probably repeated layout content)
|
||||
|
||||
Enjoy.
|
||||
10
templates/email/default/default-html-layout.tpl
Normal file
10
templates/email/default/default-html-layout.tpl
Normal file
@@ -0,0 +1,10 @@
|
||||
{*
|
||||
This is the default HTML mail layout. Use {$message_body} as a placeholder for
|
||||
the HTML message defined in the 'HTML Message' field in the back-office, or the
|
||||
content of the selected template in the back-office.
|
||||
|
||||
Be sure to use the nofilter modifier, to prevent HTML escaping.
|
||||
|
||||
DO NOT DELETE THIS FILE, some plugins may use it.
|
||||
*}
|
||||
{block name='message-body'}{$message_body nofilter}{/block}
|
||||
10
templates/email/default/default-text-layout.tpl
Normal file
10
templates/email/default/default-text-layout.tpl
Normal file
@@ -0,0 +1,10 @@
|
||||
{*
|
||||
This is the default TEXT mail layout. Use {$message_body} as a placeholder for
|
||||
the text message defined in the 'TEXT Message' field in the back-office, or the
|
||||
content of the selected template in the back-office.
|
||||
|
||||
Be sure to use the nofilter modifier, to prevent HTML escaping.
|
||||
|
||||
DO NOT DELETE THIS FILE, some plugins may use it.
|
||||
*}
|
||||
{block name='message-body'}{$message_body nofilter}{/block}
|
||||
107
templates/email/default/order_confirmation.html
Normal file
107
templates/email/default/order_confirmation.html
Normal file
@@ -0,0 +1,107 @@
|
||||
{loop name="order.invoice" type="order" id=$order_id customer="*"}
|
||||
{loop name="currency.order" type="currency" id=$CURRENCY}
|
||||
{assign "orderCurrency" $SYMBOL}
|
||||
{/loop}
|
||||
{loop type="customer" name="customer.invoice" id=$CUSTOMER current="0"}
|
||||
{assign var="customer_ref" value=$REF}
|
||||
{/loop}
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="fr">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<title>courriel de confirmation de commande de {config key="url_site"} </title>
|
||||
{literal}
|
||||
<style type="text/css">body {font-family: Arial, Helvetica, sans-serif; font-size:100%; text-align:center;}#liencompte {margin:15px 0 ; text-align:center; font-size:10pt;}#wrapper {width:480pt;margin:0 auto;}#entete {padding-bottom:20px;margin-bottom:10px;border-bottom:1px dotted #000;}#logotexte {float:left;width:180pt;height:75pt;border:1pt solid #000;font-size:18pt;text-align:center;}#logoimg{float:left;}#h2 {margin:0;padding:0;font-size:140%;text-align:center;}#h3 {margin:0;padding:0;font-size:120%;text-align:center;}#tableprix {margin:0 auto;border-collapse:collapse;font-size:80%;}#intitules {font-weight:bold;text-align:center;}#ref {width:65pt;border:1px solid #000;}#designation {width:278pt;border:1px solid #000;}#pu {width:65pt;border:1px solid #000;}#qte {width:60pt;border:1px solid #000;}.ligneproduit{font-weight:normal;}.cellref{text-align:right;padding-right:6pt;border:1px solid #000;}.celldsg{text-align:left;padding-left:6pt;border:1px solid #000;}.cellpu{text-align:right;padding-right:6pt;border:1px solid #000;}.cellqte{text-align:right;padding-right:6pt;border:1px solid #000;}.lignevide{border-bottom:1px solid #000;}.totauxtitre{text-align:right;padding-right:6pt;border-left:1px solid #000;}.totauxcmdtitre{text-align:right;padding-right:6pt;border-left:1px solid #000;border-bottom:1px solid #000;}.totauxprix{text-align:right;padding-right:6pt;border:1px solid #000;}.blocadresses{display:inline;float:left;width:228pt;margin:12pt 4pt 12pt 5pt;font-size:80%;line-height:18pt;text-align:left;border:1px solid #000;}.stylenom{margin:0;padding:0 0 0 10pt;border-bottom:1px solid #000;}.styleliste{margin:0;padding:0 0 0 10pt;}</style>
|
||||
{/literal}
|
||||
</head>
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
<div id="entete"><h1 id="logotexte">{config key="company_name"}</h1>
|
||||
<h2 id="info">Confirmation de commande</h2>
|
||||
<h3 id="commande">N° {$REF} du <span style="font-size:80%">{format_date date=$INVOICE_DATE output="date"}</span></h3>
|
||||
</div>
|
||||
<table id="tableprix" border="0">
|
||||
<tbody>
|
||||
<tr id="intitules">
|
||||
<th id="ref">Référence</th>
|
||||
<th id="designation">Désignation</th>
|
||||
<th id="pu">P.U. €</th>
|
||||
<th id="qte">Qté</th>
|
||||
</tr>
|
||||
{loop type="order_product" name="order-products" order=$ID}
|
||||
{if $WAS_IN_PROMO == 1}
|
||||
{assign "realPrice" $PROMO_PRICE}
|
||||
{assign "realTax" $PROMO_PRICE_TAX}
|
||||
{assign "realTaxedPrice" $TAXED_PROMO_PRICE}
|
||||
{else}
|
||||
{assign "realPrice" $PRICE}
|
||||
{assign "realTax" $PRICE_TAX}
|
||||
{assign "realTaxedPrice" $TAXED_PRICE}
|
||||
{/if}
|
||||
<tr class="ligneproduit">
|
||||
<td class="cellref">{$REF}</td>
|
||||
<td class="celldsg">{$TITLE}
|
||||
{ifloop rel="combinations"}
|
||||
{loop type="order_product_attribute_combination" name="combinations" order_product=$ID}
|
||||
{$ATTRIBUTE_TITLE} - {$ATTRIBUTE_AVAILABILITY_TITLE}<br>
|
||||
{/loop}
|
||||
{/ifloop}
|
||||
</td>
|
||||
<td class="cellpu">{$orderCurrency} {$realTaxedPrice}</td>
|
||||
<td class="cellqte">{$QUANTITY}</td>
|
||||
</tr>
|
||||
{/loop}
|
||||
<!-- insere une ligne vide -->
|
||||
<tr class="ligneproduit">
|
||||
<td class="lignevide" colspan="4"> </td>
|
||||
</tr>
|
||||
<tr class="ligneproduit">
|
||||
<td class="totauxtitre" colspan="3">Montant total avant remise €</td>
|
||||
<td class="totauxprix">{$orderCurrency} {$TOTAL_TAXED_AMOUNT - $POSTAGE}</td>
|
||||
</tr>
|
||||
<tr class="ligneproduit">
|
||||
<td class="totauxtitre" colspan="3">Port €</td>
|
||||
<td class="totauxprix">{$orderCurrency} {$POSTAGE}</td>
|
||||
</tr>
|
||||
<tr class="ligneproduit">
|
||||
<td class="totauxcmdtitre" colspan="3">Montant total de la commande €</td>
|
||||
<td class="totauxprix">{$orderCurrency} {$TOTAL_TAXED_AMOUNT}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="blocadresses">
|
||||
<p class="stylenom">LIVRAISON : {loop name="delivery-module" type="module" id=$DELIVERY_MODULE}{$TITLE}{/loop}</p>
|
||||
{loop type="order_address" name="delivery_address" id=$INVOICE_ADDRESS}
|
||||
<p class="styleliste">N° de client : {$customer_ref}</p>
|
||||
<p class="styleliste">Nom :
|
||||
{loop type="title" name="order-invoice-address-title" id=$TITLE}{$LONG}{/loop} {$FIRSTNAME} {$LASTNAME}</p>
|
||||
<p class="styleliste">N° et rue :
|
||||
{$ADDRESS1}</p>
|
||||
<p class="styleliste">Complément : {$ADDRESS2}
|
||||
{$ADDRESS3}</p>
|
||||
<p class="styleliste">Code postal : {$ZIPCODE}</p>
|
||||
<p class="styleliste">Ville : {$CITY}</p>
|
||||
<p class="styleliste">Pays : {loop type="country" name="country_delivery" id=$COUNTRY}{$TITLE}{/loop}</p>
|
||||
</div>
|
||||
{/loop}
|
||||
<div class="blocadresses">
|
||||
<p class="stylenom">FACTURATION : paiement par {loop name="payment-module" type="module" id=$PAYMENT_MODULE}{$TITLE}{/loop}</p>
|
||||
{loop type="order_address" name="delivery_address" id=$DELIVERY_ADDRESS}
|
||||
<p class="styleliste">N° de client : {$customer_ref}</p>
|
||||
<p class="styleliste">Nom :
|
||||
{loop type="title" name="order-invoice-address-title" id=$TITLE}{$LONG}{/loop} {$FIRSTNAME} {$LASTNAME}</p>
|
||||
<p class="styleliste">N° et rue :
|
||||
{$ADDRESS1}</p>
|
||||
<p class="styleliste">Complément : {$ADDRESS2}
|
||||
{$ADDRESS3}</p>
|
||||
<p class="styleliste">Code postal : {$ZIPCODE}</p>
|
||||
<p class="styleliste">Ville : {$CITY}</p>
|
||||
<p class="styleliste">Pays : {loop type="country" name="country_delivery" id=$COUNTRY}{$TITLE}{/loop}</p>
|
||||
</div>
|
||||
{/loop}
|
||||
<p id="liencompte">Le suivi de votre commande est disponible dans la rubrique mon compte sur <a href="{config key="url_site"}">{config key="url_site"}</a></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
{/loop}
|
||||
40
templates/email/default/order_confirmation.txt
Normal file
40
templates/email/default/order_confirmation.txt
Normal file
@@ -0,0 +1,40 @@
|
||||
{assign var="order_id" value=1}
|
||||
{loop name="order.invoice" type="order" id=$order_id customer="*"}
|
||||
{loop name="currency.order" type="currency" id=$CURRENCY}
|
||||
{assign "orderCurrency" $CODE}
|
||||
{/loop}
|
||||
{loop type="order_address" name="delivery_address" id=$INVOICE_ADDRESS}
|
||||
{loop type="title" name="order-invoice-address-title" id=$TITLE}{$LONG}{/loop}{$FIRSTNAME} {$LASTNAME}\r\n
|
||||
{$ADDRESS1} {$ADDRESS2} {$ADDRESS3}\r\n
|
||||
{$ZIPCODE} {$CITY}\r\n
|
||||
{loop type="country" name="country_delivery" id=$COUNTRY}{$TITLE}{/loop}\r\n
|
||||
{/loop}
|
||||
Confirmation de commande {$REF} du {format_date date=$INVOICE_DATE}\r\n\r\n
|
||||
Les articles commandés:\r\n
|
||||
{loop type="order_product" name="order-products" order=$ID}
|
||||
{if $WAS_IN_PROMO == 1}
|
||||
{assign "realPrice" $PROMO_PRICE}
|
||||
{assign "realTax" $PROMO_PRICE_TAX}
|
||||
{assign "realTaxedPrice" $TAXED_PROMO_PRICE}
|
||||
{else}
|
||||
{assign "realPrice" $PRICE}
|
||||
{assign "realTax" $PRICE_TAX}
|
||||
{assign "realTaxedPrice" $TAXED_PRICE}
|
||||
{/if}
|
||||
\r\n
|
||||
Article : {$TITLE}
|
||||
{ifloop rel="combinations"}
|
||||
{loop type="order_product_attribute_combination" name="combinations" order_product=$ID}
|
||||
{$ATTRIBUTE_TITLE} - {$ATTRIBUTE_AVAILABILITY_TITLE}\r\n
|
||||
{/loop}
|
||||
{/ifloop}\r\n
|
||||
Quantité : {$QUANTITY}\r\n
|
||||
Prix unitaire TTC : {$realTaxedPrice} {$orderCurrency}\r\n
|
||||
{/loop}
|
||||
\r\n-----------------------------------------\r\n
|
||||
Montant total TTC : {$TOTAL_TAXED_AMOUNT - $POSTAGE} {$orderCurrency} \r\n
|
||||
Frais de port TTC : {$POSTAGE} {$orderCurrency} \r\n
|
||||
Somme totale: {$TOTAL_TAXED_AMOUNT} {$orderCurrency} \r\n
|
||||
==================================\r\n\r\n
|
||||
Votre facture est disponible dans la rubrique mon compte sur {config key="url_site"}
|
||||
{/loop}
|
||||
Reference in New Issue
Block a user