All Projects → lionix-team → Seo Manager

lionix-team / Seo Manager

Seo Manager Package for Laravel ( with Localization )

Projects that are alternatives of or similar to Seo Manager

Seo Helper
🔍 SEO Helper is a package that provides tools and helpers for SEO (Search Engine Optimization).
Stars: ✭ 262 (+36.46%)
Mutual labels:  meta, laravel, seo
Awesome-meta-tags
📙 Awesome collection of meta tags
Stars: ✭ 18 (-90.62%)
Mutual labels:  metadata, meta, seo
Laravelmetatags
The most powerful and extendable tools for managing SEO Meta Tags in your Laravel project
Stars: ✭ 226 (+17.71%)
Mutual labels:  meta, laravel, seo
Vue Meta
Manage HTML metadata in Vue.js components with SSR support
Stars: ✭ 3,807 (+1882.81%)
Mutual labels:  meta, metadata, seo
Lingo
A Gui To Manage Laravel Translation Files
Stars: ✭ 88 (-54.17%)
Mutual labels:  laravel, manager
Config
Config manager for laravel-admin
Stars: ✭ 83 (-56.77%)
Mutual labels:  laravel, manager
Laravel Sitemap
Create and generate sitemaps with ease
Stars: ✭ 1,325 (+590.1%)
Mutual labels:  laravel, seo
Laravel Filemanager Example 5.3
Demo integration for laravel-filemanager (https://github.com/UniSharp/laravel-filemanager).
Stars: ✭ 100 (-47.92%)
Mutual labels:  laravel, manager
Yoast Seo For Typo3
Yoast SEO plugin for TYPO3
Stars: ✭ 43 (-77.6%)
Mutual labels:  metadata, seo
Laravel Seo Tools
Laravel Seo package for Content writer/admin/web master who do not know programming but want to edit/update SEO tags from dashboard
Stars: ✭ 99 (-48.44%)
Mutual labels:  laravel, seo
Open Graph
Library that assists in building Open Graph meta tags
Stars: ✭ 112 (-41.67%)
Mutual labels:  laravel, seo
Manager
Implementation of the Manager pattern existing in Laravel framework
Stars: ✭ 74 (-61.46%)
Mutual labels:  laravel, manager
Metaforge
An OSINT Metadata analyzing tool that filters through tags and creates reports
Stars: ✭ 63 (-67.19%)
Mutual labels:  meta, metadata
Wordpress Seo
Yoast SEO for WordPress
Stars: ✭ 1,301 (+577.6%)
Mutual labels:  metadata, seo
Lashop
Simple shop based on Laravel 7.3
Stars: ✭ 60 (-68.75%)
Mutual labels:  laravel, seo
Magento 2 Seo
Magento 2 SEO extension will do perfectly for your better SEO. This is a bundle of outstanding features that are auto-active when you install it from Mageplaza without any code modifications. It is also friendly with your store if you need to insert meta keywords and meta descriptions for your product.
Stars: ✭ 99 (-48.44%)
Mutual labels:  meta, seo
Craft Seomatic
SEOmatic facilitates modern SEO best practices & implementation for Craft CMS 3. It is a turnkey SEO system that is comprehensive, powerful, and flexible.
Stars: ✭ 135 (-29.69%)
Mutual labels:  meta, seo
Laravel Seo
SEO package made for maximum customization and flexibility
Stars: ✭ 130 (-32.29%)
Mutual labels:  laravel, seo
Laravel Meta
HTML Meta Tags management package available for for Laravel 5.*
Stars: ✭ 150 (-21.87%)
Mutual labels:  meta, laravel
School
Sistema de gerenciamento para escola em Laravel com VueJS (Não é mais Angular)
Stars: ✭ 178 (-7.29%)
Mutual labels:  laravel, manager

Seo Manager Package for Laravel ( with Localization )

MadeWithLaravel.com shield

lionix/seo-manager package will provide you an interface from where you can manage all your pages metadata separately and get dynamically changing content. Let's see how.

Update:

After updating to version > v1.2.* you have to run:

php artisan vendor:publish --provider="Lionix\SeoManager\SeoManagerServiceProvider" --tag=config --force
php artisan vendor:publish --provider="Lionix\SeoManager\SeoManagerServiceProvider" --tag=assets --force

and

php artisan migrate

to publish latest configs and new migration files.

Localization

In version v1.2.* you will have availability to localize your metadata and set translates to your data.

For that, you just should add your available locales with top right button "Add Locales" and chose locale for which you want to add translations.

That's it, Package will automatically detect your locale from website and will set needed translations, you don't need to do any other configs. Easy, isn't it?

Installation

You can install the package via composer:

composer require lionix/seo-manager

Publishing package files

php artisan vendor:publish --provider="Lionix\SeoManager\SeoManagerServiceProvider"

This command will create config/seo-manager.php file and will copy package assets directory to public/vendor/lionix.

Configurations

In config/seo-manager.php file you can do the following configurations:

return [
    /**
     * Database table name where your manager data will be stored
     */
    'database' => [
            'table' => 'seo_manager',
            'locales_table' => 'seo_manager_locales',
            'translates_table' => 'seo_manager_translates'
        ],
        
    /**
     * Set default locale,
     * It will be added as default locale
     * when locales table migrated
     */
    'locale' => 'en',

    /**
     * Path where your eloquent models are
     */
    'models_path' => '',

    /**
     * Route from which your Dashboard will be available
     */
    'route' => 'seo-manager',

    /**
     * Middleware array for dashboard
     * to prevent unauthorized users visit the manager
     */
    'middleware' => [
        //  'auth',
    ],

    /**
     * Routes which shouldn't be imported to seo manager
     */
    'except_routes' => [
        'seo-manager',
        'admin'
        //
    ],

    /**
     * Columns which shouldn't be used ( in mapping )
     */
    'except_columns' => [
        // "created_at",
        // "updated_at",
    ],

    /**
     * Set this parameter to true
     * if you want to have "$metaData" variable
     * shared between all views in "web" middleware group
     */
    'shared_meta_data' => false
];

After finishing with all configurations run php artisan migrate to create SEO manager table.

That's it, now your SEO manager will be available from /seo-manager URL (or, if you changed route config, by that config URL)

Usage

After visiting your dashboard URL you have to import your routes to start to manage them.

routes import

Route importing will store all your GET routes into the database ( except the ones which specified in "except_routes" configs).

imported routes

Let the fun begin!

Mapping

To get dynamically changing metadata you should map your route params to the correct Models.

Param: Route param

Model: Eloquent Model which you are using to get the record by route param

Find By: Database table column name which you are using to get the record by route param

Use Columns: Database table columns which we should use for further mapping

Note: If you have appended attributes inside your model via protected $appends and you want to use them in mapping you have to use Lionix\SeoManager\Traits\Appends; trait inside your model.

Mapping available only if your route has params

Next steps you can do, is to set Keywords, Description, Title, URL, Author, Title Dynamic, OpenGraph Data.

About "Title Dynamic":

Here you can drag & drop your mapped params, your title and write custom text to generate the dynamic title for your page. Every time your "title" will be changed or your mapped params value changed, the dynamic title will be changed automatically.

About "Open Graph":

Here you can write your open graph data or map your fields to mapping based on params.

Example Usage

Via SeoManager Facade

use Lionix\SeoManager\Facades\SeoManager;
This will return an array with all your SEO Manager data
SeoManager::metaData();

Example:

array:13 [
  "keywords" => "First Keyword, Second, Third"
  "description" => "Test Description"
  "title" => "Test Titile"
  "url" => "http://example.com/users/1"
  "author" => "Sergey Karakhanyan"
  "title_dynamic" => "Test Titile - Custom Text - Test User Name "
  "og:url" => "http://example.com/users/1"
  "og:type" => "website"
  "og:image:url" => "https://wallpaperbrowse.com/media/images/3848765-wallpaper-images-download.jpg"
  "og:title" => "Test Titile - Custom Open Graph Text"
  "og:locale" => "en_GB"
  "og:site_name" => "Seo Manager Package"
  "og:description" => "Open Graph Description"
]

SeoManager::metaData(); method can receive property variable to get the value of some property

Example:

SeoManager::metaData('keywords'); will return "First Keyword, Second, Third"

To get only OpenGraph data array:
SeoManager::metaData('og_data');

Example

array:7 [
  "og:url" => "http://example.com/users/1"
  "og:type" => "website"
  "og:image:url" => "https://wallpaperbrowse.com/media/images/3848765-wallpaper-images-download.jpg"
  "og:title" => "Test Titile - Custom Open Graph Text"
  "og:locale" => "en_GB"
  "og:site_name" => "Seo Manager Package"
  "og:description" => "Open Graph Description"
]
Aliases

SeoManager::metaKeywords()

SeoManager::metaTitle()

SeoManager::metaDescription()

SeoManager::metaUrl()

SeoManager::metaAuthor()

SeoManager::metaTitleDynamic()

SeoManager::metaOpenGraph() - Can receive property variable to get the value of some OG property

Example

SeoManager::metaOpenGraph('og:image:url')

Will return "https://wallpaperbrowse.com/media/images/3848765-wallpaper-images-download.jpg"

Via helper functions

metaData()

metaKeywords()

metaTitle()

metaDescription()

metaUrl()

metaAuthor()

metaTitleDynamic()

metaOpenGraph()

Via @Blade directives

You can use this blade directives in your view files to get metadata.

@meta

Output Example

<meta property="keywords" content="First Keyword, Second, Third">
<meta property="description" content="Test Description">
<meta property="title" content="Test Titile">
<meta property="url" content="http://packages.loc/users/1">
<meta property="author" content="Sergey Karakhanyan">
<meta property="title_dynamic" content="Test Titile - Custom Text - Test User Name ">
<meta property="og:url" content="http://packages.loc/users/1">
<meta property="og:type" content="website">
<meta property="og:image:url" content="https://wallpaperbrowse.com/media/images/3848765-wallpaper-images-download.jpg">
<meta property="og:title" content="Test Titile - Custom Open Graph Text">
<meta property="og:locale" content="en_GB">
<meta property="og:site_name" content="Seo Manager Package">
<meta property="og:description" content="Open Graph Description">

@meta can receive property param

@meta('description')

Output Example

<meta property="description" content="Test Description">

Note: You can't add open graph properties to @meta() like @meta('og:url') But you can get only OpenGraph meta data by @meta('og_data'). If you want to get concrete OG param meta tag you can use @openGraph (similar to @meta('og_data')) and pass param there like @openGraph('og:url)

Note #2: If you want to do modifications in your og data and display it manually, you should do that before @meta

Example:

<meta property="og:image:url" content="{{ asset(metaOpenGraph('og:image:url')) }}">
@meta
Aliases

@keywords

@url

@author

@description

@title

@openGraph

@titleDynamic - will return dynamically generated title which you can use inside your <title></title> tags.

Contributing

How to start developing on this project

  1. Install the module in a existing Laravel project and check if the module is working.

  2. Delete the folder vendor/lionix/seo-manager.

  3. Copy the fork of the module in the vendor/lionix/seo-manager folder (don't know how to make a fork? https://kbroman.org/github_tutorial/pages/fork.html)

  4. Add the following line to your webpack.mix.js mix.js('vendor/lionix/seo-manager/src/vue/seo-manager.app.js', 'public/vendor/lionix/js');

  5. run the NPM Watch command npm run watch

  6. If everything works fine, you can start developing on the module

  7. PLEASE REMIND TO COPY YOUR public/vendor/lionix/js/seo-manager.app.js TO vendor/lionix/seo-manager/src/assets/seo-manager.app.js

Credits

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].