Index: /extensions/AdditionalPages/main.inc.php
===================================================================
--- /extensions/AdditionalPages/main.inc.php	(revision 9272)
+++ /extensions/AdditionalPages/main.inc.php	(revision 9310)
@@ -19,6 +19,6 @@
 $conf['additional_pages'] = @unserialize($conf['additional_pages']);
 
-if ($conf['additional_pages'] === false)
-  include(AP_PATH.'admin/upgrade_from_21.php');
+if (!isset($conf['additional_pages']['level_perm']))
+  include(AP_PATH.'admin/upgrade.inc.php');
 
 function additional_pages_admin_menu($menu)
@@ -43,8 +43,56 @@
 }
 
-include(AP_PATH . 'index_menu.php');
+function register_ap_menubar_blocks($menu_ref_arr)
+{
+  $menu = & $menu_ref_arr[0];
+  if ($menu->get_id() != 'menubar') return;
+  $menu->register_block( new RegisteredBlock( 'mbAdditionalPages', 'Additional Pages', 'P@t'));
+}
+
+function ap_apply($menu_ref_arr)
+{
+  global $template, $conf, $user;
+
+  $menu = & $menu_ref_arr[0];
+  
+  if ( ($block = $menu->get_block( 'mbAdditionalPages' ) ) != null )
+  {
+    $query = 'SELECT DISTINCT id, title, permalink, GROUP_CONCAT(groups)
+FROM ' . ADD_PAGES_TABLE . '
+LEFT JOIN ' . USER_GROUP_TABLE . '
+  ON user_id = '.$user['id'].'
+WHERE (lang = "' . $user['language'] . '" OR lang IS NULL)
+  AND (users IS NULL OR users LIKE "%'.$user['status'].'%")
+  AND (groups IS NULL OR groups REGEXP CONCAT("(^|,)",group_id,"(,|$)"))
+  AND level <= '.$user['level'].'
+  AND pos >= 0
+ORDER BY pos ASC
+;';
+    $result = pwg_query($query);
+    $data = array();
+    while ($row = pwg_db_fetch_assoc($result))
+    {
+      $url = make_index_url().'/page/'.(isset($row['permalink']) ? $row['permalink'] : $row['id']);
+      array_push($data, array('URL' => $url, 'LABEL' => $row['title']));
+    }
+
+    if (!empty($data))
+    {
+      $title = isset($conf['additional_pages']['languages'][$user['language']]) ?
+        $conf['additional_pages']['languages'][$user['language']] :
+        @$conf['additional_pages']['languages']['default'];
+
+      $template->set_template_dir(AP_PATH.'template/');
+      $block->set_title($title);
+      $block->template = 'menubar_additional_pages.tpl';
+      $block->data = $data;
+    }
+  }
+}
 
 add_event_handler('get_admin_plugin_menu_links', 'additional_pages_admin_menu');
 add_event_handler('loc_end_section_init', 'section_init_additional_page');
+add_event_handler('blockmanager_register_blocks', 'register_ap_menubar_blocks');
+add_event_handler('blockmanager_apply', 'ap_apply');
 
 ?>
Index: /extensions/AdditionalPages/language/sv_SE/plugin.lang.php
===================================================================
--- /extensions/AdditionalPages/language/sv_SE/plugin.lang.php	(revision 9303)
+++ /extensions/AdditionalPages/language/sv_SE/plugin.lang.php	(revision 9310)
@@ -45,4 +45,5 @@
 $lang['ap_standalone_tip'] = 'Sidan kräver full HTML struktur';
 $lang['ap_permalink_already_used'] = 'Permalänk %s används redan av sidan %s';
+/*TODO*/$lang['ap_level_perm'] = 'by privacy level';
 
 ?>
Index: /extensions/AdditionalPages/language/lv_LV/plugin.lang.php
===================================================================
--- /extensions/AdditionalPages/language/lv_LV/plugin.lang.php	(revision 9273)
+++ /extensions/AdditionalPages/language/lv_LV/plugin.lang.php	(revision 9310)
@@ -45,4 +45,5 @@
 /*TODO*/$lang['ap_standalone_tip'] = 'Page require full HTML structure';
 /*TODO*/$lang['ap_permalink_already_used'] = 'Permalink %s is already used by page %s';
+/*TODO*/$lang['ap_level_perm'] = 'by privacy level';
 
 ?>
Index: /extensions/AdditionalPages/language/ar_SA/plugin.lang.php
===================================================================
--- /extensions/AdditionalPages/language/ar_SA/plugin.lang.php	(revision 8684)
+++ /extensions/AdditionalPages/language/ar_SA/plugin.lang.php	(revision 9310)
@@ -38,3 +38,12 @@
 $lang['ap_parse_bbcode'] = 'حول الصفحات المكتوبة ب BBcode';
 $lang['ap_convert_bbcode_ok'] = 'التحويل تم.';
+
+/*TODO*/$lang['ap_edit_page'] = 'Edit a page';
+/*TODO*/$lang['ap_set_as_homepage'] = 'Set as Homepage';
+/*TODO*/$lang['ap_standalone_page'] = 'Standalone Page';
+/*TODO*/$lang['ap_homepage_tip'] = 'Replace your gallery\'s homepage';
+/*TODO*/$lang['ap_standalone_tip'] = 'Page require full HTML structure';
+/*TODO*/$lang['ap_permalink_already_used'] = 'Permalink %s is already used by page %s';
+/*TODO*/$lang['ap_level_perm'] = 'by privacy level';
+
 ?>
Index: /extensions/AdditionalPages/language/tr_TR/plugin.lang.php
===================================================================
--- /extensions/AdditionalPages/language/tr_TR/plugin.lang.php	(revision 9304)
+++ /extensions/AdditionalPages/language/tr_TR/plugin.lang.php	(revision 9310)
@@ -45,4 +45,5 @@
 $lang['ap_standalone_tip'] = 'Sayfa tam HTML yapısı gerektirir';
 $lang['ap_permalink_already_used'] = 'Kalıcı bağlantı %s zaten sayfa %s tarafından kullanılıyor';
+/*TODO*/$lang['ap_level_perm'] = 'by privacy level';
 
 ?>
Index: /extensions/AdditionalPages/language/ru_RU/plugin.lang.php
===================================================================
--- /extensions/AdditionalPages/language/ru_RU/plugin.lang.php	(revision 9273)
+++ /extensions/AdditionalPages/language/ru_RU/plugin.lang.php	(revision 9310)
@@ -45,4 +45,5 @@
 /*TODO*/$lang['ap_standalone_tip'] = 'Page require full HTML structure';
 /*TODO*/$lang['ap_permalink_already_used'] = 'Permalink %s is already used by page %s';
+/*TODO*/$lang['ap_level_perm'] = 'by privacy level';
 
 ?>
