Icon class

Icon::Get() returns the "img src" tag or "<i></i>" tags for an icon, depending on configuration (see the fake $_CONF['use_image_icons'] variable). CSS icons can come from Uikit or Fontawesome since I've noticed that non-Uikit themes include Fontawesome fonts. Not sure if this is still true.
Personally I like switching all to the CSS icons which have the advantage of taking color attributes like "danger", "warning", "grey", etc.
<?php class Icon { private static $images = array( 'add', 'edit', 'copy', 'delete', 'list', 'mail', 'group', 'user', 'greyuser','check', 'greycheck', 'cross', 'disk', 'accept', 'addchild', 'update', 'wrench', 'info', 'greyinfo', 'blank' ); private static $icons = array( 'add' => 'plus-circle', 'edit' => 'edit', 'copy' => 'copy', 'delete' => 'remove', 'list' => 'list', 'mail' => 'enveloope-o', 'group' => 'group', 'user' => 'user', 'greyuser' => 'user', 'check' => 'check', 'greycheck' => 'check', 'cross' => 'plus', 'disk' => 'save', 'accept' => 'check', 'addchild' => 'user-plus', 'update' => 'save', 'wrench' => 'wrench', 'info' => 'info-circle', 'greyinfo' => 'info-circle', 'blank' => '', ); private static $prefix = NULL; /** * Get a glFusion image icon * * @param string $name Name of icon, following the iconset prefix * @param array $attrs Optional attributes to embed in the icon HTML * @return string Full <img .../> tag for the icon */ public static function getImage($name, $attrs = array()) { global $_CONF, $_IMAGE_TYPE, $LANG_ADMIN, $_SYSTEM; if (!in_array($name, self::$icons)) $name = 'blank'; $icon_url = "{$_CONF['layout_url']}/images/admin/$name.$_IMAGE_TYPE"; if (!isset($attrs['alt'])) { $alt = isset($attrs['title']) ? $attrs['title'] : $LANG_ADMIN[$name]; } else { $alt = $attrs['alt']; } return COM_createImage($icon_url, $alt, $attrs); } /** * Get a CSS icon from Uikit or Fontawesom * * @param string $name Name of icon, following the iconset prefix * @param array $attrs Optional attributes to embed in the icon HTML * @return string Full <i...></i> tag for the icon */ public static function getCSS($name, $attrs = array()) { global $LANG_ADMIN, $_SYSTEM; if (self::$prefix === NULL) { self::$prefix = ($_SYSTEM['framework'] == 'uikit') ? 'uk-icon uk-' : 'fa fa-'; } $attr_str = ''; if (!isset($attrs['alt'])) { $attrs['alt'] = isset($attrs['title']) ? $attrs['title'] : $LANG_ADMIN[$name]; } if (isset(self::$icons[$name])) { $name = self::$icons[$name]; } foreach ($attrs as $attr_name=>$attr_value) { $attr_str .= ' ' . $attr_name . '="' . $attr_value . '"'; } $icon = '<i class="' . self::$prefix . $name . '"' . $attr_str . '></i>'; return $icon; } /** * Get the image or CSS icon depending on configuration. * * @param string $name Name of icon, following the iconset prefix * @param array $attrs Optional attributes to embed in the icon HTML * @return string Full <i...></i> tag for the icon */ public static function Get($name, $attrs = array()) { global $_CONF; if ($_CONF['use_image_icons']) { return self::getImage($name, $attrs); } else { return self::getCSS($name, $attrs); } } } ?>