コード例 #1
0
    function MageBridgeMenuPrintTree($tree, $level = 0, $params = null)
    {
        // If the tree is invalid, do not continue
        if (!is_array($tree) || count($tree) == 0) {
            return;
        }
        $i = 0;
        ?>
        <ul>
        <?php 
        foreach ($tree as $item) {
            ?>
            <?php 
            $class = modMageBridgeMenuHelper::getCssClass($params, $item, $level, $i, $tree);
            ?>
            <li class="<?php 
            echo $class;
            ?>
">
                <a href="<?php 
            echo $item['url'];
            ?>
" class="<?php 
            echo $class;
            ?>
"><span><?php 
            echo $item['name'];
            ?>
</span></a>
                <?php 
            if ($params->get('include_product_count') == 1 && isset($item['product_count'])) {
                ?>
(<?php 
                echo (int) $item['product_count'];
                ?>
)<?php 
            }
            ?>
                <?php 
            if ($item['is_active']) {
                echo MageBridgeMenuPrintTree($item['children'], $level + 1, $params);
            }
            ?>
        </li>
        <?php 
            $i++;
            ?>
        <?php 
        }
        ?>
        </ul>
        <?php 
    }
コード例 #2
0
ファイル: helper.php プロジェクト: apiceweb/MageBridgeCore
 /**
  * Helper-method to return a CSS-class string
  *
  * @access public
  * @param JParameter $params
  * @param array $item
  * @param int $level
  * @param int $counter
  * @param array $tree
  * @return string
  */
 public static function getCssClass($params, $item, $level, $counter, $tree)
 {
     $current_category_id = modMageBridgeMenuHelper::getCurrentCategoryId();
     $current_category_path = modMageBridgeMenuHelper::getCurrentCategoryPath();
     $class = array();
     if (isset($item['entity_id'])) {
         if ($item['entity_id'] == $current_category_id) {
             $class[] = 'current';
             $class[] = 'active';
         } elseif (in_array($item['entity_id'], $current_category_path)) {
             $class[] = 'active';
         }
         $class[] = 'category-' . $item['entity_id'];
         $class[] = 'category-' . $item['url_key'];
     }
     if (isset($item['children_count']) && $item['children_count'] > 0) {
         $class[] = 'parent';
     }
     if ($params->get('css_level', 0) == 1) {
         $class[] = 'level' . $level;
     }
     if ($params->get('css_firstlast', 0) == 1) {
         if ($counter == 0) {
             $class[] = 'first';
         }
         if ($counter == count($tree)) {
             $class[] = 'last';
         }
     }
     if ($params->get('css_evenodd', 0) == 1) {
         if ($counter % 2 == 0) {
             $class[] = 'even';
         }
         if ($counter % 2 == 1) {
             $class[] = 'odd';
         }
     }
     $class = array_unique($class);
     $class = implode(' ', $class);
     return $class;
 }
コード例 #3
0
/**
 * Joomla! module MageBridge: Catalog Menu
 *
 * @author	Yireo (info@yireo.com)
 * @package   MageBridge
 * @copyright Copyright 2015
 * @license   GNU Public License
 * @link	  http://www.yireo.com
 */
// No direct access
defined('_JEXEC') or die('Restricted access');
// Import the MageBridge autoloader
require_once JPATH_SITE . '/components/com_magebridge/helpers/loader.php';
require_once dirname(__FILE__) . '/helper.php';
// Read the parameters
$root = $params->get('root', 0);
$levels = $params->get('levels', 2);
$startLevel = $params->get('startlevel', 1);
if ($startLevel < 1) {
    $startLevel = 1;
}
$endLevel = $startLevel + $levels - 1;
$layout = $params->get('layout', 'default');
// Call the helper
$catalog_tree = modMageBridgeMenuHelper::build($params);
// Load the catalog-tree
$rootLevel = !empty($catalog_tree['level']) ? $catalog_tree['level'] : 0;
$catalog_tree = modMageBridgeMenuHelper::setRoot($catalog_tree, $root);
$catalog_tree = modMageBridgeMenuHelper::parseTree($catalog_tree, $rootLevel + $startLevel, $rootLevel + $endLevel);
// Show the template
require JModuleHelper::getLayoutPath('mod_magebridge_menu', $layout);
コード例 #4
0
 public function parseTree($tree, $endLevel = 99)
 {
     if (is_array($tree) && count($tree) > 0) {
         foreach ($tree as $index => $item) {
             if (empty($item)) {
                 unset($tree[$index]);
                 continue;
             }
             // Remove disabled categories
             if ($item['is_active'] != 1) {
                 unset($tree[$index]);
                 continue;
             }
             // Remove categories that should not be in the menu
             if (isset($item['include_in_menu']) && $item['include_in_menu'] != 1) {
                 unset($tree[$index]);
                 continue;
             }
             // Remove items from the wrong level
             if ($item['level'] >= $endLevel) {
                 unset($tree[$index]);
                 continue;
             }
             // Handle HTML-entities in the title
             if (isset($item['name'])) {
                 $item['name'] = htmlspecialchars($item['name']);
             }
             // Parse the children-tree
             if (!empty($item['children'])) {
                 $item['children'] = modMageBridgeMenuHelper::parseTree($item['children'], $endLevel);
             } else {
                 $item['children'] = array();
             }
             // Translate the URL into Joomla! SEF URL
             if (empty($item['url'])) {
                 $item['url'] = '';
             } else {
                 $item['url'] = MageBridgeUrlHelper::route($item['url']);
             }
             $tree[$index] = $item;
         }
     }
     return $tree;
 }
コード例 #5
0
<?php

/**
 * Joomla! module MageBridge: Catalog Menu
 *
 * @author Yireo (info@yireo.com)
 * @package MageBridge
 * @copyright Copyright 2012
 * @license GNU Public License
 * @link http://www.yireo.com
 */
// No direct access
defined('_JEXEC') or die('Restricted access');
// Import the MageBridge autoloader
require_once JPATH_SITE . '/components/com_magebridge/helpers/loader.php';
require_once dirname(__FILE__) . '/helper.php';
// Read the parameters
$root = $params->get('root', 0);
$levels = $params->get('levels', 2);
// Call the helper
$catalog_tree = modMageBridgeMenuHelper::build($params);
// Determine the appropriate settings
$catalog_tree = modMageBridgeMenuHelper::setRoot($catalog_tree, $root);
if (!empty($catalog_tree[0]['level'])) {
    $levels = $catalog_tree[0]['level'] + $levels;
}
$catalog_tree = modMageBridgeMenuHelper::parseTree($catalog_tree, $levels);
require JModuleHelper::getLayoutPath('mod_magebridge_menu');