/** * 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); }); }
/** * 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'); }
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'); }); }
/** * 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')); }
/** * 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); }); }