LithiumHosting / laravel-tagcloud by tsiedsma

A Laravel package for generating tag clouds.
19,056
7
2
Package Data
Maintainer Username: tsiedsma
Maintainer Contact: tsiedsma@lithiumhosting.com (Troy Siedsma)
Package Create Date: 2016-05-02
Package Last Update: 2020-08-19
Language: PHP
License: MIT
Last Refreshed: 2024-11-11 15:21:30
Package Statistics
Total Downloads: 19,056
Monthly Downloads: 272
Daily Downloads: 6
Total Stars: 7
Total Watchers: 2
Total Forks: 4
Total Open Issues: 3

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);