diff --git a/j2.5+/code/mod_ninja_simple_icon_menu.php b/j2.5+/code/mod_ninja_simple_icon_menu.php index e468c0d..3f39967 100755 --- a/j2.5+/code/mod_ninja_simple_icon_menu.php +++ b/j2.5+/code/mod_ninja_simple_icon_menu.php @@ -6,6 +6,15 @@ * Release: 1.7.2 * Changelog +* 1.9.1 Date: Mar, 2014 +* Code clean up +* Removed white space between
  • sub-elements +* Detached in-module CSS class assignments if not included by user +* Removed HTML elements which assumed in-module CSS was included +* Corrected usage of moduleclass_sfx from module parameters (previously ignored) +* Added option for icons to auto-size if height/width is zero +* Changed icon_orientation detection to default to horiz-icontop +* * 1.9.0 Date: Oct, 2012 * Added support for Joomla 3.0 * Removed support for Joomla 1.5 @@ -92,149 +101,149 @@ defined('_JEXEC') or die('Direct Access to this location is not allowed.'); // Lets include all the params - $incCSS = $params->get( 'incCSS' ); - $moduleclass_sfx = $params->get( 'moduleclass_sfx' ); - $icon_orientation = $params->get( 'icon_orientation' ); - $icon_container_margin_top = $params->get( 'icon_container_margin_top' ); - $icon_titles = $params->get( 'icon_titles' ); - $icon_title_color = $params->get( 'icon_title_color' ); - $icon_title_fontsize = $params->get( 'icon_title_fontsize' ); - $icon_height = $params->get( 'icon_height' ); - $icon_width = $params->get( 'icon_width' ); +$incCSS = $params->get( 'incCSS' ); +$moduleclass_sfx = trim($params->get( 'moduleclass_sfx' )); +$icon_orientation = $params->get( 'icon_orientation' ); +$icon_container_margin_top = $params->get( 'icon_container_margin_top' ); +$icon_titles = $params->get( 'icon_titles' ); +$icon_title_color = $params->get( 'icon_title_color' ); +$icon_title_fontsize = $params->get( 'icon_title_fontsize' ); +$icon_height = $params->get( 'icon_height' ); +$icon_width = $params->get( 'icon_width' ); + +// initialize the array for div classes +$div_classes = array(); +if ($moduleclass_sfx) { $div_classes[] = $moduleclass_sfx; } - // we are going to store some params in an array - // this will make it alot cleaner and easier to use later on - // The params in the array are = 0-icon_status 1-icon_img, 2-icon_title, 3-icon_link, 4-icon_alt - $iconParams = array ( - array($params->get('icon1_status'),$params->get('icon1_img'),$params->get('icon1_title'),$params->get('icon1_link'),$params->get('icon1_alt'),$params->get('icon1_target')), - array($params->get('icon2_status'),$params->get('icon2_img'),$params->get('icon2_title'),$params->get('icon2_link'),$params->get('icon2_alt'),$params->get('icon2_target')), - array($params->get('icon3_status'),$params->get('icon3_img'),$params->get('icon3_title'),$params->get('icon3_link'),$params->get('icon3_alt'),$params->get('icon3_target')), - array($params->get('icon4_status'),$params->get('icon4_img'),$params->get('icon4_title'),$params->get('icon4_link'),$params->get('icon4_alt'),$params->get('icon4_target')), - array($params->get('icon5_status'),$params->get('icon5_img'),$params->get('icon5_title'),$params->get('icon5_link'),$params->get('icon5_alt'),$params->get('icon5_target')), - array($params->get('icon6_status'),$params->get('icon6_img'),$params->get('icon6_title'),$params->get('icon6_link'),$params->get('icon6_alt'),$params->get('icon6_target')), - array($params->get('icon7_status'),$params->get('icon7_img'),$params->get('icon7_title'),$params->get('icon7_link'),$params->get('icon7_alt'),$params->get('icon7_target')), - array($params->get('icon8_status'),$params->get('icon8_img'),$params->get('icon8_title'),$params->get('icon8_link'),$params->get('icon8_alt'),$params->get('icon8_target')), - array($params->get('icon9_status'),$params->get('icon9_img'),$params->get('icon9_title'),$params->get('icon9_link'),$params->get('icon9_alt'),$params->get('icon9_target')), - array($params->get('icon10_status'),$params->get('icon10_img'),$params->get('icon10_title'),$params->get('icon10_link'),$params->get('icon10_alt'),$params->get('icon10_target')), - array($params->get('icon11_status'),$params->get('icon11_img'),$params->get('icon11_title'),$params->get('icon11_link'),$params->get('icon11_alt'),$params->get('icon11_target')), - array($params->get('icon12_status'),$params->get('icon12_img'),$params->get('icon12_title'),$params->get('icon12_link'),$params->get('icon12_alt'),$params->get('icon12_target')), - array($params->get('icon13_status'),$params->get('icon13_img'),$params->get('icon13_title'),$params->get('icon13_link'),$params->get('icon13_alt'),$params->get('icon13_target')), - array($params->get('icon14_status'),$params->get('icon14_img'),$params->get('icon14_title'),$params->get('icon14_link'),$params->get('icon14_alt'),$params->get('icon14_target')), - array($params->get('icon15_status'),$params->get('icon15_img'),$params->get('icon15_title'),$params->get('icon15_link'),$params->get('icon15_alt'),$params->get('icon15_target')), - array($params->get('icon16_status'),$params->get('icon16_img'),$params->get('icon16_title'),$params->get('icon16_link'),$params->get('icon16_alt'),$params->get('icon16_target')), - array($params->get('icon17_status'),$params->get('icon17_img'),$params->get('icon17_title'),$params->get('icon17_link'),$params->get('icon17_alt'),$params->get('icon17_target')), - array($params->get('icon18_status'),$params->get('icon18_img'),$params->get('icon18_title'),$params->get('icon18_link'),$params->get('icon18_alt'),$params->get('icon18_target')), - array($params->get('icon19_status'),$params->get('icon19_img'),$params->get('icon19_title'),$params->get('icon19_link'),$params->get('icon19_alt'),$params->get('icon19_target')), - array($params->get('icon20_status'),$params->get('icon20_img'),$params->get('icon20_title'),$params->get('icon20_link'),$params->get('icon20_alt'),$params->get('icon20_target')) - ); +// we are going to store some params in an array +// this will make it alot cleaner and easier to use later on +// The params in the array are = 0-icon_status 1-icon_img, 2-icon_title, 3-icon_link, 4-icon_alt, 5-icon_target +$iconParams = array(); +for ($i=1; $i<21; $i++){ + $thisarray = array(); + foreach (array('status','img','title','link','alt','target') as $v) { + $thisarray[] = $params->get("icon{$i}_{$v}"); + } + $iconParams[] = $thisarray; +} // set up all the globals - $user = JFactory::getUser(); - $acl = JFactory::getACL(); - $document = JFactory::getDocument(); - - $headerStyle = ''; - $siteLoc = JURI::base().'media/mod_ninja_simple_icon_menu'; - - // Create a variable to store the visible status of the menu - // Set the variable to 0 to mean the menu is not displayed. Then modifiy it if it is to be displayed. - $menuVisibleCount = 0; - // Loop through the list - // We say less than 8 and start at 0 because that is how php handles arrays, the first element has an index of 0 - // We have 10 elements but one is in index 0 which means we stop the loop when the index is above 9. - // Also this menu visible count variable is used to tell us how many items we have so we can size the invisible box accordingly - for ($i=0; $i<20; $i++){ - // Menu params[i][0] = the first element (menu status) in the array record which matches the index i - // Check that our status == 1 (visible) or == 2 (registered only) and we are not a guest. || = OR , && = AND - // Also, for all the ones that are status 2 and we are registered, change them to status 1 - // This will save us having to do multiple tests later on. We can just test for $menu_params[i][0] == 1 only - // Following line changed by Juergen Buchberger - if (($iconParams[$i][0] == 1) || (($iconParams[$i][0] == 2)&&($user->get('id')))){ - $menuVisibleCount ++; - $iconParams[$i][0] = 1; - } +$user = JFactory::getUser(); +$acl = JFactory::getACL(); +$document = JFactory::getDocument(); + +$headerStyle = ''; +$siteLoc = JURI::base().'media/mod_ninja_simple_icon_menu'; + +// Create a variable to store the visible status of the menu +// Set the variable to 0 to mean the menu is not displayed. Then modifiy it if it is to be displayed. +$menuVisibleCount = 0; + +// Loop through the list +// We say less than 8 and start at 0 because that is how php handles arrays, the first element has an index of 0 +// We have 20 elements but one is in index 0 which means we stop the loop when the index is above 19. +// Also this menu visible count variable is used to tell us how many items we have so we can size the invisible box accordingly +for ($i=0; $i<20; $i++){ + // Menu params[i][0] = the first element (menu status) in the array record which matches the index i + // Check that our status == 1 (visible) or == 2 (registered only) and we are not a guest. || = OR , && = AND + // Also, for all the ones that are status 2 and we are registered, change them to status 1 + // This will save us having to do multiple tests later on. We can just test for $menu_params[i][0] == 1 only + // Following line changed by Juergen Buchberger + if (($iconParams[$i][0] == 1) || (($iconParams[$i][0] == 2)&&($user->get('id')))){ + $menuVisibleCount ++; + $iconParams[$i][0] = 1; } +} - switch ($icon_orientation) { - case '0': - $orien = 'horiz-icontop'; - $menuwidth = $icon_width + $icon_width; // insertion of menuwidth to avoid error notice by Juergen Buchberger - break; - case '1': - $orien = 'horiz-iconbottom'; - $menuwidth = $icon_width + $icon_width; // insertion of menuwidth to avoid error notice by Juergen Buchberger - break; - case '2': - $orien = 'vert'; - break; - case '3': - $orien = 'vert-l'; - break; - case '4': - $orien = 'vert-r'; - break; - } - - //Check if we have already loaded our css or not, and load it if needed and requested - $mainStyleLoaded = false; +switch ($icon_orientation) { + case '1': + $orien = 'horiz-iconbottom'; + $menuwidth = $icon_width + $icon_width; // insertion of menuwidth to avoid error notice by Juergen Buchberger + break; + case '2': + $orien = 'vert'; + break; + case '3': + $orien = 'vert-l'; + break; + case '4': + $orien = 'vert-r'; + break; + default: + $orien = 'horiz-icontop'; + $menuwidth = $icon_width + $icon_width; // insertion of menuwidth to avoid error notice by Juergen Buchberger + break; +} + +//Check if we have already loaded our css or not, and load it if needed and requested +$mainStyleLoaded = false; - if ($incCSS) { - foreach($document->_styleSheets as $key => $styleSheet) { - if(stristr($key, 'nsimple_icons.css') !== false) { - $mainStyleLoaded = true; - } - } +if ($incCSS) { + foreach($document->_styleSheets as $key => $styleSheet) { + if(stristr($key, 'nsimple_icons.css') !== false) { + $mainStyleLoaded = true; + } + } - //link in the CSS if it hasn't been loaded yet - if ($mainStyleLoaded === false) { - $cssFile = $siteLoc.'/css/style.css'; - $document->addStyleSheet($cssFile); - - - $headerStyle .= '.nsi-container div {margin-top: '.$icon_container_margin_top.'}'; - - if ($icon_titles == 1) { - if (!empty($icon_title_color)) { - $headerStyle .='.nsi-container span {color:'.$icon_title_color.'}'; - } - if (!empty($icon_title_fontsize)) { - $headerStyle .='.nsi-container span {font-size:'.$icon_title_fontsize.'}'; - } - } - if ($orien == 'vert-l' || $orien == 'vert-r') { - $headerStyle .='.nsi-icon'.$orien.' span {line-height:'.$icon_height.'px}'; - } - - $document->addStyleDeclaration($headerStyle); - } // if ($mainStyleLoaded === false) - }//if ($incCSS) + //link in the CSS if it hasn't been loaded yet + if ($mainStyleLoaded === false) { + $cssFile = $siteLoc.'/css/style.css'; + $document->addStyleSheet($cssFile); + + // add the header style + $headerStyle .= '.nsi-container div {margin-top: '.$icon_container_margin_top.'}'; + + if ($icon_titles == 1) { + if (!empty($icon_title_color)) { + $headerStyle .='.nsi-container span {color:'.$icon_title_color.'}'; + } + if (!empty($icon_title_fontsize)) { + $headerStyle .='.nsi-container span {font-size:'.$icon_title_fontsize.'}'; + } + } + if ($orien == 'vert-l' || $orien == 'vert-r') { + $headerStyle .='.nsi-icon'.$orien.' span {line-height:'.$icon_height.'px}'; + } + + $document->addStyleDeclaration($headerStyle); + } // if ($mainStyleLoaded === false) + + // add main div classes for included CSS + $div_classes[] = "nsi-container"; + $div_classes[] = "nsi-icon$orien"; + +}//if ($incCSS) ?> -
    -
    - +> +
    +
      "; + $pre_text = ($icon_titles == 1 && $orient == 'horiz-iconbottom') ? + "{$iconParams[$i][2]}" . ($incCSS ? "
      " : '') : + ''; + $img = ''; + if ($iconParams[$i][1] != "-1") { + $img = "\"{$iconParams[$i][4]}\"" : ''; + $post_text = ''; + if ($icon_titles == 1 && $iconParams[$i][2] != '' && ($orien == 'horiz-icontop' || $orien =='vert' || $orien == 'vert-l' || $orien == 'vert-r')) { + $post_text = "{$iconParams[$i][2]}"; + } + echo "
    • {$open_a}{$pre_text}{$img}{$post_br}{$post_text}
    • "; + } + } + ?>