示例#1
0
 /**
  * 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('news')) {
             $options = $page->private ? ['middleware' => 'auth'] : [];
             foreach (config('translatable.locales') as $lang) {
                 if ($uri = $page->uri($lang)) {
                     $router->get($uri, $options + ['as' => $lang . '.news', 'uses' => 'PublicController@index']);
                     $router->get($uri . '/{slug}', $options + ['as' => $lang . '.news.slug', 'uses' => 'PublicController@show']);
                 }
             }
         }
         /*
          * Admin routes
          */
         $router->get('admin/news', ['as' => 'admin.news.index', 'uses' => 'AdminController@index']);
         $router->get('admin/news/create', ['as' => 'admin.news.create', 'uses' => 'AdminController@create']);
         $router->get('admin/news/{news}/edit', ['as' => 'admin.news.edit', 'uses' => 'AdminController@edit']);
         $router->post('admin/news', ['as' => 'admin.news.store', 'uses' => 'AdminController@store']);
         $router->put('admin/news/{news}', ['as' => 'admin.news.update', 'uses' => 'AdminController@update']);
         /*
          * API routes
          */
         $router->get('api/news', ['as' => 'api.news.index', 'uses' => 'ApiController@index']);
         $router->put('api/news/{news}', ['as' => 'api.news.update', 'uses' => 'ApiController@update']);
         $router->delete('api/news/{news}', ['as' => 'api.news.destroy', 'uses' => 'ApiController@destroy']);
     });
 }
示例#2
0
 /**
  * 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('partners')) {
             $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 . '.partners', 'uses' => 'PublicController@index']);
                     $router->get($uri . '/{slug}', $options + ['as' => $lang . '.partners.slug', 'uses' => 'PublicController@show']);
                 }
             }
         }
         /*
          * Admin routes
          */
         $router->get('admin/partners', 'AdminController@index')->name('admin::index-partners');
         $router->get('admin/partners/create', 'AdminController@create')->name('admin::create-partner');
         $router->get('admin/partners/{partner}/edit', 'AdminController@edit')->name('admin::edit-partner');
         $router->post('admin/partners', 'AdminController@store')->name('admin::store-partner');
         $router->put('admin/partners/{partner}', 'AdminController@update')->name('admin::update-partner');
         /*
          * API routes
          */
         $router->get('api/partners', 'ApiController@index')->name('api::index-partners');
         $router->put('api/partners/{partner}', 'ApiController@update')->name('api::update-partner');
         $router->delete('api/partners/{partner}', 'ApiController@destroy')->name('api::destroy-partner');
     });
 }
 /**
  * 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('seminars')) {
             foreach (config('translatable.locales') as $lang) {
                 $options = $page->private ? ['middleware' => 'auth'] : [];
                 if ($uri = $page->uri($lang)) {
                     $router->get($uri, $options + ['as' => $lang . '.seminars', 'uses' => 'PublicController@index']);
                     $router->get($uri . '/{slug}', $options + ['as' => $lang . '.seminars.slug', 'uses' => 'PublicController@show']);
                     $router->get($uri . '/{slug}/ics', $options + ['as' => $lang . '.seminars.slug.ics', 'uses' => 'PublicController@ics']);
                 }
             }
         }
         /**
          * Admin routes
          */
         $router->resource('admin/seminars', 'AdminController');
         /**
          * API routes
          */
         $router->resource('api/seminars', 'ApiController');
     });
 }
示例#4
0
 public function register()
 {
     $app = $this->app;
     /*
      * Register route service provider
      */
     $app->register('TypiCMS\\Modules\\Objects\\Providers\\RouteServiceProvider');
     /*
      * Sidebar view composer
      */
     $app->view->composer('core::admin._sidebar', 'TypiCMS\\Modules\\Objects\\Composers\\SidebarViewComposer');
     /*
      * Add the page in the view.
      */
     $app->view->composer('objects::public.*', function ($view) {
         $view->page = TypiCMS::getPageLinkedToModule('objects');
     });
     $app->bind('TypiCMS\\Modules\\Objects\\Repositories\\ObjectInterface', function (Application $app) {
         $repository = new EloquentObject(new Object());
         if (!config('typicms.cache')) {
             return $repository;
         }
         $laravelCache = new LaravelCache($app['cache'], 'objects', 10);
         return new CacheDecorator($repository, $laravelCache);
     });
 }
示例#5
0
 public function register()
 {
     $app = $this->app;
     /**
      * Register route service provider
      */
     $app->register('TypiCMS\\Modules\\Seminars\\Providers\\RouteServiceProvider');
     /**
      * Sidebar view composer
      */
     $app->view->composer('core::admin._sidebar', 'TypiCMS\\Modules\\Seminars\\Composers\\SidebarViewComposer');
     $app->bind('TypiCMS\\Modules\\Seminars\\Repositories\\SeminarInterface', function (Application $app) {
         $repository = new EloquentSeminar(new Seminar());
         if (!config('typicms.cache')) {
             return $repository;
         }
         $laravelCache = new LaravelCache($app['cache'], 'seminars', 10);
         return new CacheDecorator($repository, $laravelCache);
     });
     /**
      * Calendar service
      */
     $app->bind('TypiCMS\\Modules\\Seminars\\Services\\Calendar', function () {
         return new Calendar(new EluceoCalendar('TypiCMS'), new EluceoSeminar());
     });
     /**
      * Return the page linked to this module (for @inject in views)
      */
     $app->singleton('typicms.seminars.page', function (Application $app) {
         return TypiCMS::getPageLinkedToModule('seminars');
     });
 }
示例#6
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, ['translations']);
         $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');
 }
示例#7
0
 /**
  * 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');
 }
示例#8
0
文件: Base.php 项目: vizo/Core
 /**
  * Get public uri
  *
  * @return string|null
  */
 public function uri($locale)
 {
     $page = TypiCMS::getPageLinkedToModule($this->getTable());
     if ($page) {
         return $page->uri($locale) . '/' . $this->translate($locale)->slug;
     }
     return null;
 }
示例#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 '/';
 }
示例#10
0
 /**
  * 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'));
 }
示例#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)]);
     }
 }
示例#12
0
 public function onCreate(Model $model)
 {
     $webmaster = config('typicms.webmaster_email');
     // Send a mail to visitor
     Mail::send('contacts::mails.message-to-visitor', ['model' => $model], function (Message $message) use($model, $webmaster) {
         $subject = '[' . TypiCMS::title() . '] ';
         $subject .= trans('contacts::global.Thank you for your contact request');
         $message->from($webmaster)->to($model->email)->subject($subject);
     });
     // Send a mail to webmaster
     Mail::send('contacts::mails.message-to-webmaster', ['model' => $model], function (Message $message) use($model, $webmaster) {
         $subject = '[' . TypiCMS::title() . '] ';
         $subject .= trans('contacts::global.New contact request');
         $sender = config('mail.from.address');
         $message->from($model->email)->sender($sender)->to($webmaster)->subject($subject);
     });
 }
示例#13
0
 public function compose(View $view)
 {
     $view->with('websiteTitle', TypiCMS::title());
 }