Index: /extensions/AdditionalPages/language/es_ES/plugin.lang.php
===================================================================
--- /extensions/AdditionalPages/language/es_ES/plugin.lang.php	(revision 9273)
+++ /extensions/AdditionalPages/language/es_ES/plugin.lang.php	(revision 9310)
@@ -45,4 +45,5 @@
 /*TODO*/$lang['ap_standalone_tip'] = 'Page require full HTML structure';
 /*TODO*/$lang['ap_permalink_already_used'] = 'Permalink %s is already used by page %s';
+/*TODO*/$lang['ap_level_perm'] = 'by privacy level';
 
 ?>
Index: /extensions/AdditionalPages/language/fr_FR/plugin.lang.php
===================================================================
--- /extensions/AdditionalPages/language/fr_FR/plugin.lang.php	(revision 9294)
+++ /extensions/AdditionalPages/language/fr_FR/plugin.lang.php	(revision 9310)
@@ -45,4 +45,5 @@
 $lang['ap_standalone_tip'] = 'La page requiert une structure HTML complète';
 $lang['ap_permalink_already_used'] = 'Le lien permanent %s est déja utilisé par la page %s';
+$lang['ap_level_perm'] = 'par niveau de confidentialité';
 
 ?>
Index: /extensions/AdditionalPages/language/de_DE/plugin.lang.php
===================================================================
--- /extensions/AdditionalPages/language/de_DE/plugin.lang.php	(revision 9273)
+++ /extensions/AdditionalPages/language/de_DE/plugin.lang.php	(revision 9310)
@@ -45,4 +45,5 @@
 /*TODO*/$lang['ap_standalone_tip'] = 'Page require full HTML structure';
 /*TODO*/$lang['ap_permalink_already_used'] = 'Permalink %s is already used by page %s';
+/*TODO*/$lang['ap_level_perm'] = 'by privacy level';
 
 ?>
Index: /extensions/AdditionalPages/language/cs_CZ/plugin.lang.php
===================================================================
--- /extensions/AdditionalPages/language/cs_CZ/plugin.lang.php	(revision 9273)
+++ /extensions/AdditionalPages/language/cs_CZ/plugin.lang.php	(revision 9310)
@@ -45,4 +45,5 @@
 /*TODO*/$lang['ap_standalone_tip'] = 'Page require full HTML structure';
 /*TODO*/$lang['ap_permalink_already_used'] = 'Permalink %s is already used by page %s';
+/*TODO*/$lang['ap_level_perm'] = 'by privacy level';
 
 ?>
Index: /extensions/AdditionalPages/language/en_UK/plugin.lang.php
===================================================================
--- /extensions/AdditionalPages/language/en_UK/plugin.lang.php	(revision 9305)
+++ /extensions/AdditionalPages/language/en_UK/plugin.lang.php	(revision 9310)
@@ -45,4 +45,5 @@
 $lang['ap_standalone_tip'] = 'Page require full HTML structure';
 $lang['ap_permalink_already_used'] = 'Permalink %s is already used by page %s';
+$lang['ap_level_perm'] = 'by privacy level';
 
 ?>
Index: /extensions/AdditionalPages/language/nl_NL/plugin.lang.php
===================================================================
--- /extensions/AdditionalPages/language/nl_NL/plugin.lang.php	(revision 9297)
+++ /extensions/AdditionalPages/language/nl_NL/plugin.lang.php	(revision 9310)
@@ -45,4 +45,5 @@
 $lang['ap_standalone_tip'] = 'Deze pagina dient een volledige HTML-structuur te hebben';
 $lang['ap_permalink_already_used'] = 'De permalink %s wordt al gebruikt door pagina %s';
+/*TODO*/$lang['ap_level_perm'] = 'by privacy level';
 
 ?>
Index: /extensions/AdditionalPages/language/pl_PL/plugin.lang.php
===================================================================
--- /extensions/AdditionalPages/language/pl_PL/plugin.lang.php	(revision 9309)
+++ /extensions/AdditionalPages/language/pl_PL/plugin.lang.php	(revision 9310)
@@ -45,4 +45,5 @@
 $lang['ap_standalone_tip'] = 'Strona wymaga pełnej struktury HTML';
 $lang['ap_permalink_already_used'] = 'Link permanentny %s jest już używane przez stronę %s';
+/*TODO*/$lang['ap_level_perm'] = 'by privacy level';
 
 ?>
Index: /extensions/AdditionalPages/language/hu_HU/plugin.lang.php
===================================================================
--- /extensions/AdditionalPages/language/hu_HU/plugin.lang.php	(revision 9273)
+++ /extensions/AdditionalPages/language/hu_HU/plugin.lang.php	(revision 9310)
@@ -45,4 +45,5 @@
 /*TODO*/$lang['ap_standalone_tip'] = 'Page require full HTML structure';
 /*TODO*/$lang['ap_permalink_already_used'] = 'Permalink %s is already used by page %s';
+/*TODO*/$lang['ap_level_perm'] = 'by privacy level';
 
 ?>
Index: /extensions/AdditionalPages/language/it_IT/plugin.lang.php
===================================================================
--- /extensions/AdditionalPages/language/it_IT/plugin.lang.php	(revision 9302)
+++ /extensions/AdditionalPages/language/it_IT/plugin.lang.php	(revision 9310)
@@ -45,4 +45,5 @@
 $lang['ap_standalone_tip'] = 'La pagina richiede la completa struttura HTML';
 $lang['ap_permalink_already_used'] = 'Permalink %s è già utilizzato da pagina %s';
+/*TODO*/$lang['ap_level_perm'] = 'by privacy level';
 
 
Index: /extensions/AdditionalPages/language/no_NO/plugin.lang.php
===================================================================
--- /extensions/AdditionalPages/language/no_NO/plugin.lang.php	(revision 8856)
+++ /extensions/AdditionalPages/language/no_NO/plugin.lang.php	(revision 9310)
@@ -39,3 +39,11 @@
 $lang['ap_convert_bbcode_ok'] = 'Konverteriing effektuert.';
 
+/*TODO*/$lang['ap_edit_page'] = 'Edit a page';
+/*TODO*/$lang['ap_set_as_homepage'] = 'Set as Homepage';
+/*TODO*/$lang['ap_standalone_page'] = 'Standalone Page';
+/*TODO*/$lang['ap_homepage_tip'] = 'Replace your gallery\'s homepage';
+/*TODO*/$lang['ap_standalone_tip'] = 'Page require full HTML structure';
+/*TODO*/$lang['ap_permalink_already_used'] = 'Permalink %s is already used by page %s';
+/*TODO*/$lang['ap_level_perm'] = 'by privacy level';
+
 ?>
