Ignore:
Timestamp:
Feb 19, 2011, 11:13:22 PM (13 years ago)
Author:
patdenice
Message:

Lot of optimization.
Add privacy level management.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/AdditionalPages/main.inc.php

    r9272 r9310  
    1919$conf['additional_pages'] = @unserialize($conf['additional_pages']);
    2020
    21 if ($conf['additional_pages'] === false)
    22   include(AP_PATH.'admin/upgrade_from_21.php');
     21if (!isset($conf['additional_pages']['level_perm']))
     22  include(AP_PATH.'admin/upgrade.inc.php');
    2323
    2424function additional_pages_admin_menu($menu)
     
    4343}
    4444
    45 include(AP_PATH . 'index_menu.php');
     45function register_ap_menubar_blocks($menu_ref_arr)
     46{
     47  $menu = & $menu_ref_arr[0];
     48  if ($menu->get_id() != 'menubar') return;
     49  $menu->register_block( new RegisteredBlock( 'mbAdditionalPages', 'Additional Pages', 'P@t'));
     50}
     51
     52function ap_apply($menu_ref_arr)
     53{
     54  global $template, $conf, $user;
     55
     56  $menu = & $menu_ref_arr[0];
     57 
     58  if ( ($block = $menu->get_block( 'mbAdditionalPages' ) ) != null )
     59  {
     60    $query = 'SELECT DISTINCT id, title, permalink, GROUP_CONCAT(groups)
     61FROM ' . ADD_PAGES_TABLE . '
     62LEFT JOIN ' . USER_GROUP_TABLE . '
     63  ON user_id = '.$user['id'].'
     64WHERE (lang = "' . $user['language'] . '" OR lang IS NULL)
     65  AND (users IS NULL OR users LIKE "%'.$user['status'].'%")
     66  AND (groups IS NULL OR groups REGEXP CONCAT("(^|,)",group_id,"(,|$)"))
     67  AND level <= '.$user['level'].'
     68  AND pos >= 0
     69ORDER BY pos ASC
     70;';
     71    $result = pwg_query($query);
     72    $data = array();
     73    while ($row = pwg_db_fetch_assoc($result))
     74    {
     75      $url = make_index_url().'/page/'.(isset($row['permalink']) ? $row['permalink'] : $row['id']);
     76      array_push($data, array('URL' => $url, 'LABEL' => $row['title']));
     77    }
     78
     79    if (!empty($data))
     80    {
     81      $title = isset($conf['additional_pages']['languages'][$user['language']]) ?
     82        $conf['additional_pages']['languages'][$user['language']] :
     83        @$conf['additional_pages']['languages']['default'];
     84
     85      $template->set_template_dir(AP_PATH.'template/');
     86      $block->set_title($title);
     87      $block->template = 'menubar_additional_pages.tpl';
     88      $block->data = $data;
     89    }
     90  }
     91}
    4692
    4793add_event_handler('get_admin_plugin_menu_links', 'additional_pages_admin_menu');
    4894add_event_handler('loc_end_section_init', 'section_init_additional_page');
     95add_event_handler('blockmanager_register_blocks', 'register_ap_menubar_blocks');
     96add_event_handler('blockmanager_apply', 'ap_apply');
    4997
    5098?>
Note: See TracChangeset for help on using the changeset viewer.