%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/pn/beta/64801_wp-content/plugins/mailpoet/lib/Models/
Upload File :
Create Path :
Current File : /var/www/pn/beta/64801_wp-content/plugins/mailpoet/lib/Models/ModelValidator.php

<?php

namespace MailPoet\Models;

use MailPoet\Util\Helpers;

if(!defined('ABSPATH')) exit;

class ModelValidator extends \Sudzy\Engine {
  public $validators;

  const EMAIL_MIN_LENGTH = 6;
  const EMAIL_MAX_LENGTH = 150;

  function __construct() {
    parent::__construct();
    $this->validators = array(
      'validEmail' => 'validateEmail',
      'validRenderedNewsletterBody' => 'validateRenderedNewsletterBody'
    );
    $this->setupValidators();
  }

  private function setupValidators() {
    $_this = $this;
    foreach($this->validators as $validator => $action) {
      $this->addValidator($validator, function($params) use ($action, $_this) {
        return call_user_func(array($_this, $action), $params);
      });
    }
  }

  function validateEmail($email) {
    $permitted_length = (strlen($email) >= self::EMAIL_MIN_LENGTH && strlen($email) <= self::EMAIL_MAX_LENGTH);
    $valid_email = is_email($email) !== false && parent::_isEmail($email, null);
    return ($permitted_length && $valid_email);
  }

  function validateRenderedNewsletterBody($newsletter_body) {
    if(is_serialized($newsletter_body)) {
      $newsletter_body = unserialize($newsletter_body);
    } else if(Helpers::isJson($newsletter_body)) {
      $newsletter_body = json_decode($newsletter_body, true);
    }
    return (is_null($newsletter_body) || (is_array($newsletter_body) && !empty($newsletter_body['html']) && !empty($newsletter_body['text'])));
  }
}

Zerion Mini Shell 1.0