Index: /extensions/AdditionalPages/language/sk_SK/plugin.lang.php
===================================================================
--- /extensions/AdditionalPages/language/sk_SK/plugin.lang.php	(revision 9273)
+++ /extensions/AdditionalPages/language/sk_SK/plugin.lang.php	(revision 9310)
@@ -45,4 +45,5 @@
 /*TODO*/$lang['ap_standalone_tip'] = 'Page require full HTML structure';
 /*TODO*/$lang['ap_permalink_already_used'] = 'Permalink %s is already used by page %s';
+/*TODO*/$lang['ap_level_perm'] = 'by privacy level';
 
 ?>
Index: /extensions/AdditionalPages/admin/edit_page.inc.php
===================================================================
--- /extensions/AdditionalPages/admin/edit_page.inc.php	(revision 9272)
+++ /extensions/AdditionalPages/admin/edit_page.inc.php	(revision 9310)
@@ -21,10 +21,12 @@
 }
 
-$q = 'SELECT id , lang , title , content , users , groups , permalink, standalone
+$q = 'SELECT id , lang , title , content , users , groups , level , permalink, standalone
 FROM ' . ADD_PAGES_TABLE . '
 WHERE id = '.$_GET['edit'].';';
 
-$edited_page = mysql_fetch_assoc(pwg_query($q));
+$edited_page = pwg_db_fetch_assoc(pwg_query($q));
 $page_title = l10n('ap_modify');
+$edited_page['users'] = !empty($edited_page['users']) ? explode(',', $edited_page['users']) : array();
+$edited_page['groups'] = !empty($edited_page['groups']) ? explode(',', $edited_page['groups']) : array();
 $edited_page['homepage'] = $conf['additional_pages']['homepage'] == $edited_page['id'];
 $edited_page['standalone'] = ($edited_page['standalone'] == 'true');
Index: /extensions/AdditionalPages/admin/add_page.inc.php
===================================================================
--- /extensions/AdditionalPages/admin/add_page.inc.php	(revision 9275)
+++ /extensions/AdditionalPages/admin/add_page.inc.php	(revision 9310)
@@ -5,8 +5,17 @@
 if (!isset($edited_page))
 {
-  $edited_page = array();
-  $edited_page['id'] = 0;
-  $edited_page['homepage'] = false;
   $page_title = l10n('ap_create');
+  $default_user = get_default_user_info(true);
+  $edited_page = array(
+    'id'         => 0,
+    'title'      => '',
+    'permalink'  => '',
+    'homepage'   => false,
+    'standalone' => false,
+    'level'      => $default_user['level'],
+    'users'      => array('guest', 'generic', 'normal', 'admin', 'webmaster'),
+    'groups'     => array(),
+    'content'    => '',
+  );
 }
 
@@ -47,5 +56,5 @@
   if ($conf['additional_pages']['user_perm'])
   {
-    $user_access = !empty($_POST['users']) ? '"'.implode(',', $_POST['users']).'"' : '"admin"';
+    $user_access = !empty($_POST['users']) ? '"'.implode(',', $_POST['users']).'"' : '""';
   }
 
@@ -61,4 +70,5 @@
   users = '.$user_access.',
   groups = '.$group_access.',
+  level = '.$_POST['level'].',
   permalink = '.$permalink.',
   standalone = '.$standalone.'
@@ -71,8 +81,18 @@
       $query = 'SELECT MAX(ABS(pos)) AS pos FROM ' . ADD_PAGES_TABLE . ';';
       list($position) = array_from_query($query, 'pos');
-      
+
       $query = '
-INSERT INTO ' . ADD_PAGES_TABLE . ' ( pos , lang , title , content , users , groups , permalink, standalone)
-VALUES ('.($position+1).' , '.$language.' , "'.$_POST['title'].'" , "'.$_POST['ap_content'].'" , '.$user_access.' , '.$group_access.' , '.$permalink.' , '.$standalone.');';
+INSERT INTO '.ADD_PAGES_TABLE.' ( pos , lang , title , content , users , groups , level , permalink, standalone)
+VALUES (
+  '.($position+1).',
+  '.$language.',
+  "'.$_POST['title'].'",
+  "'.$_POST['ap_content'].'",
+  '.$user_access.',
+  '.$group_access.',
+  '.$_POST['level'].',
+  '.$permalink.',
+  '.$standalone.'
+);';
       pwg_query($query);
       $edited_page['id'] = mysql_insert_id();
@@ -90,9 +110,5 @@
     mkgetdir($conf['local_data_dir'].'/additional_pages_backup', MKGETDIR_DEFAULT&~MKGETDIR_DIE_ON_ERROR);
     $sav_file = @fopen($conf['local_data_dir'].'/additional_pages_backup/' . $edited_page['id'] . '.txt', "w");
-    @fwrite($sav_file, "Title: ".$_POST['title']."
-Permalink: ".$_POST['permalink']."
-Language: ".$_POST['lang']."
-
-" . $_POST['ap_content']);
+    @fwrite($sav_file, "Title: ".$_POST['title']."\nPermalink: ".$_POST['permalink']."\nLanguage: ".$_POST['lang']."\n\n" . $_POST['ap_content']);
     @fclose($sav_file);
 
@@ -105,9 +121,10 @@
 
   $edited_page['title'] = stripslashes($_POST['title']);
-  $edited_page['permalink'] = $_POST['permalink'];
+  $edited_page['permalink'] = stripslashes($_POST['permalink']);
   $edited_page['lang'] = $_POST['lang'];
   $edited_page['content'] = stripslashes($_POST['ap_content']);
-  $edited_page['groups'] = !empty($_POST['groups']) ? trim($group_access, '"') : '';
-  $edited_page['users'] = !empty($_POST['users']) ? trim($user_access, '"') :  '';
+  $edited_page['groups'] = !empty($_POST['groups']) ? $_POST['groups'] : array();
+  $edited_page['users'] = !empty($_POST['users']) ? $_POST['users'] :  array();
+  $edited_page['level'] = $_POST['level'];
   $edited_page['homepage'] = isset($_POST['homepage']);
   $edited_page['standalone'] = isset($_POST['standalone']);
@@ -129,42 +146,59 @@
   'SELECTED' => $selected));
 
