/**
  * Define the routes for the application.
  *
  * @param \Illuminate\Routing\Router $router
  *
  * @return void
  */
 public function map(Router $router)
 {
     $router->group(['namespace' => $this->namespace], function (Router $router) {
         /*
          * Front office routes
          */
         if ($page = TypiCMS::getPageLinkedToModule('galleries')) {
             $options = $page->private ? ['middleware' => 'auth'] : [];
             foreach (config('translatable.locales') as $lang) {
                 if ($page->translate($lang)->status && ($uri = $page->uri($lang))) {
                     $router->get($uri, $options + ['as' => $lang . '.galleries', 'uses' => 'PublicController@index']);
                     $router->get($uri . '/{slug}', $options + ['as' => $lang . '.galleries.slug', 'uses' => 'PublicController@show']);
                 }
             }
         }
         /*
          * Admin routes
          */
         $router->get('admin/galleries', 'AdminController@index')->name('admin::index-galleries');
         $router->get('admin/galleries/create', 'AdminController@create')->name('admin::create-gallery');
         $router->get('admin/galleries/{gallery}/edit', 'AdminController@edit')->name('admin::edit-gallery');
         $router->post('admin/galleries', 'AdminController@store')->name('admin::store-gallery');
         $router->put('admin/galleries/{gallery}', 'AdminController@update')->name('admin::update-gallery');
         /*
          * API routes
          */
         $router->get('api/galleries', 'ApiController@index')->name('api::index-galleries');
         $router->put('api/galleries/{gallery}', 'ApiController@update')->name('api::update-gallery');
         $router->delete('api/galleries/{gallery}', 'ApiController@destroy')->name('api::destroy-gallery');
     });
 }
 /**
  * Display a listing of the resource.
  *
  * @return \Illuminate\Support\Facades\Response
  */
 public function generate()
 {
     // create new sitemap object
     $sitemap = app('sitemap');
     // set cache (key (string), duration in minutes (Carbon|Datetime|int), turn on/off (boolean))
     // by default cache is disabled
     if (config('typicms.cache')) {
         $sitemap->setCache('laravel.sitemap', 3600);
     }
     // check if there is cached sitemap and build new only if is not
     if (!$sitemap->isCached()) {
         foreach (TypiCMS::getOnlineLocales() as $locale) {
             app()->setLocale($locale);
             $pages = Pages::allBy('private', 0);
             foreach ($pages as $page) {
                 $url = url($page->uri($locale));
                 $sitemap->add($url, $page->updated_at);
                 if (!($module = ucfirst($page->module))) {
                     continue;
                 }
                 if (!class_exists($module)) {
                     continue;
                 }
                 foreach ($module::all() as $item) {
                     $url = url($item->uri($locale));
                     $sitemap->add($url, $item->updated_at);
                 }
             }
         }
     }
     // show your sitemap (options: 'xml' (default), 'html', 'txt', 'ror-rss', 'ror-rdf')
     return $sitemap->render('xml');
 }
 public function register()
 {
     $app = $this->app;
     /*
      * Register route service provider
      */
     $app->register('TypiCMS\\Modules\\Projects\\Shells\\Providers\\RouteServiceProvider');
     /*
      * Register Tags and Categories
      */
     $app->register('TypiCMS\\Modules\\Tags\\Shells\\Providers\\ModuleProvider');
     $app->register('TypiCMS\\Modules\\Categories\\Shells\\Providers\\ModuleProvider');
     /*
      * Sidebar view composer
      */
     $app->view->composer('core::admin._sidebar', 'TypiCMS\\Modules\\Projects\\Shells\\Composers\\SidebarViewComposer');
     /*
      * Add the page in the view.
      */
     $app->view->composer('projects::public.*', function ($view) {
         $view->page = TypiCMS::getPageLinkedToModule('projects');
     });
     $app->bind('TypiCMS\\Modules\\Projects\\Shells\\Repositories\\ProjectInterface', function (Application $app) {
         $repository = new EloquentProject(new Project());
         if (!config('typicms.cache')) {
             return $repository;
         }
         $laravelCache = new LaravelCache($app['cache'], ['projects', 'tags'], 10);
         return new CacheDecorator($repository, $laravelCache);
     });
 }
