andkab/laravel-joypixels

Laravel helper for Joypixels, EmojiOne

2.0.0 2024-04-10 13:25 UTC

This package is auto-updated.

Last update: 2024-04-10 13:32:16 UTC


README

Software License

😀 🏋🏼 ❤️ ☮

Laravel package to make it easier working with the gorgeous emojis from Joypixels.

Remember to read the Joypixels Free License and provide the appropriate attribution. Or buy a premium license

installation

Via Composer

$ composer require "andkab/laravel-joypixels"
$ composer update
$ php artisan vendor:publish --tag=config --provider="andkab\LaravelJoyPixels\LaravelJoyPixelsServiceProvider"

Usage

LaravelJoyPixels::toShort($str); // - native unicode -> shortnames
LaravelJoyPixels::shortnameToImage($str); // - shortname -> images
LaravelJoyPixels::unicodeToImage($str); // - native unicode -> images
LaravelJoyPixels::toImage($str); // - native unicode + shortnames -> images (mixed input)

Blade (equivalent to LaravelJoyPixels::toImage($str)):

@joypixels(':smile:') -> 😀

@joypixels(':smile: ❤️') -> 😀❤️

🚨 The output is not escaped so be careful with what you pass into @joypixels.

More details about how toImage($str) works can be found at https://github.com/Ranks/emojione/blob/master/examples/PHP.md

Example

You want to let users put emoji a comment. When you are saving a comment, you might want to run the content through LaravelJoyPixels::toShort($str) to convert 😄 and other emoji to :smile: etc.

Comment::create([
  'content' => LaravelJoyPixels::toShort(request('content'))
]);

So if someone leaves a comment like This is an awesome comment 😄🔥 it will be saved as This is an awesome comment :smile: :fire:

In your view where you display your comments you can use

@joypixels($comment->content)

and that will convert :smile: and 😄 to the emojione equivalent.

Assets

By default it will use the assets from JSDelivr.

Remember to run this before trying to publish any of the assets:

composer require joypixels/assets

If you want to serve the assets yourself you can publish them with the following commands. Remember to update config/joypixels.php

PNG files in sizes 32/64/128:

$ php artisan vendor:publish --tag=public --provider="andkab\LaravelJoyPixels\LaravelJoyPixelsServiceProvider"

In config/joypixels.php specify the local path. Remember to specify which size you want in the path (32/64/128).

'imagePathPNG' => '/vendor/joypixels/png/64/',

Sprites

If you want to use sprites:

$ php artisan vendor:publish --tag=sprites --provider="andkab\LaravelJoyPixels\LaravelJoyPixelsServiceProvider"

In config/joypixels.php enable sprites:

'sprites' => true,
'spriteSize' => 32, // 32 or 64

Add the stylesheet to your HTML:

<link rel="stylesheet" href="/vendor/joypixels/sprites/emojione-sprite-{{ config('emojione.spriteSize') }}.min.css"/>

License

Remember to read the Joypixels Free License and provide the appropriate attribution. Or buy a premium license