-// Selection des groupes
+// Groups options
 if ($conf['additional_pages']['group_perm'])
 {
-	include_once(AP_PATH . 'admin/functions_groups.php');
-  $groups = !empty($edited_page['groups']) ? explode(',', $edited_page['groups']) : array();
-	$template->assign('GROUPSELECTION', get_html_groups_selection(get_all_groups(), 'groups', $groups));
-}
-
-// Selection des utilisateurs
+	$query = 'SELECT id, name FROM '.GROUPS_TABLE.' ORDER BY name ASC;';
+  $result = pwg_query($query);
+  $groups = array();
+  while ($row = pwg_db_fetch_assoc($result))
+  {
+    $groups[$row['id']] = $row['name'];
+  }
+  $template->assign(array(
+    'groups' => $groups,
+    'selected_groups' => $edited_page['groups'],
+    )
+  );
+}
+
+// Users options
 if ($conf['additional_pages']['user_perm'])
 {
-  $selected_users = array('guest', 'generic', 'normal');
-  if (isset($_GET['edit']) and isset($edited_page['users']))
-  {
-    $selected_users = explode(',', $edited_page['users']);
-  }
-
-	$template->assign('user_perm', array(
-      'GUEST' => in_array('guest', $selected_users) ? 'checked="checked"' : '',
-      'GENERIC' => in_array('generic', $selected_users) ? 'checked="checked"' : '',
-      'NORMAL' => in_array('normal', $selected_users) ? 'checked="checked"' : ''
+  $users_id = array('guest', 'generic', 'normal', 'admin', 'webmaster');
+  $users = array();
+  foreach ($users_id as $id)
+  {
+    $users[$id] = l10n('user_status_'.$id);
+  }
+  $template->assign(array(
+    'users' => $users,
+    'selected_users' => $edited_page['users'],
     )
   );
 }
 
-// Chargement des donn�es pour l'�dition
-if ($page['tab'] == 'edit_page')
-{
+// User level options
+if ($conf['additional_pages']['level_perm'])
+{
+  foreach ($conf['available_permission_levels'] as $level)
+  {
+    $level_options[$level] = l10n(sprintf('Level %d', $level));
+  }
   $template->assign(array(
-    'NAME' => $edited_page['title'],
-    'PERMALINK' => $edited_page['permalink'],
-    'HOMEPAGE' => $edited_page['homepage'],
-    'STANDALONE' => $edited_page['standalone'],
-    'CONTENT' => $edited_page['content']));
-}
-
-// Parametrage du template
-$template->assign('AP_TITLE', $page_title);
+    'level_perm' => $level_options,
+    'level_selected' => $edited_page['level']
+    )
+  );
+}
+
+// template output
+$template->assign(array(
+  'AP_TITLE' => $page_title,
+  'NAME' => $edited_page['title'],
+  'PERMALINK' => $edited_page['permalink'],
+  'HOMEPAGE' => $edited_page['homepage'],
+  'STANDALONE' => $edited_page['standalone'],
+  'CONTENT' => $edited_page['content']));
 
 $template->set_filename('plugin_admin_content', dirname(__FILE__) . '/template/add_page.tpl');
Index: /extensions/AdditionalPages/admin/config.inc.php
===================================================================
--- /extensions/AdditionalPages/admin/config.inc.php	(revision 9275)
+++ /extensions/AdditionalPages/admin/config.inc.php	(revision 9310)
@@ -16,4 +16,8 @@
     pwg_query('UPDATE '.ADD_PAGES_TABLE.' SET users = NULL;');
   }
+  if ($conf['additional_pages']['level_perm'] and !isset($_POST['level_perm']))
+  {
+    pwg_query('UPDATE '.ADD_PAGES_TABLE.' SET level = 0;');
+  }
   if ($conf['additional_pages']['group_perm'] and !isset($_POST['group_perm']))
   {
@@ -21,5 +25,5 @@
   }
 
-  $params = array('show_home', 'group_perm', 'user_perm');
+  $params = array('show_home', 'group_perm', 'user_perm', 'level_perm');
 
   foreach ($params as $param)
@@ -37,5 +41,5 @@
   conf_update_param('additional_pages', pwg_db_real_escape_string(serialize($conf['additional_pages'])));
 
