/**
  * Creates a new model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  */
 public function actionCreate()
 {
     $model = new Maillist();
     // Uncomment the following line if AJAX validation is needed
     // $this->performAjaxValidation($model);
     if (isset($_POST['Maillist'])) {
         $model->attributes = $_POST['Maillist'];
         if ($model->save()) {
             $this->redirect(array('view', 'id' => $model->id));
         }
     }
     $this->render('create', array('model' => $model));
 }
Esempio n. 2
0
 /**
  * @return mixed
  */
 public function postMaillist()
 {
     $formData = array('email' => Input::get('email'));
     $rules = array('email' => 'required|email|unique:maillist,email');
     $validation = Validator::make($formData, $rules);
     if ($validation->fails()) {
         return Redirect::action('MaillistController@getMaillist')->withErrors($validation)->withInput();
     }
     $maillist = new Maillist();
     $maillist->email = $formData['email'];
     $maillist->save();
     //Notification::success('success');
     return Redirect::action('HomeController@index');
 }
Esempio n. 3
0
 /**
  * @param Request $request
  * @return mixed
  */
 public function postMaillist(Request $request)
 {
     $formData = ['email' => $request->get('email')];
     $rules = ['email' => 'required|email|unique:maillist,email'];
     $validation = Validator::make($formData, $rules);
     if ($validation->fails()) {
         return Redirect::action('MaillistController@getMaillist')->withErrors($validation)->withInput();
     }
     $maillist = new Maillist();
     $maillist->email = $formData['email'];
     $maillist->save();
     Flash::info('success');
     return Redirect::action('HomeController@index');
 }
 public function store()
 {
     $inputs = [];
     foreach (Input::all() as $key => $input) {
         if ($key == 'password' || $key == 'password_confirmation') {
             $inputs[$key] = $input;
         } else {
             $inputs[$key] = Jamesy\Sanitiser::trimInput($input);
         }
     }
     $validation = Jamesy\MyValidations::validate($inputs, array_merge(Setting::$rules, User::$rules));
     if ($validation != NULL) {
         return Response::json($validation);
     } else {
         $setup = new Setting();
         $setup->sitename = Input::get('sitename');
         $setup->save();
         $maillist = new Maillist();
         $maillist->name = "General";
         $maillist->save();
         $tag = new Tag();
         $tag->name = "Test Emails";
         $tag->save();
         try {
             $user = Sentry::register(array('email' => Input::get('email'), 'password' => Input::get('password_confirmation'), 'first_name' => Input::get('first_name'), 'last_name' => Input::get('last_name')), true);
             $group = Sentry::createGroup(['name' => 'Administrator']);
             $group = Sentry::createGroup(['name' => 'Publisher']);
             $group = Sentry::findGroupByName('Administrator');
             $user->addGroup($group);
             return Response::json(["success" => "It's all ready! You are being redirected to the login page...", "url" => URL::to('dashboard/login')]);
         } catch (Cartalyst\Sentry\Users\LoginRequiredException $e) {
             return Response::json(["email" => "Email is required."]);
         } catch (Cartalyst\Sentry\Users\PasswordRequiredException $e) {
             return Response::json(["password" => "Password is required."]);
         } catch (Cartalyst\Sentry\Users\UserExistsException $e) {
             return Response::json(["email" => "Email is already taken."]);
         }
     }
 }
 public function store()
 {
     $name = Jamesy\Sanitiser::trimInput(Input::get('name'));
     $validation = Jamesy\MyValidations::validate(['name' => $name], $this->rules);
     if ($validation != NULL) {
         return Redirect::back()->withErrors($validation)->withInput();
     } else {
         if (Input::file('file')) {
             $fileValidation = Jamesy\MyValidations::validate(['file' => Input::file('file')], $this->fileSizeRules);
             if ($fileValidation != NULL) {
                 return Redirect::back()->withErrors($fileValidation)->withInput();
             } else {
                 $maillist = new Maillist();
                 $maillist->name = $name;
                 if (Input::get('active') == '0' || Input::get('active') == '1') {
                     $maillist->active = Input::get('active');
                 }
                 $maillist->save();
                 $input = Input::file('file');
                 $ext = pathinfo($input->getClientOriginalName(), PATHINFO_EXTENSION);
                 if ($ext != 'xlt' && $ext != 'xls' && $ext != 'csv') {
                     return Redirect::back()->withIssues('You attempted the import with an invalid file. File must be Excel or CSV')->withInput();
                 } else {
                     $import = new Jamesy\Imports($input, $this->subscriberRules);
                     $importResult = $import->getInsertArray();
                     if (is_array($importResult)) {
                         $totalNum = $importResult[0];
                         $duplicatesNum = $importResult[1];
                         $passedArr = $importResult[2];
                         $passedNum = count($passedArr);
                         $failedNum = (int) $totalNum - (int) $duplicatesNum - (int) $passedNum;
                         $timestamp = $importResult[3];
                         $existingEmails = $importResult[4];
                         $newPassedArr = [];
                         if ($maillist->active == 0) {
                             foreach ($passedArr as $subscriber) {
                                 $subscriber['active'] = 0;
                                 $newPassedArr[] = $subscriber;
                             }
                         } else {
                             $newPassedArr = $passedArr;
                         }
                         if (count($newPassedArr)) {
                             Subscriber::insert($newPassedArr);
                             $generalList = Maillist::find(1);
                             $generalList->touch();
                             $maillist->touch();
                             $subscribers = Subscriber::where('created_at', $timestamp)->where('updated_at', $timestamp)->get();
                             foreach ($subscribers as $subscriber) {
                                 $generalList->subscribers()->attach($subscriber->id);
                                 $maillist->subscribers()->attach($subscriber->id);
                             }
                         }
                         if (count($existingEmails)) {
                             $alreadySubs = Subscriber::whereIn('email', $existingEmails)->get();
                             if (count($alreadySubs)) {
                                 foreach ($alreadySubs as $subscriber) {
                                     $maillist->subscribers()->attach($subscriber->id);
                                     if ($maillist->active == 0) {
                                         $subscriber->active = 0;
                                         $subscriber->save();
                                     }
                                 }
                             }
                         }
                         $message = "New list created.";
                         $message .= "<br /><b>{$totalNum}</b> " . str_plural('row', $totalNum) . " found in excel file.";
                         if ($duplicatesNum) {
                             $message .= "<br /><b>{$duplicatesNum}</b> had duplicate email addresses.";
                         }
                         if ($passedNum == 1) {
                             $message .= "<br /><b>1</b> out of the <b>" . ($totalNum - $duplicatesNum) . "</b> with unique emails passed validation and was stored.";
                         } else {
                             $message .= "<br /><b>{$passedNum}</b> out of the <b>" . ($totalNum - $duplicatesNum) . "</b> with unique emails passed validation and were stored.";
                         }
                         if ($failedNum == 1) {
                             $message .= "<br /><b>1</b> out of the <b>" . ($totalNum - $duplicatesNum) . "</b> with unique emails failed validation (no first name, last name or bad email) and was NOT stored.";
                         } elseif ($failedNum > 1) {
                             $message .= "<br /><b>{$failedNum}</b> out of the <b>" . ($totalNum - $duplicatesNum) . "</b> with unique emails failed validation (no first name, last name or bad email) and were NOT stored.";
                         }
                         return Redirect::to('dashboard/lists')->withSuccess($message);
                     } else {
                         return Redirect::back()->withIssues($importResult);
                     }
                 }
             }
         } else {
             $maillist = new Maillist();
             $maillist->name = $name;
             if (Input::get('active') == '0' || Input::get('active') == '1') {
                 $maillist->active = Input::get('active');
             }
             $maillist->save();
             return Redirect::to('dashboard/lists')->withSuccess('New list created');
         }
     }
 }