lithiumdev / laravel-tagcloud
A Laravel package for generating tag clouds.
Installs: 19 305
Dependents: 1
Suggesters: 0
Security: 0
Stars: 7
Watchers: 2
Forks: 4
Open Issues: 3
Requires
- php: >=7.2
- illuminate/support: >=6.0
README
Laravel 5+ Tag Cloud Generator
from Lithium Hosting
We're always open to pull requests, feel free to make this your own or help us make it better.
Copyright
(c) Lithium Hosting, llc
License
This library is licensed under the GNU GPL license; you can find a full copy of the license itself in the file /LICENSE
Requirements
- Laravel 5.2+
- php 5.5.9+
- Knowledge of Laravel and php
Description
A Laravel package that aids in generation of tag clouds
Installation
Install this package through Composer. To your composer.json file, add:
"lithiumdev/laravel-tagcloud": "~1.0"
Next, run the Composer update comand
$ composer update
Add the service provider to app/config/app.php, within the providers array.
'providers' => array( // ... LithiumDev\TagCloud\ServiceProvider::class, ),
Usage
use LithiumDev\TagCloud\TagCloud; $cloud = new TagCloud(); $cloud->addTag("tag-cloud"); $cloud->addTag("programming"); echo $cloud->render();
Or:
// Assumes use of Facade "TagCloud" $cloud = \TagCloud::addTags(['tag_1', 'tag_2', 'tag_3']); echo $cloud->render();
Convert a string
$cloud->addString("This is a tag-cloud script!");
Adding multiple tags
$cloud->addTags(array('laravel', 'laravel-tagcloud','php','github'));
Removing a tag
$cloud->setRemoveTag('github');
Removing multiple tags
$cloud->setRemoveTags(array('tag','cloud'));
More complex adding
$cloud->addTag(array('tag' => 'php', 'url' => 'http://www.php.net', 'colour' => 1)); $cloud->addTag(array('tag' => 'ajax', 'url' => 'http://www.php.net', 'colour' => 2)); $cloud->addTag(array('tag' => 'css', 'url' => 'http://www.php.net', 'colour' => 3));
Set the minimum length required
$cloud->setMinLength(3);
Limiting the output
$cloud->setLimit(10);
Set the order
$cloud->setOrder('colour','DESC');
Set a custom HTML output
$cloud->setHtmlizeTagFunction(function($tag, $size) use ($baseUrl) { $link = '<a href="'.$baseUrl.'/'.$tag['url'].'">'.$tag['tag'].'</a>'; return "<span class='tag size{$size} colour-{$tag['colour']}'>{$link}</span> "; });
Outputting the cloud (shown above)
echo $cloud->render();
Transliteration
By default, all accented characters will be converted into their non-accented equivalent, this is to circumvent duplicate similar tags in the same cloud, to disable this functionality and display the UTF-8 characters you can do the following:
$tagCloud->setOption('transliterate', false);