-  if (isset($_POST['show_menu']) xor (!isset($mb_conf['mbAdditionalPages']) or $mb_conf['mbAdditionalPages'] == abs($mb_conf['mbAdditionalPages'])))
+  if (isset($_POST['show_menu']) xor (!isset($mb_conf['mbAdditionalPages']) or $mb_conf['mbAdditionalPages'] > 0))
   {
     if (!isset($mb_conf['mbAdditionalPages']))
Index: /extensions/AdditionalPages/admin/upgrade.inc.php
===================================================================
--- /extensions/AdditionalPages/admin/upgrade.inc.php	(revision 9310)
+++ /extensions/AdditionalPages/admin/upgrade.inc.php	(revision 9310)
@@ -0,0 +1,135 @@
+<?php
+
+if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
+
+global $prefixeTable, $conf;
+
+$query = 'SHOW FULL COLUMNS FROM ' . $prefixeTable . 'additionalpages;';
+$result = array_from_query($query, 'Collation');
+if (strpos($result[4], 'utf8') === false)
+{
+  $query = 'ALTER TABLE ' . $prefixeTable . 'additionalpages
+MODIFY COLUMN lang varchar(255) CHARACTER SET utf8 NOT NULL,
+MODIFY COLUMN title varchar(255) CHARACTER SET utf8 NOT NULL,
+MODIFY COLUMN text longtext CHARACTER SET utf8 NOT NULL,
+DEFAULT CHARACTER SET utf8;';
+
+  pwg_query($query);
+}
+
+if ($conf['additional_pages'] === false)
+{
+  load_conf_from_db('param = "additional_pages"');
+  $old_conf = explode ("," , $conf['additional_pages']);
+
+  $query = '
+ALTER TABLE ' . $prefixeTable . 'additionalpages
+CHANGE `id` `id` SMALLINT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
+CHANGE `pos` `pos` SMALLINT( 5 ) NULL DEFAULT NULL ,
+CHANGE `lang` `lang` VARCHAR( 255 ) NULL DEFAULT NULL ,
+CHANGE `text` `content` LONGTEXT NOT NULL ,
+ADD `users` VARCHAR( 255 ) NULL DEFAULT NULL ,
+ADD `groups` VARCHAR( 255 ) NULL DEFAULT NULL ,
+ADD `permalink` VARCHAR( 64 ) NULL DEFAULT NULL ,
+ADD `standalone` ENUM( "true", "false" ) NOT NULL DEFAULT "false";';
+  pwg_query($query);
+
+  $query = '
+SELECT id, pos, title, lang
+FROM '.$prefixeTable.'additionalpages
+ORDER BY pos ASC
+;';
+  $result = pwg_query($query);
+  while ($row = pwg_db_fetch_assoc($result))
+  {
+    $title = $row['title'];
+    $authorized_users = 'NULL';
+    $authorized_groups = 'NULL';
+
+    if ($old_conf[7] == 'on' and strpos($title , '/user_id='))
+    {
+      $array = explode('/user_id=' , $title);
+      $title = $array[0];
+      $authorized_users = !empty($array[1]) ? '"'.$array[1].'"' : '"admin"';
+    }
+    if ($old_conf[6] == 'on' and strpos($title , '/group_id='))
+    {
+      $array = explode('/group_id=' , $title);
+      $title = $array[0];
+      $authorized_groups = !empty($array[1]) ? '"'.$array[1].'"' : 'NULL';
+    }
+
+    $position = $row['pos'];
+    if ($row['pos'] === '0')
+      $position = '-100';
+    elseif (empty($row['pos']))
+      $position = '0';
+
+    $language = $row['lang'] != 'ALL' ? '"'.$row['lang'].'"' : 'NULL';
+
+    $query = '
+UPDATE '.$prefixeTable.'additionalpages
+SET title = "'.addslashes($title).'",
+    pos = '.$position.',
+    lang = '.$language.',
+    users = '.$authorized_users.',
+    groups = '.$authorized_groups.'
+WHERE id = '.$row['id'].'
+;';
+    pwg_query($query);
+  }
+
+  if ($old_conf[1] == 'off')
+  {
+    $mb_conf = @unserialize($conf['blk_menubar']);
+    if (!isset($mb_conf['mbAdditionalPages']))
+    {
+      $last = @abs(end($mb_conf));
+      $mb_conf['mbAdditionalPages'] = $last + 50;
+    }
+    $mb_conf['mbAdditionalPages'] = -1 * abs($mb_conf['mbAdditionalPages']);
+    conf_update_param('blk_menubar', pwg_db_real_escape_string(serialize($mb_conf)));
+  }
+
+  $new_conf = array(
+    'show_home' => @($old_conf[2] == 'on'),
+    'group_perm' => @($old_conf[6] == 'on'),
+    'user_perm' => @($old_conf[7] == 'on'),
+    'homepage' => null,
+    );
+
+  $languages = explode('/', $old_conf[0]);
+  $new_conf['languages'] = array();
+  foreach($languages as $language)
+  {
+    $array = explode(':', $language);
+    if (!isset($array[1])) $new_conf['languages']['default'] = $array[0];
+    else $new_conf['languages'][$array[0]] = $array[1];
+  }
+
+  $conf['additional_pages'] = $new_conf;
+
+  conf_update_param('additional_pages', pwg_db_real_escape_string(serialize($new_conf)));
+}
+
+if (!isset($conf['additional_pages']['level_perm']))
+{
+  $query = '
+ALTER TABLE ' . $prefixeTable . 'additionalpages
+ADD `level` TINYINT( 3 ) UNSIGNED NOT NULL DEFAULT "0" AFTER `groups`
+;';
+  pwg_query($query);
+
+  $query = '
+UPDATE ' . $prefixeTable . 'additionalpages
+SET users = CONCAT( users, ",admin,webmaster" )
+WHERE users IS NOT NULL
+;';
+  pwg_query($query);
+
+  $conf['additional_pages']['level_perm'] = false;
+
+  conf_update_param('additional_pages', pwg_db_real_escape_string(serialize($conf['additional_pages'])));
+}
+
+?>
Index: /extensions/AdditionalPages/admin/template/add_page.tpl
===================================================================
--- /extensions/AdditionalPages/admin/template/add_page.tpl	(revision 9275)
+++ /extensions/AdditionalPages/admin/template/add_page.tpl	(revision 9310)
@@ -2,17 +2,4 @@
 {html_head}{literal}
 <script type="text/javascript">
-function GereChkbox(conteneur, a_faire) {
-var blnEtat=null;
-var Chckbox = document.getElementById(conteneur).firstChild;
-	while (Chckbox!=null) {
-		if (Chckbox.nodeName=="INPUT")
-			if (Chckbox.getAttribute("type")=="checkbox") {
-				blnEtat = (a_faire=='0') ? false : (a_faire=='1') ? true : (document.getElementById(Chckbox.getAttribute("id")).checked) ? false : true;
-				document.getElementById(Chckbox.getAttribute("id")).checked=blnEtat;
-			}
-		Chckbox = Chckbox.nextSibling;
-	}
-}
-
 jQuery().ready( function () {
   jQuery('#title').focusout(function () {
@@ -24,7 +11,13 @@
   });
 });
-
 var auto_permalink = true;
 </script>
+<style type="text/css">
+#mainConf { margin:0; }
+.groups { margin-top:15px; }
+.groups input { margin-right:5px; }
+.groups label { margin-right:10px; display: inline-block; overflow: hidden; white-space: nowrap; line-height:1.3em;}
+.groups div { float:right; width:74%; line-height:1.3em;}
+</style>
 {/literal}{/html_head}
 
@@ -32,64 +25,79 @@
 	<h2>{$AP_TITLE}</h2>
 </div>
-<form method="post" action="" class="properties"  ENCTYPE="multipart/form-data">
-	<table>
-		<tr>
-			<td align="right"><label for="title">{'ap_page_name'|@translate}</label> &nbsp;&nbsp;</td>
-			<td><input type="text" size="60" maxlength="255" value="{if isset($NAME)}{$NAME}{/if}" name="title" id="title"/></td>
-		</tr>
-		<tr>
-			<td align="right"><label for="permalink">{'Permalink'|@translate}</label> &nbsp;&nbsp;</td>
-			<td><input type="text" size="60" value="{if isset($PERMALINK)}{$PERMALINK}{/if}" name="permalink" id="permalink"/></td>
-		</tr>
-		<tr>
-			<td align="right"><label for="lang">{'ap_page_lang'|@translate}</label> &nbsp;&nbsp;</td>
-			<td>
-        {html_options name=lang id=lang options=$lang.OPTIONS selected=$lang.SELECTED}
-			</td>
-		</tr>
-    <tr><td>&nbsp;</td></tr>
-		<tr>
-			<td align="right"><label for="homepage">{'ap_set_as_homepage'|@translate}</label> &nbsp;&nbsp;</td>
-			<td><input type="checkbox" name="homepage" id="homepage" {if isset($HOMEPAGE) and $HOMEPAGE}checked="checked"{/if}"/>
-      &nbsp; <i>{'ap_homepage_tip'|@translate}</i></td>
-		</tr>
-		<tr>
-			<td align="right"><label for="standalone">{'ap_standalone_page'|@translate}</label> &nbsp;&nbsp;</td>
-			<td><input type="checkbox" name="standalone" id="standalone" {if isset($STANDALONE) and $STANDALONE}checked="checked"{/if}"/>
-      &nbsp; <i>{'ap_standalone_tip'|@translate}</i></td>
-		</tr>
+<form method="post" action="" class="properties" id="configContent" ENCTYPE="multipart/form-data">
+<fieldset id="mainConf">
+  <legend></legend>
+	<ul>
+    <li>
+      <span class="property">
+        <label for="title">{'ap_page_name'|@translate}</label>
+      </span>
+      <input type="text" size="60" maxlength="255" value="{if isset($NAME)}{$NAME}{/if}" name="title" id="title"/>
+    </li>
 
-		{if isset($user_perm)}
-		<tr>
-			<td colspan="2"><hr></td>
-		</tr>
-		<tr>
-			<td align="right">{'ap_authorized_users'|@translate} &nbsp;&nbsp;</td>
-			<td>
-				<div id="users">
-				<input type="checkbox" name="users[]" id="guest" value="guest" {$user_perm.GUEST}><label>&nbsp;{'user_status_guest'|@translate}</label>
-				<input type="checkbox" name="users[]" id="generic" value="generic" {$user_perm.GENERIC}><label>&nbsp;{'user_status_generic'|@translate}</label>
-				<input type="checkbox" name="users[]" id="normal" value="normal" {$user_perm.NORMAL}><label>&nbsp;{'user_status_normal'|@translate}</label>
-				<input type="checkbox" name="users[]" id="admin" value="admin" checked="checked" disabled onclick="return false;"><label>&nbsp;{'user_status_admin'|@translate}</label>
-				</div>
-			</td>
-        </tr>
+    <li>
+      <span class="property">
+        <label for="permalink">{'Permalink'|@translate}</label>
+      </span>
+      <input type="text" size="60" value="{if isset($PERMALINK)}{$PERMALINK}{/if}" name="permalink" id="permalink"/>
+    </li>
+
+    <li>
+      <span class="property">
+        <label for="lang">{'ap_page_lang'|@translate}</label>
+      </span>
+      {html_options name=lang id=lang options=$lang.OPTIONS selected=$lang.SELECTED}
+    </li>
+
+    <li style="margin-top:15px;">
+      <span class="property">
+        <label for="homepage">{'ap_set_as_homepage'|@translate}</label>
+      </span>
+      <input type="checkbox" name="homepage" id="homepage" {if isset($HOMEPAGE) and $HOMEPAGE}checked="checked"{/if}/>
+      <i>{'ap_homepage_tip'|@translate}</i>
+    </li>
+
+    <li>
+      <span class="property">
+        <label for="standalone">{'ap_standalone_page'|@translate}</label>
+      </span>
+      <input type="checkbox" name="standalone" id="standalone" {if isset($STANDALONE) and $STANDALONE}checked="checked"{/if}/>
+      <i>{'ap_standalone_tip'|@translate}</i>
+    </li>
+
+    {if isset($level_perm)}
+    <li style="margin-top:15px;">
+      <span class="property">
+        <label for="privacy">{'Privacy level'|@translate}</label>
+      </span>
+      <select name="level" size="1">{html_options options=$level_perm selected=$level_selected id=privacy}</select>
+    </li>
     {/if}
 
-		{if !empty($GROUPSELECTION)}
-		<tr>
-			<td colspan="2"><hr></td>
-		</tr>
-		<tr>
-			<td align="right">{'ap_authorized_group'|@translate} &nbsp;&nbsp;</td>
-			<td>{$GROUPSELECTION}</td>
-        </tr>
-        <tr>
-        	<td></td>
-			<td><a href="javascript:GereChkbox('groups','1');">{'ap_select_all'|@translate}</a> / <a href="javascript:GereChkbox('groups','0');">{'ap_unselect_all'|@translate}</a>
-			<i>&nbsp;&nbsp; {'ap_guest'|@translate}</i></td>
-        </tr>
+    {if isset($users)}
+    <li class="groups" style="margin-top:15px;">
+      <span class="property">
+        <label for="users">{'ap_authorized_users'|@translate}</label>
+      </span>
+      {html_checkboxes options=$users selected=$selected_users name=users}
+    </li>
     {/if}
-</table>
+
+    {if isset($groups)}
+    <li class="groups" style="margin-top:15px;">
+      <span class="property">
+        <label for="groups">{'ap_authorized_group'|@translate}</label>
+      </span>
+      <div>{html_checkboxes options=$groups selected=$selected_groups name=groups}</div>
+    </li>
+    <li class="groups">
+      <div>
+        <a href="#" onClick="jQuery('input[name^=\'groups\']').attr('checked', 'checked');return false;">{'ap_select_all'|@translate}</a> /
+        <a href="#" onClick="jQuery('input[name^=\'groups\']').attr('checked', '');return false;">{'ap_unselect_all'|@translate}</a>
+      </div>
+    </li>
+    {/if}
+</ul>
+</fieldset>
 <table style="width:95%;">
 		<tr>
Index: /extensions/AdditionalPages/admin/template/config.tpl
===================================================================
--- /extensions/AdditionalPages/admin/template/config.tpl	(revision 9275)
+++ /extensions/AdditionalPages/admin/template/config.tpl	(revision 9310)
@@ -36,4 +36,11 @@
   <legend>{'ap_perm'|@translate}</legend>
   <ul>
+      <li>
+      <label>
+        <span class="property">{'ap_level_perm'|@translate}</span>
+        <input type="checkbox" name="level_perm" id="level_perm" value="on" {if $ap_conf.level_perm}checked="checked"{/if}/>
+      </label>
+    </li>
+
     <li>
       <label>
Index: /tensions/AdditionalPages/admin/upgrade_from_21.php
===================================================================
--- /extensions/AdditionalPages/admin/upgrade_from_21.php	(revision 9275)
+++ 	(revision )
@@ -1,98 +1,0 @@
-<?php
-
-if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
-
-global $prefixeTable, $conf;
-
-load_conf_from_db('param = "additional_pages"');
-$old_conf = explode ("," , $conf['additional_pages']);
-
-$query = 'ALTER TABLE ' . $prefixeTable . 'additionalpages
-CHANGE `id` `id` SMALLINT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
-CHANGE `pos` `pos` SMALLINT( 5 ) NULL DEFAULT NULL ,
-CHANGE `lang` `lang` VARCHAR( 255 ) NULL DEFAULT NULL ,
-CHANGE `text` `content` LONGTEXT NOT NULL ,
-ADD `users` VARCHAR( 255 ) NULL DEFAULT NULL ,
-ADD `groups` VARCHAR( 255 ) NULL DEFAULT NULL ,
-ADD `permalink` VARCHAR( 64 ) NULL DEFAULT NULL ,
-ADD `standalone` ENUM( "true", "false" ) NOT NULL DEFAULT "false";';
-pwg_query($query);
-
-$query = '
-SELECT id, pos, title, lang
-FROM '.$prefixeTable.'additionalpages
-ORDER BY pos ASC
-;';
-$result = pwg_query($query);
-while ($row = mysql_fetch_assoc($result))
-{
-  $title = $row['title'];
-  $authorized_users = 'NULL';
-  $authorized_groups = 'NULL';
-
-  if ($old_conf[7] == 'on' and strpos($title , '/user_id='))
-  {
-    $array = explode('/user_id=' , $title);
-    $title = $array[0];
-    $authorized_users = !empty($array[1]) ? '"'.$array[1].'"' : '"admin"';
-  }
-  if ($old_conf[6] == 'on' and strpos($title , '/group_id='))
-  {
-    $array = explode('/group_id=' , $title);
-    $title = $array[0];
-    $authorized_groups = !empty($array[1]) ? '"'.$array[1].'"' : 'NULL';
-  }
-
-  $position = $row['pos'];
-  if ($row['pos'] === '0')
-    $position = '-100';
-  elseif (empty($row['pos']))
-    $position = '0';
-
-  $language = $row['lang'] != 'ALL' ? '"'.$row['lang'].'"' : 'NULL';
-
-  $query = '
-UPDATE '.$prefixeTable.'additionalpages
-SET title = "'.addslashes($title).'",
-    pos = '.$position.',
-    lang = '.$language.',
-    users = '.$authorized_users.',
-    groups = '.$authorized_groups.'
-WHERE id = '.$row['id'].'
-;';
-  pwg_query($query);
-}
-
-if ($old_conf[1] == 'off')
-{
-  $mb_conf = @unserialize($conf['blk_menubar']);
-  if (!isset($mb_conf['mbAdditionalPages']))
-  {
-    $last = @abs(end($mb_conf));
-    $mb_conf['mbAdditionalPages'] = $last + 50;
-  }
-  $mb_conf['mbAdditionalPages'] = -1 * abs($mb_conf['mbAdditionalPages']);
-  conf_update_param('blk_menubar', pwg_db_real_escape_string(serialize($mb_conf)));
-}
-
-$new_conf = array(
-  'show_home' => @($old_conf[2] == 'on'),
-  'group_perm' => @($old_conf[6] == 'on'),
-  'user_perm' => @($old_conf[7] == 'on'),
-  'homepage' => null,
-  );
-
-$languages = explode('/', $old_conf[0]);
-$new_conf['languages'] = array();
-foreach($languages as $language)
-{
-  $array = explode(':', $language);
-  if (!isset($array[1])) $new_conf['languages']['default'] = $array[0];
-  else $new_conf['languages'][$array[0]] = $array[1];
-}
-
-$conf['additional_pages'] = $new_conf;
-
-conf_update_param('additional_pages', pwg_db_real_escape_string(serialize($new_conf)));
-
-?>
Index: /tensions/AdditionalPages/admin/functions_groups.php
===================================================================
--- /extensions/AdditionalPages/admin/functions_groups.php	(revision 3609)
+++ 	(revision )
@@ -1,69 +1,0 @@
-<?php
-
-function get_html_groups_selection(
-  $groups,
-  $fieldname,
-  $selecteds = array()
-  )
-{
-  global $conf;
-  if (count ($groups) == 0 )
-  {
-    return '';
-  }
-  $output = '<div id="'.$fieldname.'">';
-  $id = 1;
-  foreach ($groups as $group)
-  {
-    $output.=
-
-      '<input type="checkbox" name="'.$fieldname.'[]"'
-      .' id="'.$id++.'"'
-      .' value="'.$group['id'].'"'
-      ;
-
-    if (in_array($group['id'], $selecteds))
-    {
-      $output.= ' checked="checked"';
-    }
-
-    $output.=
-      '><label>'
-      .'&nbsp;'. $group['name']
-      .'</label>'
-      ."\n"
-      ;
-  }
-  $output.= '</div>';
-
-  return $output;
-}
-
-
-function get_all_groups()
-{
-$query = '
-SELECT id, name
-  FROM '.GROUPS_TABLE.'
-  ORDER BY name ASC
-;';
-$result = pwg_query($query);
-
-$groups = array();
-  while ($row = mysql_fetch_assoc($result))
-  {
-    array_push($groups, $row);
-  }
-
-  usort($groups, 'groups_name_compare');
-
-  return $groups;
-}
-
-
-function groups_name_compare($a, $b)
-{
-  return strcmp(strtolower($a['name']), strtolower($b['name']));
-}
-
-?>
Index: /extensions/AdditionalPages/additional_page.php
===================================================================
--- /extensions/AdditionalPages/additional_page.php	(revision 9272)
+++ /extensions/AdditionalPages/additional_page.php	(revision 9310)
@@ -8,11 +8,9 @@
 $identifier = $page['ap_homepage'] ? $conf['additional_pages']['homepage'] : $tokens[1];
 
-load_language('plugin.lang.php', AP_PATH);
-
 if (function_exists('get_extended_desc'))
   add_event_handler('AP_render_content', 'get_extended_desc');
 
-// R�cup�ration des donn�es de la page
-$query = 'SELECT id, title , content, users, groups, permalink, standalone
+// Retrieve page data
+$query = 'SELECT id, title , content, users, groups, level, permalink, standalone
 FROM ' . ADD_PAGES_TABLE . '
 ';
@@ -21,5 +19,5 @@
   'WHERE permalink = "'.$identifier.'";';
 
-$row = mysql_fetch_assoc(pwg_query($query));
+$row = pwg_db_fetch_assoc(pwg_query($query));
 
 if (empty($row))
@@ -47,29 +45,39 @@
 );
 
