source: extensions/AdditionalPages/main.inc.php @ 9321

Last change on this file since 9321 was 9312, checked in by patdenice, 13 years ago

Code comment.

File size: 3.1 KB
Line 
1<?php
2/*
3Plugin Name: Additional Pages
4Version: auto
5Description: Add additional pages in menubar.
6Plugin URI: http://piwigo.org/ext/extension_view.php?eid=153
7Author: P@t
8Author URI: http://www.gauchon.com
9*/
10
11if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
12
13global $prefixeTable, $conf;
14
15define('AP_DIR' , basename(dirname(__FILE__)));
16define('AP_PATH' , PHPWG_PLUGINS_PATH . AP_DIR . '/');
17define('ADD_PAGES_TABLE' , $prefixeTable . 'additionalpages');
18
19$conf['additional_pages'] = @unserialize($conf['additional_pages']);
20
21// Need upgrade?
22if (!isset($conf['additional_pages']['level_perm']))
23  include(AP_PATH.'admin/upgrade.inc.php');
24
25// Admin menu
26function additional_pages_admin_menu($menu)
27{
28    array_push($menu, array(
29      'NAME' => 'Additional Pages',
30      'URL' => get_admin_plugin_menu_link(AP_PATH . 'admin/admin.php')));
31    return $menu;
32}
33
34// Section init
35function section_init_additional_page()
36{
37  global $tokens, $conf, $page;
38
39  $page['ap_homepage'] = (count($tokens) == 1 and empty($tokens[0]));
40
41  if (($tokens[0] == 'page' and !empty($tokens[1])) or ($page['ap_homepage'] and !is_null($conf['additional_pages']['homepage'])))
42    include(AP_PATH . 'additional_page.php');
43
44  if ($tokens[0] == 'additional_page' and !empty($tokens[1]))
45    redirect(make_index_url().'/page/'.$tokens[1]);
46}
47
48// Menubar
49function register_ap_menubar_blocks($menu_ref_arr)
50{
51  $menu = & $menu_ref_arr[0];
52  if ($menu->get_id() != 'menubar') return;
53  $menu->register_block( new RegisteredBlock( 'mbAdditionalPages', 'Additional Pages', 'P@t'));
54}
55
56function ap_apply($menu_ref_arr)
57{
58  global $template, $conf, $user;
59
60  $menu = & $menu_ref_arr[0];
61 
62  if ( ($block = $menu->get_block( 'mbAdditionalPages' ) ) != null )
63  {
64    $query = 'SELECT DISTINCT id, title, permalink
65FROM ' . ADD_PAGES_TABLE . '
66LEFT JOIN ' . USER_GROUP_TABLE . '
67  ON user_id = '.$user['id'].'
68WHERE (lang IS NULL OR lang = "'.$user['language'].'")
69  AND (users IS NULL OR users LIKE "%'.$user['status'].'%")
70  AND (groups IS NULL OR groups REGEXP CONCAT("(^|,)",group_id,"(,|$)"))
71  AND level <= '.$user['level'].'
72  AND pos >= 0
73ORDER BY pos ASC
74;';
75    $result = pwg_query($query);
76    $data = array();
77    while ($row = pwg_db_fetch_assoc($result))
78    {
79      $url = make_index_url().'/page/'.(isset($row['permalink']) ? $row['permalink'] : $row['id']);
80      array_push($data, array('URL' => $url, 'LABEL' => $row['title']));
81    }
82
83    if (!empty($data))
84    {
85      $title = isset($conf['additional_pages']['languages'][$user['language']]) ?
86        $conf['additional_pages']['languages'][$user['language']] :
87        @$conf['additional_pages']['languages']['default'];
88
89      $template->set_template_dir(AP_PATH.'template/');
90      $block->set_title($title);
91      $block->template = 'menubar_additional_pages.tpl';
92      $block->data = $data;
93    }
94  }
95}
96
97add_event_handler('get_admin_plugin_menu_links', 'additional_pages_admin_menu');
98add_event_handler('loc_end_section_init', 'section_init_additional_page');
99add_event_handler('blockmanager_register_blocks', 'register_ap_menubar_blocks');
100add_event_handler('blockmanager_apply', 'ap_apply');
101
102?>
Note: See TracBrowser for help on using the repository browser.