Changeset 3


Ignore:
Timestamp:
Nov 14, 2011, 11:17:15 PM (8 years ago)
Author:
dj3c1t
Message:

passage a Fluxbb 1.4.7

Location:
branches/rsr.v5.1.dev/web
Files:
159 added
2 deleted
127 edited

Legend:

Unmodified
Added
Removed
  • branches/rsr.v5.1.dev/web/app/data/modules/data_users.php

    r1 r3  
    9999       'username=\''.$db->escape($form_username).'\''
    100100      :'LOWER(username)=LOWER(\''.$db->escape($form_username).'\')';
     101      $_sql =
     102       'SELECT id, group_id, password'
     103      .' FROM '.$db->prefix.'users'
     104      .' WHERE '.$username_sql;
    101105      $result = $db->query
    102       ( 'SELECT id, group_id, password, save_pass'
    103        .' FROM '.$db->prefix.'users'
    104        .' WHERE '.$username_sql
     106      ( $_sql
    105107      ) or error('Impossible de retrouver les informations utilisateur', __FILE__, __LINE__, $db->error());
    106       list($user_id, $group_id, $db_password_hash, $save_pass) = $db->fetch_row($result);
     108      list($user_id, $group_id, $db_password_hash) = $db->fetch_row($result);
     109      $save_pass = 1;
    107110      $authorized = false;
    108111      if(!empty($db_password_hash))
  • branches/rsr.v5.1.dev/web/app/out/dist/content/set_artistes/e_add_user_artiste.php

    r1 r3  
    3232    </td>
    3333  </tr>
    34   <tr>
     34  <!-- tr>
    3535    <td>
    3636      <p><strong>dossier personnel</p></strong>
     
    3838      <input type="text" name="dossier_personnel" size="50" value="" />
    3939    </td>
    40   </tr>
     40  </tr -->
    4141  <tr>
    4242    <td colspan="2" align="right">
  • branches/rsr.v5.1.dev/web/app/out/dist/content/set_artistes/e_set_user_artiste.php

    r1 r3  
    3636    </td>
    3737  </tr>
    38   <tr>
     38  <!-- tr>
    3939    <td>
    4040      <p><strong>dossier personnel</p></strong>
     
    4242      <input type="text" name="dossier_personnel" size="50" value="<?= $env->out["artiste"]["dossier_personnel"] ?>" />
    4343    </td>
    44   </tr>
     44  </tr -->
    4545  <tr>
    4646    <td colspan="2" align="right">
  • branches/rsr.v5.1.dev/web/install/app/01_utils.php

    r1 r3  
    1313  }
    1414
     15  function error($message) {}
     16
    1517?>
  • branches/rsr.v5.1.dev/web/install/dist/sql/content.sql

    r2 r3  
    8888INSERT INTO `[prefix]contenus` (`id`, `nom`, `categorie`, `titre`, `description`, `contenu`, `auteur_creation`, `date_creation`, `auteur_modification`, `date_modification`, `date_publication`, `public`, `ordre`) VALUES
    8989(919, '', 1, 'Nouvelle installation', '', '<p>Bienvenue sur votre installation de rsr v.5.</p>\r\n<p>Pensez &agrave; effacer le dossier <strong>install</strong></p>\r\n<p>&nbsp;</p>\r\n<p>Bonnes publications !</p>', 186, '2011-09-04 15:03:09', 186, '2011-11-12 22:07:24', '2011-09-04 00:00:00', 1, NULL);
    90 
    9190# --
    9291INSERT INTO `[prefix]formats` (`id`, `nom`, `content_type`) VALUES
     
    120119# --
    121120INSERT INTO `[prefix]pun_config` (`conf_name`, `conf_value`) VALUES
    122 ('o_cur_version', '1.2.10'),
     121('o_cur_version', '1.4.7'),
    123122('o_cur_version_fr', '1.2.10'),
    124123('o_board_title', 'Forums'),
    125124('o_board_desc', NULL),
    126 ('o_server_timezone', '0'),
     125('o_default_timezone', '0'),
    127126('o_time_format', 'H:i:s'),
    128127('o_date_format', 'd-m-Y'),
    129 ('o_timeout_visit', '600'),
     128('o_timeout_visit', '1800'),
    130129('o_timeout_online', '300'),
    131130('o_redirect_delay', '1'),
     
    163162('o_admin_email', '[email_admin]'),
    164163('o_webmaster_email', '[email_admin]'),
    165 ('o_subscriptions', '1'),
     164('o_topic_subscriptions', '1'),
    166165('o_smtp_host', NULL),
    167166('o_smtp_user', NULL),
     
    177176('o_maintenance', '0'),
    178177('o_maintenance_message', 'Les forums sont temporairement fermés pour des raisons de maintenance. Nous vous prions de bien vouloir nous excuser pour cette gÚne. Veuillez essayer à nouveau d''ici quelques minutes.<br />\n<br />\nRevolution Sound Records'),
    179 ('p_mod_edit_users', '1'),
    180 ('p_mod_rename_users', '0'),
    181 ('p_mod_change_passwords', '0'),
    182 ('p_mod_ban_users', '0'),
     178('o_forum_subscriptions', '1'),
    183179('p_message_bbcode', '1'),
    184180('p_message_img_tag', '1'),
     
    192188('p_allow_banned_email', '1'),
    193189('p_allow_dupe_email', '0'),
    194 ('p_force_guest_email', '1');
     190('p_force_guest_email', '1'),
     191('o_database_revision', '15'),
     192('o_searchindex_revision', '2'),
     193('o_parser_revision', '2'),
     194('o_default_email_setting', '1'),
     195('o_topic_views', '1'),
     196('o_signatures', '1'),
     197('o_smtp_ssl', '0'),
     198('o_default_dst', '0'),
     199('o_quote_depth', '3'),
     200('o_feed_type', '2'),
     201('o_feed_ttl', '0');
    195202# --
    196203INSERT INTO `[prefix]pun_forum_perms` (`group_id`, `forum_id`, `read_forum`, `post_replies`, `post_topics`) VALUES
     
    220227(6, 80, 0, 0, 0);
    221228# --
    222 INSERT INTO `[prefix]pun_groups` (`g_id`, `g_title`, `g_user_title`, `g_read_board`, `g_post_replies`, `g_post_topics`, `g_post_polls`, `g_edit_posts`, `g_delete_posts`, `g_delete_topics`, `g_set_title`, `g_search`, `g_search_users`, `g_edit_subjects_interval`, `g_post_flood`, `g_search_flood`) VALUES
    223 (1, 'Admin', 'Admin', 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0),
    224 (2, 'Modérateurs', 'Modérateur', 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0),
    225 (3, 'Touriste', NULL, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0),
    226 (4, 'Membres', NULL, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 300, 60, 30),
    227 (5, 'Artiste', 'Artiste', 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 10, 10),
    228 (6, '100 eme Membre', '100 eme Membre', 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 300, 60, 30);
    229 # --
    230 INSERT INTO `[prefix]pun_online` (`user_id`, `ident`, `logged`, `idle`) VALUES
    231 (1, '192.168.10.13', 1321118546, 0);
     229INSERT INTO `[prefix]pun_groups` (`g_id`, `g_title`, `g_user_title`, `g_moderator`, `g_mod_edit_users`, `g_mod_rename_users`, `g_mod_change_passwords`, `g_mod_ban_users`, `g_read_board`, `g_view_users`, `g_post_replies`, `g_post_topics`, `g_edit_posts`, `g_delete_posts`, `g_delete_topics`, `g_set_title`, `g_search`, `g_search_users`, `g_send_email`, `g_post_flood`, `g_search_flood`, `g_email_flood`, `g_report_flood`) VALUES
     230(1, 'Admin', 'Admin', 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0),
     231(2, 'Modérateurs', 'Modérateur', 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0),
     232(3, 'Touriste', NULL, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0),
     233(4, 'Membres', NULL, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 60, 30, 60, 60),
     234(5, 'Artiste', 'Artiste', 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 10, 10, 60, 60),
     235(6, '100 eme Membre', '100 eme Membre', 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 60, 30, 60, 60);
     236# --
     237INSERT INTO `[prefix]pun_online` (`user_id`, `ident`, `logged`, `idle`, `last_post`, `last_search`) VALUES
     238(1, '192.168.10.13', 1321306351, 0, NULL, NULL);
    232239# --
    233240INSERT INTO `[prefix]pun_ranks` (`id`, `rank`, `min_posts`) VALUES
     
    254261(87, 'terminator.png', ':terminator:', 0);
    255262# --
    256 INSERT INTO `[prefix]pun_users` (`id`, `group_id`, `username`, `password`, `email`, `title`, `realname`, `url`, `jabber`, `icq`, `msn`, `aim`, `yahoo`, `location`, `use_avatar`, `signature`, `disp_topics`, `disp_posts`, `email_setting`, `save_pass`, `notify_with_post`, `show_smilies`, `show_img`, `show_img_sig`, `show_avatars`, `show_sig`, `timezone`, `language`, `style`, `num_posts`, `last_post`, `registered`, `registration_ip`, `last_visit`, `admin_note`, `activate_string`, `activate_key`) VALUES
    257 (186, 1, 'admin', '90f1b3c6cf62b05606b215265803f553e22bc657', '[email_admin]', NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 1, 1, 0, 1, 1, 1, 1, 1, 0, 'French', 'Rsr', 1382, 1321043538, 1156702867, '82.243.194.97', 1321118443, NULL, NULL, NULL),
    258 (1, 3, 'Invité', 'Invité', 'Invité', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 1, 1, 0, 1, 1, 1, 1, 1, 0, 'English', 'Oxygen', 0, NULL, 0, '0.0.0.0', 0, NULL, NULL, NULL);
     263INSERT INTO `[prefix]pun_users` (`id`, `group_id`, `username`, `password`, `email`, `title`, `realname`, `url`, `jabber`, `icq`, `msn`, `aim`, `yahoo`, `location`, `signature`, `disp_topics`, `disp_posts`, `email_setting`, `notify_with_post`, `auto_notify`, `show_smilies`, `show_img`, `show_img_sig`, `show_avatars`, `show_sig`, `timezone`, `dst`, `date_format`, `time_format`, `language`, `style`, `num_posts`, `last_post`, `last_search`, `last_email_sent`, `last_report_sent`, `registered`, `registration_ip`, `last_visit`, `admin_note`, `activate_string`, `activate_key`) VALUES
     264(186, 1, 'admin', '90f1b3c6cf62b05606b215265803f553e22bc657', '[email_admin]', NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 'French', 'Rsr', 1382, 1321043538, NULL, NULL, NULL, 1156702867, '82.243.194.97', 1321305012, NULL, NULL, NULL),
     265(1, 3, 'Invité', 'Invité', 'Invité', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 'English', 'Oxygen', 0, NULL, NULL, NULL, NULL, 0, '0.0.0.0', 0, NULL, NULL, NULL);
  • branches/rsr.v5.1.dev/web/install/dist/sql/raz.sql

    r1 r3  
    2727DROP TABLE IF EXISTS `[prefix]playlists`;
    2828# --
    29 DROP TABLE IF EXISTS `[prefix]playlis[prefix]download`;
     29DROP TABLE IF EXISTS `[prefix]playlist_download`;
    3030# --
    3131DROP TABLE IF EXISTS `[prefix]pun_bans`;
     
    4040# --
    4141DROP TABLE IF EXISTS `[prefix]pun_forum_perms`;
     42# --
     43DROP TABLE IF EXISTS `[prefix]pun_forum_subscriptions`;
    4244# --
    4345DROP TABLE IF EXISTS `[prefix]pun_groups`;
     
    5961DROP TABLE IF EXISTS `[prefix]pun_smilies`;
    6062# --
    61 DROP TABLE IF EXISTS `[prefix]pun_subscriptions`;
     63DROP TABLE IF EXISTS `[prefix]pun_topics`;
    6264# --
    63 DROP TABLE IF EXISTS `[prefix]pun_topics`;
     65DROP TABLE IF EXISTS `[prefix]pun_topic_subscriptions`;
    6466# --
    6567DROP TABLE IF EXISTS `[prefix]pun_users`;
  • branches/rsr.v5.1.dev/web/install/dist/sql/tables.sql

    r1 r3  
    1 CREATE TABLE IF NOT EXISTS `[prefix]albums` (
     1CREATE TABLE `[prefix]albums` (
    22  `id` int(11) NOT NULL AUTO_INCREMENT,
    33  `id_artiste` int(11) NOT NULL,
     
    1616) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
    1717# --
    18 CREATE TABLE IF NOT EXISTS `[prefix]artistes` (
     18CREATE TABLE `[prefix]artistes` (
    1919  `id` int(11) NOT NULL AUTO_INCREMENT,
    2020  `nom` varchar(255) DEFAULT NULL,
     
    4040) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
    4141# --
    42 CREATE TABLE IF NOT EXISTS `[prefix]artistes_admins` (
     42CREATE TABLE `[prefix]artistes_admins` (
    4343  `id_artiste` int(11) NOT NULL,
    4444  `pun_user` int(11) NOT NULL,
     
    4646) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    4747# --
    48 CREATE TABLE IF NOT EXISTS `[prefix]boxes` (
     48CREATE TABLE `[prefix]boxes` (
    4949  `id` int(11) NOT NULL AUTO_INCREMENT,
    5050  `nom` varchar(64) DEFAULT NULL,
     
    6363) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=162 ;
    6464# --
    65 CREATE TABLE IF NOT EXISTS `[prefix]categories` (
     65CREATE TABLE `[prefix]categories` (
    6666  `id` int(11) NOT NULL AUTO_INCREMENT,
    6767  `nom` varchar(64) DEFAULT NULL,
     
    7474) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=103 ;
    7575# --
    76 CREATE TABLE IF NOT EXISTS `[prefix]categories_tree` (
     76CREATE TABLE `[prefix]categories_tree` (
    7777  `parent` int(11) NOT NULL,
    7878  `child` int(11) NOT NULL,
     
    8080) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    8181# --
    82 CREATE TABLE IF NOT EXISTS `[prefix]concerts` (
     82CREATE TABLE `[prefix]concerts` (
    8383  `id` int(11) NOT NULL AUTO_INCREMENT,
    8484  `id_artiste` int(11) DEFAULT NULL,
     
    9494) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
    9595# --
    96 CREATE TABLE IF NOT EXISTS `[prefix]configuration` (
     96CREATE TABLE `[prefix]configuration` (
    9797  `key` varchar(255) NOT NULL,
    9898  `value` text NOT NULL,
     
    100100) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    101101# --
    102 CREATE TABLE IF NOT EXISTS `[prefix]contenus` (
     102CREATE TABLE `[prefix]contenus` (
    103103  `id` int(11) NOT NULL AUTO_INCREMENT,
    104104  `nom` varchar(64) DEFAULT NULL,
     
    117117) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=935 ;
    118118# --
    119 CREATE TABLE IF NOT EXISTS `[prefix]downloads` (
     119CREATE TABLE `[prefix]downloads` (
    120120  `id` int(11) NOT NULL AUTO_INCREMENT,
    121121  `id_artiste` int(11) DEFAULT NULL,
     
    131131) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
    132132# --
    133 CREATE TABLE IF NOT EXISTS `[prefix]download_urls` (
     133CREATE TABLE `[prefix]download_urls` (
    134134  `id` int(11) NOT NULL AUTO_INCREMENT,
    135135  `id_download` int(11) DEFAULT NULL,
     
    143143) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
    144144# --
    145 CREATE TABLE IF NOT EXISTS `[prefix]formats` (
     145CREATE TABLE `[prefix]formats` (
    146146  `id` int(11) NOT NULL AUTO_INCREMENT,
    147147  `nom` varchar(32) DEFAULT NULL,
     
    150150) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ;
    151151# --
    152 CREATE TABLE IF NOT EXISTS `[prefix]licences` (
     152CREATE TABLE `[prefix]licences` (
    153153  `id` int(11) NOT NULL AUTO_INCREMENT,
    154154  `nom` varchar(255) NOT NULL DEFAULT '',
     
    158158) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=17 ;
    159159# --
    160 CREATE TABLE IF NOT EXISTS `[prefix]playlists` (
     160CREATE TABLE `[prefix]playlists` (
    161161  `id` int(11) NOT NULL AUTO_INCREMENT,
    162162  `pun_user` int(11) NOT NULL,
     
    167167) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
    168168# --
    169 CREATE TABLE IF NOT EXISTS `[prefix]playlist_download` (
     169CREATE TABLE `[prefix]playlist_download` (
    170170  `id` int(11) NOT NULL,
    171171  `id_download` int(11) NOT NULL,
     
    173173) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    174174# --
    175 CREATE TABLE IF NOT EXISTS `[prefix]pun_bans` (
     175CREATE TABLE `[prefix]pun_bans` (
    176176  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    177177  `username` varchar(200) DEFAULT NULL,
    178178  `ip` varchar(255) DEFAULT NULL,
    179   `email` varchar(50) DEFAULT NULL,
     179  `email` varchar(80) DEFAULT NULL,
    180180  `message` varchar(255) DEFAULT NULL,
    181181  `expire` int(10) unsigned DEFAULT NULL,
    182   PRIMARY KEY (`id`)
     182  `ban_creator` int(10) unsigned NOT NULL DEFAULT '0',
     183  PRIMARY KEY (`id`),
     184  KEY `[prefix]pun_bans_username_idx` (`username`(25))
    183185) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ;
    184186# --
    185 CREATE TABLE IF NOT EXISTS `[prefix]pun_categories` (
     187CREATE TABLE `[prefix]pun_categories` (
    186188  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    187189  `cat_name` varchar(80) NOT NULL DEFAULT 'New Category',
     
    190192) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=22 ;
    191193# --
    192 CREATE TABLE IF NOT EXISTS `[prefix]pun_censoring` (
     194CREATE TABLE `[prefix]pun_censoring` (
    193195  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    194196  `search_for` varchar(60) NOT NULL DEFAULT '',
     
    197199) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
    198200# --
    199 CREATE TABLE IF NOT EXISTS `[prefix]pun_config` (
     201CREATE TABLE `[prefix]pun_config` (
    200202  `conf_name` varchar(255) NOT NULL DEFAULT '',
    201203  `conf_value` text,
     
    203205) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    204206# --
    205 CREATE TABLE IF NOT EXISTS `[prefix]pun_forums` (
     207CREATE TABLE `[prefix]pun_forums` (
    206208  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    207209  `forum_name` varchar(80) NOT NULL DEFAULT 'New forum',
     
    220222) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=103 ;
    221223# --
    222 CREATE TABLE IF NOT EXISTS `[prefix]pun_forum_perms` (
     224CREATE TABLE `[prefix]pun_forum_perms` (
    223225  `group_id` int(10) NOT NULL DEFAULT '0',
    224226  `forum_id` int(10) NOT NULL DEFAULT '0',
     
    229231) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    230232# --
    231 CREATE TABLE IF NOT EXISTS `[prefix]pun_groups` (
     233CREATE TABLE `[prefix]pun_forum_subscriptions` (
     234  `user_id` int(10) unsigned NOT NULL DEFAULT '0',
     235  `forum_id` int(10) unsigned NOT NULL DEFAULT '0',
     236  PRIMARY KEY (`user_id`,`forum_id`)
     237) ENGINE=MyISAM DEFAULT CHARSET=utf8;
     238# --
     239CREATE TABLE `[prefix]pun_groups` (
    232240  `g_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    233241  `g_title` varchar(50) NOT NULL DEFAULT '',
    234242  `g_user_title` varchar(50) DEFAULT NULL,
     243  `g_moderator` tinyint(1) NOT NULL DEFAULT '0',
     244  `g_mod_edit_users` tinyint(1) NOT NULL DEFAULT '0',
     245  `g_mod_rename_users` tinyint(1) NOT NULL DEFAULT '0',
     246  `g_mod_change_passwords` tinyint(1) NOT NULL DEFAULT '0',
     247  `g_mod_ban_users` tinyint(1) NOT NULL DEFAULT '0',
    235248  `g_read_board` tinyint(1) NOT NULL DEFAULT '1',
     249  `g_view_users` tinyint(1) NOT NULL DEFAULT '1',
    236250  `g_post_replies` tinyint(1) NOT NULL DEFAULT '1',
    237251  `g_post_topics` tinyint(1) NOT NULL DEFAULT '1',
    238   `g_post_polls` tinyint(1) NOT NULL DEFAULT '1',
    239252  `g_edit_posts` tinyint(1) NOT NULL DEFAULT '1',
    240253  `g_delete_posts` tinyint(1) NOT NULL DEFAULT '1',
     
    243256  `g_search` tinyint(1) NOT NULL DEFAULT '1',
    244257  `g_search_users` tinyint(1) NOT NULL DEFAULT '1',
    245   `g_edit_subjects_interval` smallint(6) NOT NULL DEFAULT '300',
     258  `g_send_email` tinyint(1) NOT NULL DEFAULT '1',
    246259  `g_post_flood` smallint(6) NOT NULL DEFAULT '30',
    247260  `g_search_flood` smallint(6) NOT NULL DEFAULT '30',
     261  `g_email_flood` smallint(6) NOT NULL DEFAULT '60',
     262  `g_report_flood` smallint(6) NOT NULL DEFAULT '60',
    248263  PRIMARY KEY (`g_id`)
    249264) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;
    250265# --
    251 CREATE TABLE IF NOT EXISTS `[prefix]pun_online` (
     266CREATE TABLE `[prefix]pun_online` (
    252267  `user_id` int(10) unsigned NOT NULL DEFAULT '1',
    253268  `ident` varchar(200) NOT NULL DEFAULT '',
    254269  `logged` int(10) unsigned NOT NULL DEFAULT '0',
    255270  `idle` tinyint(1) NOT NULL DEFAULT '0',
    256   KEY `pun_online_user_id_idx` (`user_id`)
    257 ) ENGINE=MEMORY DEFAULT CHARSET=utf8;
    258 # --
    259 CREATE TABLE IF NOT EXISTS `[prefix]pun_posts` (
     271  `last_post` int(10) unsigned DEFAULT NULL,
     272  `last_search` int(10) unsigned DEFAULT NULL,
     273  UNIQUE KEY `[prefix]pun_online_user_id_ident_idx` (`user_id`,`ident`(25)),
     274  KEY `pun_online_user_id_idx` (`user_id`),
     275  KEY `[prefix]pun_online_ident_idx` (`ident`(25)),
     276  KEY `[prefix]pun_online_logged_idx` (`logged`)
     277) ENGINE=MyISAM DEFAULT CHARSET=utf8;
     278# --
     279CREATE TABLE `[prefix]pun_posts` (
    260280  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    261281  `poster` varchar(200) NOT NULL DEFAULT '',
    262282  `poster_id` int(10) unsigned NOT NULL DEFAULT '1',
    263   `poster_ip` varchar(15) DEFAULT NULL,
    264   `poster_email` varchar(50) DEFAULT NULL,
    265   `message` text NOT NULL,
     283  `poster_ip` varchar(39) DEFAULT NULL,
     284  `poster_email` varchar(80) DEFAULT NULL,
     285  `message` mediumtext,
    266286  `hide_smilies` tinyint(1) NOT NULL DEFAULT '0',
    267287  `posted` int(10) unsigned NOT NULL DEFAULT '0',
     
    274294) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=21233 ;
    275295# --
    276 CREATE TABLE IF NOT EXISTS `[prefix]pun_ranks` (
     296CREATE TABLE `[prefix]pun_ranks` (
    277297  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    278298  `rank` varchar(50) NOT NULL DEFAULT '',
     
    281301) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ;
    282302# --
    283 CREATE TABLE IF NOT EXISTS `[prefix]pun_reports` (
     303CREATE TABLE `[prefix]pun_reports` (
    284304  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    285305  `post_id` int(10) unsigned NOT NULL DEFAULT '0',
     
    295315) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
    296316# --
    297 CREATE TABLE IF NOT EXISTS `[prefix]pun_search_cache` (
     317CREATE TABLE `[prefix]pun_search_cache` (
    298318  `id` int(10) unsigned NOT NULL DEFAULT '0',
    299319  `ident` varchar(200) NOT NULL DEFAULT '',
    300   `search_data` text NOT NULL,
     320  `search_data` mediumtext,
    301321  PRIMARY KEY (`id`),
    302322  KEY `pun_search_cache_ident_idx` (`ident`(8))
    303323) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    304324# --
    305 CREATE TABLE IF NOT EXISTS `[prefix]pun_search_matches` (
     325CREATE TABLE `[prefix]pun_search_matches` (
    306326  `post_id` int(10) unsigned NOT NULL DEFAULT '0',
    307327  `word_id` mediumint(8) unsigned NOT NULL DEFAULT '0',
     
    311331) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    312332# --
    313 CREATE TABLE IF NOT EXISTS `[prefix]pun_search_words` (
     333CREATE TABLE `[prefix]pun_search_words` (
    314334  `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
    315335  `word` varchar(20) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
     
    318338) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
    319339# --
    320 CREATE TABLE IF NOT EXISTS `[prefix]pun_smilies` (
     340CREATE TABLE `[prefix]pun_smilies` (
    321341  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    322342  `image` varchar(60) NOT NULL DEFAULT '',
     
    326346) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=89 ;
    327347# --
    328 CREATE TABLE IF NOT EXISTS `[prefix]pun_subscriptions` (
    329   `user_id` int(10) unsigned NOT NULL DEFAULT '0',
    330   `topic_id` int(10) unsigned NOT NULL DEFAULT '0',
    331   PRIMARY KEY (`user_id`,`topic_id`)
    332 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    333 # --
    334 CREATE TABLE IF NOT EXISTS `[prefix]pun_topics` (
     348CREATE TABLE `[prefix]pun_topics` (
    335349  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    336350  `poster` varchar(200) NOT NULL DEFAULT '',
    337351  `subject` varchar(255) NOT NULL DEFAULT '',
    338352  `posted` int(10) unsigned NOT NULL DEFAULT '0',
     353  `first_post_id` int(10) unsigned NOT NULL DEFAULT '0',
    339354  `last_post` int(10) unsigned NOT NULL DEFAULT '0',
    340355  `last_post_id` int(10) unsigned NOT NULL DEFAULT '0',
     
    348363  PRIMARY KEY (`id`),
    349364  KEY `pun_topics_forum_id_idx` (`forum_id`),
    350   KEY `pun_topics_moved_to_idx` (`moved_to`)
     365  KEY `pun_topics_moved_to_idx` (`moved_to`),
     366  KEY `[prefix]pun_topics_last_post_idx` (`last_post`),
     367  KEY `[prefix]pun_topics_first_post_id_idx` (`first_post_id`)
    351368) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2441 ;
    352369# --
    353 CREATE TABLE IF NOT EXISTS `[prefix]pun_users` (
     370CREATE TABLE `[prefix]pun_topic_subscriptions` (
     371  `user_id` int(10) unsigned NOT NULL DEFAULT '0',
     372  `topic_id` int(10) unsigned NOT NULL DEFAULT '0',
     373  PRIMARY KEY (`user_id`,`topic_id`)
     374) ENGINE=MyISAM DEFAULT CHARSET=utf8;
     375# --
     376CREATE TABLE `[prefix]pun_users` (
    354377  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    355378  `group_id` int(10) unsigned NOT NULL DEFAULT '4',
    356379  `username` varchar(200) NOT NULL DEFAULT '',
    357380  `password` varchar(40) NOT NULL DEFAULT '',
    358   `email` varchar(50) NOT NULL DEFAULT '',
     381  `email` varchar(80) NOT NULL DEFAULT '',
    359382  `title` varchar(50) DEFAULT NULL,
    360383  `realname` varchar(40) DEFAULT NULL,
    361384  `url` varchar(100) DEFAULT NULL,
    362   `jabber` varchar(75) DEFAULT NULL,
     385  `jabber` varchar(80) DEFAULT NULL,
    363386  `icq` varchar(12) DEFAULT NULL,
    364   `msn` varchar(50) DEFAULT NULL,
     387  `msn` varchar(80) DEFAULT NULL,
    365388  `aim` varchar(30) DEFAULT NULL,
    366389  `yahoo` varchar(30) DEFAULT NULL,
    367390  `location` varchar(30) DEFAULT NULL,
    368   `use_avatar` tinyint(1) NOT NULL DEFAULT '0',
    369391  `signature` text,
    370392  `disp_topics` tinyint(3) unsigned DEFAULT NULL,
    371393  `disp_posts` tinyint(3) unsigned DEFAULT NULL,
    372394  `email_setting` tinyint(1) NOT NULL DEFAULT '1',
    373   `save_pass` tinyint(1) NOT NULL DEFAULT '1',
    374395  `notify_with_post` tinyint(1) NOT NULL DEFAULT '0',
     396  `auto_notify` tinyint(1) NOT NULL DEFAULT '0',
    375397  `show_smilies` tinyint(1) NOT NULL DEFAULT '1',
    376398  `show_img` tinyint(1) NOT NULL DEFAULT '1',
     
    379401  `show_sig` tinyint(1) NOT NULL DEFAULT '1',
    380402  `timezone` float NOT NULL DEFAULT '0',
     403  `dst` tinyint(1) NOT NULL DEFAULT '0',
     404  `date_format` tinyint(1) NOT NULL DEFAULT '0',
     405  `time_format` tinyint(1) NOT NULL DEFAULT '0',
    381406  `language` varchar(25) NOT NULL DEFAULT 'English',
    382407  `style` varchar(25) NOT NULL DEFAULT 'Oxygen',
    383408  `num_posts` int(10) unsigned NOT NULL DEFAULT '0',
    384409  `last_post` int(10) unsigned DEFAULT NULL,
     410  `last_search` int(10) unsigned DEFAULT NULL,
     411  `last_email_sent` int(10) unsigned DEFAULT NULL,
     412  `last_report_sent` int(10) unsigned DEFAULT NULL,
    385413  `registered` int(10) unsigned NOT NULL DEFAULT '0',
    386   `registration_ip` varchar(15) NOT NULL DEFAULT '0.0.0.0',
     414  `registration_ip` varchar(39) NOT NULL DEFAULT '0.0.0.0',
    387415  `last_visit` int(10) unsigned NOT NULL DEFAULT '0',
    388416  `admin_note` varchar(30) DEFAULT NULL,
    389   `activate_string` varchar(50) DEFAULT NULL,
     417  `activate_string` varchar(80) DEFAULT NULL,
    390418  `activate_key` varchar(8) DEFAULT NULL,
    391419  PRIMARY KEY (`id`),
     420  UNIQUE KEY `[prefix]_pun_users_username_idx` (`username`(25)),
    392421  KEY `pun_users_registered_idx` (`registered`),
    393422  KEY `pun_users_username_idx` (`username`(8))
    394423) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1559 ;
    395424# --
    396 CREATE TABLE IF NOT EXISTS `[prefix]super_admins` (
     425CREATE TABLE `[prefix]super_admins` (
    397426  `id_pun_user` int(11) NOT NULL,
    398427  PRIMARY KEY (`id_pun_user`)
    399428) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    400429# --
    401 CREATE TABLE IF NOT EXISTS `[prefix]thumbs` (
     430CREATE TABLE `[prefix]thumbs` (
    402431  `id` int(11) NOT NULL AUTO_INCREMENT,
    403432  `src` varchar(255) NOT NULL DEFAULT '',
     
    413442) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
    414443# --
    415 CREATE TABLE IF NOT EXISTS `[prefix]videos` (
     444CREATE TABLE `[prefix]videos` (
    416445  `id` int(11) NOT NULL AUTO_INCREMENT,
    417446  `id_artiste` int(11) DEFAULT NULL,
  • branches/rsr.v5.1.dev/web/install/mods/e_install.php

    r1 r3  
    123123
    124124  function install_db($env)
    125   { try
    126     { if(($sql = file_get_contents("dist/sql/init.sql")) !== false)
    127       { if($sql) try
    128         { $env->data->sql->query($sql);
     125  { $flag = 0;
     126    try
     127    { $env->data->sql->query("USE ".$_POST["db_base"]);
     128      if(($sql = file_get_contents("dist/sql/init.sql")) !== false)
     129      { $flag = 1;
     130        if($sql) try
     131        { $flag = 2;
     132          $env->data->sql->query($sql);
     133          $flag = 3;
    129134          if(($sql = file_get_contents("dist/sql/raz.sql")) !== false)
    130           { if($sql) try
    131             { $sql = str_replace("[prefix]", $_POST["db_prefix"], $sql);
     135          { $flag = 4;
     136            if($sql) try
     137            { $flag = 5;
     138              $sql = str_replace("[prefix]", $_POST["db_prefix"], $sql);
    132139              $v_sql = explode("# --", $sql);
    133140              foreach($v_sql as $_sql) if($_sql) $env->data->sql->query($_sql);
     141              $flag = 6;
    134142              if(($sql = file_get_contents("dist/sql/tables.sql")) !== false)
    135               { if($sql) try
    136                 { $sql = str_replace("[prefix]", $_POST["db_prefix"], $sql);
     143              { $flag = 7;
     144                if($sql) try
     145                { $flag = 8;
     146                  $sql = str_replace("[prefix]", $_POST["db_prefix"], $sql);
    137147                  $v_sql = explode("# --", $sql);
    138148                  foreach($v_sql as $_sql) if($_sql) $env->data->sql->query($_sql);
     149                  $flag = 9;
    139150                  if(($sql = file_get_contents("dist/sql/content.sql")) !== false)
    140                   { if($sql) try
    141                     { $punbb_url = "http://".$_SERVER["SERVER_NAME"];
     151                  { $flag = 10;
     152                    if($sql) try
     153                    { $flag = 11;
     154                      $punbb_url = "http://".$_SERVER["SERVER_NAME"];
    142155                      $v_path = explode("/", $_SERVER["SCRIPT_NAME"]);
    143156                      $path = "";
     
    161174                      $v_sql = explode("# --", $sql);
    162175                      foreach($v_sql as $_sql) if($_sql) $env->data->sql->query($_sql);
     176                      $flag = 12;
    163177                    }
    164178                    catch(Exception $_e)
     
    173187                  ."<br/>v&eacute;rifiez que vous avez bien upload&eacute; tous les fichiers";
    174188                }
    175                 catch(Exception $_e) { $env->message = "Impossible d'executer les requetes du fichier tables.sql"; return; }
     189                catch(Exception $_e)
     190                { $env->message =
     191                   "Impossible d'executer les requetes du fichier tables.sql"
     192                  ."<br/>erreur dans la requete sql:<br/>".$_sql;
     193                  return;
     194                }
    176195              }
    177196              else $env->message .=
     
    185204          ."<br/>v&eacute;rifiez que vous avez bien upload&eacute; tous les fichiers";
    186205        }
    187         catch(Exception $_e) { $env->message = "Impossible d'executer les requetes du fichier init.sql"; return; }
     206        catch(Exception $_e)
     207        { $env->message =
     208           "Impossible d'executer les requetes du fichier init.sql (flag ".$flag.")"
     209          ."<br>V&eacute;rifiez que vous avez indiqu&eacute; les bon param&egrave;tres de connection &agrave la base de donn&eacute;es";
     210          return;
     211        }
    188212      }
    189213      else $env->message .=
     
    191215      ."<br/>v&eacute;rifiez que vous avez bien upload&eacute; tous les fichiers";
    192216    }
    193     catch(Exception $_e) { $env->message .= "<br/>impossible d'acc&eacute;der &agrave; la base de donn&eacute;es"; }
     217    catch(Exception $_e) { $env->message .= "impossible d'acc&eacute;der &agrave; la base de donn&eacute;es"; }
    194218  }
    195219
    196220  function clear_pun_cache()
    197221  { if(is_dir("../punbb/cache/") && ($dh = opendir("../punbb/cache/")))
    198     { while(($file = readdir($dh)) !== false) if(strpos($file, "cache_") === 0 && $file !== "cache_smilies.php") @unlink("../punbb/cache/".$file);
     222    { while(($file = readdir($dh)) !== false) if(strpos($file, "cache_") === 0) @unlink("../punbb/cache/".$file);
    199223      closedir($dh);
    200224    }
  • branches/rsr.v5.1.dev/web/punbb/admin_bans.php

    r1 r3  
    11<?php
    2 /***********************************************************************
    3 
    4   Copyright (C) 2002-2005  Rickard Andersson (rickard@punbb.org)
    5 
    6   This file is part of PunBB.
    7 
    8   PunBB is free software; you can redistribute it and/or modify it
    9   under the terms of the GNU General Public License as published
    10   by the Free Software Foundation; either version 2 of the License,
    11   or (at your option) any later version.
    12 
    13   PunBB is distributed in the hope that it will be useful, but
    14   WITHOUT ANY WARRANTY; without even the implied warranty of
    15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16   GNU General Public License for more details.
    17 
    18   You should have received a copy of the GNU General Public License
    19   along with this program; if not, write to the Free Software
    20   Foundation, Inc., 59 Temple Place, Suite 330, Boston,
    21   MA  02111-1307  USA
    22 
    23 ************************************************************************/
    24 
     2
     3/**
     4 * Copyright (C) 2008-2011 FluxBB
     5 * based on code by Rickard Andersson copyright (C) 2002-2008 PunBB
     6 * License: http://www.gnu.org/licenses/gpl.html GPL version 2 or higher
     7 */
    258
    269// Tell header.php to use the admin template
    2710define('PUN_ADMIN_CONSOLE', 1);
    2811
    29 define('PUN_ROOT', './');
     12define('PUN_ROOT', dirname(__FILE__).'/');
    3013require PUN_ROOT.'include/common.php';
    3114require PUN_ROOT.'include/common_admin.php';
    3215
    3316
    34 if ($pun_user['g_id'] > PUN_MOD || ($pun_user['g_id'] == PUN_MOD && $pun_config['p_mod_ban_users'] == '0'))
     17if ($pun_user['g_id'] != PUN_ADMIN && ($pun_user['g_moderator'] != '1' || $pun_user['g_mod_ban_users'] == '0'))
    3518        message($lang_common['No permission']);
    3619
     20// Load the admin_bans.php language file
     21require PUN_ROOT.'lang/'.$admin_language.'/admin_bans.php';
    3722
    3823// Add/edit a ban (stage 1)
     
    4126        if (isset($_GET['add_ban']) || isset($_POST['add_ban']))
    4227        {
    43                 // If the id of the user to ban was provided through GET (a link from profile.php)
     28                // If the ID of the user to ban was provided through GET (a link from profile.php)
    4429                if (isset($_GET['add_ban']))
    4530                {
    46                         $add_ban = intval($_GET['add_ban']);
    47                         if ($add_ban < 2)
     31                        $user_id = intval($_GET['add_ban']);
     32                        if ($user_id < 2)
    4833                                message($lang_common['Bad request']);
    4934
    50                         $user_id = $add_ban;
    51 
    52                         $result = $db->query('SELECT group_id, username, email FROM '.$db->prefix.'users WHERE id='.$user_id) or error('Impossible de retrouver les informations utilisateur', __FILE__, __LINE__, $db->error());
     35                        $result = $db->query('SELECT group_id, username, email FROM '.$db->prefix.'users WHERE id='.$user_id) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error());
    5336                        if ($db->num_rows($result))
    5437                                list($group_id, $ban_user, $ban_email) = $db->fetch_row($result);
    5538                        else
    56                                 message('Aucun utilisateur enregistré sous cet identifiant (ID).');
    57                 }
    58                 else    // Otherwise the username is in POST
    59                 {
    60                         $ban_user = trim($_POST['new_ban_user']);
     39                                message($lang_admin_bans['No user ID message']);
     40                }
     41                else // Otherwise the username is in POST
     42                {
     43                        $ban_user = pun_trim($_POST['new_ban_user']);
    6144
    6245                        if ($ban_user != '')
    6346                        {
    64                                 $result = $db->query('SELECT id, group_id, username, email FROM '.$db->prefix.'users WHERE username=\''.$db->escape($ban_user).'\' AND id>1') or error('Impossible de retrouver les informations utilisateur', __FILE__, __LINE__, $db->error());
     47                                $result = $db->query('SELECT id, group_id, username, email FROM '.$db->prefix.'users WHERE username=\''.$db->escape($ban_user).'\' AND id>1') or error('Unable to fetch user info', __FILE__, __LINE__, $db->error());
    6548                                if ($db->num_rows($result))
    6649                                        list($user_id, $group_id, $ban_user, $ban_email) = $db->fetch_row($result);
    6750                                else
    68                                         message('Aucun utilisateur enregistré sous ce nom d\'utilisateur. Si vous souhaitez ajouter un bannissement qui ne soit pas lié à un nom d\'utilisateur particulier, laissez la case vide.');
     51                                        message($lang_admin_bans['No user message']);
    6952                        }
    7053                }
    7154
    72                 // Make sure we're not banning an admin
    73                 if (isset($group_id) && $group_id == PUN_ADMIN)
    74                         message('L\'utilisateur '.pun_htmlspecialchars($ban_user).' est un administrateur, il ne peut être bannis. Si vous souhaitez bannir un administrateur, vous devez d\'abord le rétrograder soit modérateur soit utilisateur.');
     55                // Make sure we're not banning an admin or moderator
     56                if (isset($group_id))
     57                {
     58                        if ($group_id == PUN_ADMIN)
     59                                message(sprintf($lang_admin_bans['User is admin message'], pun_htmlspecialchars($ban_user)));
     60
     61                        $result = $db->query('SELECT g_moderator FROM '.$db->prefix.'groups WHERE g_id='.$group_id) or error('Unable to fetch group info', __FILE__, __LINE__, $db->error());
     62                        $is_moderator_group = $db->result($result);
     63
     64                        if ($is_moderator_group)
     65                                message(sprintf($lang_admin_bans['User is mod message'], pun_htmlspecialchars($ban_user)));
     66                }
    7567
    7668                // If we have a $user_id, we can try to find the last known IP of that user
    7769                if (isset($user_id))
    7870                {
    79                         $result = $db->query('SELECT poster_ip FROM '.$db->prefix.'posts WHERE poster_id='.$user_id.' ORDER BY posted DESC LIMIT 1') or error('Impossible de retrouver les informations des messages', __FILE__, __LINE__, $db->error());
     71                        $result = $db->query('SELECT poster_ip FROM '.$db->prefix.'posts WHERE poster_id='.$user_id.' ORDER BY posted DESC LIMIT 1') or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());
    8072                        $ban_ip = ($db->num_rows($result)) ? $db->result($result) : '';
     73
     74                        if ($ban_ip == '')
     75                        {
     76                                $result = $db->query('SELECT registration_ip FROM '.$db->prefix.'users WHERE id='.$user_id) or error('Unable to fetch user info', __FILE__, __LINE__, $db->error());
     77                                $ban_ip = ($db->num_rows($result)) ? $db->result($result) : '';
     78                        }
    8179                }
    8280
    8381                $mode = 'add';
    8482        }
    85         else    // We are editing a ban
     83        else // We are editing a ban
    8684        {
    8785                $ban_id = intval($_GET['edit_ban']);
     
    8987                        message($lang_common['Bad request']);
    9088
    91                 $result = $db->query('SELECT username, ip, email, message, expire FROM '.$db->prefix.'bans WHERE id='.$ban_id) or error('Impossible de retrouver les informations de bannissement', __FILE__, __LINE__, $db->error());
     89                $result = $db->query('SELECT username, ip, email, message, expire FROM '.$db->prefix.'bans WHERE id='.$ban_id) or error('Unable to fetch ban info', __FILE__, __LINE__, $db->error());
    9290                if ($db->num_rows($result))
    9391                        list($ban_user, $ban_ip, $ban_email, $ban_message, $ban_expire) = $db->fetch_row($result);
     
    9593                        message($lang_common['Bad request']);
    9694
    97                 $ban_expire = ($ban_expire != '') ? date('Y-m-d', $ban_expire) : '';
     95                $diff = ($pun_user['timezone'] + $pun_user['dst']) * 3600;
     96                $ban_expire = ($ban_expire != '') ? gmdate('Y-m-d', $ban_expire + $diff) : '';
    9897
    9998                $mode = 'edit';
    10099        }
    101100
    102         $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / Admin / Bannissements';
     101        $page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['Bans']);
    103102        $focus_element = array('bans2', 'ban_user');
     103        define('PUN_ACTIVE_PAGE', 'admin');
    104104        require PUN_ROOT.'header.php';
    105105
    106106        generate_admin_menu('bans');
    107 
    108107
    109108?>
    110109        <div class="blockform">
    111                 <h2><span>Réglages de bannissement avancés</span></h2>
     110                <h2><span><?php echo $lang_admin_bans['Ban advanced head'] ?></span></h2>
    112111                <div class="box">
    113112                        <form id="bans2" method="post" action="admin_bans.php">
     
    116115<?php if ($mode == 'edit'): ?>                          <input type="hidden" name="ban_id" value="<?php echo $ban_id ?>" />
    117116<?php endif; ?>                         <fieldset>
    118                                                 <legend>Bannissement supplémentaire avec <acronym title="Internet Protocol" lang="en">IP</acronym> est adresse e-mail</legend>
     117                                                <legend><?php echo $lang_admin_bans['Ban advanced subhead'] ?></legend>
    119118                                                <div class="infldset">
    120119                                                        <table class="aligntop" cellspacing="0">
    121120                                                                <tr>
    122                                                                         <th scope="row">Nom d'utilisateur</th>
     121                                                                        <th scope="row"><?php echo $lang_admin_bans['Username label'] ?></th>
    123122                                                                        <td>
    124123                                                                                <input type="text" name="ban_user" size="25" maxlength="25" value="<?php if (isset($ban_user)) echo pun_htmlspecialchars($ban_user); ?>" tabindex="1" />
    125                                                                                 <span>Le nom d'utilisateur à bannir.</span>
    126                                                                         </td>
    127                                                                 </tr>
    128                                                                 <tr>
    129                                                                         <th scope="row">Adresses <acronym title="Internet Protocol" lang="en">IP</acronym></th>
     124                                                                                <span><?php echo $lang_admin_bans['Username help'] ?></span>
     125                                                                        </td>
     126                                                                </tr>
     127                                                                <tr>
     128                                                                        <th scope="row"><?php echo $lang_admin_bans['IP label'] ?></th>
    130129                                                                        <td>
    131130                                                                                <input type="text" name="ban_ip" size="45" maxlength="255" value="<?php if (isset($ban_ip)) echo $ban_ip; ?>" tabindex="2" />
    132                                                                                 <span>Une adresse <acronym title="Internet Protocol" lang="en">IP</acronym> ou une plage d'adresses <acronym title="Internet Protocol" lang="en">IP</acronym> que vous souhaitez bannir (<abbr title="exemple">ex.</abbr> 150.11.110.1 ou 150.11.110). Séparez les adresses par des espaces. Si une adresse <acronym title="Internet Protocol" lang="en">IP</acronym> apparaît déjà, il s'agit de la derniÚre adresse IP connue de l'utilisateur dans la base de données.<?php if ($ban_user != '' && isset($user_id)) echo ' <a href="admin_users.php?ip_stats='.$user_id.'">Cliquez ici</a> pour voir les statistiques <acronym title="Internet Protocol" lang="en">IP</acronym> de cet utilisateur.' ?></span>
    133                                                                         </td>
    134                                                                 </tr>
    135                                                                 <tr>
    136                                                                         <th scope="row">E-mail/domaine</th>
    137                                                                         <td>
    138                                                                                 <input type="text" name="ban_email" size="40" maxlength="50" value="<?php if (isset($ban_email)) echo strtolower($ban_email); ?>" tabindex="3" />
    139                                                                                 <span>L'adresse e-mail ou le domaine e-mail que vous souhaitez bannir (<abbr title="exemple">ex.</abbr> utilisateur@domaine.com ou domaine.com). Pour plus d'informations, voir "Autoriser les adresses e-mail bannies" à la page des Permissions.</span>
     131                                                                                <span><?php echo $lang_admin_bans['IP help'] ?><?php if ($ban_user != '' && isset($user_id)) printf(' '.$lang_admin_bans['IP help link'], '<a href="admin_users.php?ip_stats='.$user_id.'">'.$lang_admin_common['here'].'</a>') ?></span>
     132                                                                        </td>
     133                                                                </tr>
     134                                                                <tr>
     135                                                                        <th scope="row"><?php echo $lang_admin_bans['E-mail label'] ?></th>
     136                                                                        <td>
     137                                                                                <input type="text" name="ban_email" size="40" maxlength="80" value="<?php if (isset($ban_email)) echo $ban_email; ?>" tabindex="3" />
     138                                                                                <span><?php echo $lang_admin_bans['E-mail help'] ?></span>
    140139                                                                        </td>
    141140                                                                </tr>
    142141                                                        </table>
    143                                                         <p class="topspace"><strong class="warntext">Vous devez êtres trÚs vigilant lorsque vous bannissez une plage d'<acronym title="Internet Protocol" lang="en">IP</acronym> car il y a fort probablement plusieurs utilisateurs qui correspondent à la même <acronym title="Internet Protocol" lang="en">IP</acronym> partielle.</strong></p>
     142                                                        <p class="topspace"><strong class="warntext"><?php echo $lang_admin_bans['Ban IP range info'] ?></strong></p>
    144143                                                </div>
    145144                                        </fieldset>
     
    147146                                <div class="inform">
    148147                                        <fieldset>
    149                                                 <legend>Message et échéance d'interdiction</legend>
     148                                                <legend><?php echo $lang_admin_bans['Message expiry subhead'] ?></legend>
    150149                                                <div class="infldset">
    151150                                                        <table class="aligntop" cellspacing="0">
    152151                                                                <tr>
    153                                                                         <th scope="row">Message d'interdiction</th>
     152                                                                        <th scope="row"><?php echo $lang_admin_bans['Ban message label'] ?></th>
    154153                                                                        <td>
    155154                                                                                <input type="text" name="ban_message" size="50" maxlength="255" value="<?php if (isset($ban_message)) echo pun_htmlspecialchars($ban_message); ?>" tabindex="4" />
    156                                                                                 <span>Le  message qui sera affiché à l'utilisateur banni lorsqu'il visitera les forums.</span>
    157                                                                         </td>
    158                                                                 </tr>
    159                                                                 <tr>
    160                                                                         <th scope="row">Échéance d'interdiction</th>
     155                                                                                <span><?php echo $lang_admin_bans['Ban message help'] ?></span>
     156                                                                        </td>
     157                                                                </tr>
     158                                                                <tr>
     159                                                                        <th scope="row"><?php echo $lang_admin_bans['Expire date label'] ?></th>
    161160                                                                        <td>
    162161                                                                                <input type="text" name="ban_expire" size="17" maxlength="10" value="<?php if (isset($ban_expire)) echo $ban_expire; ?>" tabindex="5" />
    163                                                                                 <span>La date à laquelle ce bannissement sera automatiquement supprimé (format: AAAA-MM-JJ). Pour supprimer manuellement, laissez ce champ vide.</span>
     162                                                                                <span><?php echo $lang_admin_bans['Expire date help'] ?></span>
    164163                                                                        </td>
    165164                                                                </tr>
     
    168167                                        </fieldset>
    169168                                </div>
    170                                 <p class="submitend"><input type="submit" name="add_edit_ban" value=" Enregistrer " tabindex="6" /></p>
     169                                <p class="submitend"><input type="submit" name="add_edit_ban" value="<?php echo $lang_admin_common['Save'] ?>" tabindex="6" /></p>
    171170                        </form>
    172171                </div>
     
    179178}
    180179
    181 
    182180// Add/edit a ban (stage 2)
    183181else if (isset($_POST['add_edit_ban']))
     
    185183        confirm_referrer('admin_bans.php');
    186184
    187         $ban_user = trim($_POST['ban_user']);
     185        $ban_user = pun_trim($_POST['ban_user']);
    188186        $ban_ip = trim($_POST['ban_ip']);
    189187        $ban_email = strtolower(trim($_POST['ban_email']));
    190         $ban_message = trim($_POST['ban_message']);
     188        $ban_message = pun_trim($_POST['ban_message']);
    191189        $ban_expire = trim($_POST['ban_expire']);
    192190
    193191        if ($ban_user == '' && $ban_ip == '' && $ban_email == '')
    194                 message('Vous devez saisir au moins soit un nom d\'utilisateur, soit une adresse <acronym title="Internet Protocol" lang="en">IP</acronym> ou une adresse e-mail.');
     192                message($lang_admin_bans['Must enter message']);
     193        else if (strtolower($ban_user) == 'guest')
     194                message($lang_admin_bans['Cannot ban guest message']);
     195
     196        // Make sure we're not banning an admin or moderator
     197        if (!empty($ban_user))
     198        {
     199                $result = $db->query('SELECT group_id FROM '.$db->prefix.'users WHERE username=\''.$db->escape($ban_user).'\' AND id>1') or error('Unable to fetch user info', __FILE__, __LINE__, $db->error());
     200                if ($db->num_rows($result))
     201                {
     202                        $group_id = $db->result($result);
     203
     204                        if ($group_id == PUN_ADMIN)
     205                                message(sprintf($lang_admin_bans['User is admin message'], pun_htmlspecialchars($ban_user)));
     206
     207                        $result = $db->query('SELECT g_moderator FROM '.$db->prefix.'groups WHERE g_id='.$group_id) or error('Unable to fetch group info', __FILE__, __LINE__, $db->error());
     208                        $is_moderator_group = $db->result($result);
     209
     210                        if ($is_moderator_group)
     211                                message(sprintf($lang_admin_bans['User is mod message'], pun_htmlspecialchars($ban_user)));
     212                }
     213        }
    195214
    196215        // Validate IP/IP range (it's overkill, I know)
    197216        if ($ban_ip != '')
    198217        {
    199                 $ban_ip = preg_replace('/[\s]{2,}/', ' ', $ban_ip);
     218                $ban_ip = preg_replace('%\s{2,}%S', ' ', $ban_ip);
    200219                $addresses = explode(' ', $ban_ip);
    201                 $addresses = array_map('trim', $addresses);
     220                $addresses = array_map('pun_trim', $addresses);
    202221
    203222                for ($i = 0; $i < count($addresses); ++$i)
    204223                {
    205                         $octets = explode('.', $addresses[$i]);
    206 
    207                         for ($c = 0; $c < count($octets); ++$c)
     224                        if (strpos($addresses[$i], ':') !== false)
    208225                        {
    209                                 $octets[$c] = (strlen($octets[$c]) > 1) ? ltrim($octets[$c], "0") : $octets[$c];
    210 
    211                                 if ($c > 3 || preg_match('/[^0-9]/', $octets[$c]) || intval($octets[$c]) > 255)
    212                                         message('Vous avez saisi une <acronym title="Internet Protocol" lang="en">IP</acronym>/plage d\'<acronym title="Internet Protocol" lang="en">IP</acronym> incorrecte.');
     226                                $octets = explode(':', $addresses[$i]);
     227
     228                                for ($c = 0; $c < count($octets); ++$c)
     229                                {
     230                                        $octets[$c] = ltrim($octets[$c], "0");
     231
     232                                        if ($c > 7 || (!empty($octets[$c]) && !ctype_xdigit($octets[$c])) || intval($octets[$c], 16) > 65535)
     233                                                message($lang_admin_bans['Invalid IP message']);
     234                                }
     235
     236                                $cur_address = implode(':', $octets);
     237                                $addresses[$i] = $cur_address;
    213238                        }
    214 
    215                         $cur_address = implode('.', $octets);
    216                         $addresses[$i] = $cur_address;
     239                        else
     240                        {
     241                                $octets = explode('.', $addresses[$i]);
     242
     243                                for ($c = 0; $c < count($octets); ++$c)
     244                                {
     245                                        $octets[$c] = (strlen($octets[$c]) > 1) ? ltrim($octets[$c], "0") : $octets[$c];
     246
     247                                        if ($c > 3 || preg_match('%[^0-9]%', $octets[$c]) || intval($octets[$c]) > 255)
     248                                                message($lang_admin_bans['Invalid IP message']);
     249                                }
     250
     251                                $cur_address = implode('.', $octets);
     252                                $addresses[$i] = $cur_address;
     253                        }
    217254                }
    218255
     
    223260        if ($ban_email != '' && !is_valid_email($ban_email))
    224261        {
    225                 if (!preg_match('/^[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/', $ban_email))
    226                         message('L\'adresse e-mail (<abbr title="exemple">ex.</abbr> utilisateur@domaine.com) ou le domaine d\'adresse e-mail (<abbr title="exemple">ex.</abbr> domaine.com) que vous avez saisi est incorrect.');
     262                if (!preg_match('%^[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$%', $ban_email))
     263                        message($lang_admin_bans['Invalid e-mail message']);
    227264        }
    228265
    229266        if ($ban_expire != '' && $ban_expire != 'Never')
    230267        {
    231                 $ban_expire = strtotime($ban_expire);
    232 
    233                 if ($ban_expire == -1 || $ban_expire <= time())
    234                         message('Vous avez saisi une date d\'échéance incorrecte. Le format doit être AAAA-MM-JJ et la date doit-être d\'au moins un jour dans le futur.');
     268                $ban_expire = strtotime($ban_expire.' GMT');
     269
     270                if ($ban_expire == -1 || !$ban_expire)
     271                        message($lang_admin_bans['Invalid date message'].' '.$lang_admin_bans['Invalid date reasons']);
     272
     273                $diff = ($pun_user['timezone'] + $pun_user['dst']) * 3600;
     274                $ban_expire -= $diff;
     275
     276                if ($ban_expire <= time())
     277                        message($lang_admin_bans['Invalid date message'].' '.$lang_admin_bans['Invalid date reasons']);
    235278        }
    236279        else
     
    243286
    244287        if ($_POST['mode'] == 'add')
    245                 $db->query('INSERT INTO '.$db->prefix.'bans (username, ip, email, message, expire) VALUES('.$ban_user.', '.$ban_ip.', '.$ban_email.', '.$ban_message.', '.$ban_expire.')') or error('Impossible d\'ajouter le bannissement', __FILE__, __LINE__, $db->error());
     288                $db->query('INSERT INTO '.$db->prefix.'bans (username, ip, email, message, expire, ban_creator) VALUES('.$ban_user.', '.$ban_ip.', '.$ban_email.', '.$ban_message.', '.$ban_expire.', '.$pun_user['id'].')') or error('Unable to add ban', __FILE__, __LINE__, $db->error());
    246289        else
    247                 $db->query('UPDATE '.$db->prefix.'bans SET username='.$ban_user.', ip='.$ban_ip.', email='.$ban_email.', message='.$ban_message.', expire='.$ban_expire.' WHERE id='.intval($_POST['ban_id'])) or error('Impossible de modifier le bannissement', __FILE__, __LINE__, $db->error());
     290                $db->query('UPDATE '.$db->prefix.'bans SET username='.$ban_user.', ip='.$ban_ip.', email='.$ban_email.', message='.$ban_message.', expire='.$ban_expire.' WHERE id='.intval($_POST['ban_id'])) or error('Unable to update ban', __FILE__, __LINE__, $db->error());
    248291
    249292        // Regenerate the bans cache
    250         require_once PUN_ROOT.'include/cache.php';
     293        if (!defined('FORUM_CACHE_FUNCTIONS_LOADED'))
     294                require PUN_ROOT.'include/cache.php';
     295
    251296        generate_bans_cache();
    252297
    253         redirect('admin_bans.php', 'Bannissement '.(($_POST['mode'] == 'edit') ? 'modifié' : 'ajouté').'. Redirection ...');
     298        if ($_POST['mode'] == 'edit')
     299                redirect('admin_bans.php', $lang_admin_bans['Ban edited redirect']);
     300        else
     301                redirect('admin_bans.php', $lang_admin_bans['Ban added redirect']);
    254302}
    255 
    256303
    257304// Remove a ban
     
    264311                message($lang_common['Bad request']);
    265312
    266         $db->query('DELETE FROM '.$db->prefix.'bans WHERE id='.$ban_id) or error('Impossible de supprimer le bannissement', __FILE__, __LINE__, $db->error());
     313        $db->query('DELETE FROM '.$db->prefix.'bans WHERE id='.$ban_id) or error('Unable to delete ban', __FILE__, __LINE__, $db->error());
    267314
    268315        // Regenerate the bans cache
    269         require_once PUN_ROOT.'include/cache.php';
     316        if (!defined('FORUM_CACHE_FUNCTIONS_LOADED'))
     317                require PUN_ROOT.'include/cache.php';
     318
    270319        generate_bans_cache();
    271320
    272         redirect('admin_bans.php', 'Bannissement supprimé. Redirection ...');
     321        redirect('admin_bans.php', $lang_admin_bans['Ban removed redirect']);
    273322}
    274323
    275 
    276 $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / Admin / Bannissement';
     324// Find bans
     325else if (isset($_GET['find_ban']))
     326{
     327        $form = isset($_GET['form']) ? $_GET['form'] : array();
     328
     329        // trim() all elements in $form
     330        $form = array_map('pun_trim', $form);
     331        $conditions = $query_str = array();
     332
     333        $expire_after = isset($_GET['expire_after']) ? trim($_GET['expire_after']) : '';
     334        $expire_before = isset($_GET['expire_before']) ? trim($_GET['expire_before']) : '';
     335        $order_by = isset($_GET['order_by']) && in_array($_GET['order_by'], array('username', 'ip', 'email', 'expire')) ? 'b.'.$_GET['order_by'] : 'b.username';
     336        $direction = isset($_GET['direction']) && $_GET['direction'] == 'DESC' ? 'DESC' : 'ASC';
     337
     338        $query_str[] = 'order_by='.$order_by;
     339        $query_str[] = 'direction='.$direction;
     340
     341        // Try to convert date/time to timestamps
     342        if ($expire_after != '')
     343        {
     344                $query_str[] = 'expire_after='.$expire_after;
     345
     346                $expire_after = strtotime($expire_after);
     347                if ($expire_after === false || $expire_after == -1)
     348                        message($lang_admin_bans['Invalid date message']);
     349
     350                $conditions[] = 'b.expire>'.$expire_after;
     351        }
     352        if ($expire_before != '')
     353        {
     354                $query_str[] = 'expire_before='.$expire_before;
     355
     356                $expire_before = strtotime($expire_before);
     357                if ($expire_before === false || $expire_before == -1)
     358                        message($lang_admin_bans['Invalid date message']);
     359
     360                $conditions[] = 'b.expire<'.$expire_before;
     361        }
     362
     363        $like_command = ($db_type == 'pgsql') ? 'ILIKE' : 'LIKE';
     364        foreach ($form as $key => $input)
     365        {
     366                if ($input != '' && in_array($key, array('username', 'ip', 'email', 'message')))
     367                {
     368                        $conditions[] = 'b.'.$db->escape($key).' '.$like_command.' \''.$db->escape(str_replace('*', '%', $input)).'\'';
     369                        $query_str[] = 'form%5B'.$key.'%5D='.urlencode($input);
     370                }
     371        }
     372
     373        // Fetch ban count
     374        $result = $db->query('SELECT COUNT(id) FROM '.$db->prefix.'bans as b WHERE b.id>0'.(!empty($conditions) ? ' AND '.implode(' AND ', $conditions) : '')) or error('Unable to fetch ban list', __FILE__, __LINE__, $db->error());
     375        $num_bans = $db->result($result);
     376
     377        // Determine the ban offset (based on $_GET['p'])
     378        $num_pages = ceil($num_bans / 50);
     379
     380        $p = (!isset($_GET['p']) || $_GET['p'] <= 1 || $_GET['p'] > $num_pages) ? 1 : intval($_GET['p']);
     381        $start_from = 50 * ($p - 1);
     382
     383        // Generate paging links
     384        $paging_links = '<span class="pages-label">'.$lang_common['Pages'].' </span>'.paginate($num_pages, $p, 'admin_bans.php?find_ban=&amp;'.implode('&amp;', $query_str));
     385
     386        $page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['Bans'], $lang_admin_bans['Results head']);
     387        define('PUN_ACTIVE_PAGE', 'admin');
     388        require PUN_ROOT.'header.php';
     389
     390?>
     391<div class="linkst">
     392        <div class="inbox crumbsplus">
     393                <ul class="crumbs">
     394                        <li><a href="admin_index.php"><?php echo $lang_admin_common['Admin'].' '.$lang_admin_common['Index'] ?></a></li>
     395                        <li><span>»&#160;</span><a href="admin_bans.php"><?php echo $lang_admin_common['Bans'] ?></a></li>
     396                        <li><span>»&#160;</span><strong><?php echo $lang_admin_bans['Results head'] ?></strong></li>
     397                </ul>
     398                <div class="pagepost">
     399                        <p class="pagelink"><?php echo $paging_links ?></p>
     400                </div>
     401                <div class="clearer"></div>
     402        </div>
     403</div>
     404
     405
     406<div id="bans1" class="blocktable">
     407        <h2><span><?php echo $lang_admin_bans['Results head'] ?></span></h2>
     408        <div class="box">
     409                <div class="inbox">
     410                        <table cellspacing="0">
     411                        <thead>
     412                                <tr>
     413                                        <th class="tcl" scope="col"><?php echo $lang_admin_bans['Results username head'] ?></th>
     414                                        <th class="tc2" scope="col"><?php echo $lang_admin_bans['Results e-mail head'] ?></th>
     415                                        <th class="tc3" scope="col"><?php echo $lang_admin_bans['Results IP address head'] ?></th>
     416                                        <th class="tc4" scope="col"><?php echo $lang_admin_bans['Results expire head'] ?></th>
     417                                        <th class="tc5" scope="col"><?php echo $lang_admin_bans['Results message head'] ?></th>
     418                                        <th class="tc6" scope="col"><?php echo $lang_admin_bans['Results banned by head'] ?></th>
     419                                        <th class="tcr" scope="col"><?php echo $lang_admin_bans['Results actions head'] ?></th>
     420                                </tr>
     421                        </thead>
     422                        <tbody>
     423<?php
     424
     425        $result = $db->query('SELECT b.id, b.username, b.ip, b.email, b.message, b.expire, b.ban_creator, u.username AS ban_creator_username FROM '.$db->prefix.'bans AS b LEFT JOIN '.$db->prefix.'users AS u ON b.ban_creator=u.id WHERE b.id>0'.(!empty($conditions) ? ' AND '.implode(' AND ', $conditions) : '').' ORDER BY '.$db->escape($order_by).' '.$db->escape($direction).' LIMIT '.$start_from.', 50') or error('Unable to fetch ban list', __FILE__, __LINE__, $db->error());
     426        if ($db->num_rows($result))
     427        {
     428                while ($ban_data = $db->fetch_assoc($result))
     429                {
     430
     431                        $actions = '<a href="admin_bans.php?edit_ban='.$ban_data['id'].'">'.$lang_admin_common['Edit'].'</a> | <a href="admin_bans.php?del_ban='.$ban_data['id'].'">'.$lang_admin_common['Remove'].'</a>';
     432                        $expire = format_time($ban_data['expire'], true);
     433
     434?>
     435                                <tr>
     436                                        <td class="tcl"><?php echo ($ban_data['username'] != '') ? pun_htmlspecialchars($ban_data['username']) : '&#160;' ?></td>
     437                                        <td class="tc2"><?php echo ($ban_data['email'] != '') ? $ban_data['email'] : '&#160;' ?></td>
     438                                        <td class="tc3"><?php echo ($ban_data['ip'] != '') ? $ban_data['ip'] : '&#160;' ?></td>
     439                                        <td class="tc4"><?php echo $expire ?></td>
     440                                        <td class="tc5"><?php echo ($ban_data['message'] != '') ? pun_htmlspecialchars($ban_data['message']) : '&#160;' ?></td>
     441                                        <td class="tc6"><?php echo ($ban_data['ban_creator_username'] != '') ? '<a href="profile.php?id='.$ban_data['ban_creator'].'">'.pun_htmlspecialchars($ban_data['ban_creator_username']).'</a>' : $lang_admin_bans['Unknown'] ?></td>
     442                                        <td class="tcr"><?php echo $actions ?></td>
     443                                </tr>
     444<?php
     445
     446                }
     447        }
     448        else
     449                echo "\t\t\t\t".'<tr><td class="tcl" colspan="7">'.$lang_admin_bans['No match'].'</td></tr>'."\n";
     450
     451?>
     452                        </tbody>
     453                        </table>
     454                </div>
     455        </div>
     456</div>
     457
     458<div class="linksb">
     459        <div class="inbox crumbsplus">
     460                <div class="pagepost">
     461                        <p class="pagelink"><?php echo $paging_links ?></p>
     462                </div>
     463                <ul class="crumbs">
     464                        <li><a href="admin_index.php"><?php echo $lang_admin_common['Admin'].' '.$lang_admin_common['Index'] ?></a></li>
     465                        <li><span>»&#160;</span><a href="admin_bans.php"><?php echo $lang_admin_common['Bans'] ?></a></li>
     466                        <li><span>»&#160;</span><strong><?php echo $lang_admin_bans['Results head'] ?></strong></li>
     467                </ul>
     468                <div class="clearer"></div>
     469        </div>
     470</div>
     471<?php
     472
     473        require PUN_ROOT.'footer.php';
     474}
     475
     476$page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['Bans']);
    277477$focus_element = array('bans', 'new_ban_user');
     478define('PUN_ACTIVE_PAGE', 'admin');
    278479require PUN_ROOT.'header.php';
    279480
     
    282483?>
    283484        <div class="blockform">
    284                 <h2><span>Nouveau bannissement</span></h2>
     485                <h2><span><?php echo $lang_admin_bans['New ban head'] ?></span></h2>
    285486                <div class="box">
    286487                        <form id="bans" method="post" action="admin_bans.php?action=more">
    287488                                <div class="inform">
    288489                                        <fieldset>
    289                                                 <legend>Ajouter un bannissement</legend>
     490                                                <legend><?php echo $lang_admin_bans['Add ban subhead'] ?></legend>
    290491                                                <div class="infldset">
    291492                                                        <table class="aligntop" cellspacing="0">
    292493                                                                <tr>
    293                                                                         <th scope="row">Nom d'utilisateur<div><input type="submit" name="add_ban" value=" Ajouter " tabindex="2" /></div></th>
     494                                                                        <th scope="row"><?php echo $lang_admin_bans['Username label'] ?><div><input type="submit" name="add_ban" value="<?php echo $lang_admin_common['Add'] ?>" tabindex="2" /></div></th>
    294495                                                                        <td>
    295496                                                                                <input type="text" name="new_ban_user" size="25" maxlength="25" tabindex="1" />
    296                                                                                 <span>Le nom d'utilisateur à bannir (insensible à la casse). La page suivante vous permettra d'entrer une adresse <acronym title="Internet Protocol" lang="en">IP</acronym> et/ou une adresse e-mail de votre choix. Si vous souhaitez bannir une adresse <acronym title="Internet Protocol" lang="en">IP</acronym>, une plage d'adresses <acronym title="Internet Protocol" lang="en">IP</acronym> ou une adresse e-mail, laissez simplement ce champ vide.</span>
     497                                                                                <span><?php echo $lang_admin_bans['Username advanced help'] ?></span>
    297498                                                                        </td>
    298499                                                                </tr>
     
    304505                </div>
    305506
    306                 <h2 class="block2"><span>Bannissements actuels</span></h2>
     507                <h2 class="block2"><span><?php echo $lang_admin_bans['Ban search head'] ?></span></h2>
    307508                <div class="box">
    308                         <div class="fakeform">
    309 <?php
    310 
    311 $result = $db->query('SELECT id, username, ip, email, message, expire FROM '.$db->prefix.'bans ORDER BY id') or error('Impossible de retrouver la liste des bannissements', __FILE__, __LINE__, $db->error());
    312 if ($db->num_rows($result))
    313 {
    314         while ($cur_ban = $db->fetch_assoc($result))
    315         {
    316                 $expire = format_time($cur_ban['expire'], true);
    317 
    318 ?>
     509                        <form id="find_band" method="get" action="admin_bans.php">
     510                                <p class="submittop"><input type="submit" name="find_ban" value="<?php echo $lang_admin_bans['Submit search'] ?>" tabindex="3" /></p>
    319511                                <div class="inform">
    320512                                        <fieldset>
    321                                                 <legend>Date d'échéance&#160;: <?php echo $expire ?></legend>
     513                                                <legend><?php echo $lang_admin_bans['Ban search subhead'] ?></legend>
    322514                                                <div class="infldset">
    323                                                         <table cellspacing="0">
    324 <?php if ($cur_ban['username'] != ''): ?>                                                               <tr>
    325                                                                         <th>Nom d'utilisateur</th>
    326                                                                         <td><?php echo pun_htmlspecialchars($cur_ban['username']) ?></td>
    327                                                                 </tr>
    328 <?php endif; ?><?php if ($cur_ban['email'] != ''): ?>                                                           <tr>
    329                                                                         <th>E-mail</th>
    330                                                                         <td><?php echo $cur_ban['email'] ?></td>
    331                                                                 </tr>
    332 <?php endif; ?><?php if ($cur_ban['ip'] != ''): ?>                                                              <tr>
    333                                                                         <th><acronym title="Internet Protocol" lang="en">IP</acronym>/plage d'<acronym title="Internet Protocol" lang="en">IP</acronym></th>
    334                                                                         <td><?php echo $cur_ban['ip'] ?></td>
    335                                                                 </tr>
    336 <?php endif; ?><?php if ($cur_ban['message'] != ''): ?>                                                         <tr>
    337                                                                         <th>Motif</th>
    338                                                                         <td><?php echo pun_htmlspecialchars($cur_ban['message']) ?></td>
    339                                                                 </tr>
    340 <?php endif; ?>                                                 </table>
    341                                                         <p class="linkactions"><a href="admin_bans.php?edit_ban=<?php echo $cur_ban['id'] ?>">Modifier</a> - <a href="admin_bans.php?del_ban=<?php echo $cur_ban['id'] ?>">Supprimer</a></p>
     515                                                        <p><?php echo $lang_admin_bans['Ban search info'] ?></p>
     516                                                        <table class="aligntop" cellspacing="0">
     517                                                                <tr>
     518                                                                        <th scope="row"><?php echo $lang_admin_bans['Username label'] ?></th>
     519                                                                        <td><input type="text" name="form[username]" size="25" maxlength="25" tabindex="4" /></td>
     520                                                                </tr>
     521                                                                <tr>
     522                                                                        <th scope="row"><?php echo $lang_admin_bans['IP label'] ?></th>
     523                                                                        <td><input type="text" name="form[ip]" size="30" maxlength="255" tabindex="5" /></td>
     524                                                                </tr>
     525                                                                <tr>
     526                                                                        <th scope="row"><?php echo $lang_admin_bans['E-mail label'] ?></th>
     527                                                                        <td><input type="text" name="form[email]" size="30" maxlength="80" tabindex="6" /></td>
     528                                                                </tr>
     529                                                                <tr>
     530                                                                        <th scope="row"><?php echo $lang_admin_bans['Message label'] ?></th>
     531                                                                        <td><input type="text" name="form[message]" size="30" maxlength="255" tabindex="7" /></td>
     532                                                                </tr>
     533                                                                <tr>
     534                                                                        <th scope="row"><?php echo $lang_admin_bans['Expire after label'] ?></th>
     535                                                                        <td><input type="text" name="expire_after" size="10" maxlength="10" tabindex="8" />
     536                                                                        <span><?php echo $lang_admin_bans['Date help'] ?></span></td>
     537                                                                </tr>
     538                                                                <tr>
     539                                                                        <th scope="row"><?php echo $lang_admin_bans['Expire before label'] ?></th>
     540                                                                        <td><input type="text" name="expire_before" size="10" maxlength="10" tabindex="9" />
     541                                                                        <span><?php echo $lang_admin_bans['Date help'] ?></span></td>
     542                                                                </tr>
     543                                                                <tr>
     544                                                                        <th scope="row"><?php echo $lang_admin_bans['Order by label'] ?></th>
     545                                                                        <td>
     546                                                                                <select name="order_by" tabindex="10">
     547                                                                                        <option value="username" selected="selected"><?php echo $lang_admin_bans['Order by username'] ?></option>
     548                                                                                        <option value="ip"><?php echo $lang_admin_bans['Order by ip'] ?></option>
     549                                                                                        <option value="email"><?php echo $lang_admin_bans['Order by e-mail'] ?></option>
     550                                                                                        <option value="expire"><?php echo $lang_admin_bans['Order by expire'] ?></option>
     551                                                                                </select>&#160;&#160;&#160;<select name="direction" tabindex="11">
     552                                                                                        <option value="ASC" selected="selected"><?php echo $lang_admin_bans['Ascending'] ?></option>
     553                                                                                        <option value="DESC"><?php echo $lang_admin_bans['Descending'] ?></option>
     554                                                                                </select>
     555                                                                        </td>
     556                                                                </tr>
     557                                                        </table>
    342558                                                </div>
    343559                                        </fieldset>
    344560                                </div>
    345 <?php
    346 
    347         }
    348 }
    349 else
    350         echo "\t\t\t\t".'<p>Aucun bannissement à lister.</p>'."\n";
    351 
    352 ?>
    353                         </div>
     561                                <p class="submitend"><input type="submit" name="find_ban" value="<?php echo $lang_admin_bans['Submit search'] ?>" tabindex="12" /></p>
     562                        </form>
    354563                </div>
    355564        </div>
  • branches/rsr.v5.1.dev/web/punbb/admin_categories.php

    r1 r3  
    11<?php
    2 /***********************************************************************
    3 
    4   Copyright (C) 2002-2005  Rickard Andersson (rickard@punbb.org)
    5 
    6   This file is part of PunBB.
    7 
    8   PunBB is free software; you can redistribute it and/or modify it
    9   under the terms of the GNU General Public License as published
    10   by the Free Software Foundation; either version 2 of the License,
    11   or (at your option) any later version.
    12 
    13   PunBB is distributed in the hope that it will be useful, but
    14   WITHOUT ANY WARRANTY; without even the implied warranty of
    15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16   GNU General Public License for more details.
    17 
    18   You should have received a copy of the GNU General Public License
    19   along with this program; if not, write to the Free Software
    20   Foundation, Inc., 59 Temple Place, Suite 330, Boston,
    21   MA  02111-1307  USA
    22 
    23 ************************************************************************/
    24 
     2
     3/**
     4 * Copyright (C) 2008-2011 FluxBB
     5 * based on code by Rickard Andersson copyright (C) 2002-2008 PunBB
     6 * License: http://www.gnu.org/licenses/gpl.html GPL version 2 or higher
     7 */
    258
    269// Tell header.php to use the admin template
    2710define('PUN_ADMIN_CONSOLE', 1);
    2811
    29 define('PUN_ROOT', './');
     12define('PUN_ROOT', dirname(__FILE__).'/');
    3013require PUN_ROOT.'include/common.php';
    3114require PUN_ROOT.'include/common_admin.php';
    3215
    3316
    34 if ($pun_user['g_id'] > PUN_ADMIN)
     17if ($pun_user['g_id'] != PUN_ADMIN)
    3518        message($lang_common['No permission']);
    3619
     20// Load the admin_categories.php language file
     21require PUN_ROOT.'lang/'.$admin_language.'/admin_categories.php';
    3722
    3823// Add a new category
     
    4126        confirm_referrer('admin_categories.php');
    4227
    43         $new_cat_name = trim($_POST['new_cat_name']);
     28        $new_cat_name = pun_trim($_POST['new_cat_name']);
    4429        if ($new_cat_name == '')
    45                 message('Vous devez saisir un nom pour la nouvelle catégorie.');
    46 
    47         $db->query('INSERT INTO '.$db->prefix.'categories (cat_name) VALUES(\''.$db->escape($new_cat_name).'\')') or error('Impossible de créer la catégorie', __FILE__, __LINE__, $db->error());
    48 
    49         redirect('admin_categories.php', 'Catégorie ajoutée. Redirection ...');
     30                message($lang_admin_categories['Must enter name message']);
     31
     32        $db->query('INSERT INTO '.$db->prefix.'categories (cat_name) VALUES(\''.$db->escape($new_cat_name).'\')') or error('Unable to create category', __FILE__, __LINE__, $db->error());
     33
     34        redirect('admin_categories.php', $lang_admin_categories['Category added redirect']);
    5035}
    51 
    5236
    5337// Delete a category
     
    6044                message($lang_common['Bad request']);
    6145
    62         if (isset($_POST['del_cat_comply']))    // Delete a category with all forums and posts
     46        if (isset($_POST['del_cat_comply'])) // Delete a category with all forums and posts
    6347        {
    6448                @set_time_limit(0);
    6549
    66                 $result = $db->query('SELECT id FROM '.$db->prefix.'forums WHERE cat_id='.$cat_to_delete) or error('Impossible de retrouver la liste des forums', __FILE__, __LINE__, $db->error());
     50                $result = $db->query('SELECT id FROM '.$db->prefix.'forums WHERE cat_id='.$cat_to_delete) or error('Unable to fetch forum list', __FILE__, __LINE__, $db->error());
    6751                $num_forums = $db->num_rows($result);
    6852
     
    7559
    7660                        // Delete the forum
    77                         $db->query('DELETE FROM '.$db->prefix.'forums WHERE id='.$cur_forum) or error('Impossible de supprimer le forum', __FILE__, __LINE__, $db->error());
     61                        $db->query('DELETE FROM '.$db->prefix.'forums WHERE id='.$cur_forum) or error('Unable to delete forum', __FILE__, __LINE__, $db->error());
    7862                }
    7963
    8064                // Locate any "orphaned redirect topics" and delete them
    81                 $result = $db->query('SELECT t1.id FROM '.$db->prefix.'topics AS t1 LEFT JOIN '.$db->prefix.'topics AS t2 ON t1.moved_to=t2.id WHERE t2.id IS NULL AND t1.moved_to IS NOT NULL') or error('Impossible de retrouver les sujets de redirection', __FILE__, __LINE__, $db->error());
     65                $result = $db->query('SELECT t1.id FROM '.$db->prefix.'topics AS t1 LEFT JOIN '.$db->prefix.'topics AS t2 ON t1.moved_to=t2.id WHERE t2.id IS NULL AND t1.moved_to IS NOT NULL') or error('Unable to fetch redirect topics', __FILE__, __LINE__, $db->error());
    8266                $num_orphans = $db->num_rows($result);
    8367
     
    8771                                $orphans[] = $db->result($result, $i);
    8872
    89                         $db->query('DELETE FROM '.$db->prefix.'topics WHERE id IN('.implode(',', $orphans).')') or error('Impossible de supprimer les sujets de redirection', __FILE__, __LINE__, $db->error());
     73                        $db->query('DELETE FROM '.$db->prefix.'topics WHERE id IN('.implode(',', $orphans).')') or error('Unable to delete redirect topics', __FILE__, __LINE__, $db->error());
    9074                }
    9175
    9276                // Delete the category
    93                 $db->query('DELETE FROM '.$db->prefix.'categories WHERE id='.$cat_to_delete) or error('Impossible de supprimer la catégorie', __FILE__, __LINE__, $db->error());
    94 
    95                 // Regenerate the quickjump cache
    96                 require_once PUN_ROOT.'include/cache.php';
     77                $db->query('DELETE FROM '.$db->prefix.'categories WHERE id='.$cat_to_delete) or error('Unable to delete category', __FILE__, __LINE__, $db->error());
     78
     79                // Regenerate the quick jump cache
     80                if (!defined('FORUM_CACHE_FUNCTIONS_LOADED'))
     81                        require PUN_ROOT.'include/cache.php';
     82
    9783                generate_quickjump_cache();
    9884
    99                 redirect('admin_categories.php', 'Catégorie supprimée. Redirection ...');
    100         }
    101         else    // If the user hasn't comfirmed the delete
    102         {
    103                 $result = $db->query('SELECT cat_name FROM '.$db->prefix.'categories WHERE id='.$cat_to_delete) or error('Impossible de retrouver les informations de la catégorie', __FILE__, __LINE__, $db->error());
     85                redirect('admin_categories.php', $lang_admin_categories['Category deleted redirect']);
     86        }
     87        else // If the user hasn't comfirmed the delete
     88        {
     89                $result = $db->query('SELECT cat_name FROM '.$db->prefix.'categories WHERE id='.$cat_to_delete) or error('Unable to fetch category info', __FILE__, __LINE__, $db->error());
    10490                $cat_name = $db->result($result);
    10591
    106                 $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / Admin / Catégories';
     92                $page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['Categories']);
     93                define('PUN_ACTIVE_PAGE', 'admin');
    10794                require PUN_ROOT.'header.php';
    10895
     
    11198?>
    11299        <div class="blockform">
    113                 <h2><span>Supprimer une catégorie</span></h2>
     100                <h2><span><?php echo $lang_admin_categories['Delete category head'] ?></span></h2>
    114101                <div class="box">
    115102                        <form method="post" action="admin_categories.php">
     
    117104                                <input type="hidden" name="cat_to_delete" value="<?php echo $cat_to_delete ?>" />
    118105                                        <fieldset>
    119                                                 <legend>Confirmez la supression de la catégorie</legend>
    120                                                 <div class="infldset">
    121                                                         <p>Êtes vous sûr de vouloir supprimer la catégorie "<?php echo $cat_name ?>"&#160;?</p>
    122                                                         <p>ATTENTION ! Supprimer cette catégorie supprimera en même temps tous les forums et messages (s'il y en a) présents dans cette catégorie&#160;!</p>
    123                                                 </div>
    124                                         </fieldset>
    125                                 </div>
    126                                 <p><input type="submit" name="del_cat_comply" value=" Supprimer " /><a href="javascript:history.go(-1)">Retour</a></p>
     106                                                <legend><?php echo $lang_admin_categories['Confirm delete subhead'] ?></legend>
     107                                                <div class="infldset">
     108                                                        <p><?php printf($lang_admin_categories['Confirm delete info'], pun_htmlspecialchars($cat_name)) ?></p>
     109                                                        <p class="warntext"><?php echo $lang_admin_categories['Delete category warn'] ?></p>
     110                                                </div>
     111                                        </fieldset>
     112                                </div>
     113                                <p class="buttons"><input type="submit" name="del_cat_comply" value="<?php echo $lang_admin_common['Delete'] ?>" /><a href="javascript:history.go(-1)"><?php echo $lang_admin_common['Go back'] ?></a></p>
    127114                        </form>
    128115                </div>
     
    136123}
    137124
    138 
    139 else if (isset($_POST['update']))       // Change position and name of the categories
     125else if (isset($_POST['update'])) // Change position and name of the categories
    140126{
    141127        confirm_referrer('admin_categories.php');
    142128
    143         $cat_order = $_POST['cat_order'];
    144         $cat_name = $_POST['cat_name'];
    145 
    146         $result = $db->query('SELECT id, disp_position FROM '.$db->prefix.'categories ORDER BY disp_position') or error('Impossible de retrouver la liste des catégories', __FILE__, __LINE__, $db->error());
    147         $num_cats = $db->num_rows($result);
    148 
    149         for ($i = 0; $i < $num_cats; ++$i)
    150         {
    151                 if ($cat_name[$i] == '')
    152                         message('Vous devez saisir un nom de catégorie.');
    153 
    154                 if (!preg_match('#^\d+$#', $cat_order[$i]))
    155                         message('La position doit être un nombre entier.');
    156 
    157                 list($cat_id, $position) = $db->fetch_row($result);
    158 
    159                 $db->query('UPDATE '.$db->prefix.'categories SET cat_name=\''.$db->escape($cat_name[$i]).'\', disp_position='.$cat_order[$i].' WHERE id='.$cat_id) or error('Impossible de modifier les catégories', __FILE__, __LINE__, $db->error());
    160         }
    161 
    162         // Regenerate the quickjump cache
    163         require_once PUN_ROOT.'include/cache.php';
     129        $categories = $_POST['cat'];
     130        if (empty($categories))
     131                message($lang_common['Bad request']);
     132
     133        foreach ($categories as $cat_id => $cur_cat)
     134        {
     135                $cur_cat['name'] = pun_trim($cur_cat['name']);
     136                $cur_cat['order'] = trim($cur_cat['order']);
     137
     138                if ($cur_cat['name'] == '')
     139                        message($lang_admin_categories['Must enter name message']);
     140
     141                if ($cur_cat['order'] == '' || preg_match('%[^0-9]%', $cur_cat['order']))
     142                        message($lang_admin_categories['Must enter integer message']);
     143
     144                $db->query('UPDATE '.$db->prefix.'categories SET cat_name=\''.$db->escape($cur_cat['name']).'\', disp_position='.$cur_cat['order'].' WHERE id='.intval($cat_id)) or error('Unable to update category', __FILE__, __LINE__, $db->error());
     145        }
     146
     147        // Regenerate the quick jump cache
     148        if (!defined('FORUM_CACHE_FUNCTIONS_LOADED'))
     149                require PUN_ROOT.'include/cache.php';
     150
    164151        generate_quickjump_cache();
    165152
    166         redirect('admin_categories.php', 'Catégories modifiées. Redirection ...');
     153        redirect('admin_categories.php', $lang_admin_categories['Categories updated redirect']);
    167154}
    168155
    169 
    170156// Generate an array with all categories
    171 $result = $db->query('SELECT id, cat_name, disp_position FROM '.$db->prefix.'categories ORDER BY disp_position') or error('Impossible de retrouver la liste des catégories', __FILE__, __LINE__, $db->error());
     157$result = $db->query('SELECT id, cat_name, disp_position FROM '.$db->prefix.'categories ORDER BY disp_position') or error('Unable to fetch category list', __FILE__, __LINE__, $db->error());
    172158$num_cats = $db->num_rows($result);
    173159
    174160for ($i = 0; $i < $num_cats; ++$i)
    175         $cat_list[] = $db->fetch_row($result);
    176 
    177 
    178 $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / Admin / Catégories';
     161        $cat_list[] = $db->fetch_assoc($result);
     162
     163$page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['Categories']);
     164define('PUN_ACTIVE_PAGE', 'admin');
    179165require PUN_ROOT.'header.php';
    180166
     
    183169?>
    184170        <div class="blockform">
    185                 <h2><span>Ajouter/supprimer/modifier les catégories</span></h2>
    186                 <div class="box">
    187                 <form method="post" action="admin_categories.php?action=foo">
    188                         <div class="inform">
    189                                 <fieldset>
    190                                         <legend>Ajouter/supprimer une catégorie</legend>
    191                                         <div class="infldset">
    192                                                 <table class="aligntop" cellspacing="0">
    193                                                         <tr>
    194                                                                 <th scope="row">Ajouter une catégorie<div><input type="submit" name="add_cat" value=" Ajouter " tabindex="2" /></div></th>
    195                                                                 <td>
    196                                                                         <input type="text" name="new_cat_name" size="35" maxlength="80" tabindex="1" />
    197                                                                         <span>Saisissez le nom de la catégorie que vous souhaitez ajouter. Vous pourrez modifier ce nom plus tard (voir ci-dessous). Pour ajouter des forums à une nouvelle catégorie, allez à la page de gestion des <a href="admin_forums.php">Forums</a>.</span>
    198                                                                 </td>
    199                                                         </tr>
    200 <?php if ($num_cats): ?>                                                        <tr>
    201                                                                 <th scope="row">Supprimer une catégorie<div><input type="submit" name="del_cat" value=" Supprimer " tabindex="4" /></div></th>
    202                                                                 <td>
    203                                                                         <select name="cat_to_delete" tabindex="3">
    204 <?php
    205 
    206         while (list(, list($cat_id, $cat_name, ,)) = @each($cat_list))
    207                 echo "\t\t\t\t\t\t\t\t\t\t".'<option value="'.$cat_id.'">'.pun_htmlspecialchars($cat_name).'</option>'."\n";
    208 
    209 ?>
    210                                                                         </select>
    211                                                                         <span>Choisissez le nom de la catégorie que vous souhaitez supprimer. Vous serez invités à confirmer votre choix de catégorie à supprimer avant qu'elle ne soit effectivement supprimée.</span>
    212                                                                 </td>
    213                                                         </tr>
    214 <?php endif; ?>                                         </table>
    215                                         </div>
    216                                 </fieldset>
    217                         </div>
    218 <?php if ($num_cats): ?>                        <div class="inform">
    219                                 <fieldset>
    220                                         <legend>Modifier les catégories</legend>
    221                                         <div class="infldset">
    222                                                 <table id="categoryedit" cellspacing="0" >
    223                                                 <thead>
    224                                                         <tr>
    225                                                                 <th class="tcl" scope="col">Nom</th>
    226                                                                 <th scope="col">Position</th>
    227                                                                 <th>&#160;</th>
    228                                                         </tr>
    229                                                 </thead>
    230                                                 <tbody>
    231 <?php
    232 
    233         @reset($cat_list);
    234         for ($i = 0; $i < $num_cats; ++$i)
    235         {
    236                 list(, list($cat_id, $cat_name, $position)) = @each($cat_list);
    237 
    238 ?>
    239                                                         <tr><td><input type="text" name="cat_name[<?php echo $i ?>]" value="<?php echo pun_htmlspecialchars($cat_name) ?>" size="35" maxlength="80" /></td><td><input type="text" name="cat_order[<?php echo $i ?>]" value="<?php echo $position ?>" size="3" maxlength="3" /></td><td>&#160;</td></tr>
    240 <?php
    241 
    242         }
    243 
    244 ?>
    245                                                 </tbody>
    246                                                 </table>
    247                                                 <div class="fsetsubmit"><input type="submit" name="update" value=" Modifier " /></div>
    248                                         </div>
    249                                 </fieldset>
    250                         </div>
    251 <?php endif; ?>         </form>
    252                 </div>
    253         </div>
     171                <h2><span><?php echo $lang_admin_categories['Add categories head'] ?></span></h2>
     172                <div class="box">
     173                        <form method="post" action="admin_categories.php">
     174                                <div class="inform">
     175                                        <fieldset>
     176                                                <legend><?php echo $lang_admin_categories['Add categories subhead'] ?></legend>
     177                                                <div class="infldset">
     178                                                        <table class="aligntop" cellspacing="0">
     179                                                                <tr>
     180                                                                        <th scope="row"><?php echo $lang_admin_categories['Add category label'] ?><div><input type="submit" name="add_cat" value="<?php echo $lang_admin_categories['Add new submit'] ?>" tabindex="2" /></div></th>
     181                                                                        <td>
     182                                                                                <input type="text" name="new_cat_name" size="35" maxlength="80" tabindex="1" />
     183                                                                                <span><?php printf($lang_admin_categories['Add category help'], '<a href="admin_forums.php">'.$lang_admin_common['Forums'].'</a>') ?></span>
     184                                                                        </td>
     185                                                                </tr>
     186                                                        </table>
     187                                                </div>
     188                                        </fieldset>
     189                                </div>
     190                        </form>
     191                </div>
     192
     193<?php if ($num_cats): ?>                <h2 class="block2"><span><?php echo $lang_admin_categories['Delete categories head'] ?></span></h2>
     194                <div class="box">
     195                        <form method="post" action="admin_categories.php">
     196                                <div class="inform">
     197                                        <fieldset>
     198                                                <legend><?php echo $lang_admin_categories['Delete categories subhead'] ?></legend>
     199                                                <div class="infldset">
     200                                                        <table class="aligntop" cellspacing="0">
     201                                                                <tr>
     202                                                                        <th scope="row"><?php echo $lang_admin_categories['Delete category label'] ?><div><input type="submit" name="del_cat" value="<?php echo $lang_admin_common['Delete'] ?>" tabindex="4" /></div></th>
     203                                                                        <td>
     204                                                                                <select name="cat_to_delete" tabindex="3">
     205<?php
     206
     207        foreach ($cat_list as $cur_cat)
     208                echo "\t\t\t\t\t\t\t\t\t\t\t".'<option value="'.$cur_cat['id'].'">'.pun_htmlspecialchars($cur_cat['cat_name']).'</option>'."\n";
     209
     210?>
     211                                                                                </select>
     212                                                                                <span><?php echo $lang_admin_categories['Delete category help'] ?></span>
     213                                                                        </td>
     214                                                                </tr>
     215                                                        </table>
     216                                                </div>
     217                                        </fieldset>
     218                                </div>
     219                        </form>
     220                </div>
     221<?php endif; ?>
     222
     223<?php if ($num_cats): ?>                <h2 class="block2"><span><?php echo $lang_admin_categories['Edit categories head'] ?></span></h2>
     224                <div class="box">
     225                        <form method="post" action="admin_categories.php">
     226                                <div class="inform">
     227                                        <fieldset>
     228                                                <legend><?php echo $lang_admin_categories['Edit categories subhead'] ?></legend>
     229                                                <div class="infldset">
     230                                                        <table id="categoryedit" cellspacing="0" >
     231                                                        <thead>
     232                                                                <tr>
     233                                                                        <th class="tcl" scope="col"><?php echo $lang_admin_categories['Category name label'] ?></th>
     234                                                                        <th scope="col"><?php echo $lang_admin_categories['Category position label'] ?></th>
     235                                                                </tr>
     236                                                        </thead>
     237                                                        <tbody>
     238<?php
     239
     240        foreach ($cat_list as $cur_cat)
     241        {
     242
     243?>
     244                                                                <tr>
     245                                                                        <td class="tcl"><input type="text" name="cat[<?php echo $cur_cat['id'] ?>][name]" value="<?php echo pun_htmlspecialchars($cur_cat['cat_name']) ?>" size="35" maxlength="80" /></td>
     246                                                                        <td><input type="text" name="cat[<?php echo $cur_cat['id'] ?>][order]" value="<?php echo $cur_cat['disp_position'] ?>" size="3" maxlength="3" /></td>
     247                                                                </tr>
     248<?php
     249
     250        }
     251
     252?>
     253                                                        </tbody>
     254                                                        </table>
     255                                                        <div class="fsetsubmit"><input type="submit" name="update" value="<?php echo $lang_admin_common['Update'] ?>" /></div>
     256                                                </div>
     257                                        </fieldset>
     258                                </div>
     259                        </form>
     260                </div>
     261<?php endif; ?> </div>
    254262        <div class="clearer"></div>
    255263</div>
  • branches/rsr.v5.1.dev/web/punbb/admin_censoring.php

    r1 r3  
    11<?php
    2 /***********************************************************************
    32
    4   Copyright (C) 2002-2005  Rickard Andersson (rickard@punbb.org)
    5 
    6   This file is part of PunBB.
    7 
    8   PunBB is free software; you can redistribute it and/or modify it
    9   under the terms of the GNU General Public License as published
    10   by the Free Software Foundation; either version 2 of the License,
    11   or (at your option) any later version.
    12 
    13   PunBB is distributed in the hope that it will be useful, but
    14   WITHOUT ANY WARRANTY; without even the implied warranty of
    15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16   GNU General Public License for more details.
    17 
    18   You should have received a copy of the GNU General Public License
    19   along with this program; if not, write to the Free Software
    20   Foundation, Inc., 59 Temple Place, Suite 330, Boston,
    21   MA  02111-1307  USA
    22 
    23 ************************************************************************/
    24 
     3/**
     4 * Copyright (C) 2008-2011 FluxBB
     5 * based on code by Rickard Andersson copyright (C) 2002-2008 PunBB
     6 * License: http://www.gnu.org/licenses/gpl.html GPL version 2 or higher
     7 */
    258
    269// Tell header.php to use the admin template
    2710define('PUN_ADMIN_CONSOLE', 1);
    2811
    29 define('PUN_ROOT', './');
     12define('PUN_ROOT', dirname(__FILE__).'/');
    3013require PUN_ROOT.'include/common.php';
    3114require PUN_ROOT.'include/common_admin.php';
    3215
    3316
    34 if ($pun_user['g_id'] > PUN_MOD)
     17if ($pun_user['g_id'] != PUN_ADMIN)
    3518        message($lang_common['No permission']);
    3619
     20// Load the admin_censoring.php language file
     21require PUN_ROOT.'lang/'.$admin_language.'/admin_censoring.php';
    3722
    3823// Add a censor word
     
    4126        confirm_referrer('admin_censoring.php');
    4227
    43         $search_for = trim($_POST['new_search_for']);
    44         $replace_with = trim($_POST['new_replace_with']);
     28        $search_for = pun_trim($_POST['new_search_for']);
     29        $replace_with = pun_trim($_POST['new_replace_with']);
    4530
    46         if ($search_for == '' || $replace_with == '')
    47                 message('Vous devez saisir à la fois un mot à censurer et un texte pour le remplacer.');
     31        if ($search_for == '')
     32                message($lang_admin_censoring['Must enter word message']);
    4833
    49         $db->query('INSERT INTO '.$db->prefix.'censoring (search_for, replace_with) VALUES (\''.$db->escape($search_for).'\', \''.$db->escape($replace_with).'\')') or error('Impossible d\'ajouter un mot à censurer', __FILE__, __LINE__, $db->error());
     34        $db->query('INSERT INTO '.$db->prefix.'censoring (search_for, replace_with) VALUES (\''.$db->escape($search_for).'\', \''.$db->escape($replace_with).'\')') or error('Unable to add censor word', __FILE__, __LINE__, $db->error());
    5035
    51         redirect('admin_censoring.php', 'Mot à censurer ajouté. Redirection ...');
     36        // Regenerate the censoring cache
     37        if (!defined('FORUM_CACHE_FUNCTIONS_LOADED'))
     38                require PUN_ROOT.'include/cache.php';
     39
     40        generate_censoring_cache();
     41
     42        redirect('admin_censoring.php', $lang_admin_censoring['Word added redirect']);
    5243}
    53 
    5444
    5545// Update a censor word
     
    6050        $id = intval(key($_POST['update']));
    6151
    62         $search_for = trim($_POST['search_for'][$id]);
    63         $replace_with = trim($_POST['replace_with'][$id]);
     52        $search_for = pun_trim($_POST['search_for'][$id]);
     53        $replace_with = pun_trim($_POST['replace_with'][$id]);
    6454
    65         if ($search_for == '' || $replace_with == '')
    66                 message('Vous devez saisir à la fois un mot à censurer et un texte pour le remplacer.');
     55        if ($search_for == '')
     56                message($lang_admin_censoring['Must enter word message']);
    6757
    68         $db->query('UPDATE '.$db->prefix.'censoring SET search_for=\''.$db->escape($search_for).'\', replace_with=\''.$db->escape($replace_with).'\' WHERE id='.$id) or error('Impossible de mettre à jour le mot à censurer', __FILE__, __LINE__, $db->error());
     58        $db->query('UPDATE '.$db->prefix.'censoring SET search_for=\''.$db->escape($search_for).'\', replace_with=\''.$db->escape($replace_with).'\' WHERE id='.$id) or error('Unable to update censor word', __FILE__, __LINE__, $db->error());
    6959
    70         redirect('admin_censoring.php', 'Mot à censurer modifié. Redirection ...');
     60        // Regenerate the censoring cache
     61        if (!defined('FORUM_CACHE_FUNCTIONS_LOADED'))
     62                require PUN_ROOT.'include/cache.php';
     63
     64        generate_censoring_cache();
     65
     66        redirect('admin_censoring.php', $lang_admin_censoring['Word updated redirect']);
    7167}
    72 
    7368
    7469// Remove a censor word
     
    7974        $id = intval(key($_POST['remove']));
    8075
    81         $db->query('DELETE FROM '.$db->prefix.'censoring WHERE id='.$id) or error('Impossible de supprimer le mot à censurer', __FILE__, __LINE__, $db->error());
     76        $db->query('DELETE FROM '.$db->prefix.'censoring WHERE id='.$id) or error('Unable to delete censor word', __FILE__, __LINE__, $db->error());
    8277
    83         redirect('admin_censoring.php', 'Mot à censurer supprimé. Redirection ...');
     78        // Regenerate the censoring cache
     79        if (!defined('FORUM_CACHE_FUNCTIONS_LOADED'))
     80                require PUN_ROOT.'include/cache.php';
     81
     82        generate_censoring_cache();
     83
     84        redirect('admin_censoring.php',  $lang_admin_censoring['Word removed redirect']);
    8485}
    8586
    86 
    87 $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / Admin / Mots à censurer';
     87$page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['Censoring']);
    8888$focus_element = array('censoring', 'new_search_for');
     89define('PUN_ACTIVE_PAGE', 'admin');
    8990require PUN_ROOT.'header.php';
    9091
     
    9394?>
    9495        <div class="blockform">
    95                 <h2><span>Mots à censurer</span></h2>
     96                <h2><span><?php echo $lang_admin_censoring['Censoring head'] ?></span></h2>
    9697                <div class="box">
    97                         <form id="censoring" method="post" action="admin_censoring.php?action=foo">
     98                        <form id="censoring" method="post" action="admin_censoring.php">
    9899                                <div class="inform">
    99100                                        <fieldset>
    100                                                 <legend>Ajouter un mot à censurer</legend>
     101                                                <legend><?php echo $lang_admin_censoring['Add word subhead'] ?></legend>
    101102                                                <div class="infldset">
    102                                                         <p>Saisissez le mot que vous voulez censurer ainsi que le texte qui le remplacera. Les caractÚres joker sont permis  (ex: *fleur* vérifiera «&#160;fleurette&#160;» et «&#160;gonfleur&#160;» ). Les mots censurés affectent également les noms d'utilisateurs. Un nouvel utilisateur ne pourrait s'inscrire avec un nom d'utilisateur qui contiendrait un des mots censurés. La recherche est insensible à la casse. <strong>Les mots censurés doivent êtres activés à la page <a href="admin_options.php#censoring">Options</a> pour qu'ils aient un quelconque effet.</strong></p>
    103                                                         <table  cellspacing="0">
     103                                                        <p><?php echo $lang_admin_censoring['Add word info'].' '.($pun_config['o_censoring'] == '1' ? sprintf($lang_admin_censoring['Censoring enabled'], '<a href="admin_options.php#censoring">'.$lang_admin_common['Options'].'</a>') : sprintf($lang_admin_censoring['Censoring disabled'], '<a href="admin_options.php#censoring">'.$lang_admin_common['Options'].'</a>')) ?></p>
     104                                                        <table cellspacing="0">
    104105                                                        <thead>
    105106                                                                <tr>
    106                                                                         <th class="tcl" scope="col">Mot à censurer</th>
    107                                                                         <th class="tc2" scope="col">Texte de remplacement</th>
    108                                                                         <th class="hidehead" scope="col">Action</th>
     107                                                                        <th class="tcl" scope="col"><?php echo $lang_admin_censoring['Censored word label'] ?></th>
     108                                                                        <th class="tc2" scope="col"><?php echo $lang_admin_censoring['Replacement label'] ?></th>
     109                                                                        <th class="hidehead" scope="col"><?php echo $lang_admin_censoring['Action label'] ?></th>
    109110                                                                </tr>
    110111                                                        </thead>
    111112                                                        <tbody>
    112113                                                                <tr>
    113                                                                         <td><input type="text" name="new_search_for" size="24" maxlength="60" tabindex="1" /></td>
    114                                                                         <td><input type="text" name="new_replace_with" size="24" maxlength="60" tabindex="2" /></td>
    115                                                                         <td><input type="submit" name="add_word" value=" Add " tabindex="3" /></td>
     114                                                                        <td class="tcl"><input type="text" name="new_search_for" size="24" maxlength="60" tabindex="1" /></td>
     115                                                                        <td class="tc2"><input type="text" name="new_replace_with" size="24" maxlength="60" tabindex="2" /></td>
     116                                                                        <td><input type="submit" name="add_word" value="<?php echo $lang_admin_common['Add'] ?>" tabindex="3" /></td>
    116117                                                                </tr>
    117118                                                        </tbody>
     
    122123                                <div class="inform">
    123124                                        <fieldset>
    124                                                 <legend>Modifier/supprimer des mots à censurer</legend>
     125                                                <legend><?php echo $lang_admin_censoring['Edit remove subhead'] ?></legend>
    125126                                                <div class="infldset">
    126127<?php
    127128
    128 $result = $db->query('SELECT id, search_for, replace_with FROM '.$db->prefix.'censoring ORDER BY id') or error('Impossible de retrouver la liste des mots à censurer', __FILE__, __LINE__, $db->error());
     129$result = $db->query('SELECT id, search_for, replace_with FROM '.$db->prefix.'censoring ORDER BY id') or error('Unable to fetch censor word list', __FILE__, __LINE__, $db->error());
    129130if ($db->num_rows($result))
    130131{
     
    134135                                                        <thead>
    135136                                                                <tr>
    136                                                                         <th class="tcl" scope="col">Mots à censurer</th>
    137                                                                         <th class="tc2" scope="col">Texte de remplacement</th>
    138                                                                         <th class="hidehead" scope="col">Actions</th>
     137                                                                        <th class="tcl" scope="col"><?php echo $lang_admin_censoring['Censored word label'] ?></th>
     138                                                                        <th class="tc2" scope="col"><?php echo $lang_admin_censoring['Replacement label'] ?></th>
     139                                                                        <th class="hidehead" scope="col"><?php echo $lang_admin_censoring['Action label'] ?></th>
    139140                                                                </tr>
    140141                                                        </thead>
     
    143144
    144145        while ($cur_word = $db->fetch_assoc($result))
    145                 echo "\t\t\t\t\t\t\t\t".'<tr><td><input type="text" name="search_for['.$cur_word['id'].']" value="'.pun_htmlspecialchars($cur_word['search_for']).'" size="24" maxlength="60" /></td><td><input type="text" name="replace_with['.$cur_word['id'].']" value="'.pun_htmlspecialchars($cur_word['replace_with']).'" size="24" maxlength="60" /></td><td><input type="submit" name="update['.$cur_word['id'].']" value=" Modifier " />&#160;<input type="submit" name="remove['.$cur_word['id'].']" value=" Supprimer " /></td></tr>'."\n";
     146                echo "\t\t\t\t\t\t\t\t".'<tr><td class="tcl"><input type="text" name="search_for['.$cur_word['id'].']" value="'.pun_htmlspecialchars($cur_word['search_for']).'" size="24" maxlength="60" /></td><td class="tc2"><input type="text" name="replace_with['.$cur_word['id'].']" value="'.pun_htmlspecialchars($cur_word['replace_with']).'" size="24" maxlength="60" /></td><td><input type="submit" name="update['.$cur_word['id'].']" value="'.$lang_admin_common['Update'].'" />&#160;<input type="submit" name="remove['.$cur_word['id'].']" value="'.$lang_admin_common['Remove'].'" /></td></tr>'."\n";
    146147
    147148?>
     
    152153}
    153154else
    154         echo "\t\t\t\t\t\t\t".'<p>Aucun mot à censurer dans la liste.</p>'."\n";
     155        echo "\t\t\t\t\t\t\t".'<p>'.$lang_admin_censoring['No words in list'].'</p>'."\n";
    155156
    156157?>
  • branches/rsr.v5.1.dev/web/punbb/admin_forums.php

    r1 r3  
    11<?php
    2 /***********************************************************************
    3 
    4   Copyright (C) 2002-2005  Rickard Andersson (rickard@punbb.org)
    5 
    6   This file is part of PunBB.
    7 
    8   PunBB is free software; you can redistribute it and/or modify it
    9   under the terms of the GNU General Public License as published
    10   by the Free Software Foundation; either version 2 of the License,
    11   or (at your option) any later version.
    12 
    13   PunBB is distributed in the hope that it will be useful, but
    14   WITHOUT ANY WARRANTY; without even the implied warranty of
    15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16   GNU General Public License for more details.
    17 
    18   You should have received a copy of the GNU General Public License
    19   along with this program; if not, write to the Free Software
    20   Foundation, Inc., 59 Temple Place, Suite 330, Boston,
    21   MA  02111-1307  USA
    22 
    23 ************************************************************************/
    24 
     2
     3/**
     4 * Copyright (C) 2008-2011 FluxBB
     5 * based on code by Rickard Andersson copyright (C) 2002-2008 PunBB
     6 * License: http://www.gnu.org/licenses/gpl.html GPL version 2 or higher
     7 */
    258
    269// Tell header.php to use the admin template
    2710define('PUN_ADMIN_CONSOLE', 1);
    2811
    29 define('PUN_ROOT', './');
     12define('PUN_ROOT', dirname(__FILE__).'/');
    3013require PUN_ROOT.'include/common.php';
    3114require PUN_ROOT.'include/common_admin.php';
    3215
    3316
    34 if ($pun_user['g_id'] > PUN_ADMIN)
     17if ($pun_user['g_id'] != PUN_ADMIN)
    3518        message($lang_common['No permission']);
    3619
     20// Load the admin_forums.php language file
     21require PUN_ROOT.'lang/'.$admin_language.'/admin_forums.php';
    3722
    3823// Add a "default" forum
     
    4530                message($lang_common['Bad request']);
    4631
    47         $db->query('INSERT INTO '.$db->prefix.'forums (cat_id) VALUES('.$add_to_cat.')') or error('Impossible de créer un nouveau forum', __FILE__, __LINE__, $db->error());
    48 
    49         // Regenerate the quickjump cache
    50         require_once PUN_ROOT.'include/cache.php';
     32        $db->query('INSERT INTO '.$db->prefix.'forums (forum_name, cat_id) VALUES(\''.$db->escape($lang_admin_forums['New forum']).'\', '.$add_to_cat.')') or error('Unable to create forum', __FILE__, __LINE__, $db->error());
     33
     34        // Regenerate the quick jump cache
     35        if (!defined('FORUM_CACHE_FUNCTIONS_LOADED'))
     36                require PUN_ROOT.'include/cache.php';
     37
    5138        generate_quickjump_cache();
    5239
    53         redirect('admin_forums.php', 'Forum ajouté. Redirection ...');
    54 }
    55 
     40        redirect('admin_forums.php', $lang_admin_forums['Forum added redirect']);
     41}
    5642
    5743// Delete a forum
     
    6450                message($lang_common['Bad request']);
    6551
    66         if (isset($_POST['del_forum_comply']))  // Delete a forum with all posts
     52        if (isset($_POST['del_forum_comply'])) // Delete a forum with all posts
    6753        {
    6854                @set_time_limit(0);
     
    7258
    7359                // Locate any "orphaned redirect topics" and delete them
    74                 $result = $db->query('SELECT t1.id FROM '.$db->prefix.'topics AS t1 LEFT JOIN '.$db->prefix.'topics AS t2 ON t1.moved_to=t2.id WHERE t2.id IS NULL AND t1.moved_to IS NOT NULL') or error('Impossible de retrouver les sujets de redirection', __FILE__, __LINE__, $db->error());
     60                $result = $db->query('SELECT t1.id FROM '.$db->prefix.'topics AS t1 LEFT JOIN '.$db->prefix.'topics AS t2 ON t1.moved_to=t2.id WHERE t2.id IS NULL AND t1.moved_to IS NOT NULL') or error('Unable to fetch redirect topics', __FILE__, __LINE__, $db->error());
    7561                $num_orphans = $db->num_rows($result);
    7662
     
    8066                                $orphans[] = $db->result($result, $i);
    8167
    82                         $db->query('DELETE FROM '.$db->prefix.'topics WHERE id IN('.implode(',', $orphans).')') or error('Impossible de supprimer les sujets de redirection', __FILE__, __LINE__, $db->error());
     68                        $db->query('DELETE FROM '.$db->prefix.'topics WHERE id IN('.implode(',', $orphans).')') or error('Unable to delete redirect topics', __FILE__, __LINE__, $db->error());
    8369                }
    8470
    8571                // Delete the forum and any forum specific group permissions
    86                 $db->query('DELETE FROM '.$db->prefix.'forums WHERE id='.$forum_id) or error('Impossible de supprimer un forum', __FILE__, __LINE__, $db->error());
    87                 $db->query('DELETE FROM '.$db->prefix.'forum_perms WHERE forum_id='.$forum_id) or error('Impossible de supprimer les permissions de groupe du forum', __FILE__, __LINE__, $db->error());
    88 
    89                 // Regenerate the quickjump cache
    90                 require_once PUN_ROOT.'include/cache.php';
     72                $db->query('DELETE FROM '.$db->prefix.'forums WHERE id='.$forum_id) or error('Unable to delete forum', __FILE__, __LINE__, $db->error());
     73                $db->query('DELETE FROM '.$db->prefix.'forum_perms WHERE forum_id='.$forum_id) or error('Unable to delete group forum permissions', __FILE__, __LINE__, $db->error());
     74
     75                // Delete any subscriptions for this forum
     76                $db->query('DELETE FROM '.$db->prefix.'forum_subscriptions WHERE forum_id='.$forum_id) or error('Unable to delete subscriptions', __FILE__, __LINE__, $db->error());
     77
     78                // Regenerate the quick jump cache
     79                if (!defined('FORUM_CACHE_FUNCTIONS_LOADED'))
     80                        require PUN_ROOT.'include/cache.php';
     81
    9182                generate_quickjump_cache();
    9283
    93                 redirect('admin_forums.php', 'Forum supprimé. Redirection ...');
    94         }
    95         else    // If the user hasn't confirmed the delete
    96         {
    97                 $result = $db->query('SELECT forum_name FROM '.$db->prefix.'forums WHERE id='.$forum_id) or error('Impossible de retrouver les informations du forum', __FILE__, __LINE__, $db->error());
     84                redirect('admin_forums.php', $lang_admin_forums['Forum deleted redirect']);
     85        }
     86        else // If the user hasn't confirmed the delete
     87        {
     88                $result = $db->query('SELECT forum_name FROM '.$db->prefix.'forums WHERE id='.$forum_id) or error('Unable to fetch forum info', __FILE__, __LINE__, $db->error());
    9889                $forum_name = pun_htmlspecialchars($db->result($result));
    9990
    100 
    101                 $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / Admin / Forums';
     91                $page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['Forums']);
     92                define('PUN_ACTIVE_PAGE', 'admin');
    10293                require PUN_ROOT.'header.php';
    10394
     
    10697?>
    10798        <div class="blockform">
    108                 <h2><span>Confirmez la suppresion du forum</span></h2>
     99                <h2><span><?php echo $lang_admin_forums['Confirm delete head'] ?></span></h2>
    109100                <div class="box">
    110101                        <form method="post" action="admin_forums.php?del_forum=<?php echo $forum_id ?>">
    111102                                <div class="inform">
    112103                                        <fieldset>
    113                                                 <legend>Important ! Lire attentivement avant de procéder à la suppression.</legend>
     104                                                <legend><?php echo $lang_admin_forums['Confirm delete subhead'] ?></legend>
    114105                                                <div class="infldset">
    115                                                         <p>Êtes vous sûr de vouloir supprimer le forum "<?php echo $forum_name ?>"&#160;?</p>
    116                                                         <p>ATTENTION ! Supprimer un forum effacera tous les messages (s'il y en a) présent dans ce forum&#160;!</p>
     106                                                        <p><?php printf($lang_admin_forums['Confirm delete info'], $forum_name) ?></p>
     107                                                        <p class="warntext"><?php echo $lang_admin_forums['Confirm delete warn'] ?></p>
    117108                                                </div>
    118109                                        </fieldset>
    119110                                </div>
    120                                 <p><input type="submit" name="del_forum_comply" value=" Supprimer " /><a href="javascript:history.go(-1)">Retour</a></p>
     111                                <p class="buttons"><input type="submit" name="del_forum_comply" value="<?php echo $lang_admin_common['Delete'] ?>" /><a href="javascript:history.go(-1)"><?php echo $lang_admin_common['Go back'] ?></a></p>
    121112                        </form>
    122113                </div>
     
    130121}
    131122
    132 
    133123// Update forum positions
    134124else if (isset($_POST['update_positions']))
     
    136126        confirm_referrer('admin_forums.php');
    137127
    138         while (list($forum_id, $disp_position) = @each($_POST['position']))
    139         {
    140                 if (!preg_match('#^\d+$#', $disp_position))
    141                         message('La position doit être un nombre entier.');
    142 
    143                 $db->query('UPDATE '.$db->prefix.'forums SET disp_position='.$disp_position.' WHERE id='.$forum_id) or error('Impossible de mettre à jour les forums', __FILE__, __LINE__, $db->error());
    144         }
    145 
    146         // Regenerate the quickjump cache
    147         require_once PUN_ROOT.'include/cache.php';
     128        foreach ($_POST['position'] as $forum_id => $disp_position)
     129        {
     130                $disp_position = trim($disp_position);
     131                if ($disp_position == '' || preg_match('%[^0-9]%', $disp_position))
     132                        message($lang_admin_forums['Must be integer message']);
     133
     134                $db->query('UPDATE '.$db->prefix.'forums SET disp_position='.$disp_position.' WHERE id='.intval($forum_id)) or error('Unable to update forum', __FILE__, __LINE__, $db->error());
     135        }
     136
     137        // Regenerate the quick jump cache
     138        if (!defined('FORUM_CACHE_FUNCTIONS_LOADED'))
     139                require PUN_ROOT.'include/cache.php';
     140
    148141        generate_quickjump_cache();
    149142
    150         redirect('admin_forums.php', 'Forums modifiés. Redirection ...');
    151 }
    152 
     143        redirect('admin_forums.php', $lang_admin_forums['Forums updated redirect']);
     144}
    153145
    154146else if (isset($_GET['edit_forum']))
     
    164156
    165157                // Start with the forum details
    166                 $forum_name = trim($_POST['forum_name']);
    167                 $forum_desc = pun_linebreaks(trim($_POST['forum_desc']));
     158                $forum_name = pun_trim($_POST['forum_name']);
     159                $forum_desc = pun_linebreaks(pun_trim($_POST['forum_desc']));
    168160                $cat_id = intval($_POST['cat_id']);
    169161                $sort_by = intval($_POST['sort_by']);
     
    171163
    172164                if ($forum_name == '')
    173                         message('Vous devez saisir un nom de forum.');
     165                        message($lang_admin_forums['Must enter name message']);
    174166
    175167                if ($cat_id < 1)
     
    179171                $redirect_url = ($redirect_url != '') ? '\''.$db->escape($redirect_url).'\'' : 'NULL';
    180172
    181                 $db->query('UPDATE '.$db->prefix.'forums SET forum_name=\''.$db->escape($forum_name).'\', forum_desc='.$forum_desc.', redirect_url='.$redirect_url.', sort_by='.$sort_by.', cat_id='.$cat_id.' WHERE id='.$forum_id) or error('Impossible de modifier le forum', __FILE__, __LINE__, $db->error());
     173                $db->query('UPDATE '.$db->prefix.'forums SET forum_name=\''.$db->escape($forum_name).'\', forum_desc='.$forum_desc.', redirect_url='.$redirect_url.', sort_by='.$sort_by.', cat_id='.$cat_id.' WHERE id='.$forum_id) or error('Unable to update forum', __FILE__, __LINE__, $db->error());
    182174
    183175                // Now let's deal with the permissions
    184176                if (isset($_POST['read_forum_old']))
    185177                {
    186                         $result = $db->query('SELECT g_id, g_read_board, g_post_replies, g_post_topics FROM '.$db->prefix.'groups WHERE g_id!='.PUN_ADMIN) or error('Impossible de retrouver la liste des groupes d\'utilisateurs', __FILE__, __LINE__, $db->error());
     178                        $result = $db->query('SELECT g_id, g_read_board, g_post_replies, g_post_topics FROM '.$db->prefix.'groups WHERE g_id!='.PUN_ADMIN) or error('Unable to fetch user group list', __FILE__, __LINE__, $db->error());
    187179                        while ($cur_group = $db->fetch_assoc($result))
    188180                        {
    189                                 $read_forum_new = ($cur_group['g_read_board'] == '1') ? isset($_POST['read_forum_new'][$cur_group['g_id']]) ? $_POST['read_forum_new'][$cur_group['g_id']] : '0' : $_POST['read_forum_old'][$cur_group['g_id']];
    190                                 $post_replies_new = isset($_POST['post_replies_new'][$cur_group['g_id']]) ? $_POST['post_replies_new'][$cur_group['g_id']] : '0';
    191                                 $post_topics_new = isset($_POST['post_topics_new'][$cur_group['g_id']]) ? $_POST['post_topics_new'][$cur_group['g_id']] : '0';
     181                                $read_forum_new = ($cur_group['g_read_board'] == '1') ? isset($_POST['read_forum_new'][$cur_group['g_id']]) ? '1' : '0' : intval($_POST['read_forum_old'][$cur_group['g_id']]);
     182                                $post_replies_new = isset($_POST['post_replies_new'][$cur_group['g_id']]) ? '1' : '0';
     183                                $post_topics_new = isset($_POST['post_topics_new'][$cur_group['g_id']]) ? '1' : '0';
    192184
    193185                                // Check if the new settings differ from the old
     
    196188                                        // If the new settings are identical to the default settings for this group, delete it's row in forum_perms
    197189                                        if ($read_forum_new == '1' && $post_replies_new == $cur_group['g_post_replies'] && $post_topics_new == $cur_group['g_post_topics'])
    198                                                 $db->query('DELETE FROM '.$db->prefix.'forum_perms WHERE group_id='.$cur_group['g_id'].' AND forum_id='.$forum_id) or error('Impossible de supprimer les permissions de groupes du forum', __FILE__, __LINE__, $db->error());
     190                                                $db->query('DELETE FROM '.$db->prefix.'forum_perms WHERE group_id='.$cur_group['g_id'].' AND forum_id='.$forum_id) or error('Unable to delete group forum permissions', __FILE__, __LINE__, $db->error());
    199191                                        else
    200192                                        {
    201193                                                // Run an UPDATE and see if it affected a row, if not, INSERT
    202                                                 $db->query('UPDATE '.$db->prefix.'forum_perms SET read_forum='.$read_forum_new.', post_replies='.$post_replies_new.', post_topics='.$post_topics_new.' WHERE group_id='.$cur_group['g_id'].' AND forum_id='.$forum_id) or error('Impossible d\'insérer les permissions de groupes du forum', __FILE__, __LINE__, $db->error());
     194                                                $db->query('UPDATE '.$db->prefix.'forum_perms SET read_forum='.$read_forum_new.', post_replies='.$post_replies_new.', post_topics='.$post_topics_new.' WHERE group_id='.$cur_group['g_id'].' AND forum_id='.$forum_id) or error('Unable to insert group forum permissions', __FILE__, __LINE__, $db->error());
    203195                                                if (!$db->affected_rows())
    204                                                         $db->query('INSERT INTO '.$db->prefix.'forum_perms (group_id, forum_id, read_forum, post_replies, post_topics) VALUES('.$cur_group['g_id'].', '.$forum_id.', '.$read_forum_new.', '.$post_replies_new.', '.$post_topics_new.')') or error('Impossible d\'insérer les permissions de groupes du forum', __FILE__, __LINE__, $db->error());
     196                                                        $db->query('INSERT INTO '.$db->prefix.'forum_perms (group_id, forum_id, read_forum, post_replies, post_topics) VALUES('.$cur_group['g_id'].', '.$forum_id.', '.$read_forum_new.', '.$post_replies_new.', '.$post_topics_new.')') or error('Unable to insert group forum permissions', __FILE__, __LINE__, $db->error());
    205197                                        }
    206198                                }
     
    208200                }
    209201
    210                 // Regenerate the quickjump cache
    211                 require_once PUN_ROOT.'include/cache.php';
     202                // Regenerate the quick jump cache
     203                if (!defined('FORUM_CACHE_FUNCTIONS_LOADED'))
     204                        require PUN_ROOT.'include/cache.php';
     205
    212206                generate_quickjump_cache();
    213207
    214                 redirect('admin_forums.php', 'Forum modifié. Redirection ...');
     208                redirect('admin_forums.php', $lang_admin_forums['Forum updated redirect']);
    215209        }
    216210        else if (isset($_POST['revert_perms']))
     
    218212                confirm_referrer('admin_forums.php');
    219213
    220                 $db->query('DELETE FROM '.$db->prefix.'forum_perms WHERE forum_id='.$forum_id) or error('Impossible de supprimer les permissions de groupes du forum', __FILE__, __LINE__, $db->error());
    221 
    222                 // Regenerate the quickjump cache
    223                 require_once PUN_ROOT.'include/cache.php';
     214                $db->query('DELETE FROM '.$db->prefix.'forum_perms WHERE forum_id='.$forum_id) or error('Unable to delete group forum permissions', __FILE__, __LINE__, $db->error());
     215
     216                // Regenerate the quick jump cache
     217                if (!defined('FORUM_CACHE_FUNCTIONS_LOADED'))
     218                        require PUN_ROOT.'include/cache.php';
     219
    224220                generate_quickjump_cache();
    225221
    226                 redirect('admin_forums.php?edit_forum='.$forum_id, 'Permissions remises à leurs valeurs par défaut. Redirection ...');
    227         }
    228 
     222                redirect('admin_forums.php?edit_forum='.$forum_id, $lang_admin_forums['Perms reverted redirect']);
     223        }
    229224
    230225        // Fetch forum info
    231         $result = $db->query('SELECT id, forum_name, forum_desc, redirect_url, num_topics, sort_by, cat_id FROM '.$db->prefix.'forums WHERE id='.$forum_id) or error('Impossible de retrouver les informations du forum', __FILE__, __LINE__, $db->error());
     226        $result = $db->query('SELECT id, forum_name, forum_desc, redirect_url, num_topics, sort_by, cat_id FROM '.$db->prefix.'forums WHERE id='.$forum_id) or error('Unable to fetch forum info', __FILE__, __LINE__, $db->error());
    232227        if (!$db->num_rows($result))
    233228                message($lang_common['Bad request']);
     
    235230        $cur_forum = $db->fetch_assoc($result);
    236231
    237 
    238         $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / Admin / Forums';
     232        $page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['Forums']);
     233        define('PUN_ACTIVE_PAGE', 'admin');
    239234        require PUN_ROOT.'header.php';
    240235
     
    243238?>
    244239        <div class="blockform">
    245                 <h2><span>Modifier forum</span></h2>
     240                <h2><span><?php echo $lang_admin_forums['Edit forum head'] ?></span></h2>
    246241                <div class="box">
    247242                        <form id="edit_forum" method="post" action="admin_forums.php?edit_forum=<?php echo $forum_id ?>">
    248                                 <p class="submittop"><input type="submit" name="save" value=" Enregistrer modifications " tabindex="6" /></p>
     243                                <p class="submittop"><input type="submit" name="save" value="<?php echo $lang_admin_common['Save changes'] ?>" tabindex="6" /></p>
    249244                                <div class="inform">
    250245                                        <fieldset>
    251                                                 <legend>Modifier les détails du forum</legend>
     246                                                <legend><?php echo $lang_admin_forums['Edit details subhead'] ?></legend>
    252247                                                <div class="infldset">
    253248                                                        <table class="aligntop" cellspacing="0">
    254249                                                                <tr>
    255                                                                         <th scope="row">Nom du forum</th>
     250                                                                        <th scope="row"><?php echo $lang_admin_forums['Forum name label'] ?></th>
    256251                                                                        <td><input type="text" name="forum_name" size="35" maxlength="80" value="<?php echo pun_htmlspecialchars($cur_forum['forum_name']) ?>" tabindex="1" /></td>
    257252                                                                </tr>
    258253                                                                <tr>
    259                                                                         <th scope="row">Description (<acronym title="HyperText Markup Language" lang="en">HTML</acronym>)</th>
     254                                                                        <th scope="row"><?php echo $lang_admin_forums['Forum description label'] ?></th>
    260255                                                                        <td><textarea name="forum_desc" rows="3" cols="50" tabindex="2"><?php echo pun_htmlspecialchars($cur_forum['forum_desc']) ?></textarea></td>
    261256                                                                </tr>
    262257                                                                <tr>
    263                                                                         <th scope="row">Catégorie</th>
     258                                                                        <th scope="row"><?php echo $lang_admin_forums['Category label'] ?></th>
    264259                                                                        <td>
    265260                                                                                <select name="cat_id" tabindex="3">
    266261<?php
    267262
    268         $result = $db->query('SELECT id, cat_name FROM '.$db->prefix.'categories ORDER BY disp_position') or error('Impossible de retrouver la liste des catégories', __FILE__, __LINE__, $db->error());
     263        $result = $db->query('SELECT id, cat_name FROM '.$db->prefix.'categories ORDER BY disp_position') or error('Unable to fetch category list', __FILE__, __LINE__, $db->error());
    269264        while ($cur_cat = $db->fetch_assoc($result))
    270265        {
     
    278273                                                                </tr>
    279274                                                                <tr>
    280                                                                         <th scope="row">Trier les discussions par</th>
     275                                                                        <th scope="row"><?php echo $lang_admin_forums['Sort by label'] ?></th>
    281276                                                                        <td>
    282277                                                                                <select name="sort_by" tabindex="4">
    283                                                                                         <option value="0"<?php if ($cur_forum['sort_by'] == '0') echo ' selected="selected"' ?>>Derniers messages</option>
    284                                                                                         <option value="1"<?php if ($cur_forum['sort_by'] == '1') echo ' selected="selected"' ?>>Dates des discussions</option>
     278                                                                                        <option value="0"<?php if ($cur_forum['sort_by'] == '0') echo ' selected="selected"' ?>><?php echo $lang_admin_forums['Last post'] ?></option>
     279                                                                                        <option value="1"<?php if ($cur_forum['sort_by'] == '1') echo ' selected="selected"' ?>><?php echo $lang_admin_forums['Topic start'] ?></option>
     280                                                                                        <option value="2"<?php if ($cur_forum['sort_by'] == '2') echo ' selected="selected"' ?>><?php echo $lang_admin_forums['Subject'] ?></option>
    285281                                                                                </select>
    286282                                                                        </td>
    287283                                                                </tr>
    288284                                                                <tr>
    289                                                                         <th scope="row"><acronym title="Uniform Resource Locator" lang="en">URL</acronym> de redirection</th>
    290                                                                         <td><?php echo ($cur_forum['num_topics']) ? 'Disponible uniquement pour les forums vides' : '<input type="text" name="redirect_url" size="45" maxlength="100" value="'.pun_htmlspecialchars($cur_forum['redirect_url']).'" tabindex="5" />'; ?></td>
     285                                                                        <th scope="row"><?php echo $lang_admin_forums['Redirect label'] ?></th>
     286                                                                        <td><?php echo ($cur_forum['num_topics']) ? $lang_admin_forums['Redirect help'] : '<input type="text" name="redirect_url" size="45" maxlength="100" value="'.pun_htmlspecialchars($cur_forum['redirect_url']).'" tabindex="5" />'; ?></td>
    291287                                                                </tr>
    292288                                                        </table>
     
    296292                                <div class="inform">
    297293                                        <fieldset>
    298                                                 <legend>Modifier les permissions de groupes de ce forum</legend>
     294                                                <legend><?php echo $lang_admin_forums['Group permissions subhead'] ?></legend>
    299295                                                <div class="infldset">
    300                                                         <p>Avec ce formulaire vous pouvez régler les permissions de ce forum spécifiques aux différents groupes d'utilisateurs. Si vous n'avez effectué aucune modification à ces permissions de groupes, ce que vous voyez ci-dessous sont les permissions par défaut basées sur les paramÚtres des <a href="admin_groups.php">Groupes d'utilisateurs</a>. Les administrateurs ont toujours toutes les permissions et sont donc écartés. Les paramÚtres de permission qui diffÚrent des permissions par défaut pour le groupe d'utilisateur sont signalés en rouge. La permission «&#160;Lire&#160;» pourra être désactivée si le groupe en question ne possÚde pas la permission globale «&#160;Lire forums&#160;». Pour les forums de redirection seule la permission «&#160;Lire&#160;» est modifiable.</p>
     296                                                        <p><?php printf($lang_admin_forums['Group permissions info'], '<a href="admin_groups.php">'.$lang_admin_common['User groups'].'</a>') ?></p>
    301297                                                        <table id="forumperms" cellspacing="0">
    302298                                                        <thead>
    303299                                                                <tr>
    304300                                                                        <th class="atcl">&#160;</th>
    305                                                                         <th>Lire le forum</th>
    306                                                                         <th>Écrire des réponses</th>
    307                                                                         <th>Lancer des discussions</th>
     301                                                                        <th><?php echo $lang_admin_forums['Read forum label'] ?></th>
     302                                                                        <th><?php echo $lang_admin_forums['Post replies label'] ?></th>
     303                                                                        <th><?php echo $lang_admin_forums['Post topics label'] ?></th>
    308304                                                                </tr>
    309305                                                        </thead>
     
    311307<?php
    312308
    313         $result = $db->query('SELECT g.g_id, g.g_title, g.g_read_board, g.g_post_replies, g.g_post_topics, fp.read_forum, fp.post_replies, fp.post_topics FROM '.$db->prefix.'groups AS g LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (g.g_id=fp.group_id AND fp.forum_id='.$forum_id.') WHERE g.g_id!='.PUN_ADMIN.' ORDER BY g.g_id') or error('Impossible de retrouver la liste des permissions de groupe du forum', __FILE__, __LINE__, $db->error());
     309        $result = $db->query('SELECT g.g_id, g.g_title, g.g_read_board, g.g_post_replies, g.g_post_topics, fp.read_forum, fp.post_replies, fp.post_topics FROM '.$db->prefix.'groups AS g LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (g.g_id=fp.group_id AND fp.forum_id='.$forum_id.') WHERE g.g_id!='.PUN_ADMIN.' ORDER BY g.g_id') or error('Unable to fetch group forum permission list', __FILE__, __LINE__, $db->error());
     310
     311        $cur_index = 7;
    314312
    315313        while ($cur_perm = $db->fetch_assoc($result))
     
    319317                $post_topics = (($cur_perm['g_post_topics'] == '0' && $cur_perm['post_topics'] == '1') || ($cur_perm['g_post_topics'] == '1' && $cur_perm['post_topics'] != '0')) ? true : false;
    320318
    321                 // Determine if the current sittings differ from the default or not
     319                // Determine if the current settings differ from the default or not
    322320                $read_forum_def = ($cur_perm['read_forum'] == '0') ? false : true;
    323321                $post_replies_def = (($post_replies && $cur_perm['g_post_replies'] == '0') || (!$post_replies && ($cur_perm['g_post_replies'] == '' || $cur_perm['g_post_replies'] == '1'))) ? false : true;
     
    329327                                                                        <td<?php if (!$read_forum_def) echo ' class="nodefault"'; ?>>
    330328                                                                                <input type="hidden" name="read_forum_old[<?php echo $cur_perm['g_id'] ?>]" value="<?php echo ($read_forum) ? '1' : '0'; ?>" />
    331                                                                                 <input type="checkbox" name="read_forum_new[<?php echo $cur_perm['g_id'] ?>]" value="1"<?php echo ($read_forum) ? ' checked="checked"' : ''; ?><?php echo ($cur_perm['g_read_board'] == '0') ? ' disabled="disabled"' : ''; ?> />
     329                                                                                <input type="checkbox" name="read_forum_new[<?php echo $cur_perm['g_id'] ?>]" value="1"<?php echo ($read_forum) ? ' checked="checked"' : ''; ?><?php echo ($cur_perm['g_read_board'] == '0') ? ' disabled="disabled"' : ''; ?> tabindex="<?php echo $cur_index++ ?>" />
    332330                                                                        </td>
    333331                                                                        <td<?php if (!$post_replies_def && $cur_forum['redirect_url'] == '') echo ' class="nodefault"'; ?>>
    334332                                                                                <input type="hidden" name="post_replies_old[<?php echo $cur_perm['g_id'] ?>]" value="<?php echo ($post_replies) ? '1' : '0'; ?>" />
    335                                                                                 <input type="checkbox" name="post_replies_new[<?php echo $cur_perm['g_id'] ?>]" value="1"<?php echo ($post_replies) ? ' checked="checked"' : ''; ?><?php echo ($cur_forum['redirect_url'] != '') ? ' disabled="disabled"' : ''; ?> />
     333                                                                                <input type="checkbox" name="post_replies_new[<?php echo $cur_perm['g_id'] ?>]" value="1"<?php echo ($post_replies) ? ' checked="checked"' : ''; ?><?php echo ($cur_forum['redirect_url'] != '') ? ' disabled="disabled"' : ''; ?> tabindex="<?php echo $cur_index++ ?>" />
    336334                                                                        </td>
    337335                                                                        <td<?php if (!$post_topics_def && $cur_forum['redirect_url'] == '') echo ' class="nodefault"'; ?>>
    338336                                                                                <input type="hidden" name="post_topics_old[<?php echo $cur_perm['g_id'] ?>]" value="<?php echo ($post_topics) ? '1' : '0'; ?>" />
    339                                                                                 <input type="checkbox" name="post_topics_new[<?php echo $cur_perm['g_id'] ?>]" value="1"<?php echo ($post_topics) ? ' checked="checked"' : ''; ?><?php echo ($cur_forum['redirect_url'] != '') ? ' disabled="disabled"' : ''; ?> />
     337                                                                                <input type="checkbox" name="post_topics_new[<?php echo $cur_perm['g_id'] ?>]" value="1"<?php echo ($post_topics) ? ' checked="checked"' : ''; ?><?php echo ($cur_forum['redirect_url'] != '') ? ' disabled="disabled"' : ''; ?> tabindex="<?php echo $cur_index++ ?>" />
    340338                                                                        </td>
    341339                                                                </tr>
     
    347345                                                        </tbody>
    348346                                                        </table>
    349                                                         <div class="fsetsubmit"><input type="submit" name="revert_perms" value=" Rétablir les permissions par défaut " /></div>
     347                                                        <div class="fsetsubmit"><input type="submit" name="revert_perms" value="<?php echo $lang_admin_forums['Revert to default'] ?>" tabindex="<?php echo $cur_index++ ?>" /></div>
    350348                                                </div>
    351349                                        </fieldset>
    352350                                </div>
    353                                 <p class="submitend"><input type="submit" name="save" value=" Enregistrer modifications " /></p>
     351                                <p class="submitend"><input type="submit" name="save" value="<?php echo $lang_admin_common['Save changes'] ?>" tabindex="<?php echo $cur_index++ ?>" /></p>
    354352                        </form>
    355353                </div>
     
    363361}
    364362
    365 
    366 $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / Admin / Forums';
     363$page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['Forums']);
     364define('PUN_ACTIVE_PAGE', 'admin');
    367365require PUN_ROOT.'header.php';
    368366
     
    371369?>
    372370        <div class="blockform">
    373                 <h2><span>Ajouter forum</span></h2>
     371                <h2><span><?php echo $lang_admin_forums['Add forum head'] ?></span></h2>
    374372                <div class="box">
    375373                        <form method="post" action="admin_forums.php?action=adddel">
    376374                                <div class="inform">
    377375                                        <fieldset>
    378                                                 <legend>Créer un forum</legend>
     376                                                <legend><?php echo $lang_admin_forums['Create new subhead'] ?></legend>
    379377                                                <div class="infldset">
    380378                                                        <table class="aligntop" cellspacing="0">
    381379                                                                <tr>
    382                                                                         <th scope="row">Ajouter un forum à la catégorie<div><input type="submit" name="add_forum" value=" Ajouter " tabindex="2" /></div></th>
     380                                                                        <th scope="row"><?php echo $lang_admin_forums['Add forum label'] ?><div><input type="submit" name="add_forum" value="<?php echo $lang_admin_forums['Add forum'] ?>" tabindex="2" /></div></th>
    383381                                                                        <td>
    384382                                                                                <select name="add_to_cat" tabindex="1">
    385383<?php
    386384
    387         $result = $db->query('SELECT id, cat_name FROM '.$db->prefix.'categories ORDER BY disp_position') or error('Impossible de retrouver la liste des catégories', __FILE__, __LINE__, $db->error());
    388         while ($cur_cat = $db->fetch_assoc($result))
    389                 echo "\t\t\t\t\t\t\t\t\t".'<option value="'.$cur_cat['id'].'">'.pun_htmlspecialchars($cur_cat['cat_name']).'</option>'."\n";
     385        $result = $db->query('SELECT id, cat_name FROM '.$db->prefix.'categories ORDER BY disp_position') or error('Unable to fetch category list', __FILE__, __LINE__, $db->error());
     386        if ($db->num_rows($result) > 0)
     387        {
     388                while ($cur_cat = $db->fetch_assoc($result))
     389                        echo "\t\t\t\t\t\t\t\t\t\t\t".'<option value="'.$cur_cat['id'].'">'.pun_htmlspecialchars($cur_cat['cat_name']).'</option>'."\n";
     390        }
     391        else
     392                echo "\t\t\t\t\t\t\t\t\t\t\t".'<option value="0" disabled="disabled">'.$lang_admin_forums['No categories exist'].'</option>'."\n";
    390393
    391394?>
    392395                                                                                </select>
    393                                                                                 <span>Choisissez la catégorie dans laquelle vous souhaitez ajouter un nouveau forum.</span>
     396                                                                                <span><?php echo $lang_admin_forums['Add forum help'] ?></span>
    394397                                                                        </td>
    395398                                                                </tr>
     
    400403                        </form>
    401404                </div>
    402 
    403                 <h2 class="block2"><span>Modifier les forums</span></h2>
     405<?php
     406
     407// Display all the categories and forums
     408$result = $db->query('SELECT c.id AS cid, c.cat_name, f.id AS fid, f.forum_name, f.disp_position FROM '.$db->prefix.'categories AS c INNER JOIN '.$db->prefix.'forums AS f ON c.id=f.cat_id ORDER BY c.disp_position, c.id, f.disp_position') or error('Unable to fetch category/forum list', __FILE__, __LINE__, $db->error());
     409
     410if ($db->num_rows($result) > 0)
     411{
     412
     413?>
     414                <h2 class="block2"><span><?php echo $lang_admin_forums['Edit forums head'] ?></span></h2>
    404415                <div class="box">
    405416                        <form id="edforum" method="post" action="admin_forums.php?action=edit">
    406                                 <p class="submittop"><input type="submit" name="update_positions" value=" Modifier positions " tabindex="3" /></p>
    407 <?php
    408 
    409 $tabindex_count = 4;
    410 
    411 // Display all the categories and forums
    412 $result = $db->query('SELECT c.id AS cid, c.cat_name, f.id AS fid, f.forum_name, f.disp_position FROM '.$db->prefix.'categories AS c INNER JOIN '.$db->prefix.'forums AS f ON c.id=f.cat_id ORDER BY c.disp_position, c.id, f.disp_position') or error('Impossible de retrouver la liste des catégories et des forums', __FILE__, __LINE__, $db->error());
    413 
    414 if($db->num_rows($result)) :
     417                                <p class="submittop"><input type="submit" name="update_positions" value="<?php echo $lang_admin_forums['Update positions'] ?>" tabindex="3" /></p>
     418<?php
     419
     420$cur_index = 4;
     421
    415422$cur_category = 0;
    416423while ($cur_forum = $db->fetch_assoc($result))
    417424{
    418         if ($cur_forum['cid'] != $cur_category) // A new category since last iteration?
     425        if ($cur_forum['cid'] != $cur_category) // A new category since last iteration?
    419426        {
    420427                if ($cur_category != 0)
    421                         echo "\t\t\t\t\t\t\t".'</table>'."\n\t\t\t\t\t\t".'</div>'."\n\t\t\t\t\t".'</fieldset>'."\n\t\t\t\t".'</div>'."\n";
     428                        echo "\t\t\t\t\t\t\t".'</tbody>'."\n\t\t\t\t\t\t\t".'</table>'."\n\t\t\t\t\t\t".'</div>'."\n\t\t\t\t\t".'</fieldset>'."\n\t\t\t\t".'</div>'."\n";
    422429
    423430?>
    424431                                <div class="inform">
    425432                                        <fieldset>
    426                                                 <legend>Catégorie&#160;: <?php echo pun_htmlspecialchars($cur_forum['cat_name']) ?></legend>
     433                                                <legend><?php echo $lang_admin_forums['Category subhead'] ?> <?php echo pun_htmlspecialchars($cur_forum['cat_name']) ?></legend>
    427434                                                <div class="infldset">
    428435                                                        <table cellspacing="0">
     436                                                        <thead>
     437                                                                <tr>
     438                                                                        <th class="tcl"><?php echo $lang_admin_common['Action'] ?></th>
     439                                                                        <th class="tc2"><?php echo $lang_admin_forums['Position label'] ?></th>
     440                                                                        <th class="tcr"><?php echo $lang_admin_forums['Forum label'] ?></th>
     441                                                                </tr>
     442                                                        </thead>
     443                                                        <tbody>
    429444<?php
    430445
     
    434449?>
    435450                                                                <tr>
    436                                                                         <th><a href="admin_forums.php?edit_forum=<?php echo $cur_forum['fid'] ?>">Modifier</a> - <a href="admin_forums.php?del_forum=<?php echo $cur_forum['fid'] ?>">Supprimer</a></th>
    437                                                                         <td>Position&#160;&#160;<input type="text" name="position[<?php echo $cur_forum['fid'] ?>]" size="3" maxlength="3" value="<?php echo $cur_forum['disp_position'] ?>" tabindex="<?php echo $tabindex_count ?>" />
    438                                                                         &#160;&#160;<strong><?php echo pun_htmlspecialchars($cur_forum['forum_name']) ?></strong></td>
    439                                                                 </tr>
    440 <?php
    441 
    442         $tabindex_count += 2;
    443 }
    444 
    445 ?>
     451                                                                        <td class="tcl"><a href="admin_forums.php?edit_forum=<?php echo $cur_forum['fid'] ?>" tabindex="<?php echo $cur_index++ ?>"><?php echo $lang_admin_forums['Edit link'] ?></a> | <a href="admin_forums.php?del_forum=<?php echo $cur_forum['fid'] ?>" tabindex="<?php echo $cur_index++ ?>"><?php echo $lang_admin_forums['Delete link'] ?></a></td>
     452                                                                        <td class="tc2"><input type="text" name="position[<?php echo $cur_forum['fid'] ?>]" size="3" maxlength="3" value="<?php echo $cur_forum['disp_position'] ?>" tabindex="<?php echo $cur_index++ ?>" /></td>
     453                                                                        <td class="tcr"><strong><?php echo pun_htmlspecialchars($cur_forum['forum_name']) ?></strong></td>
     454                                                                </tr>
     455<?php
     456
     457}
     458
     459?>
     460                                                        </tbody>
    446461                                                        </table>
    447462                                                </div>
    448463                                        </fieldset>
    449464                                </div>
    450 <?php endif; ?>
    451                                 <p class="submitend"><input type="submit" name="update_positions" value=" Modifier positions " tabindex="<?php echo $tabindex_count ?>" /></p>
     465                                <p class="submitend"><input type="submit" name="update_positions" value="<?php echo $lang_admin_forums['Update positions'] ?>" tabindex="<?php echo $cur_index++ ?>" /></p>
    452466                        </form>
    453467                </div>
     468<?php
     469
     470}
     471
     472?>
    454473        </div>
    455474        <div class="clearer"></div>
  • branches/rsr.v5.1.dev/web/punbb/admin_groups.php

    r1 r3  
    11<?php
    2 /***********************************************************************
    3 
    4   Copyright (C) 2002-2005  Rickard Andersson (rickard@punbb.org)
    5 
    6   This file is part of PunBB.
    7 
    8   PunBB is free software; you can redistribute it and/or modify it
    9   under the terms of the GNU General Public License as published
    10   by the Free Software Foundation; either version 2 of the License,
    11   or (at your option) any later version.
    12 
    13   PunBB is distributed in the hope that it will be useful, but
    14   WITHOUT ANY WARRANTY; without even the implied warranty of
    15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16   GNU General Public License for more details.
    17 
    18   You should have received a copy of the GNU General Public License
    19   along with this program; if not, write to the Free Software
    20   Foundation, Inc., 59 Temple Place, Suite 330, Boston,
    21   MA  02111-1307  USA
    22 
    23 ************************************************************************/
    24 
     2
     3/**
     4 * Copyright (C) 2008-2011 FluxBB
     5 * based on code by Rickard Andersson copyright (C) 2002-2008 PunBB
     6 * License: http://www.gnu.org/licenses/gpl.html GPL version 2 or higher
     7 */
    258
    269// Tell header.php to use the admin template
    2710define('PUN_ADMIN_CONSOLE', 1);
    2811
    29 define('PUN_ROOT', './');
     12define('PUN_ROOT', dirname(__FILE__).'/');
    3013require PUN_ROOT.'include/common.php';
    3114require PUN_ROOT.'include/common_admin.php';
    3215
    3316
    34 if ($pun_user['g_id'] > PUN_ADMIN)
     17if ($pun_user['g_id'] != PUN_ADMIN)
    3518        message($lang_common['No permission']);
    3619
     20// Load the admin_censoring.php language file
     21require PUN_ROOT.'lang/'.$admin_language.'/admin_groups.php';
    3722
    3823// Add/edit a group (stage 1)
     
    4328                $base_group = intval($_POST['base_group']);
    4429
    45                 $result = $db->query('SELECT * FROM '.$db->prefix.'groups WHERE g_id='.$base_group) or error('Impossible de retrouver les informations de groupes utilisateurs', __FILE__, __LINE__, $db->error());
     30                $result = $db->query('SELECT * FROM '.$db->prefix.'groups WHERE g_id='.$base_group) or error('Unable to fetch user group info', __FILE__, __LINE__, $db->error());
    4631                $group = $db->fetch_assoc($result);
    4732
    4833                $mode = 'add';
    4934        }
    50         else    // We are editing a group
     35        else // We are editing a group
    5136        {
    5237                $group_id = intval($_GET['edit_group']);
     
    5439                        message($lang_common['Bad request']);
    5540
    56                 $result = $db->query('SELECT * FROM '.$db->prefix.'groups WHERE g_id='.$group_id) or error('Impossible de retrouver les informations de groupes utilisateurs', __FILE__, __LINE__, $db->error());
     41                $result = $db->query('SELECT * FROM '.$db->prefix.'groups WHERE g_id='.$group_id) or error('Unable to fetch user group info', __FILE__, __LINE__, $db->error());
    5742                if (!$db->num_rows($result))
    5843                        message($lang_common['Bad request']);
     
    6449
    6550
    66         $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / Admin / Groupes';
    67         $required_fields = array('req_title' => 'Nom groupe');
     51        $page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['User groups']);
     52        $required_fields = array('req_title' => $lang_admin_groups['Group title label']);
    6853        $focus_element = array('groups2', 'req_title');
     54        define('PUN_ACTIVE_PAGE', 'admin');
    6955        require PUN_ROOT.'header.php';
    7056
     
    7359?>
    7460        <div class="blockform">
    75                 <h2><span>Réglages du groupe</span></h2>
     61                <h2><span><?php echo $lang_admin_groups['Group settings head'] ?></span></h2>
    7662                <div class="box">
    7763                        <form id="groups2" method="post" action="admin_groups.php" onsubmit="return process_form(this)">
    78                                 <p class="submittop"><input type="submit" name="add_edit_group" value=" Enregistrer " /></p>
     64                                <p class="submittop"><input type="submit" name="add_edit_group" value="<?php echo $lang_admin_common['Save'] ?>" /></p>
    7965                                <div class="inform">
    8066                                        <input type="hidden" name="mode" value="<?php echo $mode ?>" />
    81 <?php if ($mode == 'edit'): ?>                          <input type="hidden" name="group_id" value="<?php echo $group_id ?>" />
    82 <?php endif; ?><?php if ($mode == 'add'): ?>                            <input type="hidden" name="base_group" value="<?php echo $base_group ?>" />
     67<?php if ($mode == 'edit'): ?>                                  <input type="hidden" name="group_id" value="<?php echo $group_id ?>" />
     68<?php endif; ?><?php if ($mode == 'add'): ?>                                    <input type="hidden" name="base_group" value="<?php echo $base_group ?>" />
    8369<?php endif; ?>                                 <fieldset>
    84                                                 <legend>Réglages des options et des permissions de groupe</legend>
     70                                                <legend><?php echo $lang_admin_groups['Group settings subhead'] ?></legend>
    8571                                                <div class="infldset">
    86                                                         <p>Les options et permissions ci-dessous sont les permissions par défaut pour le groupe. Ces options s'appliquent s'il n'y a pas de réglages de permissions spécifiques à un forum.</p>
     72                                                        <p><?php echo $lang_admin_groups['Group settings info'] ?></p>
    8773                                                        <table class="aligntop" cellspacing="0">
    8874                                                                <tr>
    89                                                                         <th scope="row">Nom groupe</th>
     75                                                                        <th scope="row"><?php echo $lang_admin_groups['Group title label'] ?></th>
    9076                                                                        <td>
    9177                                                                                <input type="text" name="req_title" size="25" maxlength="50" value="<?php if ($mode == 'edit') echo pun_htmlspecialchars($group['g_title']); ?>" tabindex="1" />
     
    9379                                                                </tr>
    9480                                                                <tr>
    95                                                                         <th scope="row">Titre utilisateur</th>
     81                                                                        <th scope="row"><?php echo $lang_admin_groups['User title label'] ?></th>
    9682                                                                        <td>
    9783                                                                                <input type="text" name="user_title" size="25" maxlength="50" value="<?php echo pun_htmlspecialchars($group['g_user_title']) ?>" tabindex="2" />
    98                                                                                 <span>Ce titre remplacera n'importe quel nom de rang que les utilisateurs de ce groupe auront atteint. Laissez vide pour utiliser le titre par défaut ou le rang.</span>
    99                                                                         </td>
    100                                                                 </tr>
    101 <?php if ($group['g_id'] != PUN_ADMIN): ?>                                                              <tr>
    102                                                                         <th scope="row">Lire forums</th>
    103                                                                         <td>
    104                                                                                 <input type="radio" name="read_board" value="1"<?php if ($group['g_read_board'] == '1') echo ' checked="checked"' ?> tabindex="3" />&#160;<strong>Oui</strong>&#160;&#160;&#160;<input type="radio" name="read_board" value="0"<?php if ($group['g_read_board'] == '0') echo ' checked="checked"' ?> tabindex="4" />&#160;<strong>Non</strong>
    105                                                                                 <span>Autoriser les utilisateurs de ce groupe à voir les forums. Ce réglage s'applique à tous les aspects des forums et ne peut être outrepassé par les permissions spécifiques aux forums. Avec cette option à non les utilisateurs de ce groupe ne pourront que s'identifier/se déconnecter.</span>
    106                                                                         </td>
    107                                                                 </tr>
    108                                                                 <tr>
    109                                                                         <th scope="row">Écrire des réponses</th>
    110                                                                         <td>
    111                                                                                 <input type="radio" name="post_replies" value="1"<?php if ($group['g_post_replies'] == '1') echo ' checked="checked"' ?> tabindex="5" />&#160;<strong>Oui</strong>&#160;&#160;&#160;<input type="radio" name="post_replies" value="0"<?php if ($group['g_post_replies'] == '0') echo ' checked="checked"' ?> tabindex="6" />&#160;<strong>Non</strong>
    112                                                                                 <span>Autoriser les utilisateurs de ce groupe à écrire des réponses aux discussions.</span>
    113                                                                         </td>
    114                                                                 </tr>
    115                                                                 <tr>
    116                                                                         <th scope="row">Lancer des discussions</th>
    117                                                                         <td>
    118                                                                                 <input type="radio" name="post_topics" value="1"<?php if ($group['g_post_topics'] == '1') echo ' checked="checked"' ?> tabindex="7" />&#160;<strong>Oui</strong>&#160;&#160;&#160;<input type="radio" name="post_topics" value="0"<?php if ($group['g_post_topics'] == '0') echo ' checked="checked"' ?> tabindex="8" />&#160;<strong>Non</strong>
    119                                                                                 <span>Autoriser les utilisateurs de ce groupe à lancer des nouveaux sujets.</span>
     84                                                                                <span><?php echo $lang_admin_groups['User title help'] ?></span>
     85                                                                        </td>
     86                                                                </tr>
     87<?php if ($group['g_id'] != PUN_ADMIN): if ($group['g_id'] != PUN_GUEST): if ($mode != 'edit' || $pun_config['o_default_user_group'] != $group['g_id']): ?>                                                             <tr>
     88                                                                        <th scope="row"> <?php echo $lang_admin_groups['Mod privileges label'] ?></th>
     89                                                                        <td>
     90                                                                                <input type="radio" name="moderator" value="1"<?php if ($group['g_moderator'] == '1') echo ' checked="checked"' ?> tabindex="3" />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="moderator" value="0"<?php if ($group['g_moderator'] == '0') echo ' checked="checked"' ?> tabindex="4" />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>
     91                                                                                <span><?php echo $lang_admin_groups['Mod privileges help'] ?></span>
     92                                                                        </td>
     93                                                                </tr>
     94                                                                <tr>
     95                                                                        <th scope="row"><?php echo $lang_admin_groups['Edit profile label'] ?></th>
     96                                                                        <td>
     97                                                                                <input type="radio" name="mod_edit_users" value="1"<?php if ($group['g_mod_edit_users'] == '1') echo ' checked="checked"' ?> tabindex="5" />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="mod_edit_users" value="0"<?php if ($group['g_mod_edit_users'] == '0') echo ' checked="checked"' ?> tabindex="6" />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>
     98                                                                                <span><?php echo $lang_admin_groups['Edit profile help'] ?></span>
     99                                                                        </td>
     100                                                                </tr>
     101                                                                <tr>
     102                                                                        <th scope="row"><?php echo $lang_admin_groups['Rename users label'] ?></th>
     103                                                                        <td>
     104                                                                                <input type="radio" name="mod_rename_users" value="1"<?php if ($group['g_mod_rename_users'] == '1') echo ' checked="checked"' ?> tabindex="7" />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="mod_rename_users" value="0"<?php if ($group['g_mod_rename_users'] == '0') echo ' checked="checked"' ?> tabindex="8" />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>
     105                                                                                <span><?php echo $lang_admin_groups['Rename users help'] ?></span>
     106                                                                        </td>
     107                                                                </tr>
     108                                                                <tr>
     109                                                                        <th scope="row"><?php echo $lang_admin_groups['Change passwords label'] ?></th>
     110                                                                        <td>
     111                                                                                <input type="radio" name="mod_change_passwords" value="1"<?php if ($group['g_mod_change_passwords'] == '1') echo ' checked="checked"' ?> tabindex="9" />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="mod_change_passwords" value="0"<?php if ($group['g_mod_change_passwords'] == '0') echo ' checked="checked"' ?> tabindex="10" />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>
     112                                                                                <span><?php echo $lang_admin_groups['Change passwords help'] ?></span>
     113                                                                        </td>
     114                                                                </tr>
     115                                                                <tr>
     116                                                                        <th scope="row"><?php echo $lang_admin_groups['Ban users label'] ?></th>
     117                                                                        <td>
     118                                                                                <input type="radio" name="mod_ban_users" value="1"<?php if ($group['g_mod_ban_users'] == '1') echo ' checked="checked"' ?> tabindex="11" />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="mod_ban_users" value="0"<?php if ($group['g_mod_ban_users'] == '0') echo ' checked="checked"' ?> tabindex="12" />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>
     119                                                                                <span><?php echo $lang_admin_groups['Ban users help'] ?></span>
     120                                                                        </td>
     121                                                                </tr>
     122<?php endif; endif; ?>                                                          <tr>
     123                                                                        <th scope="row"><?php echo $lang_admin_groups['Read board label'] ?></th>
     124                                                                        <td>
     125                                                                                <input type="radio" name="read_board" value="1"<?php if ($group['g_read_board'] == '1') echo ' checked="checked"' ?> tabindex="13" />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="read_board" value="0"<?php if ($group['g_read_board'] == '0') echo ' checked="checked"' ?> tabindex="14" />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>
     126                                                                                <span><?php echo $lang_admin_groups['Read board help'] ?></span>
     127                                                                        </td>
     128                                                                </tr>
     129                                                                <tr>
     130                                                                        <th scope="row"><?php echo $lang_admin_groups['View user info label'] ?></th>
     131                                                                        <td>
     132                                                                                <input type="radio" name="view_users" value="1"<?php if ($group['g_view_users'] == '1') echo ' checked="checked"' ?> tabindex="15" />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="view_users" value="0"<?php if ($group['g_view_users'] == '0') echo ' checked="checked"' ?> tabindex="16" />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>
     133                                                                                <span><?php echo $lang_admin_groups['View user info help'] ?></span>
     134                                                                        </td>
     135                                                                </tr>
     136                                                                <tr>
     137                                                                        <th scope="row"><?php echo $lang_admin_groups['Post replies label'] ?></th>
     138                                                                        <td>
     139                                                                                <input type="radio" name="post_replies" value="1"<?php if ($group['g_post_replies'] == '1') echo ' checked="checked"' ?> tabindex="17" />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="post_replies" value="0"<?php if ($group['g_post_replies'] == '0') echo ' checked="checked"' ?> tabindex="18" />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>
     140                                                                                <span><?php echo $lang_admin_groups['Post replies help'] ?></span>
     141                                                                        </td>
     142                                                                </tr>
     143                                                                <tr>
     144                                                                        <th scope="row"><?php echo $lang_admin_groups['Post topics label'] ?></th>
     145                                                                        <td>
     146                                                                                <input type="radio" name="post_topics" value="1"<?php if ($group['g_post_topics'] == '1') echo ' checked="checked"' ?> tabindex="19" />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="post_topics" value="0"<?php if ($group['g_post_topics'] == '0') echo ' checked="checked"' ?> tabindex="20" />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>
     147                                                                                <span><?php echo $lang_admin_groups['Post topics help'] ?></span>
    120148                                                                        </td>
    121149                                                                </tr>
    122150<?php if ($group['g_id'] != PUN_GUEST): ?>                                                              <tr>
    123                                                                         <th scope="row">Modifier messages</th>
    124                                                                         <td>
    125                                                                                 <input type="radio" name="edit_posts" value="1"<?php if ($group['g_edit_posts'] == '1') echo ' checked="checked"' ?> tabindex="11" />&#160;<strong>Oui</strong>&#160;&#160;&#160;<input type="radio" name="edit_posts" value="0"<?php if ($group['g_edit_posts'] == '0') echo ' checked="checked"' ?> tabindex="12" />&#160;<strong>Non</strong>
    126                                                                                 <span>Autoriser les utilisateurs de ce groupe à modifier leurs propres messages.</span>
    127                                                                         </td>
    128                                                                 </tr>
    129                                                                 <tr>
    130                                                                         <th scope="row">Effacer les messages</th>
    131                                                                         <td>
    132                                                                                 <input type="radio" name="delete_posts" value="1"<?php if ($group['g_delete_posts'] == '1') echo ' checked="checked"' ?> tabindex="13" />&#160;<strong>Oui</strong>&#160;&#160;&#160;<input type="radio" name="delete_posts" value="0"<?php if ($group['g_delete_posts'] == '0') echo ' checked="checked"' ?> tabindex="14" />&#160;<strong>Non</strong>
    133                                                                                 <span>Autoriser les utilisateurs de ce groupe à effacer leurs propres messages.</span>
    134                                                                         </td>
    135                                                                 </tr>
    136                                                                 <tr>
    137                                                                         <th scope="row">Effacer les discussions</th>
    138                                                                         <td>
    139                                                                                 <input type="radio" name="delete_topics" value="1"<?php if ($group['g_delete_topics'] == '1') echo ' checked="checked"' ?> tabindex="15" />&#160;<strong>Oui</strong>&#160;&#160;&#160;<input type="radio" name="delete_topics" value="0"<?php if ($group['g_delete_topics'] == '0') echo ' checked="checked"' ?> tabindex="16" />&#160;<strong>Non</strong>
    140                                                                                 <span>Autoriser les utilisateurs de ce groupe à effacer leurs propres sujets (y compris toutes les réponses).</span>
    141                                                                         </td>
    142                                                                 </tr>
    143                                                                 <tr>
    144                                                                         <th scope="row">Titre personnalisé</th>
    145                                                                         <td>
    146                                                                                 <input type="radio" name="set_title" value="1"<?php if ($group['g_set_title'] == '1') echo ' checked="checked"' ?> tabindex="17" />&#160;<strong>Oui</strong>&#160;&#160;&#160;<input type="radio" name="set_title" value="0"<?php if ($group['g_set_title'] == '0') echo ' checked="checked"' ?> tabindex="18" />
    147                                                                                 &#160;<strong>Non</strong>
    148                                                                                 <span>Autoriser les utilisateurs de ce groupe à modifier leur propre titre utilisateur.</span>
     151                                                                        <th scope="row"><?php echo $lang_admin_groups['Edit posts label'] ?></th>
     152                                                                        <td>
     153                                                                                <input type="radio" name="edit_posts" value="1"<?php if ($group['g_edit_posts'] == '1') echo ' checked="checked"' ?> tabindex="21" />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="edit_posts" value="0"<?php if ($group['g_edit_posts'] == '0') echo ' checked="checked"' ?> tabindex="22" />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>
     154                                                                                <span><?php echo $lang_admin_groups['Edit posts help'] ?></span>
     155                                                                        </td>
     156                                                                </tr>
     157                                                                <tr>
     158                                                                        <th scope="row"><?php echo $lang_admin_groups['Delete posts label'] ?></th>
     159                                                                        <td>
     160                                                                                <input type="radio" name="delete_posts" value="1"<?php if ($group['g_delete_posts'] == '1') echo ' checked="checked"' ?> tabindex="23" />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="delete_posts" value="0"<?php if ($group['g_delete_posts'] == '0') echo ' checked="checked"' ?> tabindex="24" />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>
     161                                                                                <span><?php echo $lang_admin_groups['Delete posts help'] ?></span>
     162                                                                        </td>
     163                                                                </tr>
     164                                                                <tr>
     165                                                                        <th scope="row"><?php echo $lang_admin_groups['Delete topics label'] ?></th>
     166                                                                        <td>
     167                                                                                <input type="radio" name="delete_topics" value="1"<?php if ($group['g_delete_topics'] == '1') echo ' checked="checked"' ?> tabindex="25" />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="delete_topics" value="0"<?php if ($group['g_delete_topics'] == '0') echo ' checked="checked"' ?> tabindex="26" />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>
     168                                                                                <span><?php echo $lang_admin_groups['Delete topics help'] ?></span>
     169                                                                        </td>
     170                                                                </tr>
     171                                                                <tr>
     172                                                                        <th scope="row"><?php echo $lang_admin_groups['Set own title label'] ?></th>
     173                                                                        <td>
     174                                                                                <input type="radio" name="set_title" value="1"<?php if ($group['g_set_title'] == '1') echo ' checked="checked"' ?> tabindex="27" />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="set_title" value="0"<?php if ($group['g_set_title'] == '0') echo ' checked="checked"' ?> tabindex="28" />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>
     175                                                                                <span><?php echo $lang_admin_groups['Set own title help'] ?></span>
    149176                                                                        </td>
    150177                                                                </tr>
    151178<?php endif; ?>                                                         <tr>
    152                                                                         <th scope="row">Utiliser la recherche</th>
    153                                                                         <td>
    154                                                                                 <input type="radio" name="search" value="1"<?php if ($group['g_search'] == '1') echo ' checked="checked"' ?> tabindex="19" />&#160;<strong>Oui</strong>&#160;&#160;&#160;<input type="radio" name="search" value="0"<?php if ($group['g_search'] == '0') echo ' checked="checked"' ?> tabindex="20" />&#160;<strong>Non</strong>
    155                                                                                 <span>Autoriser les utilisateurs de ce groupe à utiliser la fonction de recherche sur les forums.</span>
    156                                                                         </td>
    157                                                                 </tr>
    158                                                                 <tr>
    159                                                                         <th scope="row">Recherche d'utilisateur</th>
    160                                                                         <td>
    161                                                                                 <input type="radio" name="search_users" value="1"<?php if ($group['g_search_users'] == '1') echo ' checked="checked"' ?> tabindex="21" />&#160;<strong>Oui</strong>&#160;&#160;&#160;<input type="radio" name="search_users" value="0"<?php if ($group['g_search_users'] == '0') echo ' checked="checked"' ?> tabindex="22" />&#160;<strong>Non</strong>
    162                                                                                 <span>Autoriser les utilisateurs de ce groupe à utiliser       un texte libre pour rechercher dans la liste des utilisateurs.</span>
     179                                                                        <th scope="row"><?php echo $lang_admin_groups['User search label'] ?></th>
     180                                                                        <td>
     181                                                                                <input type="radio" name="search" value="1"<?php if ($group['g_search'] == '1') echo ' checked="checked"' ?> tabindex="29" />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="search" value="0"<?php if ($group['g_search'] == '0') echo ' checked="checked"' ?> tabindex="30" />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>
     182                                                                                <span><?php echo $lang_admin_groups['User search help'] ?></span>
     183                                                                        </td>
     184                                                                </tr>
     185                                                                <tr>
     186                                                                        <th scope="row"><?php echo $lang_admin_groups['User list search label'] ?></th>
     187                                                                        <td>
     188                                                                                <input type="radio" name="search_users" value="1"<?php if ($group['g_search_users'] == '1') echo ' checked="checked"' ?> tabindex="31" />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="search_users" value="0"<?php if ($group['g_search_users'] == '0') echo ' checked="checked"' ?> tabindex="32" />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>
     189                                                                                <span><?php echo $lang_admin_groups['User list search help'] ?></span>
    163190                                                                        </td>
    164191                                                                </tr>
    165192<?php if ($group['g_id'] != PUN_GUEST): ?>                                                              <tr>
    166                                                                         <th scope="row">Intervalle pour modifier le sujet d'une discussion</th>
    167                                                                         <td>
    168                                                                                 <input type="text" name="edit_subjects_interval" size="5" maxlength="5" value="<?php echo $group['g_edit_subjects_interval'] ?>" tabindex="23" />
    169                                                                                 <span>Nombre de secondes aprÚs que le message ait été envoyé pendant lesquelles les utilisateurs de ce groupe pourront modifier le sujet d'une discussion qu'ils viennent de lancer. Mettre à 0 pour permettre la modification du sujet des discussions sans restriction dans le temps.</span>
    170                                                                         </td>
    171                                                                 </tr>
    172                                                                 <tr>
    173                                                                         <th scope="row">Intervalle de contrÃŽle de flood sur les messages</th>
    174                                                                         <td>
    175                                                                                 <input type="text" name="post_flood" size="5" maxlength="4" value="<?php echo $group['g_post_flood'] ?>" tabindex="24" />
    176                                                                                 <span>Nombre de secondes pendant lesquelles les utilisateurs de ce groupe devront patienter entre deux messages. Mettre à 0 pour désactiver le contrÃŽle de flood sur les messages.</span>
    177                                                                         </td>
    178                                                                 </tr>
    179                                                                 <tr>
    180                                                                         <th scope="row">Intervalle de contrÃŽle de flood sur les recherches</th>
    181                                                                         <td>
    182                                                                                 <input type="text" name="search_flood" size="5" maxlength="4" value="<?php echo $group['g_search_flood'] ?>" tabindex="25" />
    183                                                                                 <span>Nombre de secondes pendant lesquelles les utilisateurs de ce groupe devront patienter entre deux recherches. Mettre à 0 pour désactiver le contrÃŽle de flood sur les recherches.</span>
    184                                                                         </td>
    185                                                                 </tr>
    186 <?php endif; ?><?php endif; ?>                                                  </table>
    187 <?php if ($group['g_id'] == PUN_MOD ): ?>                                                       <p class="warntext">Pour qu'un utilisateur de ce groupe acquiÚre les compétences de modérateur, il devra nécessairement être désigné comme modérateur d'un ou de plusieurs forums. Ceci est possible depuis la page d'administration du profil de l'utilisateur.</p>
     193                                                                        <th scope="row"><?php echo $lang_admin_groups['Send e-mails label'] ?></th>
     194                                                                        <td>
     195                                                                                <input type="radio" name="send_email" value="1"<?php if ($group['g_send_email'] == '1') echo ' checked="checked"' ?> tabindex="33" />&#160;<strong><?php echo $lang_admin_common['Yes'] ?></strong>&#160;&#160;&#160;<input type="radio" name="send_email" value="0"<?php if ($group['g_send_email'] == '0') echo ' checked="checked"' ?> tabindex="34" />&#160;<strong><?php echo $lang_admin_common['No'] ?></strong>
     196                                                                                <span><?php echo $lang_admin_groups['Send e-mails help'] ?></span>
     197                                                                        </td>
     198                                                                </tr>
     199<?php endif; ?>                                                         <tr>
     200                                                                        <th scope="row"><?php echo $lang_admin_groups['Post flood label'] ?></th>
     201                                                                        <td>
     202                                                                                <input type="text" name="post_flood" size="5" maxlength="4" value="<?php echo $group['g_post_flood'] ?>" tabindex="35" />
     203                                                                                <span><?php echo $lang_admin_groups['Post flood help'] ?></span>
     204                                                                        </td>
     205                                                                </tr>
     206                                                                <tr>
     207                                                                        <th scope="row"><?php echo $lang_admin_groups['Search flood label'] ?></th>
     208                                                                        <td>
     209                                                                                <input type="text" name="search_flood" size="5" maxlength="4" value="<?php echo $group['g_search_flood'] ?>" tabindex="36" />
     210                                                                                <span><?php echo $lang_admin_groups['Search flood help'] ?></span>
     211                                                                        </td>
     212                                                                </tr>
     213<?php if ($group['g_id'] != PUN_GUEST): ?>                                                              <tr>
     214                                                                        <th scope="row"><?php echo $lang_admin_groups['E-mail flood label'] ?></th>
     215                                                                        <td>
     216                                                                                <input type="text" name="email_flood" size="5" maxlength="4" value="<?php echo $group['g_email_flood'] ?>" tabindex="37" />
     217                                                                                <span><?php echo $lang_admin_groups['E-mail flood help'] ?></span>
     218                                                                        </td>
     219                                                                </tr>
     220                                                                <tr>
     221                                                                        <th scope="row"><?php echo $lang_admin_groups['Report flood label'] ?></th>
     222                                                                        <td>
     223                                                                                <input type="text" name="report_flood" size="5" maxlength="4" value="<?php echo $group['g_report_flood'] ?>" tabindex="38" />
     224                                                                                <span><?php echo $lang_admin_groups['Report flood help'] ?></span>
     225                                                                        </td>
     226                                                                </tr>
     227<?php endif; endif; ?>                                                  </table>
     228<?php if ($group['g_moderator'] == '1' ): ?>                                                    <p class="warntext"><?php echo $lang_admin_groups['Moderator info'] ?></p>
    188229<?php endif; ?>                                         </div>
    189230                                        </fieldset>
    190231                                </div>
    191                                 <p class="submitend"><input type="submit" name="add_edit_group" value=" Enregistrer " tabindex="26" /></p>
     232                                <p class="submitend"><input type="submit" name="add_edit_group" value="<?php echo $lang_admin_common['Save'] ?>" tabindex="39" /></p>
    192233                        </form>
    193234                </div>
     
    209250        $is_admin_group = (isset($_POST['group_id']) && $_POST['group_id'] == PUN_ADMIN) ? true : false;
    210251
    211         $title = trim($_POST['req_title']);
    212         $user_title = trim($_POST['user_title']);
     252        $title = pun_trim($_POST['req_title']);
     253        $user_title = pun_trim($_POST['user_title']);
     254        $moderator = isset($_POST['moderator']) && $_POST['moderator'] == '1' ? '1' : '0';
     255        $mod_edit_users = $moderator == '1' && isset($_POST['mod_edit_users']) && $_POST['mod_edit_users'] == '1' ? '1' : '0';
     256        $mod_rename_users = $moderator == '1' && isset($_POST['mod_rename_users']) && $_POST['mod_rename_users'] == '1' ? '1' : '0';
     257        $mod_change_passwords = $moderator == '1' && isset($_POST['mod_change_passwords']) && $_POST['mod_change_passwords'] == '1' ? '1' : '0';
     258        $mod_ban_users = $moderator == '1' && isset($_POST['mod_ban_users']) && $_POST['mod_ban_users'] == '1' ? '1' : '0';
    213259        $read_board = isset($_POST['read_board']) ? intval($_POST['read_board']) : '1';
     260        $view_users = (isset($_POST['view_users']) && $_POST['view_users'] == '1') || $is_admin_group ? '1' : '0';
    214261        $post_replies = isset($_POST['post_replies']) ? intval($_POST['post_replies']) : '1';
    215262        $post_topics = isset($_POST['post_topics']) ? intval($_POST['post_topics']) : '1';
     
    220267        $search = isset($_POST['search']) ? intval($_POST['search']) : '1';
    221268        $search_users = isset($_POST['search_users']) ? intval($_POST['search_users']) : '1';
    222         $edit_subjects_interval = isset($_POST['edit_subjects_interval']) ? intval($_POST['edit_subjects_interval']) : '0';
     269        $send_email = (isset($_POST['send_email']) && $_POST['send_email'] == '1') || $is_admin_group ? '1' : '0';
    223270        $post_flood = isset($_POST['post_flood']) ? intval($_POST['post_flood']) : '0';
    224271        $search_flood = isset($_POST['search_flood']) ? intval($_POST['search_flood']) : '0';
     272        $email_flood = isset($_POST['email_flood']) ? intval($_POST['email_flood']) : '0';
     273        $report_flood = isset($_POST['report_flood']) ? intval($_POST['report_flood']) : '0';
    225274
    226275        if ($title == '')
    227                 message('Vous devez saisir un nom de groupe.');
     276                message($lang_admin_groups['Must enter title message']);
    228277
    229278        $user_title = ($user_title != '') ? '\''.$db->escape($user_title).'\'' : 'NULL';
     
    231280        if ($_POST['mode'] == 'add')
    232281        {
    233                 $result = $db->query('SELECT 1 FROM '.$db->prefix.'groups WHERE g_title=\''.$db->escape($title).'\'') or error('Impossible de vérifier si un groupe porte déjà ce nom', __FILE__, __LINE__, $db->error());
     282                $result = $db->query('SELECT 1 FROM '.$db->prefix.'groups WHERE g_title=\''.$db->escape($title).'\'') or error('Unable to check group title collision', __FILE__, __LINE__, $db->error());
    234283                if ($db->num_rows($result))
    235                         message('Il existe déjà un groupe nommé \''.pun_htmlspecialchars($title).'\'.');
    236 
    237                 $db->query('INSERT INTO '.$db->prefix.'groups (g_title, g_user_title, g_read_board, g_post_replies, g_post_topics, g_edit_posts, g_delete_posts, g_delete_topics, g_set_title, g_search, g_search_users, g_edit_subjects_interval, g_post_flood, g_search_flood) VALUES(\''.$db->escape($title).'\', '.$user_title.', '.$read_board.', '.$post_replies.', '.$post_topics.', '.$edit_posts.', '.$delete_posts.', '.$delete_topics.', '.$set_title.', '.$search.', '.$search_users.', '.$edit_subjects_interval.', '.$post_flood.', '.$search_flood.')') or error('Impossible d\'ajouter le groupe', __FILE__, __LINE__, $db->error());
     284                        message(sprintf($lang_admin_groups['Title already exists message'], pun_htmlspecialchars($title)));
     285
     286                $db->query('INSERT INTO '.$db->prefix.'groups (g_title, g_user_title, g_moderator, g_mod_edit_users, g_mod_rename_users, g_mod_change_passwords, g_mod_ban_users, g_read_board, g_view_users, g_post_replies, g_post_topics, g_edit_posts, g_delete_posts, g_delete_topics, g_set_title, g_search, g_search_users, g_send_email, g_post_flood, g_search_flood, g_email_flood, g_report_flood) VALUES(\''.$db->escape($title).'\', '.$user_title.', '.$moderator.', '.$mod_edit_users.', '.$mod_rename_users.', '.$mod_change_passwords.', '.$mod_ban_users.', '.$read_board.', '.$view_users.', '.$post_replies.', '.$post_topics.', '.$edit_posts.', '.$delete_posts.', '.$delete_topics.', '.$set_title.', '.$search.', '.$search_users.', '.$send_email.', '.$post_flood.', '.$search_flood.', '.$email_flood.', '.$report_flood.')') or error('Unable to add group', __FILE__, __LINE__, $db->error());
    238287                $new_group_id = $db->insert_id();
    239288
    240289                // Now lets copy the forum specific permissions from the group which this group is based on
    241                 $result = $db->query('SELECT forum_id, read_forum, post_replies, post_topics FROM '.$db->prefix.'forum_perms WHERE group_id='.intval($_POST['base_group'])) or error('Impossible de retrouver la liste des permissions de groupes du forum', __FILE__, __LINE__, $db->error());
     290                $result = $db->query('SELECT forum_id, read_forum, post_replies, post_topics FROM '.$db->prefix.'forum_perms WHERE group_id='.intval($_POST['base_group'])) or error('Unable to fetch group forum permission list', __FILE__, __LINE__, $db->error());
    242291                while ($cur_forum_perm = $db->fetch_assoc($result))
    243                         $db->query('INSERT INTO '.$db->prefix.'forum_perms (group_id, forum_id, read_forum, post_replies, post_topics) VALUES('.$new_group_id.', '.$cur_forum_perm['forum_id'].', '.$cur_forum_perm['read_forum'].', '.$cur_forum_perm['post_replies'].', '.$cur_forum_perm['post_topics'].')') or error('Impossible d\'insérer les permissions de groupes du forum', __FILE__, __LINE__, $db->error());
     292                        $db->query('INSERT INTO '.$db->prefix.'forum_perms (group_id, forum_id, read_forum, post_replies, post_topics) VALUES('.$new_group_id.', '.$cur_forum_perm['forum_id'].', '.$cur_forum_perm['read_forum'].', '.$cur_forum_perm['post_replies'].', '.$cur_forum_perm['post_topics'].')') or error('Unable to insert group forum permissions', __FILE__, __LINE__, $db->error());
    244293        }
    245294        else
    246295        {
    247                 $result = $db->query('SELECT 1 FROM '.$db->prefix.'groups WHERE g_title=\''.$db->escape($title).'\' AND g_id!='.intval($_POST['group_id'])) or error('impossible de vérifier une éventuelle collision des titres de groupes', __FILE__, __LINE__, $db->error());
     296                $result = $db->query('SELECT 1 FROM '.$db->prefix.'groups WHERE g_title=\''.$db->escape($title).'\' AND g_id!='.intval($_POST['group_id'])) or error('Unable to check group title collision', __FILE__, __LINE__, $db->error());
    248297                if ($db->num_rows($result))
    249                         message('Il existe déjà un groupe nommé \''.pun_htmlspecialchars($title).'\'.');
    250 
    251                 $db->query('UPDATE '.$db->prefix.'groups SET g_title=\''.$db->escape($title).'\', g_user_title='.$user_title.', g_read_board='.$read_board.', g_post_replies='.$post_replies.', g_post_topics='.$post_topics.', g_edit_posts='.$edit_posts.', g_delete_posts='.$delete_posts.', g_delete_topics='.$delete_topics.', g_set_title='.$set_title.', g_search='.$search.', g_search_users='.$search_users.', g_edit_subjects_interval='.$edit_subjects_interval.', g_post_flood='.$post_flood.', g_search_flood='.$search_flood.' WHERE g_id='.intval($_POST['group_id'])) or error('Impossible de modifier le groupe', __FILE__, __LINE__, $db->error());
     298                        message(sprintf($lang_admin_groups['Title already exists message'], pun_htmlspecialchars($title)));
     299
     300                $db->query('UPDATE '.$db->prefix.'groups SET g_title=\''.$db->escape($title).'\', g_user_title='.$user_title.', g_moderator='.$moderator.', g_mod_edit_users='.$mod_edit_users.', g_mod_rename_users='.$mod_rename_users.', g_mod_change_passwords='.$mod_change_passwords.', g_mod_ban_users='.$mod_ban_users.', g_read_board='.$read_board.', g_view_users='.$view_users.', g_post_replies='.$post_replies.', g_post_topics='.$post_topics.', g_edit_posts='.$edit_posts.', g_delete_posts='.$delete_posts.', g_delete_topics='.$delete_topics.', g_set_title='.$set_title.', g_search='.$search.', g_search_users='.$search_users.', g_send_email='.$send_email.', g_post_flood='.$post_flood.', g_search_flood='.$search_flood.', g_email_flood='.$email_flood.', g_report_flood='.$report_flood.' WHERE g_id='.intval($_POST['group_id'])) or error('Unable to update group', __FILE__, __LINE__, $db->error());
    252301        }
    253302
    254         // Regenerate the quickjump cache
    255         require_once PUN_ROOT.'include/cache.php';
    256         generate_quickjump_cache();
    257 
    258         redirect('admin_groups.php', 'Groupe '.(($_POST['mode'] == 'edit') ? 'modifié' : 'ajouté').'. Redirection ...');
     303        // Regenerate the quick jump cache
     304        if (!defined('FORUM_CACHE_FUNCTIONS_LOADED'))
     305                require PUN_ROOT.'include/cache.php';
     306
     307        $group_id = $_POST['mode'] == 'add' ? $new_group_id : intval($_POST['group_id']);
     308        generate_quickjump_cache($group_id);
     309
     310        if ($_POST['mode'] == 'edit')
     311                redirect('admin_groups.php', $lang_admin_groups['Group edited redirect']);
     312        else
     313                redirect('admin_groups.php', $lang_admin_groups['Group added redirect']);
    259314}
    260315
     
    266321
    267322        $group_id = intval($_POST['default_group']);
    268         if ($group_id < 1)
     323
     324        // Make sure it's not the admin or guest groups
     325        if ($group_id == PUN_ADMIN || $group_id == PUN_GUEST)
    269326                message($lang_common['Bad request']);
    270327
    271         $db->query('UPDATE '.$db->prefix.'config SET conf_value='.$group_id.' WHERE conf_name=\'o_default_user_group\'') or error('Impossible de modifier la configuration des forums', __FILE__, __LINE__, $db->error());
     328        // Make sure it's not a moderator group
     329        $result = $db->query('SELECT 1 FROM '.$db->prefix.'groups WHERE g_id='.$group_id.' AND g_moderator=0') or error('Unable to check group moderator status', __FILE__, __LINE__, $db->error());
     330        if (!$db->num_rows($result))
     331                message($lang_common['Bad request']);
     332
     333        $db->query('UPDATE '.$db->prefix.'config SET conf_value='.$group_id.' WHERE conf_name=\'o_default_user_group\'') or error('Unable to update board config', __FILE__, __LINE__, $db->error());
    272334
    273335        // Regenerate the config cache
    274         require_once PUN_ROOT.'include/cache.php';
     336        if (!defined('FORUM_CACHE_FUNCTIONS_LOADED'))
     337                require PUN_ROOT.'include/cache.php';
     338
    275339        generate_config_cache();
    276340
    277         redirect('admin_groups.php', 'Groupe par défaut réglé. Redirection ...');
     341        redirect('admin_groups.php', $lang_admin_groups['Default group redirect']);
    278342}
    279343
     
    284348        confirm_referrer('admin_groups.php');
    285349
    286         $group_id = intval($_GET['del_group']);
     350        $group_id = isset($_POST['group_to_delete']) ? intval($_POST['group_to_delete']) : intval($_GET['del_group']);
    287351        if ($group_id < 5)
    288352                message($lang_common['Bad request']);
     
    290354        // Make sure we don't remove the default group
    291355        if ($group_id == $pun_config['o_default_user_group'])
    292                 message('Le groupe par défaut ne peut être supprimé. Vous devez d\'abord définir un groupe par défaut différent.');
    293 
     356                message($lang_admin_groups['Cannot remove default message']);
    294357
    295358        // Check if this group has any members
    296         $result = $db->query('SELECT g.g_title, COUNT(u.id) FROM '.$db->prefix.'groups AS g INNER JOIN '.$db->prefix.'users AS u ON g.g_id=u.group_id WHERE g.g_id='.$group_id.' GROUP BY g.g_id, g_title') or error('Impossible de retrouver les informations du groupe', __FILE__, __LINE__, $db->error());
     359        $result = $db->query('SELECT g.g_title, COUNT(u.id) FROM '.$db->prefix.'groups AS g INNER JOIN '.$db->prefix.'users AS u ON g.g_id=u.group_id WHERE g.g_id='.$group_id.' GROUP BY g.g_id, g_title') or error('Unable to fetch group info', __FILE__, __LINE__, $db->error());
    297360
    298361        // If the group doesn't have any members or if we've already selected a group to move the members to
    299362        if (!$db->num_rows($result) || isset($_POST['del_group']))
    300363        {
    301                 if (isset($_POST['del_group']))
     364                if (isset($_POST['del_group_comply']) || isset($_POST['del_group']))
    302365                {
    303                         $move_to_group = intval($_POST['move_to_group']);
    304                         $db->query('UPDATE '.$db->prefix.'users SET group_id='.$move_to_group.' WHERE group_id='.$group_id) or error('Impossible de déplacer les utilisateurs dans le groupe', __FILE__, __LINE__, $db->error());
     366                        if (isset($_POST['del_group']))
     367                        {
     368                                $move_to_group = intval($_POST['move_to_group']);
     369                                $db->query('UPDATE '.$db->prefix.'users SET group_id='.$move_to_group.' WHERE group_id='.$group_id) or error('Unable to move users into group', __FILE__, __LINE__, $db->error());
     370                        }
     371
     372                        // Delete the group and any forum specific permissions
     373                        $db->query('DELETE FROM '.$db->prefix.'groups WHERE g_id='.$group_id) or error('Unable to delete group', __FILE__, __LINE__, $db->error());
     374                        $db->query('DELETE FROM '.$db->prefix.'forum_perms WHERE group_id='.$group_id) or error('Unable to delete group forum permissions', __FILE__, __LINE__, $db->error());
     375
     376                        redirect('admin_groups.php', $lang_admin_groups['Group removed redirect']);
    305377                }
    306 
    307                 // Delete the group and any forum specific permissions
    308                 $db->query('DELETE FROM '.$db->prefix.'groups WHERE g_id='.$group_id) or error('Impossible de supprimer le groupe', __FILE__, __LINE__, $db->error());
    309                 $db->query('DELETE FROM '.$db->prefix.'forum_perms WHERE group_id='.$group_id) or error('Impossible de supprimer les permissions de groupe du forum', __FILE__, __LINE__, $db->error());
    310 
    311                 // Regenerate the quickjump cache
    312                 require_once PUN_ROOT.'include/cache.php';
    313                 generate_quickjump_cache();
    314 
    315                 redirect('admin_groups.php', 'Groupe supprimé. Redirection ...');
    316         }
    317 
    318 
    319         list($group_title, $group_members) = $db->fetch_row($result);
    320 
    321         $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / Admin / Groupes';
    322         require PUN_ROOT.'header.php';
    323 
    324         generate_admin_menu('groups');
     378                else
     379                {
     380                        $result = $db->query('SELECT g_title FROM '.$db->prefix.'groups WHERE g_id='.$group_id) or error('Unable to fetch group title', __FILE__, __LINE__, $db->error());
     381                        $group_title = $db->result($result);
     382
     383                        $page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['User groups']);
     384                        define('PUN_ACTIVE_PAGE', 'admin');
     385                        require PUN_ROOT.'header.php';
     386
     387                        generate_admin_menu('groups');
    325388
    326389?>
    327390        <div class="blockform">
    328                 <h2><span>Supprimer groupe</span></h2>
     391                <h2><span><?php echo $lang_admin_groups['Group delete head'] ?></span></h2>
    329392                <div class="box">
    330                         <form id="groups" method="post" action="admin_groups.php?del_group=<?php echo $group_id ?>">
     393                        <form method="post" action="admin_groups.php?del_group=<?php echo $group_id ?>">
    331394                                <div class="inform">
     395                                <input type="hidden" name="group_to_delete" value="<?php echo $group_id ?>" />
    332396                                        <fieldset>
    333                                                 <legend>Déplacer les utilisateur de ce groupe</legend>
     397                                                <legend><?php echo $lang_admin_groups['Confirm delete subhead'] ?></legend>
    334398                                                <div class="infldset">
    335                                                         <p>Il y a actuellement <?php echo $group_members ?> membres dans le groupe "<?php echo pun_htmlspecialchars($group_title) ?>". Veuillez sélectionner un groupe dans lequel ces utilisateurs seront déplacés.</p>
    336                                                         <label>Déplacer les utilisateurs dans
    337                                                         <select name="move_to_group">
    338 <?php
    339 
    340         $result = $db->query('SELECT g_id, g_title FROM '.$db->prefix.'groups WHERE g_id!='.PUN_GUEST.' AND g_id!='.$group_id.' ORDER BY g_title') or error('Impossible de retrouver la liste des groupes', __FILE__, __LINE__, $db->error());
    341 
    342         while ($cur_group = $db->fetch_assoc($result))
    343         {
    344                 if ($cur_group['g_id'] == PUN_MEMBER)   // Pre-select the pre-defined Members group
    345                         echo "\t\t\t\t\t\t\t\t\t\t".'<option value="'.$cur_group['g_id'].'" selected="selected">'.pun_htmlspecialchars($cur_group['g_title']).'</option>'."\n";
    346                 else
    347                         echo "\t\t\t\t\t\t\t\t\t\t".'<option value="'.$cur_group['g_id'].'">'.pun_htmlspecialchars($cur_group['g_title']).'</option>'."\n";
    348         }
    349 
    350 ?>
    351                                                         </select>
    352                                                         </br></label>
     399                                                        <p><?php printf($lang_admin_groups['Confirm delete info'], pun_htmlspecialchars($group_title)) ?></p>
     400                                                        <p class="warntext"><?php echo $lang_admin_groups['Confirm delete warn'] ?></p>
    353401                                                </div>
    354402                                        </fieldset>
    355403                                </div>
    356                                 <p><input type="submit" name="del_group" value=" Supprimer groupe " /></p>
     404                                <p class="buttons"><input type="submit" name="del_group_comply" value="<?php echo $lang_admin_common['Delete'] ?>" tabindex="1" /><a href="javascript:history.go(-1)" tabindex="2"><?php echo $lang_admin_common['Go back'] ?></a></p>
    357405                        </form>
    358406                </div>
     
    362410<?php
    363411
     412                        require PUN_ROOT.'footer.php';
     413                }
     414        }
     415
     416        list($group_title, $group_members) = $db->fetch_row($result);
     417
     418        $page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['User groups']);
     419        define('PUN_ACTIVE_PAGE', 'admin');
     420        require PUN_ROOT.'header.php';
     421
     422        generate_admin_menu('groups');
     423
     424?>
     425        <div class="blockform">
     426                <h2><span><?php echo $lang_admin_groups['Delete group head'] ?></span></h2>
     427                <div class="box">
     428                        <form id="groups" method="post" action="admin_groups.php?del_group=<?php echo $group_id ?>">
     429                                <div class="inform">
     430                                        <fieldset>
     431                                                <legend><?php echo $lang_admin_groups['Move users subhead'] ?></legend>
     432                                                <div class="infldset">
     433                                                        <p><?php printf($lang_admin_groups['Move users info'], pun_htmlspecialchars($group_title), forum_number_format($group_members)) ?></p>
     434                                                        <label><?php echo $lang_admin_groups['Move users label'] ?>
     435                                                        <select name="move_to_group">
     436<?php
     437
     438        $result = $db->query('SELECT g_id, g_title FROM '.$db->prefix.'groups WHERE g_id!='.PUN_GUEST.' AND g_id!='.$group_id.' ORDER BY g_title') or error('Unable to fetch user group list', __FILE__, __LINE__, $db->error());
     439
     440        while ($cur_group = $db->fetch_assoc($result))
     441        {
     442                if ($cur_group['g_id'] == PUN_MEMBER) // Pre-select the pre-defined Members group
     443                        echo "\t\t\t\t\t\t\t\t\t\t".'<option value="'.$cur_group['g_id'].'" selected="selected">'.pun_htmlspecialchars($cur_group['g_title']).'</option>'."\n";
     444                else
     445                        echo "\t\t\t\t\t\t\t\t\t\t".'<option value="'.$cur_group['g_id'].'">'.pun_htmlspecialchars($cur_group['g_title']).'</option>'."\n";
     446        }
     447
     448?>
     449                                                        </select>
     450                                                        <br /></label>
     451                                                </div>
     452                                        </fieldset>
     453                                </div>
     454                                <p class="buttons"><input type="submit" name="del_group" value="<?php echo $lang_admin_groups['Delete group'] ?>" /><a href="javascript:history.go(-1)"><?php echo $lang_admin_common['Go back'] ?></a></p>
     455                        </form>
     456                </div>
     457        </div>
     458        <div class="clearer"></div>
     459</div>
     460<?php
     461
    364462        require PUN_ROOT.'footer.php';
    365463}
    366464
    367465
    368 $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / Admin / Groupes';
     466$page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['User groups']);
     467define('PUN_ACTIVE_PAGE', 'admin');
    369468require PUN_ROOT.'header.php';
    370469
     
    373472?>
    374473        <div class="blockform">
    375                 <h2><span>Ajouter/régler groupes</span></h2>
     474                <h2><span><?php echo $lang_admin_groups['Add groups head'] ?></span></h2>
    376475                <div class="box">
    377                         <form id="groups" method="post" action="admin_groups.php?action=foo">
     476                        <form id="groups" method="post" action="admin_groups.php">
    378477                                <div class="inform">
    379478                                        <fieldset>
    380                                                 <legend>Ajouter un groupe</legend>
     479                                                <legend><?php echo $lang_admin_groups['Add group subhead'] ?></legend>
    381480                                                <div class="infldset">
    382481                                                        <table class="aligntop" cellspacing="0">
    383482                                                                <tr>
    384                                                                         <th scope="row">Nouveau groupe basé sur le groupe<div><input type="submit" name="add_group" value=" Ajouter " tabindex="2" /></div></th>
     483                                                                        <th scope="row"><?php echo $lang_admin_groups['New group label'] ?><div><input type="submit" name="add_group" value="<?php echo $lang_admin_common['Add'] ?>" tabindex="2" /></div></th>
    385484                                                                        <td>
    386485                                                                                <select id="base_group" name="base_group" tabindex="1">
    387486<?php
    388487
    389 $result = $db->query('SELECT g_id, g_title FROM '.$db->prefix.'groups WHERE g_id>'.PUN_GUEST.' ORDER BY g_title') or error('Impossible de retrouver la liste des groupes', __FILE__, __LINE__, $db->error());
     488$result = $db->query('SELECT g_id, g_title FROM '.$db->prefix.'groups WHERE g_id!='.PUN_ADMIN.' AND g_id!='.PUN_GUEST.' ORDER BY g_title') or error('Unable to fetch user group list', __FILE__, __LINE__, $db->error());
    390489
    391490while ($cur_group = $db->fetch_assoc($result))
     
    399498?>
    400499                                                                                </select>
    401                                                                                 <span>Choisissez un groupe d'utilisateurs duquel le nouveau groupe héritera les propriétés. La page suivante vous permettra d'affiner ces réglages.</span>
     500                                                                                <span><?php echo $lang_admin_groups['New group help'] ?></span>
    402501                                                                        </td>
    403502                                                                </tr>
     
    408507                                <div class="inform">
    409508                                        <fieldset>
    410                                                 <legend>Définir le groupe par défaut</legend>
     509                                                <legend><?php echo $lang_admin_groups['Default group subhead'] ?></legend>
    411510                                                <div class="infldset">
    412511                                                        <table class="aligntop" cellspacing="0">
    413512                                                                <tr>
    414                                                                         <th scope="row">Groupe par défaut<div><input type="submit" name="set_default_group" value=" Enregistrer " tabindex="4" /></div></th>
     513                                                                        <th scope="row"><?php echo $lang_admin_groups['Default group label'] ?><div><input type="submit" name="set_default_group" value="<?php echo $lang_admin_common['Save'] ?>" tabindex="4" /></div></th>
    415514                                                                        <td>
    416515                                                                                <select id="default_group" name="default_group" tabindex="3">
    417516<?php
    418517
    419 $result = $db->query('SELECT g_id, g_title FROM '.$db->prefix.'groups WHERE g_id>'.PUN_GUEST.' ORDER BY g_title') or error('Impossible de retrouver la liste des groupes', __FILE__, __LINE__, $db->error());
     518$result = $db->query('SELECT g_id, g_title FROM '.$db->prefix.'groups WHERE g_id>'.PUN_GUEST.' AND g_moderator=0 ORDER BY g_title') or error('Unable to fetch user group list', __FILE__, __LINE__, $db->error());
    420519
    421520while ($cur_group = $db->fetch_assoc($result))
     
    429528?>
    430529                                                                                </select>
    431                                                                                 <span>Choisissez le groupe que vous voulez définir par défaut. C'est à dire le groupe où les utilisateurs seront placés quand ils s'inscriront. Pour des raisons de sécurité, par défaut les utilisateurs ne peuvent être mis ni dans le groupe modérateur ni dans le groupe administrateur.</span>
     530                                                                                <span><?php echo $lang_admin_groups['Default group help'] ?></span>
    432531                                                                        </td>
    433532                                                                </tr>
     
    439538                </div>
    440539
    441                 <h2 class="block2"><span>Groupes existants</span></h2>
     540                <h2 class="block2"><span><?php echo $lang_admin_groups['Existing groups head'] ?></span></h2>
    442541                <div class="box">
    443542                        <div class="fakeform">
    444543                                <div class="inform">
    445544                                        <fieldset>
    446                                                 <legend>Modifier/supprimer les groupes</legend>
     545                                                <legend><?php echo $lang_admin_groups['Edit groups subhead'] ?></legend>
    447546                                                <div class="infldset">
    448                                                         <p>Les groupes pré-définis Invités, Administrateurs, Modérateurs et Membres ne peuvent être supprimés. Il peuvent par contre être modifiés. Mais suivant le groupe certaines options ne sont pas disponibles (<abbr title="exemple">ex.</abbr> la permission <em>modifier messages</em> pour les invités). Les Administrateurs ont toujours toutes les permisssions.</p>
     547                                                        <p><?php echo $lang_admin_groups['Edit groups info'] ?></p>
    449548                                                        <table cellspacing="0">
    450549<?php
    451550
    452 $result = $db->query('SELECT g_id, g_title FROM '.$db->prefix.'groups ORDER BY g_id') or error('Impossible de retrouver la liste des groupes', __FILE__, __LINE__, $db->error());
     551$cur_index = 5;
     552
     553$result = $db->query('SELECT g_id, g_title FROM '.$db->prefix.'groups ORDER BY g_id') or error('Unable to fetch user group list', __FILE__, __LINE__, $db->error());
    453554
    454555while ($cur_group = $db->fetch_assoc($result))
    455         echo "\t\t\t\t\t\t\t\t".'<tr><th scope="row"><a href="admin_groups.php?edit_group='.$cur_group['g_id'].'">Modifier</a>'.(($cur_group['g_id'] > PUN_MEMBER) ? ' - <a href="admin_groups.php?del_group='.$cur_group['g_id'].'">Supprimer</a>' : '').'</th><td>'.pun_htmlspecialchars($cur_group['g_title']).'</td></tr>'."\n";
     556        echo "\t\t\t\t\t\t\t\t".'<tr><th scope="row"><a href="admin_groups.php?edit_group='.$cur_group['g_id'].'" tabindex="'.$cur_index++.'">'.$lang_admin_groups['Edit link'].'</a>'.(($cur_group['g_id'] > PUN_MEMBER) ? ' | <a href="admin_groups.php?del_group='.$cur_group['g_id'].'" tabindex="'.$cur_index++.'">'.$lang_admin_groups['Delete link'].'</a>' : '').'</th><td>'.pun_htmlspecialchars($cur_group['g_title']).'</td></tr>'."\n";
    456557
    457558?>
  • branches/rsr.v5.1.dev/web/punbb/admin_index.php

    r1 r3  
    11<?php
    2 /***********************************************************************
    32
    4   Copyright (C) 2002-2005  Rickard Andersson (rickard@punbb.org)
    5 
    6   This file is part of PunBB.
    7 
    8   PunBB is free software; you can redistribute it and/or modify it
    9   under the terms of the GNU General Public License as published
    10   by the Free Software Foundation; either version 2 of the License,
    11   or (at your option) any later version.
    12 
    13   PunBB is distributed in the hope that it will be useful, but
    14   WITHOUT ANY WARRANTY; without even the implied warranty of
    15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    16   GNU General Public License for more details.
    17 
    18   You should have received a copy of the GNU General Public License
    19   along with this program; if not, write to the Free Software
    20   Foundation, Inc., 59 Temple Place, Suite 330, Boston,
    21   MA  02111-1307  USA
    22 
    23 ************************************************************************/
    24 
     3/**
     4 * Copyright (C) 2008-2011 FluxBB
     5 * based on code by Rickard Andersson copyright (C) 2002-2008 PunBB
     6 * License: http://www.gnu.org/licenses/gpl.html GPL version 2 or higher
     7 */
    258
    269// Tell header.php to use the admin template
    2710define('PUN_ADMIN_CONSOLE', 1);
    2811
    29 define('PUN_ROOT', './');
     12define('PUN_ROOT', dirname(__FILE__).'/');
    3013require PUN_ROOT.'include/common.php';
    3114require PUN_ROOT.'include/common_admin.php';
    3215
    3316
    34 if ($pun_user['g_id'] > PUN_MOD)
     17if (!$pun_user['is_admmod'])
    3518        message($lang_common['No permission']);
    3619
     20// Load the admin_index.php language file
     21require PUN_ROOT.'lang/'.$admin_language.'/admin_index.php';
    3722
    3823$action = isset($_GET['action']) ? $_GET['action'] : null;
     
    4227{
    4328        if (!ini_get('allow_url_fopen'))
    44                 message('Impossible de vérifier les mises à jour tant que \'allow_url_fopen\' est désactivé sur ce systÚme.');
     29                message($lang_admin_index['fopen disabled message']);
    4530
    46         $fp = @fopen('http://www.punbb.org/latest_version', 'r');
    47         $latest_version = trim(@fread($fp, 16));
    48         @fclose($fp);
     31        $latest_version = trim(@file_get_contents('http://fluxbb.org/latest_version'));
     32        if (empty($latest_version))
     33                message($lang_admin_index['Upgrade check failed message']);
    4934
    50         if ($latest_version == '')
    51                 message('La vérification de mise à jour a échouée pour une raison inconnue.');
    52 
    53         $cur_version = str_replace(array('.', 'dev', 'beta', ' '), '', strtolower($pun_config['o_cur_version']));
    54         $cur_version = (strlen($cur_version) == 2) ? intval($cur_version) * 10 : intval($cur_version);
    55 
    56         $latest_version = str_replace('.', '', strtolower($latest_version));
    57         $latest_version = (strlen($latest_version) == 2) ? intval($latest_version) * 10 : intval($latest_version);
    58 
    59         if ($cur_version >= $latest_version)
    60                 message('Vous utilisez la derniÚre version de PunBB.');
     35        if (version_compare($pun_config['o_cur_version'], $latest_version, '>='))
     36                message($lang_admin_index['Running latest version message']);
    6137        else
    62                 message('Une nouvelle version de PunBB est sortie ! Vous pouvez télécharger cette derniÚre version sur <a href="http://www.punbb.org/">PunBB.org</a>.');
    63 }
    64 
    65 // Check for french upgrade
    66 if ($action == 'check_upgrade_fr')
    67 {
    68         if (!ini_get('allow_url_fopen'))
    69                 message('Impossible de vérifier les mises à jour tant que \'allow_url_fopen\' est désactivé sur ce systÚme.');
    70 
    71         $fp = @fopen('http://www.punbb.fr/latest_version', 'r');
    72         $latest_version = trim(@fread($fp, 16));
    73         @fclose($fp);
    74 
    75         if ($latest_version == '')
    76                 message('La vérification de mise à jour a échouée pour une raison inconnue.');
    77 
    78         $cur_version = str_replace(array('.', 'dev', 'beta', ' '), '', strtolower($pun_config['o_cur_version_fr']));
    79         $cur_version = (strlen($cur_version) == 2) ? intval($cur_version) * 10 : intval($cur_version);
    80 
    81         $latest_version = str_replace('.', '', strtolower($latest_version));
    82         $latest_version = (strlen($latest_version) == 2) ? intval($latest_version) * 10 : intval($latest_version);
    83 
    84         if ($cur_version >= $latest_version)
    85                 message('Vous utilisez la derniÚre version de PunBB en français.');
    86         else
    87                 message('Une nouvelle version de PunBB en français est sortie ! Vous pouvez télécharger cette derniÚre version sur <a href="http://www.punbb.fr/">PunBB.fr</a>.');
     38                message(sprintf($lang_admin_index['New version available message'], '<a href="http://fluxbb.org/">FluxBB.org</a>'));
    8839}
    8940
     
    9344{
    9445        // Is phpinfo() a disabled function?
    95         if (strpos(strtolower((string)@ini_get('disable_functions')), 'phpinfo') !== false)
    96                 message('La fonction phpinfo() de PHP est désactivée sur ce serveur.');
     46        if (strpos(strtolower((string) ini_get('disable_functions')), 'phpinfo') !== false)
     47                message($lang_admin_index['PHPinfo disabled message']);
    9748
    9849        phpinfo();
     
    10960        @fclose($fh);
    11061
     62        if (($fh = @fopen('/proc/loadavg', 'r')))
     63        {
     64                $load_averages = fread($fh, 64);
     65                fclose($fh);
     66        }
     67        else
     68                $load_averages = '';
     69
    11170        $load_averages = @explode(' ', $load_averages);
    112         $server_load = isset($load_averages[2]) ? $load_averages[0].' '.$load_averages[1].' '.$load_averages[2] : 'Indisponible';
     71        $server_load = isset($load_averages[2]) ? $load_averages[0].' '.$load_averages[1].' '.$load_averages[2] : $lang_admin_index['Not available'];
    11372}
    114 else if (!in_array(PHP_OS, array('WINNT', 'WIN32')) && preg_match('/averages?: ([0-9\.]+),[\s]+([0-9\.]+),[\s]+([0-9\.]+)/i', @exec('uptime'), $load_averages))
     73else if (!in_array(PHP_OS, array('WINNT', 'WIN32')) && preg_match('%averages?: ([0-9\.]+),?\s+([0-9\.]+),?\s+([0-9\.]+)%i', @exec('uptime'), $load_averages))
    11574        $server_load = $load_averages[1].' '.$load_averages[2].' '.$load_averages[3];
    11675else
    117         $server_load = 'Indisponible';
     76        $server_load = $lang_admin_index['Not available'];
    11877
    11978
    12079// Get number of current visitors
    121 $result = $db->query('SELECT COUNT(user_id) FROM '.$db->prefix.'online WHERE idle=0') or error('Impossible de retrouver le total d\'utilisateurs en ligne', __FILE__, __LINE__, $db->error());
     80$result = $db->query('SELECT COUNT(user_id) FROM '.$db->prefix.'online WHERE idle=0') or error('Unable to fetch online count', __FILE__, __LINE__, $db->error());
    12281$num_online = $db->result($result);
    12382
    12483
    125 // Get the database system version
    126 switch ($db_type)
     84// Collect some additional info about MySQL
     85if ($db_type == 'mysql' || $db_type == 'mysqli' || $db_type == 'mysql_innodb' || $db_type == 'mysqli_innodb')
    12786{
    128         case 'sqlite':
    129                 $db_version = 'SQLite '.sqlite_libversion();
    130                 break;
    131 
    132         default:
    133                 $result = $db->query('SELECT VERSION()') or error('Impossible de retrouver les informations utilisateurs', __FILE__, __LINE__, $db->error());
    134                 $db_version = $db->result($result);
    135                 break;
    136 }
    137 
    138 
    139 // Collect some additional info about MySQL
    140 if ($db_type == 'mysql' || $db_type == 'mysqli')
    141 {
    142         $db_version = 'MySQL '.$db_version;
    143 
    14487        // Calculate total db size/row count
    145         $result = $db->query('SHOW TABLE STATUS FROM `'.$db_name.'`') or error('Impossible de retrouver le statut des tables', __FILE__, __LINE__, $db->error());
     88        $result = $db->query('SHOW TABLE STATUS LIKE \''.$db->prefix.'%\'') or error('Unable to fetch table status', __FILE__, __LINE__, $db->error());
    14689
    14790        $total_records = $total_size = 0;
     
    15295        }
    15396
    154         $total_size = $total_size / 1024;
    155 
    156         if ($total_size > 1024)
    157                 $total_size = round($total_size / 1024, 2).' MB';
    158         else
    159                 $total_size = round($total_size, 2).' KB';
     97        $total_size = file_size($total_size);
    16098}
    16199
    162100
    163 // See if MMCache or PHPA is loaded
     101// Check for the existence of various PHP opcode caches/optimizers
    164102if (function_exists('mmcache'))
    165         $php_accelerator = '<a href="http://turck-mmcache.sourceforge.net/">Turck MMCache</a>';
     103        $php_accelerator = '<a href="http://'.$lang_admin_index['Turck MMCache link'].'">'.$lang_admin_index['Turck MMCache'].'</a>';
    166104else if (isset($_PHPA))
    167         $php_accelerator = '<a href="http://www.php-accelerator.co.uk/">ionCube PHP Accelerator</a>';
     105        $php_accelerator = '<a href="http://'.$lang_admin_index['ionCube PHP Accelerator link'].'">'.$lang_admin_index['ionCube PHP Accelerator'].'</a>';
     106else if (ini_get('apc.enabled'))
     107        $php_accelerator ='<a href="http://'.$lang_admin_index['Alternative PHP Cache (APC) link'].'">'.$lang_admin_index['Alternative PHP Cache (APC)'].'</a>';
     108else if (ini_get('zend_optimizer.optimization_level'))
     109        $php_accelerator = '<a href="http://'.$lang_admin_index['Zend Optimizer link'].'">'.$lang_admin_index['Zend Optimizer'].'</a>';
     110else if (ini_get('eaccelerator.enable'))
     111        $php_accelerator = '<a href="http://'.$lang_admin_index['eAccelerator link'].'">'.$lang_admin_index['eAccelerator'].'</a>';
     112else if (ini_get('xcache.cacher'))
     113        $php_accelerator = '<a href="http://'.$lang_admin_index['XCache link'].'">'.$lang_admin_index['XCache'].'</a>';
    168114else
    169         $php_accelerator = 'N/A';
     115        $php_accelerator = $lang_admin_index['NA'];
    170116
    171117
    172 $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / Admin';
     118$page_title = array(pun_htmlspecialchars($pun_config['o_board_title']), $lang_admin_common['Admin'], $lang_admin_common['Index']);
     119define('PUN_ACTIVE_PAGE', 'admin');
    173120require PUN_ROOT.'header.php';
    174121
     
    177124?>
    178125        <div class="block">
    179                 <h2>Administration Forum</h2>
     126                <h2><span><?php echo $lang_admin_index['Forum admin head'] ?></span></h2>
    180127                <div id="adintro" class="box">
    181128                        <div class="inbox">
    182                                 <p>Bienvenue sur le panneau de contrÃŽles de  PunBB. Depuis cet espace vous pouvez contrÃŽler les points essentiels de votre forum. Selon que vous êtes un administrateur ou un modérateur vous pouvez&#160;:<br /><br />
    183                                         &#160;- organiser les catégories et les forums.<br />
    184                                         &#160;- régler les principales options et préférences.<br />
    185                                         &#160;- contrÃŽler les permissions pour les utilisateurs et les visiteurs.<br />
    186                                         &#160;- voir les statistiques des IP pour les utilisateurs.<br />
    187                                         &#160;- bannir des utilisateurs.<br />
    188                                         &#160;- censurer des mots.<br />
    189                                         &#160;- régler les rangs des utilisateurs.<br />
    190                                         &#160;- élaguer les anciens messages.<br />
    191                                         &#160;- traiter les messages signalés.
    192                                 </p>
     129                                <p><?php echo $lang_admin_index['Welcome to admin'] ?></p>
     130                                <ul>
     131                                        <li><span><?php echo $lang_admin_index['Welcome 1'] ?></span></li>
     132                                        <li><span><?php echo $lang_admin_index['Welcome 2'] ?></span></li>
     133                                        <li><span><?php echo $lang_admin_index['Welcome 3'] ?></span></li>
     134                                        <li><span><?php echo $lang_admin_index['Welcome 4'] ?></span></li>
     135                                        <li><span><?php echo $lang_admin_index['Welcome 5'] ?></span></li>
     136                                        <li><span><?php echo $lang_admin_index['Welcome 6'] ?></span></li>
     137                                        <li><span><?php echo $lang_admin_index['Welcome 7'] ?></span></li>
     138                                        <li><span><?php echo $lang_admin_index['Welcome 8'] ?></span></li>
     139                                        <li><span><?php echo $lang_admin_index['Welcome 9'] ?></span></li>
     140                                </ul>
    193141                        </div>
    194142                </div>
    195143
    196                 <h2 class="block2"><span>Statistiques</span></h2>
     144                <h2 class="block2"><span><?php echo $lang_admin_index['Statistics head'] ?></span></h2>
    197145                <div id="adstats" class="box">
    198146                        <div class="inbox">
    199147                                <dl>
    200                                         <dt>PunBB version</dt>
     148                                        <dt><?php echo $lang_admin_index['FluxBB version label'] ?></dt>
    201149                                        <dd>
    202                                                 PunBB version française <?php echo $pun_config['o_cur_version_fr'] ?> basée sur PunBB <?php echo $pun_config['o_cur_version'] ?><br />
    203                                                 <a href="admin_index.php?action=check_upgrade">Vérifier la version officielle</a> - <a href="admin_index.php?action=check_upgrade_fr">Vérifier la version française</a> <br />
    204                                                 &copy; Copyright 2002, 2003, 2004, 2005 Rickard Andersson
     150                                                <?php printf($lang_admin_index['FluxBB version data']."\n", $pun_config['o_cur_version'], '<a href="admin_index.php?action=check_upgrade">'.$lang_admin_index['Check for upgrade'].'</a>') ?>
    205151                                        </dd>
    206                                         <dt>Exécution serveur</dt>
     152                                        <dt><?php echo $lang_admin_index['Server load label'] ?></dt>
    207153                                        <dd>
    208                                                 <?php echo $server_load ?> (<?php echo $num_online ?> utilisateurs en ligne)
     154                                                <?php printf($lang_admin_index['Server load data']."\n", $server_load, $num_online) ?>
    209155                                        </dd>
    210 <?php if ($pun_user['g_id'] == PUN_ADMIN): ?>                                   <dt>Environnement</dt>
     156<?php if ($pun_user['g_id'] == PUN_ADMIN): ?>                                   <dt><?php echo $lang_admin_index['Environment label'] ?></dt>
    211157                                        <dd>
    212                                                 SystÚme d'exploitation&#160;: <?php echo PHP_OS ?><br />
    213                                                 PHP&#160;: <?php echo phpversion() ?> - <a href="admin_index.php?action=phpinfo">Afficher infos</a><br />
    214                                                 Accélérateur PHP&#160;: <?php echo $php_accelerator."\n" ?>
     158                                                <?php printf($lang_admin_index['Environment data OS'], PHP_OS) ?><br />
     159                                                <?php printf($lang_admin_index['Environment data version'], phpversion(), '<a href="admin_index.php?action=phpinfo">'.$lang_admin_index['Show info'].'</a>') ?><br />
     160                                                <?php printf($lang_admin_index['Environment data acc']."\n", $php_accelerator) ?>
    215161                                        </dd>
    216                                         <dt>Base de données</dt>
     162                                        <dt><?php echo $lang_admin_index['Database label'] ?></dt>
    217163                                        <dd>
    218                                                 <?php echo $db_version."\n" ?>
    219 <?php if (isset($total_records) && isset($total_size)): ?>                                              <br />Lignes&#160;: <?php echo $total_records."\n" ?>
    220                                                 <br />Taille&#160;: <?php echo $total_size."\n" ?>
    221 <?php endif; endif; ?>                                  </dd>
     164                                                <?php echo implode(' ', $db->get_version())."\n" ?>
     165<?php if (isset($total_records) && isset($total_size)): ?>                                              <br /><?php printf($lang_admin_index['Database data rows']."\n", forum_number_format($total_records)) ?>
     166                                                <br /><?php printf($lang_admin_index['Database data size']."\n", $total_size) ?>
     167<?php endif; ?>                                 </dd>
     168<?php endif; ?>