Create a default form

[MAILPOET-1449]
This commit is contained in:
Pavel Dohnal
2018-11-13 15:38:46 +01:00
parent a393ad5b61
commit ad85c7e4b1
3 changed files with 97 additions and 8 deletions

View File

@ -1,12 +1,12 @@
<?php
namespace MailPoet\Config;
use MailPoet\Config\PopulatorData\DefaultForm;
use MailPoet\Cron\CronTrigger;
use MailPoet\Mailer\MailerLog;
use MailPoet\Models\Newsletter;
use MailPoet\Models\NewsletterTemplate;
use MailPoet\Models\Form;
use MailPoet\Models\Segment;
use MailPoet\Models\SendingQueue;
use MailPoet\Models\StatisticsForms;
use MailPoet\Models\Subscriber;
use MailPoet\Segments\WP;
@ -24,6 +24,7 @@ class Populator {
public $prefix;
public $models;
public $templates;
private $default_segment;
const TEMPLATES_NAMESPACE = '\MailPoet\Config\PopulatorData\Templates\\';
function __construct() {
@ -87,6 +88,7 @@ class Populator {
array_map(array($this, 'populate'), $this->models);
$this->createDefaultSegments();
$this->createDefaultForm();
$this->createDefaultSettings();
$this->createMailPoetPage();
$this->createSourceForSubscribers();
@ -195,13 +197,28 @@ class Populator {
// Default segment
if(Segment::where('type', 'default')->count() === 0) {
$default_segment = Segment::create();
$default_segment->hydrate(array(
$this->default_segment = Segment::create();
$this->default_segment->hydrate([
'name' => __('My First List', 'mailpoet'),
'description' =>
__('This list is automatically created when you install MailPoet.', 'mailpoet')
));
$default_segment->save();
]);
$this->default_segment->save();
}
}
private function createDefaultForm() {
if(Form::count() === 0) {
$factory = new DefaultForm();
if(!$this->default_segment) {
$this->default_segment = Segment::where('type', 'default')->orderByAsc('id')->limit(1)->findOne();
}
Form::createOrUpdate([
'name' => $factory->getName(),
'body' => serialize($factory->getBody()),
'settings' => serialize($factory->getSettings($this->default_segment)),
'styles' => $factory->getStyles(),
]);
}
}