enflow/laravel-social-share

Easily add social share links

3.3.0 2024-03-15 12:51 UTC

README

Latest Version on Packagist GitHub Workflow Status Total Downloads

The enflow/laravel-social-share package provides an easy way to add social share links to your templates:

example.png

The main advantage of implementing it this way instead of using a service like AddThis, is this doesn't use any JavaScript and does not have any privacy concerns.

Installation

You can install the package via composer:

composer require enflow/laravel-social-share

The package will auto-register. You may add the SocialShareFacade to your app.aliases array:

'SocialShare' => \Enflow\SocialShare\SocialShareFacade::class,

CSS

This package includes a CSS file for deafult styling. You can copy this file to your own CSS structure and modify it, or import it in your app.css / app.scss file to use the default variant. The advantage of including it is that it will be automatically updated if changes are made in upcoming versions.

@import "../../vendor/enflow/laravel-social-share/dist/css/social-share.css";

Usage

You can use the Facade in your templates as follows:

{{ SocialShare::facebook()->x()->linkedin()->whatsapp()->render() }}

You can chain multiple services next to each other. The following services are currently supported. Pull requests are welcome to expand this.

  • Facebook
  • X (previously Twitter)
  • LinkedIn
  • WhatsApp
  • Pinterest
  • Reddit
  • Telegram
  • Email
  • Twitter (deprecated) - automatically replaced with x

You can increase the size or set styling options as follows:

{{ SocialShare::facebook()->square()->render() }} // Style: square
{{ SocialShare::facebook()->rounded()->render() }} // Style: rounded (default)
{{ SocialShare::facebook()->circle()->render() }} // Style: circle
{{ SocialShare::facebook()->normal()->render() }} // Normal size (default)
{{ SocialShare::facebook()->large()->render() }} // Large size

You may want to pass along text to the different sharing options. This text will be appended to the current URL:

{{ SocialShare::facebook()->text($page->title)->render() }}

You can combine all options:

{{ SocialShare::facebook()->x()->reddit()->square()->large()->text('Lorem ipsum!')->render() }}

Config

You can publish the config to tweak the services and their colors.

Pushing the config file:

php artisan vendor:publish --provider="Enflow\SocialShare\SocialShareServiceProvider" --tag="config"

Testing

$ composer test

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email michel@enflow.nl instead of using the issue tracker.

Credits

About Enflow

Enflow is a digital creative agency based in Alphen aan den Rijn, Netherlands. We specialize in developing web applications, mobile applications and websites. You can find more info on our website.

License

The MIT License (MIT). Please see License File for more information.