Icon.php 6.45 KB
<?php
/**
 * @copyright Copyright (c) 2008 Yii Software LLC
 * @link http://www.yiiframework.com/
 * @license http://www.yiiframework.com/license/
 */

namespace yii\bootstrap\helpers\base;

/**
 * Icon allows you to render Bootstrap Glyphicons sets
 *
 * @author Antonio Ramirez <amigo.cobos@gmail.com>
 * @since 2.0
 */
class Icon
{
	/**
	 * constants
	 */
	const ICON_GLASS = 'icon-glass';
	const ICON_MUSIC = 'icon-music';
	const ICON_SEARCH = 'icon-search';
	const ICON_ENVELOPE = 'icon-envelope';
	const ICON_HEART = 'icon-heart';
	const ICON_STAR = 'icon-star';
	const ICON_STAR_EMPTY = 'icon-star-empty';
	const ICON_USER = 'icon-user';
	const ICON_FILM = 'icon-film';
	const ICON_TH_LARGE = 'icon-th-large';
	const ICON_TH = 'icon-th';
	const ICON_TH_LIST = 'icon-th-list';
	const ICON_OK = 'icon-ok';
	const ICON_REMOVE = 'icon-remove';
	const ICON_ZOOM_IN = 'icon-zoom-in';
	const ICON_ZOOM_OUT = 'icon-zoom-out';
	const ICON_OFF = 'icon-off';
	const ICON_SIGNAL = 'icon-signal';
	const ICON_COG = 'icon-cog';
	const ICON_TRASH = 'icon-trash';
	const ICON_HOME = 'icon-home';
	const ICON_FILE = 'icon-file';
	const ICON_TIME = 'icon-time';
	const ICON_ROAD = 'icon-road';
	const ICON_DOWNLOAD_ALT = 'icon-download-alt';
	const ICON_DOWNLOAD = 'icon-download';
	const ICON_UPLOAD = 'icon-upload';
	const ICON_INBOX = 'icon-inbox';
	const ICON_PLAY_CIRCLE = 'icon-play-circle';
	const ICON_REPEAT = 'icon-repeat';
	const ICON_REFRESH = 'icon-refresh';
	const ICON_LIST_ALT = 'icon-list-alt';
	const ICON_LOCK = 'icon-lock';
	const ICON_FLAG = 'icon-flag';
	const ICON_HEADPHONES = 'icon-headphones';
	const ICON_VOLUME_OFF = 'icon-volume-off';
	const ICON_VOLUME_DOWN = 'icon-volume-down';
	const ICON_VOLUME_UP = 'icon-volume-up';
	const ICON_QRCODE = 'icon-qrcode';
	const ICON_BARCODE = 'icon-barcode';
	const ICON_TAG = 'icon-tag';
	const ICON_TAGS = 'icon-tags';
	const ICON_BOOK = 'icon-book';
	const ICON_BOOKMARK = 'icon-bookmark';
	const ICON_PRINT = 'icon-print';
	const ICON_CAMERA = 'icon-camera';
	const ICON_FONT = 'icon-font';
	const ICON_BOLD = 'icon-bold';
	const ICON_ITALIC = 'icon-italic';
	const ICON_TEXT_HEIGHT = 'icon-text-height';
	const ICON_TEXT_WIDTH = 'icon-text-width';
	const ICON_ALIGN_LEFT = 'icon-align-left';
	const ICON_ALIGN_CENTER = 'icon-align-center';
	const ICON_ALIGN_RIGHT = 'icon-align-right';
	const ICON_ALIGN_JUSTIFY = 'icon-align-justify';
	const ICON_LIST = 'icon-list';
	const ICON_INDENT_LEFT = 'icon-indent-left';
	const ICON_INDENT_RIGHT = 'icon-indent-right';
	const ICON_FACETIME_VIDEO = 'icon-facetime-video';
	const ICON_PICTURE = 'icon-picture';
	const ICON_PENCIL = 'icon-pencil';
	const ICON_MAP_MARKER = 'icon-map-marker';
	const ICON_ADJUST = 'icon-adjust';
	const ICON_TINT = 'icon-tint';
	const ICON_EDIT = 'icon-edit';
	const ICON_SHARE = 'icon-share';
	const ICON_CHECK = 'icon-check';
	const ICON_MOVE = 'icon-move';
	const ICON_STEP_BACKWARD = 'icon-step-backward';
	const ICON_FAST_BACKWARD = 'icon-fast-backward';
	const ICON_BACKWARD = 'icon-backward';
	const ICON_PLAY = 'icon-play';
	const ICON_PAUSE = 'icon-pause';
	const ICON_STOP = 'icon-pause';
	const ICON_FORWARD = 'icon-forward';
	const ICON_FAST_FORWARD = 'icon-fast-forward';
	const ICON_STEP_FORWARD = 'icon-step-forward';
	const ICON_EJECT = 'icon-eject';
	const ICON_CHEVRON_LEFT = 'icon-chevron-left';
	const ICON_CHEVRON_RIGHT = 'icon-chevron-right';
	const ICON_PLUS_SIGN = 'icon-plus-sign';
	const ICON_MINUS_SIGN = 'icon-minus-sign';
	const ICON_REMOVE_SIGN = 'icon-remove-sign';
	const ICON_OK_SIGN = 'icon-ok-sign';
	const ICON_QUESTION_SIGN = 'icon-question-sign';
	const ICON_INFO_SIGN = 'icon-info-sign';
	const ICON_SCREENSHOT = 'icon-screenshot';
	const ICON_REMOVE_CIRCLE = 'icon-remove-circle';
	const ICON_OK_CIRCLE = 'icon-ok-circle';
	const ICON_BAN_CIRCLE = 'icon-ban-circle';
	const ICON_ARROW_LEFT = 'icon-arrow-left';
	const ICON_ARROW_RIGHT = 'icon-arrow-right';
	const ICON_ARROW_UP = 'icon-arrow-up';
	const ICON_ARROW_DOWN = 'icon-arrow-down';
	const ICON_SHARE_ALT = 'icon-share-alt';
	const ICON_RESIZE_FULL = 'icon-resize-full';
	const ICON_RESIZE_SMALL = 'icon-resize-small';
	const ICON_PLUS = 'icon-plus';
	const ICON_MINUS = 'icon-minus';
	const ICON_ASTERISK = 'icon-asterisk';
	const ICON_EXCLAMATION_SIGN = 'icon-exclamation-sign';
	const ICON_GIFT = 'icon-gift';
	const ICON_LEAF = 'icon-leaf';
	const ICON_FIRE = 'icon-fire';
	const ICON_EYE_OPEN = 'icon-eye-open';
	const ICON_EYE_CLOSE = 'icon-eye-close';
	const ICON_WARNING_SIGN = 'icon-warning-sign';
	const ICON_PLANE = 'icon-plane';
	const ICON_CALENDAR = 'icon-calendar';
	const ICON_RANDOM = 'icon-random';
	const ICON_COMMENT = 'icon-comment';
	const ICON_MAGNET = 'icon-magnet';
	const ICON_CHEVRON_UP = 'icon-chevron-up';
	const ICON_CHEVRON_DOWN = 'icon-chevron-down';
	const ICON_RETWEET = 'icon-retweet';
	const ICON_SHOPPING_CART = 'icon-shopping-cart';
	const ICON_FOLDER_CLOSE = 'icon-folder-close';
	const ICON_FOLDER_OPEN = 'icon-folder-open';
	const ICON_RESIZE_VERTICAL = 'icon-resize-vertical';
	const ICON_RESIZE_HORIZONTAL = 'icon-resize-horizontal';
	const ICON_HDD = 'icon-hdd';
	const ICON_BULLHORN = 'icon-bullhorn';
	const ICON_BELL = 'icon-bell';
	const ICON_CERTFICATE = 'icon-certificate';
	const ICON_THUMBS_UP = 'icon-thumbs-up';
	const ICON_THUMBS_DOWN = 'icon-thumbs-down';
	const ICON_HAND_RIGHT = 'icon-hand-right';
	const ICON_HAND_LEFT = 'icon-hand-left';
	const ICON_HAND_UP = 'icon-hand-up';
	const ICON_HAND_DOWN = 'icon-hand-down';
	const ICON_CIRCLE_ARROW_RIGHT = 'icon-circle-arrow-right';
	const ICON_CIRCLE_ARROW_LEFT = 'icon-circle-arrow-left';
	const ICON_CIRCLE_ARROW_UP = 'icon-circle-arrow-up';
	const ICON_CIRCLE_ARROW_DOWN = 'icon-circle-arrow-down';
	const ICON_GLOBE = 'icon-globe';
	const ICON_WRENCH = 'icon-wrench';
	const ICON_TASKS = 'icon-tasks';
	const ICON_FILTER = 'icon-filter';
	const ICON_BRIEFCASE = 'icon-briefcase';
	const ICON_FULLSCREEN = 'icon-fullscreen';

	/**
	 * Generates an icon.
	 * @param string $icon the icon type.
	 * @param array $htmlOptions additional HTML attributes.
	 * @return string the generated icon.
	 */
	public static function i($icon, $htmlOptions = array())
	{
		if (is_string($icon))
		{
			if (strpos($icon, 'icon-') === false)
				$icon = 'icon-' . implode(' icon-', explode(' ', $icon));

			// TODO: this method may should be added to ArrayHelper::add or ArrayHelper::append?
			if (isset($htmlOptions['class']))
				$htmlOptions['class'] .= ' ' . $icon;
			else
				$htmlOptions['class'] = $icon;

			return Html::tag('i', '', $htmlOptions);
		}
		return '';
	}
}