Merge pull request #261 from mailpoet/form_editor_round_1

Form editor round 1
This commit is contained in:
Marco
2015-12-09 14:07:33 +01:00
25 changed files with 242 additions and 154 deletions

View File

@ -139,6 +139,7 @@ class Forms {
function saveEditor($data = array()) {
$form_id = (isset($data['id']) ? (int)$data['id'] : 0);
$name = (isset($data['name']) ? $data['name'] : array());
$body = (isset($data['body']) ? $data['body'] : array());
$settings = (isset($data['settings']) ? $data['settings'] : array());
$styles = (isset($data['styles']) ? $data['styles'] : array());
@ -187,6 +188,7 @@ class Forms {
$form = Form::createOrUpdate(array(
'id' => $form_id,
'name' => $name,
'body' => $body,
'settings' => $settings,
'styles' => $styles

View File

@ -4,6 +4,7 @@ namespace MailPoet\Router;
use MailPoet\Listing;
use MailPoet\Models\Subscriber;
use MailPoet\Models\SubscriberSegment;
use MailPoet\Models\SubscriberCustomField;
use MailPoet\Models\Segment;
use MailPoet\Models\Setting;
use MailPoet\Models\Form;
@ -140,32 +141,37 @@ class Subscribers {
? 'unconfirmed' : 'subscribed'
);
// // set custom fields
// $meta_fields = $mailpoet->getOption('mailpoet_subscriber_meta', array());
// if(!empty($meta_fields)) {
// // loop through data to see if any meta field has been passed
// foreach($meta_fields as $field => $field_data) {
// // check if it's a mandatory field
// $is_required = (isset($field_data['params']['required']) && (bool)$field_data['params']['required'] === true);
// if(array_key_exists($field, $data)) {
// // check if it's a mandatory field
// if($is_required === true && empty($data[$field])) {
// // if it's missing, throw an error
// $errors[] = sprintf(__('"%s" is required'), $field_data['name']);
// } else {
// // assign field to subscriber
// $subscriber[$field] = $data[$field];
// }
// }
// }
// }
// custom fields
$custom_fields = array();
foreach($data as $key => $value) {
if(strpos($key, 'cf_') === 0) {
$custom_fields[substr($key, 3)] = $value;
unset($data[$key]);
}
}
// insert new subscriber
$subscriber = Subscriber::createOrUpdate($data);
if($subscriber === false || !$subscriber->id()) {
$errors = array_merge($errors, $subscriber->getValidationErrors());
} else {
// add custom fields
if(!empty($custom_fields)) {
foreach($custom_fields as $custom_field_id => $value) {
if(is_array($value)) {
// date
$value = mktime(0, 0, 0, $value['month'], $value['day'], $value['year']);
}
$subscriber_custom_field = SubscriberCustomField::create();
$subscriber_custom_field->hydrate(array(
'subscriber_id' => $subscriber->id(),
'custom_field_id' => $custom_field_id,
'value' => $value
));
$subscriber_custom_field->save();
}
}
}
} else {
$subscriber->set('status', (