-// Utilisateurs autoris�s
-if (!empty($row['users']))
+if (!is_admin() and !$page['ap_homepage'])
 {
-  $authorized_users = explode(',', $row['users']);
-  if (!is_admin() and $conf['additional_pages']['user_perm'] and !in_array($user['status'], $authorized_users))
+  // authorized users
+  if (!empty($row['users']))
   {
-    if ($page['ap_homepage']) return;
-  	page_forbidden(l10n('You are not authorized to access the requested page'));
+    $authorized_users = explode(',', $row['users']);
+    if (!is_admin() and $conf['additional_pages']['user_perm'] and !in_array($user['status'], $authorized_users))
+    {
+      if ($page['ap_homepage']) return;
+      page_forbidden(l10n('You are not authorized to access the requested page'));
+    }
+  }
+
+  // authorized groups
+  if (!empty($row['groups']))
+  {
+    $q = 'SELECT *
+  FROM ' . USER_GROUP_TABLE . '
+  WHERE user_id = ' . $user['id'] . ' AND group_id IN (' . $row['groups'] . ');';
+    $array = mysql_fetch_array(pwg_query($q));
+    if (!is_admin() and $conf['additional_pages']['group_perm'] and empty($array))
+    {
+      if ($page['ap_homepage']) return;
+      page_forbidden(l10n('You are not authorized to access the requested page'));
+    }
+  }
+
+  // authorized level
+  if ($user['level'] < $row['level'])
+  {
+    page_forbidden(l10n('You are not authorized to access the requested page'));
   }
 }
 
