Icon class


General News

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
{
&nbsp; &nbsp; private static $images = array(
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'add', 'edit', 'copy', 'delete',
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'list', 'mail', 'group', 'user',
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'greyuser','check', 'greycheck',
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'cross', 'disk', 'accept', 'addchild',
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'update', 'wrench', 'info', 'greyinfo',
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'blank'
&nbsp; &nbsp; &nbsp; &nbsp; );
&nbsp; &nbsp; private static $icons = array(
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'add' &nbsp; &nbsp; &nbsp; => 'plus-circle',
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'edit' &nbsp; &nbsp; &nbsp;=> 'edit',
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'copy' &nbsp; &nbsp; &nbsp;=> 'copy',
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'delete' &nbsp; &nbsp;=> 'remove',
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'list' &nbsp; &nbsp; &nbsp;=> 'list',
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'mail' &nbsp; &nbsp; &nbsp;=> 'enveloope-o',
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'group' &nbsp; &nbsp; => 'group',
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'user' &nbsp; &nbsp; &nbsp;=> 'user',
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'greyuser' &nbsp;=> 'user',
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'check' &nbsp; &nbsp; => 'check',
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'greycheck' => 'check',
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'cross' &nbsp; &nbsp; => 'plus',
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'disk' &nbsp; &nbsp; &nbsp;=> 'save',
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'accept' &nbsp; &nbsp;=> 'check',
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'addchild' &nbsp;=> 'user-plus',
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'update' &nbsp; &nbsp;=> 'save',
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'wrench' &nbsp; &nbsp;=> 'wrench',
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'info' &nbsp; &nbsp; &nbsp;=> 'info-circle',
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'greyinfo' &nbsp;=> 'info-circle',
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'blank' &nbsp; &nbsp; => '',
&nbsp; &nbsp; );
&nbsp; &nbsp; private static $prefix = NULL;

&nbsp; &nbsp; /**
&nbsp; &nbsp; * &nbsp; Get a glFusion image icon
&nbsp; &nbsp; *
&nbsp; &nbsp; * &nbsp; @param &nbsp;string &nbsp;$name &nbsp; Name of icon, following the iconset prefix
&nbsp; &nbsp; * &nbsp; @param &nbsp;array &nbsp; $attrs &nbsp;Optional attributes to embed in the icon HTML
&nbsp; &nbsp; * &nbsp; @return string &nbsp; &nbsp; &nbsp;Full <img .../> tag for the icon
&nbsp; &nbsp; */
&nbsp; &nbsp; public static function getImage($name, $attrs = array())
&nbsp; &nbsp; {
&nbsp; &nbsp; &nbsp; &nbsp; global $_CONF, $_IMAGE_TYPE, $LANG_ADMIN, $_SYSTEM;

&nbsp; &nbsp; &nbsp; &nbsp; if (!in_array($name, self::$icons)) $name = 'blank';

&nbsp; &nbsp; &nbsp; &nbsp; $icon_url = "{$_CONF['layout_url']}/images/admin/$name.$_IMAGE_TYPE";
&nbsp; &nbsp; &nbsp; &nbsp; if (!isset($attrs['alt'])) {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $alt = isset($attrs['title']) ? $attrs['title'] : $LANG_ADMIN[$name];
&nbsp; &nbsp; &nbsp; &nbsp; } else {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $alt = $attrs['alt'];
&nbsp; &nbsp; &nbsp; &nbsp; }
&nbsp; &nbsp; &nbsp; &nbsp; return COM_createImage($icon_url, $alt, $attrs);
&nbsp; &nbsp; }


&nbsp; &nbsp; /**
&nbsp; &nbsp; * &nbsp; Get a CSS icon from Uikit or Fontawesom
&nbsp; &nbsp; *
&nbsp; &nbsp; * &nbsp; @param &nbsp;string &nbsp;$name &nbsp; Name of icon, following the iconset prefix
&nbsp; &nbsp; * &nbsp; @param &nbsp;array &nbsp; $attrs &nbsp;Optional attributes to embed in the icon HTML
&nbsp; &nbsp; * &nbsp; @return string &nbsp; &nbsp; &nbsp;Full <i...></i> tag for the icon
&nbsp; &nbsp; */
&nbsp; &nbsp; public static function getCSS($name, $attrs = array())
&nbsp; &nbsp; {
&nbsp; &nbsp; &nbsp; &nbsp; global $LANG_ADMIN, $_SYSTEM;

&nbsp; &nbsp; &nbsp; &nbsp; if (self::$prefix === NULL) {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; self::$prefix = ($_SYSTEM['framework'] == 'uikit') ? 'uk-icon uk-' : 'fa fa-';
&nbsp; &nbsp; &nbsp; &nbsp; }

&nbsp; &nbsp; &nbsp; &nbsp; $attr_str = '';
&nbsp; &nbsp; &nbsp; &nbsp; if (!isset($attrs['alt'])) {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $attrs['alt'] = isset($attrs['title']) ? $attrs['title'] : $LANG_ADMIN[$name];
&nbsp; &nbsp; &nbsp; &nbsp; }

&nbsp; &nbsp; &nbsp; &nbsp; if (isset(self::$icons[$name])) {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $name = self::$icons[$name];
&nbsp; &nbsp; &nbsp; &nbsp; }

&nbsp; &nbsp; &nbsp; &nbsp; foreach ($attrs as $attr_name=>$attr_value) {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $attr_str .= ' ' . $attr_name . '="' . $attr_value . '"';
&nbsp; &nbsp; &nbsp; &nbsp; }
&nbsp; &nbsp; &nbsp; &nbsp; $icon = '<i class="' . self::$prefix . $name . '"' . $attr_str . '></i>';
&nbsp; &nbsp; &nbsp; &nbsp; return $icon;
&nbsp; &nbsp; }


&nbsp; &nbsp; /**
&nbsp; &nbsp; * &nbsp; Get the image or CSS icon depending on configuration.
&nbsp; &nbsp; *
&nbsp; &nbsp; * &nbsp; @param &nbsp;string &nbsp;$name &nbsp; Name of icon, following the iconset prefix
&nbsp; &nbsp; * &nbsp; @param &nbsp;array &nbsp; $attrs &nbsp;Optional attributes to embed in the icon HTML
&nbsp; &nbsp; * &nbsp; @return string &nbsp; &nbsp; &nbsp;Full <i...></i> tag for the icon
&nbsp; &nbsp; */
&nbsp; &nbsp; public static function Get($name, $attrs = array())
&nbsp; &nbsp; {
&nbsp; &nbsp; &nbsp; &nbsp; global $_CONF;

&nbsp; &nbsp; &nbsp; &nbsp; if ($_CONF['use_image_icons']) {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return self::getImage($name, $attrs);
&nbsp; &nbsp; &nbsp; &nbsp; } else {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return self::getCSS($name, $attrs);
&nbsp; &nbsp; &nbsp; &nbsp; }
&nbsp; &nbsp; }

}

?>

Continue Reading

Small World Workshop


Accompanying Noella Ballenger on her Small World workshop yielded some different ways of looking at something as simple as a flower. 

 

Despite the high winds, a few usable photographs were obtained.

Banner Plugin for glFusion 0.1.1 Available


General News

Version 0.1.1 of the Banner Plugin for glFusion is now available. This version fixes a few issues, including a fatal error that would occur under PHP 4. The checking for topic limits was also re-worked so that banners, categories, and campaigns may be restricted to specific topics.

  • Added topic limits to Banners and Campaigns
  • Fixed the plugin crashing under PHP 4
  • Campaign IDs with spaces caused problems in Campaign::getBanners()
  • Impressions and Max Impressions were not saved when the banner form was saved
  • Added click tracking to HTML ads
  • Added a "target" option for each ad
  • Banners weren't displayed in stories
  • Centerblock wasn't working, should work properly now.