/** * 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']); }); }
/** * 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'); }); }
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); }); }
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'); }); }
/** * 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'); }
/** * 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'); }
/** * 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; }
/** * 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('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); }); }
public function compose(View $view) { $view->with('websiteTitle', TypiCMS::title()); }