Package Data | |
---|---|
Maintainer Username: | simonpex |
Maintainer Contact: | s.pescina@gmail.com (Simone Pescina) |
Package Create Date: | 2013-08-08 |
Package Last Update: | 2018-10-11 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-11-18 03:02:20 |
Package Statistics | |
---|---|
Total Downloads: | 625 |
Monthly Downloads: | 0 |
Daily Downloads: | 0 |
Total Stars: | 11 |
Total Watchers: | 1 |
Total Forks: | 2 |
Total Open Issues: | 1 |
A package for building seo rules in your Laravel projects. Manage with ease SEO meta tags (title, description, keywords, noindex) of your pages.
To install Seorules in Laravel 5.1, simply run composer require spescina\seorules
.
To install Seorules in Laravel 4, simply run composer require spescina\seorules 1.*
and then follow these instructions.
Once it's installed, you have to register the service provider. In app/config/app.php
add the following line of code to the providers
array
Spescina\Seorules\SeorulesServiceProvider::class
.
If you want in app/config/app.php
add the following line of code to the aliases
array
'Seo' => Spescina\Seorules\Facades\Seo::class
.
Register the route middleware adding these line to the app/Http/Kernel.php
file
'seorules.before' => \Spescina\Seorules\Init::class
.
Then, publish the config file with php artisan vendor:publish --provider="Spescina\Seorules\SeorulesServiceProvider" --tag="config"
.
Then, publish the migration file with php artisan vendor:publish --provider="Spescina\Seorules\SeorulesServiceProvider" --tag="migrations"
.
Then run the migration with php artisan migrate
.
Define your rules creating entries in the seorules database table
{
alias: 'first',
route: 'first.route',
pattern: '',
priority: 0,
title: 'the first route title is [#_first_placeholder]',
description: 'my first route description is [#_second_placeholder]',
keywords: '[#_first_placeholder], [#_second_placeholder], laravel',
noindex: 0
},
{
alias: 'second',
route: 'second.route',
pattern: '',
priority: 0,
title: 'the second route title is [#_second_placeholder]',
description: 'my second route description is empty',
keywords: '[#_first_placeholder]',
noindex: 1
}
Attach seorules.before
middleware to your target named routes (route groups are reccomended)
Route::group(['middleware' => 'seorules.before'], function()
{
Route::get('/first', array('as' => 'first.route', function(){
//do things
}));
Route::get('/second', array('as' => 'second.route', function(){
//do things
}));
});
Manage your rules in your controllers or in your closures
Seo::addPlaceholder('first_placeholder','Foo');
Seo::addPlaceholder('second_placeholder','Bar');
Display prepared fields in your views
<title>{{ Seo::get('title') }}</title>
<meta name="description" content="{{ Seo::get('description') }}" />
<meta name="keywords" content="{{ Seo::get('keywords') }}" />
@if (Seo::get('noindex'))
<meta name="robots" content="noindex" />
@endif
Now you should have rendered this code when visiting /first
(assuming both routes are prepared with same placeholder data)
<title>the first route title is Foo</title>
<meta name="description" content="my first route description is Bar" />
<meta name="keywords" content="Foo, Bar, laravel" />
and when visting /second
<title>the second route title is Bar</title>
<meta name="description" content="my second route description is empty" />
<meta name="keywords" content="Foo" />
<meta name="robots" content="noindex" />