Exemplo n.º 4
0
 /**
  * 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');
 }
Exemplo n.º 5
0
 public function register()
 {
     $app = $this->app;
     $this->app['config']->push('typicms.feeds', ['module' => 'news']);
     /*
      * Register route service provider
      */
     $app->register('TypiCMS\\Modules\\News\\Shells\\Providers\\RouteServiceProvider');
     /*
      * Sidebar view composer
      */
     $app->view->composer('core::admin._sidebar', 'TypiCMS\\Modules\\News\\Shells\\Composers\\SidebarViewComposer');
     /*
      * Add the page in the view.
      */
     $app->view->composer('news::public.*', function ($view) {
         $view->page = TypiCMS::getPageLinkedToModule('news');
     });
     $app->bind('TypiCMS\\Modules\\News\\Shells\\Repositories\\NewsInterface', function (Application $app) {
         $repository = new EloquentNews(new News());
         if (!config('typicms.cache')) {
             return $repository;
         }
         $laravelCache = new LaravelCache($app['cache'], ['news', 'galleries'], 10);
         return new CacheDecorator($repository, $laravelCache);
     });
 }
 public function register()
 {
     $app = $this->app;
     /*
      * Register route service provider
      */
     $app->register('TypiCMS\\Modules\\Comments\\Shells\\Providers\\RouteServiceProvider');
     /*
      * Sidebar view composer
      */
     $app->view->composer('core::admin._sidebar', 'TypiCMS\\Modules\\Comments\\Shells\\Composers\\SidebarViewComposer');
     /*
      * Add the page in the view.
      */
     $app->view->composer('comments::public.*', function ($view) {
         $view->page = TypiCMS::getPageLinkedToModule('comments');
     });
     $app->bind('TypiCMS\\Modules\\Comments\\Shells\\Repositories\\CommentInterface', function (Application $app) {
         $config = config('typicms.comments');
         $repositoryClass = $config['sources'][$config['source']]['repository'];
         $repository = new $repositoryClass(new Comment());
         if (!config('typicms.cache')) {
             return $repository;
         }
         $laravelCache = new LaravelCache($app['cache'], 'comments', 10);
         return new CacheDecorator($repository, $laravelCache);
     });
 }
 public function register()
 {
     $app = $this->app;
     /*
      * Subscribe to events class
      */
     $app->events->subscribe(new EventHandler());
     /*
      * Register route service provider
      */
     $app->register('TypiCMS\\Modules\\Newsletter\\Shells\\Providers\\RouteServiceProvider');
     /*
      * Register Honeypot
      */
     $app->register('Msurguy\\Honeypot\\HoneypotServiceProvider');
     /*
      * Sidebar view composer
      */
     $app->view->composer('core::admin._sidebar', 'TypiCMS\\Modules\\Newsletter\\Shells\\Composers\\SidebarViewComposer');
     /*
      * Add the page in the view.
      */
     $app->view->composer('newsletter::public.*', function ($view) {
         $view->page = TypiCMS::getPageLinkedToModule('newsletter');
     });
     $app->bind('TypiCMS\\Modules\\Newsletter\\Shells\\Repositories\\NewsletterInterface', function (Application $app) {
         $repository = new EloquentNewsletter(new Newsletter());
         if (!config('typicms.cache')) {
             return $repository;
         }
         $laravelCache = new LaravelCache($app['cache'], 'newsletter', 10);
         return new CacheDecorator($repository, $laravelCache);
     });
 }
 /**
  * Define the routes for the application.
  *
  * @param \Illuminate\Routing\Router $router
  *
  * @return void
  */
 public function map(Router $router)
 {
     $router->group(['namespace' => $this->namespace], function (Router $router) {
         /*
          * Front office routes
          */
         if ($page = TypiCMS::getPageLinkedToModule('newsletter')) {
             $options = $page->private ? ['middleware' => 'auth'] : [];
             foreach (config('translatable.locales') as $lang) {
                 if ($uri = $page->uri($lang)) {
                     $router->get($uri, $options + ['as' => $lang . '.newsletter', 'uses' => 'PublicController@form']);
                     $router->get($uri . '/sent', $options + ['as' => $lang . '.newsletter.sent', 'uses' => 'PublicController@sent']);
                     $router->post($uri, $options + ['as' => $lang . '.newsletter.store', 'uses' => 'PublicController@store']);
                 }
             }
         }
         /*
          * Admin routes
          */
         $router->get('admin/newsletter', 'AdminController@index')->name('admin::index-newsletter');
         $router->get('admin/newsletter/create', 'AdminController@create')->name('admin::create-newsletter');
         $router->get('admin/newsletter/export', 'AdminController@export')->name('admin::export-newsletter');
         $router->get('admin/newsletter/{newsletter}/edit', 'AdminController@edit')->name('admin::edit-newsletter');
         $router->post('admin/newsletter', 'AdminController@store')->name('admin::store-newsletter');
         $router->put('admin/newsletter/{newsletter}', 'AdminController@update')->name('admin::update-newsletter');
         /*
          * API routes
          */
         $router->get('api/newsletter', 'ApiController@index')->name('api::index-newsletter');
         $router->put('api/newsletter/{newsletter}', 'ApiController@update')->name('api::update-newsletter');
         $router->delete('api/newsletter/{newsletter}', 'ApiController@destroy')->name('api::destroy-newsletter');
     });
 }
Exemplo n.º 9
0
 /**
  * Get public uri.
  *
  * @return string|null
  */
 public function uri($locale = null)
 {
     $locale = $locale ?: config('app.locale');
     $page = TypiCMS::getPageLinkedToModule($this->getTable());
     if ($page) {
         return $page->uri($locale) . '/' . $this->category->translate($locale)->slug . '/' . $this->translate($locale)->slug;
     }
     return '/';
 }
 /**
  * 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'));
 }
Exemplo n.º 11
0
 /**
  * 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)]);
     }
 }
Exemplo n.º 12
0
 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);
     });
 }