Changeset 6389


Ignore:
Timestamp:
05/27/10 15:47:56 (9 years ago)
Author:
patdenice
Message:

Compatibility with piwigo 2.1

Location:
extensions/rv_menutree/trunk
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • extensions/rv_menutree/trunk/changelog.txt

    r3590 r6389  
    22        - optimizations by calling make_index_url less frequently 
    33        - compatible with IE8 
     4 
     52.1.a 
     6        - compatibility with piwigo 2.1 
  • extensions/rv_menutree/trunk/main.inc.php

    r3590 r6389  
    2828{ 
    2929        if (rv_ua_is_handheld()) return $where; 
    30         add_event_handler('get_html_menu_category', 'rv_mt_get_html_menu_category', EVENT_HANDLER_PRIORITY_NEUTRAL, 3); 
     30        add_event_handler('blockmanager_apply', 'rv_mt_menubar_categories'); 
    3131 
    3232        if ($expand) 
     
    5151} 
    5252 
     53function rv_mt_menubar_categories($menu_ref_arr) 
     54{ 
     55        $menu = & $menu_ref_arr[0]; 
    5356 
    54 function rv_mt_get_html_menu_category($menu, $categories, $selected_category) 
    55 { 
    56         $start = get_moment(); 
     57        if (($block = $menu->get_block('mbCategories')) != null) 
     58        { 
     59                global $template, $page, $rv_mt_all_open; 
    5760 
    58         $ref_level = 0; 
    59         $level = 0; 
    60         $menu = ''; 
     61                $dirname = dirname(__FILE__); 
    6162 
    62         $upper_ids=array(); 
    63         if ( null!=$selected_category) 
    64                 $upper_ids = array_flip( explode(',', $selected_category['uppercats']) ); 
     63                $block->template = $dirname.'/menubar_categories.tpl'; 
    6564 
    66         $url_perma = make_index_url( array( 'category' => array('id'=>0, 'name'=>'', 'permalink'=> '@permalink@') ) ); 
    67         $url_no_perma = make_index_url( array( 'category' => array('id'=>999999, 'name'=>'xxxnamexxx', 'permalink'=> '') ) ); 
    68  
    69         foreach ($categories as $category) 
    70         { 
    71                 $level = substr_count($category['global_rank'], '.') + 1; 
    72                 if ($level > $ref_level) 
    73                 { 
    74                         if ($ref_level==0) 
    75                                 $menu.= "\n<ul class=\"rvTree\" id=\"theCategoryMenu\">"; 
    76                         else 
    77                                 $menu.= "\n<ul>"; 
    78                 } 
    79                 elseif ($level == $ref_level) 
    80                         $menu.= "</li>"; 
    81                 elseif ($level < $ref_level) 
    82                 { 
    83                         // we may have to close more than one level at the same time... 
    84                         $menu.= "</li>"; 
    85                         $menu.= str_repeat("\n</ul></li>",($ref_level-$level)); 
    86                 } 
    87                 $ref_level = $level; 
    88  
    89                 $menu.= "\n<li"; 
    90                 $class_names = array(); 
    91                 if ($category['id'] == @$selected_category['id']) 
    92                         array_push( $class_names, 'selected'); 
    93                 global $rv_mt_all_open; 
    94  
    95                 if ($category['count_categories']>0) 
    96                 { 
    97                         if ( isset($rv_mt_all_open) and $rv_mt_all_open ) 
    98                                 array_push( $class_names, 'liOpen'); 
    99                         elseif ( isset( $upper_ids[ $category['id'] ] ) ) 
    100                         { 
    101                                 array_push( $class_names, 'liOpen'); 
    102                                 unset($upper_ids[ $category['id'] ] ); 
    103                         } 
    104                         else 
    105                                 array_push( $class_names, 'liClosed'); 
    106                 } 
    107  
    108                 if (count($class_names)) 
    109                         $menu.= ' class="'.implode($class_names,' ').'"'; 
    110                 $menu.= '>'; 
    111  
    112                 if ( empty($category['permalink']) ) 
    113                         $url = str_replace( array('999999', 'xxxnamexxx'), array($category['id'], str2url($category['name'])), $url_no_perma); 
    114                 else 
    115                         $url = str_replace('@permalink@', $category['permalink'], $url_perma); 
    116  
    117                 $title = get_display_images_count( 
    118                                                         $category['nb_images'], $category['count_images'], $category['count_categories'], 
    119                                                         false, 
    120                                                         ' / ' 
    121                                                 ); 
    122  
    123                 $menu.= '<a href="'.$url.'"'; 
    124                 if ($selected_category!=null and $category['id'] == $selected_category['id_uppercat']) 
    125                         $menu.= ' rel="up"'; 
    126                 $menu.= ' title="'.$title.'">' 
    127                         .trigger_event('render_category_name', $category['name'], 'get_html_menu_category') 
    128                         //.$category['name'] 
    129                         .'</a>'; 
    130  
    131                 if ( $category['count_images']>0 ) 
    132                 {// at least one direct or indirect image 
    133                         $menu.= '<span class="menuInfoCat' 
    134                                 .($category['nb_images'] == 0 ? 'ByChild' : '') 
    135                                 .'" title="'.$title.'"> ['.$category['count_images'].']</span>'; 
    136                 } 
    137                 $menu.= get_icon($category['max_date_last'], @$category['max_date_last']> @$category['date_last']); 
     65                $template->assign('rvmt', array( 
     66                        'PATH' => get_root_url().'plugins/'. basename($dirname).'/', 
     67                        'CSS' => str_replace( 'url(', 'url('.get_root_url().'plugins/'.basename($dirname).'/',file_get_contents($dirname.'/rvtree-min.css')), 
     68                        'ALL_OPEN' => $rv_mt_all_open, 
     69                        'UPPER_IDS' => isset($page['category']['uppercats']) ? array_flip( explode(',', $page['category']['uppercats'])) : null, 
     70                        ) 
     71                ); 
    13872        } 
    139  
    140         $menu.= str_repeat("\n</li></ul>",($level)); 
    141         $menu.= '<script type="text/javascript">RVTree.convertTree( document.getElementById("theCategoryMenu") );</script>'; 
    142  
    143         $dirname = dirname(__FILE__); 
    144         $head = '<style type="text/css">'. str_replace( 'url(', 'url('.get_root_url().'plugins/'.basename($dirname).'/',file_get_contents($dirname.'/rvtree-min.css')).'</style> 
    145 <script type="text/javascript" src="'.get_root_url().'plugins/'. basename(dirname(__FILE__)).'/rvtree-min.js"></script>'; 
    146  
    147         pwg_debug('rv_mt_get_html_menu_category took '.number_format(get_moment() - $start,3,'.',' ') ); 
    148         global $template; 
    149         $template->append( 'head_elements', $head); 
    150         return $menu; 
    15173} 
    15274?> 
Note: See TracChangeset for help on using the changeset viewer.