lithiumdev/laravel-tagcloud

A Laravel package for generating tag clouds.

v1.1.0 2020-08-19 03:55 UTC

This package is auto-updated.

Last update: 2024-12-05 11:42:52 UTC


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