/**
  * Generate Atom feed.
  */
 public function feed()
 {
     $page = TypiCMS::getPageLinkedToModule('news');
     if (!$page) {
         return;
     }
     $feed = $this->feed;
     if (config('typicms.cache')) {
         $feed->setCache(60, 'typicmsNewsFeed');
     }
     if (!$feed->isCached()) {
         $models = $this->repository->latest(10, []);
         $feed->title = $page->title . ' – ' . TypiCMS::title();
         $feed->description = $page->body;
         if (config('typicms.image')) {
             $feed->logo = url('uploads/settings/' . config('typicms.image'));
         }
         $feed->link = url()->route(config('app.locale') . '.news.feed');
         $feed->setDateFormat('datetime');
         // 'datetime', 'timestamp' or 'carbon'
         if (isset($models[0]) && $models[0]->date) {
             $feed->pubdate = $models[0]->date;
         }
         $feed->lang = config('app.locale');
         $feed->setShortening(true);
         // true or false
         $feed->setTextLimit(100);
         // maximum length of description text
         foreach ($models as $model) {
             $feed->add($model->title, null, url($model->uri()), $model->date, $model->summary, $model->body);
         }
     }
     return $feed->render('atom');
 }
 /**
  * Perform the registration.
  *
  * @param FormRequestRegister $request
  * @param Mailer              $mailer
  *
  * @return \Redirect
  */
 public function postRegister(FormRequestRegister $request, Mailer $mailer)
 {
     $user = $this->repository->create($request->all());
     $mailer->send('users::emails.welcome', compact('user'), function (Message $message) use($user) {
         $subject = '[' . TypiCMS::title() . '] ' . trans('users::global.Welcome');
         $message->to($user->email)->subject($subject);
     });
     return redirect()->back()->with('status', trans('users::global.Your account has been created, check your email for the confirmation link'));
 }
 /**
  * Send a reset link to the given user.
  *
  * @param FormRequestEmail $request
  *
  * @return \Illuminate\Support\Facades\Response
  */
 public function postEmail(FormRequestEmail $request)
 {
     $response = $this->passwords->sendResetLink($request->only('email'), function (Message $message) {
         $subject = '[' . TypiCMS::title() . '] ' . trans('users::global.Your Password Reset Link');
         $message->subject($subject);
     });
     switch ($response) {
         case PasswordBroker::RESET_LINK_SENT:
             return redirect()->back()->with('status', trans($response));
         case PasswordBroker::INVALID_USER:
             return redirect()->back()->withErrors(['email' => trans($response)]);
     }
 }
 public function onCreate(Model $model)
 {
     $webmaster = config('typicms.webmaster_email');
     // Send a mail to visitor
     Mail::send('newsletter::mails.message-to-visitor', ['model' => $model], function (Message $message) use($model, $webmaster) {
         $subject = '[' . TypiCMS::title() . '] ';
         $subject .= trans('newsletter::global.Thank you for your newsletter request');
         $message->from($webmaster)->to($model->email)->subject($subject);
     });
     // Send a mail to webmaster
     Mail::send('newsletter::mails.message-to-webmaster', ['model' => $model], function (Message $message) use($model, $webmaster) {
         $subject = '[' . TypiCMS::title() . '] ';
         $subject .= trans('newsletter::global.New newsletter request');
         $message->from($model->email)->to($webmaster)->subject($subject);
     });
 }