-// Groupe autoris�
-if (!empty($row['groups']))
-{
-  $q = 'SELECT *
-FROM ' . USER_GROUP_TABLE . '
-WHERE user_id = ' . $user['id'] . ' AND group_id IN (' . $row['groups'] . ');';
-  $array = mysql_fetch_array(pwg_query($q));
-  if (!is_admin() and $conf['additional_pages']['group_perm'] and empty($array))
-  {
-    if ($page['ap_homepage']) return;
-  	page_forbidden(l10n('You are not authorized to access the requested page'));
-  }
-}
-
+// Display standalone page
 if ($page['additional_page']['standalone'])
 {
Index: /extensions/AdditionalPages/template/menubar_additional_pages.tpl
===================================================================
--- /extensions/AdditionalPages/template/menubar_additional_pages.tpl	(revision 9310)
+++ /extensions/AdditionalPages/template/menubar_additional_pages.tpl	(revision 9310)
@@ -0,0 +1,10 @@
+<dt>{$block->get_title()}</dt>
+  <dd>
+    <ul>
+    {foreach from=$block->data item=data}
+      <li>
+        <a href="{$data.URL}">{$data.LABEL}</a>
+      </li>
+    {/foreach}
+    </ul>
+  </dd>
Index: /tensions/AdditionalPages/template/AdditionalPages_menu.tpl
===================================================================
--- /extensions/AdditionalPages/template/AdditionalPages_menu.tpl	(revision 6227)
+++ 	(revision )
@@ -1,10 +1,0 @@
-<dt>{$block->get_title()}</dt>
-  <dd>
-    <ul>
-    {foreach from=$block->data item=data}
-      <li>
-        <a href="{$data.URL}">{$data.LABEL}</a>
-      </li>
-    {/foreach}
-    </ul>
-  </dd>
Index: /extensions/AdditionalPages/maintain.inc.php
===================================================================
--- /extensions/AdditionalPages/maintain.inc.php	(revision 9272)
+++ /extensions/AdditionalPages/maintain.inc.php	(revision 9310)
@@ -17,4 +17,5 @@
 users VARCHAR( 255 ) NULL DEFAULT NULL ,
 groups VARCHAR( 255 ) NULL DEFAULT NULL ,
+level TINYINT( 3 ) UNSIGNED NOT NULL DEFAULT "0" ,
 permalink VARCHAR( 64 ) NULL DEFAULT NULL ,
 standalone ENUM( "true", "false" ) NOT NULL DEFAULT "false" ,
@@ -31,4 +32,5 @@
       'languages' => array('default' => 'Additional Pages'),
       'show_home' => true,
+      'level_perm' => false,
       'group_perm' => false,
       'user_perm' => false,
@@ -56,12 +58,4 @@
     pwg_query('ALTER TABLE ' . HISTORY_TABLE . ' CHANGE section section ' . $type . ' DEFAULT NULL');
   }
