Example #1
0
 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;
 }
Example #2
0
 /**
  * Set instance
  *
  * @param FWCache $instance
  * @return void
  */
 public static function setInstance(FWCache $instance)
 {
     self::$_instance = $instance;
 }