public static function _process($content, $params) { // get parameters $active = isset($params['active']) ? $params['active'] : null; $active_class = isset($params['active_class']) ? $params['active_class'] : null; $active_id = isset($params['active_id']) ? $params['active_id'] : null; $link_class = isset($params['link_class']) ? $params['link_class'] : null; // parse content $cache = FWCache::getInstance(); $cache_key = 'dwoo_menu_' . md5($content); if (!($parsed = $cache->get($cache_key))) { $parsed = self::_parse($content); $cache->set($cache_key, $parsed, 3600); } extract($parsed); // process links $search = $replace = array(); foreach ($links as $link) { $classes = array(); $id = null; // add class to all links if ($link_class) { $classes[] = $link_class; } // active? if ($active && $link['id'] == $active) { if ($active_class) { $classes[] = $active_class; } if ($active_id) { $id = $active_id; } } // replacements $classes = implode(' ', $classes); $search[] = $link['placeholders']['class']; $replace[] = $classes; if ($id) { $search[] = $link['placeholders']['id']; $replace[] = $id; } else { $search[] = 'id="' . $link['placeholders']['id'] . '"'; $replace[] = ''; } } // execute search/replace if ($search) { $html = str_replace($search, $replace, $html); } echo $html; }
/** * Set instance * * @param FWCache $instance * @return void */ public static function setInstance(FWCache $instance) { self::$_instance = $instance; }