-  
-  // Check if upgrade is needed
-  $query = 'SHOW FULL COLUMNS FROM ' . $prefixeTable . 'additionalpages;';
-  $result = array_from_query($query, 'Collation');
-  if (strpos($result[4], 'utf8') === false)
-  {
-    upgrade_ap_from_17();
-  }
 }
 
@@ -77,16 +71,3 @@
 }
 
-function upgrade_ap_from_17()
-{
-  global $prefixeTable;
-
-  $query = 'ALTER TABLE ' . $prefixeTable . 'additionalpages
-MODIFY COLUMN lang varchar(255) CHARACTER SET utf8 NOT NULL,
-MODIFY COLUMN title varchar(255) CHARACTER SET utf8 NOT NULL,
-MODIFY COLUMN text longtext CHARACTER SET utf8 NOT NULL,
-DEFAULT CHARACTER SET utf8;';
-
-  pwg_query($query);
-}
-
 ?>
Index: /tensions/AdditionalPages/index_menu.php
===================================================================
--- /extensions/AdditionalPages/index_menu.php	(revision 9275)
+++ 	(revision )
@@ -1,88 +1,0 @@
-<?php
-
-if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
-
-add_event_handler('blockmanager_register_blocks', 'register_ap_menubar_blocks');
-add_event_handler('blockmanager_apply', 'ap_apply');
-
-function register_ap_menubar_blocks( $menu_ref_arr )
-{
-  $menu = & $menu_ref_arr[0];
-  if ($menu->get_id() != 'menubar')
-    return;
-  $menu->register_block( new RegisteredBlock( 'mbAdditionalPages', 'Additional Pages', 'P@t'));
-}
-
-function ap_apply($menu_ref_arr)
-{
-  global $template, $conf, $user, $lang;
-
-  $menu = & $menu_ref_arr[0];
-  
-  if ( ($block = $menu->get_block( 'mbAdditionalPages' ) ) != null )
-  {
-    $template->set_template_dir(AP_PATH.'template/');
-
-    load_language('plugin.lang', AP_PATH);
-
-    $data = array();
-
-    // Recup�ration des groupes de l'utilisateur
-    $q = 'SELECT group_id FROM ' . USER_GROUP_TABLE . ' WHERE user_id = ' . $user['id'] . ';';
-    $result = pwg_query($q);
-    $groups = array();
-    while ($row = mysql_fetch_assoc($result))
-    {
-      array_push($groups, $row['group_id']);
-    }
-  
-    // R�cup�ration des pages
-    $q = 'SELECT id, pos, title, users, groups, permalink
-FROM ' . ADD_PAGES_TABLE . '
-WHERE (lang = "' . $user['language'] . '" OR lang IS NULL)
-  AND pos >= 0
-ORDER BY pos ASC, id ASC
-;';
-    $result = pwg_query($q);
-
-    while ($row = mysql_fetch_assoc($result))
-    {
-      $authorized_users = array();
-      $authorized_groups = array();
-      if (!empty($row['users']))
-      {
-        $authorized_users = explode(',', $row['users']);
-      }
-      if (!empty($row['groups']))
-      {
-        $auth = explode(',', $row['groups']);
-        $authorized_groups = array_intersect($groups, $auth);
-      }
-      if (is_admin() or (
-        (!$conf['additional_pages']['group_perm'] or empty($row['groups']) or !empty($authorized_groups)) and
-        (!$conf['additional_pages']['user_perm'] or empty($row['users']) or in_array($user['status'], $authorized_users))))
-      {
-        $url = make_index_url();
-        if ($row['id'] != $conf['additional_pages']['homepage'])
-        {
-          $url .= '/page/'.(isset($row['permalink']) ? $row['permalink'] : $row['id']);
-        }
-        array_push($data, array(
-          'URL' => $url,
-          'LABEL' => $row['title']));
-      }
-    }
-
-    if (!empty($data))
-    {
-      $block->set_title(
-        isset($conf['additional_pages']['languages'][$user['language']]) ?
-          $conf['additional_pages']['languages'][$user['language']] :
-          @$conf['additional_pages']['languages']['default']
-        );
-      $block->template = 'AdditionalPages_menu.tpl';
-      $block->data = $data;
-    }
-  }
-}
-?>
