Ignore:
Timestamp:
Mar 31, 2010, 6:32:40 PM (15 years ago)
Author:
george
Message:
  • Upraveno: Aktualizace fóra.
Location:
trunk/forum/includes/ucp
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/forum/includes/ucp/ucp_activate.php

    r400 r702  
    33*
    44* @package ucp
    5 * @version $Id: ucp_activate.php 9067 2008-11-21 13:21:53Z Kellanved $
     5* @version $Id$
    66* @copyright (c) 2005 phpBB Group
    77* @license http://opensource.org/licenses/gpl-license.php GNU Public License
     
    5757                }
    5858
     59                // Do not allow activating by non administrators when admin activation is on
     60                // Only activation type the user should be able to do is INACTIVE_REMIND
     61                // or activate a new password which is not an activation state :@
     62                if (!$user_row['user_newpasswd'] && $user_row['user_inactive_reason'] != INACTIVE_REMIND && $config['require_activation'] == USER_ACTIVATION_ADMIN && !$auth->acl_get('a_user'))
     63                {
     64                        if (!$user->data['is_registered'])
     65                        {
     66                                login_box('', $user->lang['NO_AUTH_OPERATION']);
     67                        }
     68                        trigger_error('NO_AUTH_OPERATION');
     69                }
     70
    5971                $update_password = ($user_row['user_newpasswd']) ? true : false;
    6072
     
    7385                                WHERE user_id = ' . $user_row['user_id'];
    7486                        $db->sql_query($sql);
     87
     88                        add_log('user', $user_row['user_id'], 'LOG_USER_NEW_PASSWORD', $user_row['username']);
    7589                }
    7690
  • trunk/forum/includes/ucp/ucp_attachments.php

    r400 r702  
    33*
    44* @package ucp
    5 * @version $Id: ucp_attachments.php 8479 2008-03-29 00:22:48Z naderman $
     5* @version $Id$
    66* @copyright (c) 2005 phpBB Group
    77* @license http://opensource.org/licenses/gpl-license.php GNU Public License
     
    185185                        'U_SORT_DOWNLOADS'              => $this->u_action . "&sk=e&sd=" . (($sort_key == 'e' && $sort_dir == 'a') ? 'd' : 'a'),
    186186                        'U_SORT_POST_TIME'              => $this->u_action . "&sk=f&sd=" . (($sort_key == 'f' && $sort_dir == 'a') ? 'd' : 'a'),
    187                         'U_SORT_TOPIC_TITLE'    => $this->u_action . "&sk=g&sd=" . (($sort_key == 'f' && $sort_dir == 'a') ? 'd' : 'a'),
     187                        'U_SORT_TOPIC_TITLE'    => $this->u_action . "&sk=g&sd=" . (($sort_key == 'g' && $sort_dir == 'a') ? 'd' : 'a'),
    188188
    189189                        'S_DISPLAY_MARK_ALL'    => ($num_attachments) ? true : false,
  • trunk/forum/includes/ucp/ucp_confirm.php

    r400 r702  
    33*
    44* @package VC
    5 * @version $Id: ucp_confirm.php 8655 2008-06-13 19:39:01Z acydburn $
    6 * @copyright (c) 2005 phpBB Group
     5* @version $Id$
     6* @copyright (c) 2005 2008 phpBB Group
    77* @license http://opensource.org/licenses/gpl-license.php GNU Public License
    88*
     
    3838                global $db, $user, $phpbb_root_path, $config, $phpEx;
    3939
    40                 // Do we have an id? No, then just exit
    41                 $confirm_id = request_var('id', '');
    42                 $type = request_var('type', 0);
    43 
    44                 if (!$confirm_id || !$type)
    45                 {
    46                         exit;
    47                 }
    48 
    49                 // Try and grab code for this id and session
    50                 $sql = 'SELECT code, seed
    51                         FROM ' . CONFIRM_TABLE . "
    52                         WHERE session_id = '" . $db->sql_escape($user->session_id) . "'
    53                                 AND confirm_id = '" . $db->sql_escape($confirm_id) . "'
    54                                 AND confirm_type = $type";
    55                 $result = $db->sql_query($sql);
    56                 $row = $db->sql_fetchrow($result);
    57                 $db->sql_freeresult($result);
    58 
    59                 // If we have a row then grab data else create a new id
    60                 if (!$row)
    61                 {
    62                         exit;
    63                 }
    64 
    65                 if ($config['captcha_gd'])
    66                 {
    67                         include($phpbb_root_path . 'includes/captcha/captcha_gd.' . $phpEx);
    68                 }
    69                 else
    70                 {
    71                         include($phpbb_root_path . 'includes/captcha/captcha_non_gd.' . $phpEx);
    72                 }
    73 
    74                 $captcha = new captcha();
    75                 $captcha->execute($row['code'], $row['seed']);
     40                include($phpbb_root_path . 'includes/captcha/captcha_factory.' . $phpEx);
     41                $captcha = phpbb_captcha_factory::get_instance($config['captcha_plugin']);
     42                $captcha->init(request_var('type', 0));
     43                $captcha->execute();
    7644
    7745                garbage_collection();
  • trunk/forum/includes/ucp/ucp_groups.php

    r400 r702  
    33*
    44* @package ucp
    5 * @version $Id: ucp_groups.php 9067 2008-11-21 13:21:53Z Kellanved $
     5* @version $Id$
    66* @copyright (c) 2005 phpBB Group
    77* @license http://opensource.org/licenses/gpl-license.php GNU Public License
     
    4242                {
    4343                        case 'membership':
    44                
     44
    4545                                $this->page_title = 'UCP_USERGROUPS_MEMBER';
    4646
     
    341341                                        );
    342342
    343                                         $group_id_ary[] = $row['group_id'];
     343                                        $group_id_ary[] = (int) $row['group_id'];
    344344                                }
    345345                                $db->sql_freeresult($result);
     
    415415                                $action         = (isset($_POST['addusers'])) ? 'addusers' : request_var('action', '');
    416416                                $group_id       = request_var('g', 0);
    417                                
     417
    418418                                include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
    419419
     
    439439                                                trigger_error($user->lang['NOT_ALLOWED_MANAGE_GROUP'] . $return_page, E_USER_WARNING);
    440440                                        }
    441                                        
     441
    442442                                        $group_name = $group_row['group_name'];
    443443                                        $group_type = $group_row['group_type'];
    444                                        
     444
    445445                                        $avatar_img = (!empty($group_row['group_avatar'])) ? get_user_avatar($group_row['group_avatar'], $group_row['group_avatar_type'], $group_row['group_avatar_width'], $group_row['group_avatar_height'], 'GROUP_AVATAR') : '<img src="' . $phpbb_root_path . 'adm/images/no_avatar.gif" alt="" />';
    446446
     
    451451                                                'GROUP_DESC_DISP'               => generate_text_for_display($group_row['group_desc'], $group_row['group_desc_uid'], $group_row['group_desc_bitfield'], $group_row['group_desc_options']),
    452452                                                'GROUP_TYPE'                    => $group_row['group_type'],
    453                                                
     453
    454454                                                'AVATAR'                                => $avatar_img,
    455455                                                'AVATAR_IMAGE'                  => $avatar_img,
     
    605605                                                                // group. This prevents existing group members being updated if no changes
    606606                                                                // were made.
    607                                                
     607
    608608                                                                $group_attributes = array();
    609                                                                 $test_variables = array('rank', 'colour', 'avatar', 'avatar_type', 'avatar_width', 'avatar_height', 'receive_pm', 'legend', 'message_limit', 'max_recipients');
    610                                                                 foreach ($test_variables as $test)
    611                                                                 {
    612                                                                         if ($action == 'add' || (isset($submit_ary[$test]) && $group_row['group_' . $test] != $submit_ary[$test]))
     609                                                                $test_variables = array(
     610                                                                        'rank'                  => 'int',
     611                                                                        'colour'                => 'string',
     612                                                                        'avatar'                => 'string',
     613                                                                        'avatar_type'   => 'int',
     614                                                                        'avatar_width'  => 'int',
     615                                                                        'avatar_height' => 'int',
     616                                                                        'receive_pm'    => 'int',
     617                                                                        'legend'                => 'int',
     618                                                                        'message_limit' => 'int',
     619                                                                        'max_recipients'=> 'int',
     620                                                                );
     621
     622                                                                foreach ($test_variables as $test => $type)
     623                                                                {
     624                                                                        if (isset($submit_ary[$test]) && ($action == 'add' || $group_row['group_' . $test] != $submit_ary[$test]))
    613625                                                                        {
     626                                                                                settype($submit_ary[$test], $type);
    614627                                                                                $group_attributes['group_' . $test] = $group_row['group_' . $test] = $submit_ary[$test];
    615628                                                                        }
     
    676689                                                $display_gallery = (isset($_POST['display_gallery'])) ? true : false;
    677690
    678                                                 if ($config['allow_avatar_local'] && $display_gallery)
     691                                                if ($config['allow_avatar'] && $config['allow_avatar_local'] && $display_gallery)
    679692                                                {
    680693                                                        avatar_gallery($category, $avatar_select, 4);
    681694                                                }
    682                                                
    683                                                 $avatars_enabled = ($can_upload || ($config['allow_avatar_local'] || $config['allow_avatar_remote'])) ? true : false;
     695
     696                                                $avatars_enabled = ($config['allow_avatar'] && (($can_upload && ($config['allow_avatar_upload'] || $config['allow_avatar_remote_upload'])) || ($config['allow_avatar_local'] || $config['allow_avatar_remote']))) ? true : false;
    684697
    685698                                                $template->assign_vars(array(
    686699                                                        'S_EDIT'                        => true,
    687700                                                        'S_INCLUDE_SWATCH'      => true,
    688                                                         'S_CAN_UPLOAD'          => $can_upload,
    689                                                         'S_FORM_ENCTYPE'        => ($can_upload) ? ' enctype="multipart/form-data"' : '',
     701                                                        'S_FORM_ENCTYPE'        => ($config['allow_avatar'] && $can_upload && ($config['allow_avatar_upload'] || $config['allow_avatar_remote_upload'])) ? ' enctype="multipart/form-data"' : '',
    690702                                                        'S_ERROR'                       => (sizeof($error)) ? true : false,
    691703                                                        'S_SPECIAL_GROUP'       => ($group_type == GROUP_SPECIAL) ? true : false,
    692704                                                        'S_AVATARS_ENABLED'     => $avatars_enabled,
    693                                                         'S_DISPLAY_GALLERY'     => ($config['allow_avatar_local'] && !$display_gallery) ? true : false,
     705                                                        'S_DISPLAY_GALLERY'     => ($config['allow_avatar'] && $config['allow_avatar_local'] && !$display_gallery) ? true : false,
    694706                                                        'S_IN_GALLERY'          => ($config['allow_avatar_local'] && $display_gallery) ? true : false,
     707
     708                                                        'S_UPLOAD_AVATAR_FILE'  => ($config['allow_avatar'] && $config['allow_avatar_upload'] && $can_upload) ? true : false,
     709                                                        'S_UPLOAD_AVATAR_URL'   => ($config['allow_avatar'] && $config['allow_avatar_remote_upload'] && $can_upload) ? true : false,
     710                                                        'S_LINK_AVATAR'                 => ($config['allow_avatar'] && $config['allow_avatar_remote']) ? true : false,
    695711
    696712                                                        'ERROR_MSG'                             => (sizeof($error)) ? implode('<br />', $error) : '',
     
    698714                                                        'GROUP_MESSAGE_LIMIT'   => (isset($group_row['group_message_limit'])) ? $group_row['group_message_limit'] : 0,
    699715                                                        'GROUP_MAX_RECIPIENTS'  => (isset($group_row['group_max_recipients'])) ? $group_row['group_max_recipients'] : 0,
    700                                                        
     716
    701717                                                        'GROUP_DESC'                    => $group_desc_data['text'],
    702718                                                        'S_DESC_BBCODE_CHECKED' => $group_desc_data['allow_bbcode'],
     
    840856
    841857                                                        'U_ACTION'                      => $this->u_action . "&amp;g=$group_id",
     858                                                        'S_UCP_ACTION'          => $this->u_action . "&amp;g=$group_id",
    842859                                                        'U_FIND_USERNAME'       => append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=searchuser&amp;form=ucp&amp;field=usernames'),
    843860                                                ));
     
    897914                                                        {
    898915                                                                $start = 0;
    899                                
     916
    900917                                                                do
    901918                                                                {
     
    949966                                                }
    950967
     968                                                // redirect to last screen
     969                                                redirect($this->u_action . '&amp;action=list&amp;g=' . $group_id);
     970
    951971                                        break;
    952972
     
    9951015                                                }
    9961016
     1017                                                // redirect to last screen
     1018                                                redirect($this->u_action . '&amp;action=list&amp;g=' . $group_id);
     1019
    9971020                                        break;
    9981021
     
    10281051
    10291052                                                $default = request_var('default', 0);
    1030                                                
     1053
    10311054                                                if (confirm_box(true))
    10321055                                                {
  • trunk/forum/includes/ucp/ucp_main.php

    r400 r702  
    33*
    44* @package ucp
    5 * @version $Id: ucp_main.php 9136 2008-11-30 14:36:59Z acydburn $
     5* @version $Id$
    66* @copyright (c) 2005 phpBB Group
    77* @license http://opensource.org/licenses/gpl-license.php GNU Public License
     
    634634        function assign_topiclist($mode = 'subscribed', $forbidden_forum_ary = array())
    635635        {
    636                 global $user, $db, $template, $config, $auth, $phpbb_root_path, $phpEx;
     636                global $user, $db, $template, $config, $cache, $auth, $phpbb_root_path, $phpEx;
    637637
    638638                $table = ($mode == 'subscribed') ? TOPICS_WATCH_TABLE : BOOKMARKS_TABLE;
    639639                $start = request_var('start', 0);
     640
     641                // Grab icons
     642                $icons = $cache->obtain_icons();
    640643
    641644                $sql_array = array(
     
    777780                        topic_status($row, $replies, $unread_topic, $folder_img, $folder_alt, $topic_type);
    778781
    779                         $view_topic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;t=$topic_id");
     782                        $view_topic_url_params = "f=$forum_id&amp;t=$topic_id";
     783                        $view_topic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", $view_topic_url_params);
    780784
    781785                        // Send vars to template
     
    810814                                'TOPIC_FOLDER_IMG'              => $user->img($folder_img, $folder_alt),
    811815                                'TOPIC_FOLDER_IMG_SRC'  => $user->img($folder_img, $folder_alt, false, '', 'src'),
     816                                'TOPIC_FOLDER_IMG_ALT'  => $user->lang[$folder_alt],
    812817                                'TOPIC_ICON_IMG'                => (!empty($icons[$row['icon_id']])) ? $icons[$row['icon_id']]['img'] : '',
    813818                                'TOPIC_ICON_IMG_WIDTH'  => (!empty($icons[$row['icon_id']])) ? $icons[$row['icon_id']]['width'] : '',
     
    819824                                'S_UNREAD_TOPIC'                => $unread_topic,
    820825
    821                                 'U_NEWEST_POST'                 => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;t=$topic_id&amp;view=unread") . '#unread',
    822                                 'U_LAST_POST'                   => $view_topic_url . '&amp;p=' . $row['topic_last_post_id'] . '#p' . $row['topic_last_post_id'],
     826                                'U_NEWEST_POST'                 => append_sid("{$phpbb_root_path}viewtopic.$phpEx", $view_topic_url_params . '&amp;view=unread') . '#unread',
     827                                'U_LAST_POST'                   => append_sid("{$phpbb_root_path}viewtopic.$phpEx", $view_topic_url_params . '&amp;p=' . $row['topic_last_post_id']) . '#p' . $row['topic_last_post_id'],
    823828                                'U_VIEW_TOPIC'                  => $view_topic_url,
    824829                                'U_VIEW_FORUM'                  => append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $forum_id),
  • trunk/forum/includes/ucp/ucp_pm.php

    r400 r702  
    22/**
    33* @package ucp
    4 * @version $Id: ucp_pm.php 8521 2008-04-21 13:20:13Z acydburn $
     4* @version $Id$
    55* @copyright (c) 2005 phpBB Group
    66* @license http://opensource.org/licenses/gpl-license.php GNU Public License
     
    120120                                if (!$auth->acl_get('u_sendpm'))
    121121                                {
    122                                         trigger_error('NO_AUTH_SEND_MESSAGE');
     122                                        // trigger_error('NO_AUTH_SEND_MESSAGE');
     123                                        $template->assign_vars(array(
     124                                                'S_NO_AUTH_SEND_MESSAGE'        => true,
     125                                                'S_COMPOSE_PM_VIEW'                     => true,
     126                                        ));
     127
     128                                        $tpl_file = 'ucp_pm_viewfolder';
     129                                        break;
    123130                                }
    124131
  • trunk/forum/includes/ucp/ucp_pm_compose.php

    r400 r702  
    33*
    44* @package ucp
    5 * @version $Id: ucp_pm_compose.php 9168 2008-12-03 16:48:06Z acydburn $
     5* @version $Id$
    66* @copyright (c) 2005 phpBB Group
    77* @license http://opensource.org/licenses/gpl-license.php GNU Public License
     
    4747        $lastclick              = request_var('lastclick', 0);
    4848
     49        // Reply to all triggered (quote/reply)
     50        $reply_to_all   = request_var('reply_to_all', 0);
     51
    4952        // Do NOT use request_var or specialchars here
    5053        $address_list   = isset($_REQUEST['address_list']) ? $_REQUEST['address_list'] : array();
     
    8588                redirect(append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm'));
    8689        }
     90
     91        // Since viewtopic.php language entries are used in several modes,
     92        // we include the language file here
     93        $user->add_lang('viewtopic');
    8794
    8895        // Output PM_TO box if message composing
     
    311318                        if (($action == 'reply' || $action == 'quote' || $action == 'quotepost') && !sizeof($address_list) && !$refresh && !$submit && !$preview)
    312319                        {
    313                                 if ($action == 'quotepost')
     320                                // Add the original author as the recipient if quoting a post or only replying and not having checked "reply to all"
     321                                if ($action == 'quotepost' || !$reply_to_all)
    314322                                {
    315323                                        $address_list = array('u' => array($post['author_id'] => 'to'));
     
    317325                                else
    318326                                {
    319                                         // We try to include every previously listed member from the TO Header
     327                                        // We try to include every previously listed member from the TO Header - Reply to all
    320328                                        $address_list = rebuild_header(array('to' => $post['to_address']));
    321329
     
    440448
    441449        // If this is a quote/reply "to all"... we may increase the max_recpients to the number of original recipients
    442         if (($action == 'reply' || $action == 'quote') && $max_recipients)
     450        if (($action == 'reply' || $action == 'quote') && $max_recipients && $reply_to_all)
    443451        {
    444452                // We try to include every previously listed member from the TO Header
     
    632640        if ($load && $drafts)
    633641        {
    634                 load_drafts(0, 0, $id);
     642                load_drafts(0, 0, $id, $action, $msg_id);
    635643        }
    636644
     
    747755        if (!sizeof($error) && $preview)
    748756        {
    749                 $user->add_lang('viewtopic');
    750757                $preview_message = $message_parser->format_display($enable_bbcode, $enable_urls, $enable_smilies, false);
    751758
     
    761768                        $parse_sig->bbcode_bitfield = $preview_signature_bitfield;
    762769
    763                         $parse_sig->format_display($enable_bbcode, $enable_urls, $enable_smilies);
     770                        $parse_sig->format_display($config['allow_sig_bbcode'], $config['allow_sig_links'], $config['allow_sig_smilies']);
    764771                        $preview_signature = $parse_sig->message;
    765772                        unset($parse_sig);
     
    805812
    806813        // Decode text for message display
    807         $bbcode_uid = (($action == 'quote' || $action == 'forward') && !$preview && !$refresh && !sizeof($error)) ? $bbcode_uid : $message_parser->bbcode_uid;
     814        $bbcode_uid = (($action == 'quote' || $action == 'forward') && !$preview && !$refresh && (!sizeof($error) || (sizeof($error) && !$submit))) ? $bbcode_uid : $message_parser->bbcode_uid;
    808815
    809816        $message_parser->decode_message($bbcode_uid);
     
    851858                $forward_text[] = $user->lang['FWD_ORIGINAL_MESSAGE'];
    852859                $forward_text[] = sprintf($user->lang['FWD_SUBJECT'], censor_text($message_subject));
    853                 $forward_text[] = sprintf($user->lang['FWD_DATE'], $user->format_date($message_time));
     860                $forward_text[] = sprintf($user->lang['FWD_DATE'], $user->format_date($message_time, false, true));
    854861                $forward_text[] = sprintf($user->lang['FWD_FROM'], $quote_username_text);
    855862                $forward_text[] = sprintf($user->lang['FWD_TO'], implode(', ', $fwd_to_field['to']));
     
    10401047                'SMILIES_STATUS'                => ($smilies_status) ? $user->lang['SMILIES_ARE_ON'] : $user->lang['SMILIES_ARE_OFF'],
    10411048                'URL_STATUS'                    => ($url_status) ? $user->lang['URL_IS_ON'] : $user->lang['URL_IS_OFF'],
     1049                'MAX_FONT_SIZE'                 => (int) $config['max_post_font_size'],
    10421050                'MINI_POST_IMG'                 => $user->img('icon_post_target', $user->lang['PM']),
    10431051                'ERROR'                                 => (sizeof($error)) ? implode('<br />', $error) : '',
     
    11251133
    11261134        // Build usernames to add
    1127         $usernames = (isset($_REQUEST['username'])) ? array(request_var('username', '', true)) : array();
     1135        $usernames = request_var('username', '', true);
     1136        $usernames = (empty($usernames)) ? array() : array($usernames);
     1137
    11281138        $username_list = request_var('username_list', '', true);
    11291139        if ($username_list)
     
    11391149                global $refresh, $submit, $preview;
    11401150
    1141                 $refresh = $preview = true;
     1151                $refresh = true;
    11421152                $submit = false;
     1153
     1154                // Preview is only true if there was also a message entered
     1155                if (request_var('message', ''))
     1156                {
     1157                        $preview = true;
     1158                }
    11431159        }
    11441160
  • trunk/forum/includes/ucp/ucp_pm_options.php

    r400 r702  
    33*
    44* @package ucp
    5 * @version $Id: ucp_pm_options.php 8479 2008-03-29 00:22:48Z naderman $
     5* @version $Id$
    66* @copyright (c) 2005 phpBB Group
    77* @license http://opensource.org/licenses/gpl-license.php GNU Public License
     
    109109                                $db->sql_query($sql);
    110110                                $msg = $user->lang['FOLDER_ADDED'];
     111                        }
     112                        else
     113                        {
     114                                $msg = $user->lang['FOLDER_NAME_EMPTY'];
    111115                        }
    112116                }
     
    634638{
    635639        global $template;
     640        global $module;
     641
     642        $exclude = array();
     643
     644        if (!$module->loaded('zebra', 'friends'))
     645        {
     646                $exclude[RULE_IS_FRIEND] = true;
     647        }
     648
     649        if (!$module->loaded('zebra', 'foes'))
     650        {
     651                $exclude[RULE_IS_FOE] = true;
     652        }
    636653
    637654        $s_rule_options = '';
     
    640657                foreach ($check_ary as $value => $_check)
    641658                {
     659                        if (isset($exclude[$value]))
     660                        {
     661                                continue;
     662                        }
    642663                        $s_rule_options .= '<option value="' . $value . '"' . (($value == $rule_option) ? ' selected="selected"' : '') . '>' . $rule_lang[$value] . '</option>';
    643664                }
  • trunk/forum/includes/ucp/ucp_pm_viewfolder.php

    r400 r702  
    33*
    44* @package ucp
    5 * @version $Id: ucp_pm_viewfolder.php 8795 2008-08-29 11:50:01Z Kellanved $
     5* @version $Id$
    66* @copyright (c) 2005 phpBB Group
    77* @license http://opensource.org/licenses/gpl-license.php GNU Public License
     
    6666                $mark_options = array('mark_important', 'delete_marked');
    6767
     68                // Minimise edits
     69                if (!$auth->acl_get('u_pm_delete') && $key = array_search('delete_marked', $mark_options))
     70                {
     71                        unset($mark_options[$key]);
     72                }
     73
    6874                $s_mark_options = '';
    6975                foreach ($mark_options as $mark_option)
     
    116122                        if ($folder_id == PRIVMSGS_OUTBOX || $folder_id == PRIVMSGS_SENTBOX)
    117123                        {
    118                                 $recipient_list = $address = array();
    119 
    120                                 foreach ($folder_info['rowset'] as $message_id => $row)
    121                                 {
    122                                         $address[$message_id] = rebuild_header(array('to' => $row['to_address'], 'bcc' => $row['bcc_address']));
    123                                         $_save = array('u', 'g');
    124                                         foreach ($_save as $save)
    125                                         {
    126                                                 if (isset($address[$message_id][$save]) && sizeof($address[$message_id][$save]))
    127                                                 {
    128                                                         foreach (array_keys($address[$message_id][$save]) as $ug_id)
    129                                                         {
    130                                                                 $recipient_list[$save][$ug_id] = array('name' => $user->lang['NA'], 'colour' => '');
    131                                                         }
    132                                                 }
    133                                         }
    134                                 }
    135 
    136                                 $_types = array('u', 'g');
    137                                 foreach ($_types as $ug_type)
    138                                 {
    139                                         if (!empty($recipient_list[$ug_type]))
    140                                         {
    141                                                 if ($ug_type == 'u')
    142                                                 {
    143                                                         $sql = 'SELECT user_id as id, username as name, user_colour as colour
    144                                                                 FROM ' . USERS_TABLE . '
    145                                                                 WHERE ';
    146                                                 }
    147                                                 else
    148                                                 {
    149                                                         $sql = 'SELECT group_id as id, group_name as name, group_colour as colour, group_type
    150                                                                 FROM ' . GROUPS_TABLE . '
    151                                                                 WHERE ';
    152                                                 }
    153                                                 $sql .= $db->sql_in_set(($ug_type == 'u') ? 'user_id' : 'group_id', array_map('intval', array_keys($recipient_list[$ug_type])));
    154 
    155                                                 $result = $db->sql_query($sql);
    156 
    157                                                 while ($row = $db->sql_fetchrow($result))
    158                                                 {
    159                                                         if ($ug_type == 'g')
    160                                                         {
    161                                                                 $row['name'] = ($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['name']] : $row['name'];
    162                                                         }
    163 
    164                                                         $recipient_list[$ug_type][$row['id']] = array('name' => $row['name'], 'colour' => $row['colour']);
    165                                                 }
    166                                                 $db->sql_freeresult($result);
    167                                         }
    168                                 }
    169 
    170                                 foreach ($address as $message_id => $adr_ary)
    171                                 {
    172                                         foreach ($adr_ary as $type => $id_ary)
    173                                         {
    174                                                 foreach ($id_ary as $ug_id => $_id)
    175                                                 {
    176                                                         if ($type == 'u')
    177                                                         {
    178                                                                 $address_list[$message_id][] = get_username_string('full', $ug_id, $recipient_list[$type][$ug_id]['name'], $recipient_list[$type][$ug_id]['colour']);
    179                                                         }
    180                                                         else
    181                                                         {
    182                                                                 $user_colour = ($recipient_list[$type][$ug_id]['colour']) ? ' style="font-weight: bold; color:#' . $recipient_list[$type][$ug_id]['colour'] . '"' : '';
    183                                                                 $link = '<a href="' . append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group&amp;g=' . $ug_id) . '"' . $user_colour . '>';
    184                                                                 $address_list[$message_id][] = $link . $recipient_list[$type][$ug_id]['name'] . (($link) ? '</a>' : '');
    185                                                         }
    186                                                 }
    187                                         }
    188                                 }
    189                                 unset($recipient_list, $address);
     124                                $address_list = get_recipient_strings($folder_info['rowset']);
    190125                        }
    191 
    192                         $data = array();
    193126
    194127                        foreach ($folder_info['pm_list'] as $message_id)
     
    268201                {
    269202                        // Build Recipient List if in outbox/sentbox
    270                         $address = array();
     203
     204                        $address_temp = $address = $data = array();
     205
    271206                        if ($folder_id == PRIVMSGS_OUTBOX || $folder_id == PRIVMSGS_SENTBOX)
    272207                        {
    273208                                foreach ($folder_info['rowset'] as $message_id => $row)
    274209                                {
    275                                         $address[$message_id] = rebuild_header(array('to' => $row['to_address'], 'bcc' => $row['bcc_address']));
     210                                        $address_temp[$message_id] = rebuild_header(array('to' => $row['to_address'], 'bcc' => $row['bcc_address']));
     211                                        $address[$message_id] = array();
    276212                                }
    277213                        }
     
    297233                                foreach ($_types as $ug_type)
    298234                                {
    299                                         if (isset($address[$message_id][$ug_type]) && sizeof($address[$message_id][$ug_type]))
     235                                        if (isset($address_temp[$message_id][$ug_type]) && sizeof($address_temp[$message_id][$ug_type]))
    300236                                        {
     237                                                if (!isset($address[$message_id][$ug_type]))
     238                                                {
     239                                                        $address[$message_id][$ug_type] = array();
     240                                                }
    301241                                                if ($ug_type == 'u')
    302242                                                {
     
    311251                                                                WHERE ';
    312252                                                }
    313                                                 $sql .= $db->sql_in_set(($ug_type == 'u') ? 'user_id' : 'group_id', array_map('intval', array_keys($address[$message_id][$ug_type])));
     253                                                $sql .= $db->sql_in_set(($ug_type == 'u') ? 'user_id' : 'group_id', array_map('intval', array_keys($address_temp[$message_id][$ug_type])));
    314254
    315255                                                $result = $db->sql_query($sql);
     
    317257                                                while ($info_row = $db->sql_fetchrow($result))
    318258                                                {
    319                                                         $address[$message_id][$ug_type][$address[$message_id][$ug_type][$info_row['id']]][] = $info_row['name'];
    320                                                         unset($address[$message_id][$ug_type][$info_row['id']]);
     259                                                        $address[$message_id][$ug_type][$address_temp[$message_id][$ug_type][$info_row['id']]][] = $info_row['name'];
     260                                                        unset($address_temp[$message_id][$ug_type][$info_row['id']]);
    321261                                                }
    322262                                                $db->sql_freeresult($result);
     
    324264                                }
    325265
     266                                // There is the chance that all recipients of the message got deleted. To avoid creating
     267                                // exports without recipients, we add a bogus "undisclosed recipient".
     268                                if (!(isset($address[$message_id]['g']) && sizeof($address[$message_id]['g'])) &&
     269                                    !(isset($address[$message_id]['u']) && sizeof($address[$message_id]['u'])))
     270                                {
     271                                        $address[$message_id]['u'] = array();
     272                                        $address[$message_id]['u']['to'] = array();
     273                                        $address[$message_id]['u']['to'][] = $user->lang['UNDISCLOSED_RECIPIENT'];
     274                                }
     275
    326276                                decode_message($message_row['message_text'], $message_row['bbcode_uid']);
    327 
     277                               
    328278                                $data[] = array(
    329279                                        'subject'       => censor_text($row['message_subject']),
    330280                                        'sender'        => $row['username'],
    331                                         'date'          => $user->format_date($row['message_time']),
     281                                        // ISO 8601 date. For PHP4 we are able to hardcode the timezone because $user->format_date() does not set it.
     282                                        'date'          => $user->format_date($row['message_time'], (PHP_VERSION >= 5) ? 'c' : "Y-m-d\TH:i:s+00:00", true),
    332283                                        'to'            => ($folder_id == PRIVMSGS_OUTBOX || $folder_id == PRIVMSGS_SENTBOX) ? $address[$message_id] : '',
    333284                                        'message'       => $message_row['message_text']
     
    457408        {
    458409                $sort_by_text = array('t' => $user->lang['POST_TIME'], 's' => $user->lang['SUBJECT']);
    459                 $sort_by_sql = array('t' => 'p.msg_id', 's' => 'p.message_subject');
     410                $sort_by_sql = array('t' => 'p.message_time', 's' => array('p.message_subject', 'p.message_time'));
    460411        }
    461412        else
    462413        {
    463414                $sort_by_text = array('a' => $user->lang['AUTHOR'], 't' => $user->lang['POST_TIME'], 's' => $user->lang['SUBJECT']);
    464                 $sort_by_sql = array('a' => 'u.username_clean', 't' => 'p.msg_id', 's' => 'p.message_subject');
     415                $sort_by_sql = array('a' => array('u.username_clean', 'p.message_time'), 't' => 'p.message_time', 's' => array('p.message_subject', 'p.message_time'));
    465416        }
    466417
     
    503454                'TOTAL_MESSAGES'        => (($pm_count == 1) ? $user->lang['VIEW_PM_MESSAGE'] : sprintf($user->lang['VIEW_PM_MESSAGES'], $pm_count)),
    504455
    505                 'POST_IMG'              => (!$auth->acl_get('u_sendpm')) ? $user->img('button_topic_locked', 'PM_LOCKED') : $user->img('button_pm_new', 'POST_PM'),
    506 
    507                 'L_NO_MESSAGES' => (!$auth->acl_get('u_sendpm')) ? $user->lang['POST_PM_LOCKED'] : $user->lang['NO_MESSAGES'],
     456                'POST_IMG'              => (!$auth->acl_get('u_sendpm')) ? $user->img('button_topic_locked', 'POST_PM_LOCKED') : $user->img('button_pm_new', 'POST_NEW_PM'),
     457
     458                'S_NO_AUTH_SEND_MESSAGE'        => !$auth->acl_get('u_sendpm'),
    508459
    509460                'S_SELECT_SORT_DIR'             => $s_sort_dir,
     
    512463                'S_TOPIC_ICONS'                 => ($config['enable_pm_icons']) ? true : false,
    513464
    514                 'U_POST_NEW_TOPIC'      => ($auth->acl_get('u_sendpm')) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&amp;mode=compose') : '', 
     465                'U_POST_NEW_TOPIC'      => ($auth->acl_get('u_sendpm')) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&amp;mode=compose') : '',
    515466                'S_PM_ACTION'           => append_sid("{$phpbb_root_path}ucp.$phpEx", "i=pm&amp;mode=view&amp;action=view_folder&amp;f=$folder_id" . (($start !== 0) ? "&amp;start=$start" : '')),
    516467        ));
     
    532483
    533484                // Select the sort order
    534                 $sql_sort_order = $sort_by_sql[$sort_key] . ' ' . (($sort_dir == 'd') ? 'ASC' : 'DESC');
     485                $direction = ($sort_dir == 'd') ? 'ASC' : 'DESC';
    535486                $sql_start = max(0, $pm_count - $sql_limit - $start);
    536487        }
     
    538489        {
    539490                // Select the sort order
    540                 $sql_sort_order = $sort_by_sql[$sort_key] . ' ' . (($sort_dir == 'd') ? 'DESC' : 'ASC');
     491                $direction = ($sort_dir == 'd') ? 'DESC' : 'ASC';
    541492                $sql_start = $start;
     493        }
     494
     495        // Sql sort order
     496        if (is_array($sort_by_sql[$sort_key]))
     497        {
     498                $sql_sort_order = implode(' ' . $direction . ', ', $sort_by_sql[$sort_key]) . ' ' . $direction;
     499        }
     500        else
     501        {
     502                $sql_sort_order = $sort_by_sql[$sort_key] . ' ' . $direction;
    542503        }
    543504
  • trunk/forum/includes/ucp/ucp_pm_viewmessage.php

    r400 r702  
    33*
    44* @package ucp
    5 * @version $Id: ucp_pm_viewmessage.php 9174 2008-12-04 19:58:42Z toonarmy $
     5* @version $Id$
    66* @copyright (c) 2005 phpBB Group
    77* @license http://opensource.org/licenses/gpl-license.php GNU Public License
     
    3030        $folder_id      = (int) $folder_id;
    3131        $author_id      = (int) $message_row['author_id'];
     32        $view           = request_var('view', '');
    3233
    3334        // Not able to view message, it was deleted by the sender
     
    169170        $url = append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm');
    170171
     172        // Number of "to" recipients
     173        $num_recipients = (int) preg_match_all('/:?(u|g)_([0-9]+):?/', $message_row['to_address'], $match);
     174
    171175        $template->assign_vars(array(
    172176                'MESSAGE_AUTHOR_FULL'           => get_username_string('full', $author_id, $user_info['username'], $user_info['user_colour'], $user_info['username']),
     
    179183                'AUTHOR_AVATAR'         => (isset($user_info['avatar'])) ? $user_info['avatar'] : '',
    180184                'AUTHOR_JOINED'         => $user->format_date($user_info['user_regdate']),
    181                 'AUTHOR_POSTS'          => (!empty($user_info['user_posts'])) ? $user_info['user_posts'] : '',
     185                'AUTHOR_POSTS'          => (int) $user_info['user_posts'],
    182186                'AUTHOR_FROM'           => (!empty($user_info['user_from'])) ? $user_info['user_from'] : '',
    183187
     
    190194                'QUOTE_IMG'                     => $user->img('icon_post_quote', $user->lang['POST_QUOTE_PM']),
    191195                'REPLY_IMG'                     => $user->img('button_pm_reply', $user->lang['POST_REPLY_PM']),
     196                'REPORT_IMG'            => $user->img('icon_post_report', 'REPORT_PM'),
    192197                'EDIT_IMG'                      => $user->img('icon_post_edit', $user->lang['POST_EDIT_PM']),
    193198                'MINI_POST_IMG'         => $user->img('icon_post_target', $user->lang['PM']),
    194199
    195                 'SENT_DATE'                     => $user->format_date($message_row['message_time']),
     200                'SENT_DATE'                     => ($view == 'print') ? $user->format_date($message_row['message_time'], false, true) : $user->format_date($message_row['message_time']),
    196201                'SUBJECT'                       => $message_row['message_subject'],
    197202                'MESSAGE'                       => $message,
     
    210215                'U_DELETE'                      => ($auth->acl_get('u_pm_delete')) ? "$url&amp;mode=compose&amp;action=delete&amp;f=$folder_id&amp;p=" . $message_row['msg_id'] : '',
    211216                'U_EMAIL'                       => $user_info['email'],
     217                'U_REPORT'                      => ($config['allow_pm_report']) ? append_sid("{$phpbb_root_path}report.$phpEx", "pm=" . $message_row['msg_id']) : '',
    212218                'U_QUOTE'                       => ($auth->acl_get('u_sendpm') && $author_id != ANONYMOUS) ? "$url&amp;mode=compose&amp;action=quote&amp;f=$folder_id&amp;p=" . $message_row['msg_id'] : '',
    213219                'U_EDIT'                        => (($message_row['message_time'] > time() - ($config['pm_edit_time'] * 60) || !$config['pm_edit_time']) && $folder_id == PRIVMSGS_OUTBOX && $auth->acl_get('u_pm_edit')) ? "$url&amp;mode=compose&amp;action=edit&amp;f=$folder_id&amp;p=" . $message_row['msg_id'] : '',
    214220                'U_POST_REPLY_PM'       => ($auth->acl_get('u_sendpm') && $author_id != ANONYMOUS) ? "$url&amp;mode=compose&amp;action=reply&amp;f=$folder_id&amp;p=" . $message_row['msg_id'] : '',
     221                'U_POST_REPLY_ALL'      => ($auth->acl_get('u_sendpm') && $author_id != ANONYMOUS) ? "$url&amp;mode=compose&amp;action=reply&amp;f=$folder_id&amp;reply_to_all=1&amp;p=" . $message_row['msg_id'] : '',
    215222                'U_PREVIOUS_PM'         => "$url&amp;f=$folder_id&amp;p=" . $message_row['msg_id'] . "&amp;view=previous",
    216223                'U_NEXT_PM'                     => "$url&amp;f=$folder_id&amp;p=" . $message_row['msg_id'] . "&amp;view=next",
     224
     225                'U_PM_ACTION'           => $url . '&amp;mode=compose&amp;f=' . $folder_id . '&amp;p=' . $message_row['msg_id'],
    217226
    218227                'S_HAS_ATTACHMENTS'     => (sizeof($attachments)) ? true : false,
     
    220229                'S_AUTHOR_DELETED'      => ($author_id == ANONYMOUS) ? true : false,
    221230                'S_SPECIAL_FOLDER'      => in_array($folder_id, array(PRIVMSGS_NO_BOX, PRIVMSGS_OUTBOX)),
     231                'S_PM_RECIPIENTS'       => $num_recipients,
    222232
    223233                'U_PRINT_PM'            => ($config['print_pm'] && $auth->acl_get('u_pm_printpm')) ? "$url&amp;f=$folder_id&amp;p=" . $message_row['msg_id'] . "&amp;view=print" : '',
     
    287297                if ($row)
    288298                {
    289                         $user_row['online'] = (time() - $update_time < $row['online_time'] && ($row['viewonline'])) ? true : false;
     299                        $user_row['online'] = (time() - $update_time < $row['online_time'] && ($row['viewonline'] || $auth->acl_get('u_viewonline'))) ? true : false;
    290300                }
    291301        }
  • trunk/forum/includes/ucp/ucp_prefs.php

    r400 r702  
    33*
    44* @package ucp
    5 * @version $Id: ucp_prefs.php 8990 2008-10-09 15:41:19Z acydburn $
     5* @version $Id$
    66* @copyright (c) 2005 phpBB Group
    77* @license http://opensource.org/licenses/gpl-license.php GNU Public License
     
    283283                                        'S_DISABLE_CENSORS'     => $data['wordcensor'],
    284284
    285                                         'S_CHANGE_CENSORS'              => ($auth->acl_get('u_chgcensors')) ? true : false,
     285                                        'S_CHANGE_CENSORS'              => ($auth->acl_get('u_chgcensors') && $config['allow_nocensors']) ? true : false,
    286286
    287287                                        'S_TOPIC_SORT_DAYS'             => $s_limit_topic_days,
  • trunk/forum/includes/ucp/ucp_profile.php

    r400 r702  
    33*
    44* @package ucp
    5 * @version $Id: ucp_profile.php 8990 2008-10-09 15:41:19Z acydburn $
     5* @version $Id$
    66* @copyright (c) 2005 phpBB Group
    77* @license http://opensource.org/licenses/gpl-license.php GNU Public License
     
    111111                                                        'username_clean'        => ($auth->acl_get('u_chgname') && $config['allow_namechange']) ? utf8_clean_string($data['username']) : $user->data['username_clean'],
    112112                                                        'user_email'            => ($auth->acl_get('u_chgemail')) ? $data['email'] : $user->data['user_email'],
    113                                                         'user_email_hash'       => ($auth->acl_get('u_chgemail')) ? crc32($data['email']) . strlen($data['email']) : $user->data['user_email_hash'],
     113                                                        'user_email_hash'       => ($auth->acl_get('u_chgemail')) ? phpbb_email_hash($data['email']) : $user->data['user_email_hash'],
    114114                                                        'user_password'         => ($auth->acl_get('u_chgpasswd') && $data['new_password']) ? phpbb_hash($data['new_password']) : $user->data['user_password'],
    115115                                                        'user_passchg'          => ($auth->acl_get('u_chgpasswd') && $data['new_password']) ? time() : 0,
     
    134134                                                $message = 'PROFILE_UPDATED';
    135135
    136                                                 if ($config['email_enable'] && $data['email'] != $user->data['user_email'] && $user->data['user_type'] != USER_FOUNDER && ($config['require_activation'] == USER_ACTIVATION_SELF || $config['require_activation'] == USER_ACTIVATION_ADMIN))
     136                                                if ($auth->acl_get('u_chgemail') && $config['email_enable'] && $data['email'] != $user->data['user_email'] && $user->data['user_type'] != USER_FOUNDER && ($config['require_activation'] == USER_ACTIVATION_SELF || $config['require_activation'] == USER_ACTIVATION_ADMIN))
    137137                                                {
    138138                                                        $message = ($config['require_activation'] == USER_ACTIVATION_SELF) ? 'ACCOUNT_EMAIL_CHANGED' : 'ACCOUNT_EMAIL_CHANGED_ADMIN';
     
    350350                                                $data['notify'] = $user->data['user_notify_type'];
    351351
    352                                                 if (!$config['jab_enable'] || !$data['jabber'] || !@extension_loaded('xml'))
     352                                                if ($data['notify'] == NOTIFY_IM && (!$config['jab_enable'] || !$data['jabber'] || !@extension_loaded('xml')))
    353353                                                {
    354354                                                        // User has not filled in a jabber address (Or one of the modules is disabled or jabber is disabled)
    355355                                                        // Disable notify by Jabber now for this user.
    356                                                         $data['notify'] = NOTIFY_BOTH;
     356                                                        $data['notify'] = NOTIFY_EMAIL;
    357357                                                }
    358358
     
    381381
    382382                                                // Update Custom Fields
    383                                                 if (sizeof($cp_data))
    384                                                 {
    385                                                         $sql = 'UPDATE ' . PROFILE_FIELDS_DATA_TABLE . '
    386                                                                 SET ' . $db->sql_build_array('UPDATE', $cp_data) . '
    387                                                                 WHERE user_id = ' . $user->data['user_id'];
    388                                                         $db->sql_query($sql);
    389 
    390                                                         if (!$db->sql_affectedrows())
    391                                                         {
    392                                                                 $cp_data['user_id'] = (int) $user->data['user_id'];
    393 
    394                                                                 $db->sql_return_on_error(true);
    395 
    396                                                                 $sql = 'INSERT INTO ' . PROFILE_FIELDS_DATA_TABLE . ' ' . $db->sql_build_array('INSERT', $cp_data);
    397                                                                 $db->sql_query($sql);
    398 
    399                                                                 $db->sql_return_on_error(false);
    400                                                         }
    401                                                 }
     383                                                $cp->update_profile_field_data($user->data['user_id'], $cp_data);
    402384
    403385                                                meta_refresh(3, $this->u_action);
     
    475457                                include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
    476458
    477                                 $enable_bbcode  = ($config['allow_sig_bbcode']) ? ((request_var('disable_bbcode', !$user->optionget('bbcode'))) ? false : true) : false;
    478                                 $enable_smilies = ($config['allow_sig_smilies']) ? ((request_var('disable_smilies', !$user->optionget('smilies'))) ? false : true) : false;
    479                                 $enable_urls    = ($config['allow_sig_links']) ? ((request_var('disable_magic_url', false)) ? false : true) : false;
     459                                $enable_bbcode  = ($config['allow_sig_bbcode']) ? (bool) $user->optionget('sig_bbcode') : false;
     460                                $enable_smilies = ($config['allow_sig_smilies']) ? (bool) $user->optionget('sig_smilies') : false;
     461                                $enable_urls    = ($config['allow_sig_links']) ? (bool) $user->optionget('sig_links') : false;
    480462
    481463                                $signature              = utf8_normalize_nfc(request_var('signature', (string) $user->data['user_sig'], true));
     
    486468                                {
    487469                                        include($phpbb_root_path . 'includes/message_parser.' . $phpEx);
     470
     471                                        $enable_bbcode  = ($config['allow_sig_bbcode']) ? ((request_var('disable_bbcode', false)) ? false : true) : false;
     472                                        $enable_smilies = ($config['allow_sig_smilies']) ? ((request_var('disable_smilies', false)) ? false : true) : false;
     473                                        $enable_urls    = ($config['allow_sig_links']) ? ((request_var('disable_magic_url', false)) ? false : true) : false;
    488474
    489475                                        if (!sizeof($error))
     
    506492                                                if (!sizeof($error) && $submit)
    507493                                                {
     494                                                        $user->optionset('sig_bbcode', $enable_bbcode);
     495                                                        $user->optionset('sig_smilies', $enable_smilies);
     496                                                        $user->optionset('sig_links', $enable_urls);
     497
    508498                                                        $sql_ary = array(
    509499                                                                'user_sig'                                      => (string) $message_parser->message,
     500                                                                'user_options'                          => $user->data['user_options'],
    510501                                                                'user_sig_bbcode_uid'           => (string) $message_parser->bbcode_uid,
    511502                                                                'user_sig_bbcode_bitfield'      => $message_parser->bbcode_bitfield
     
    550541                                        'FLASH_STATUS'                  => ($config['allow_sig_flash']) ? $user->lang['FLASH_IS_ON'] : $user->lang['FLASH_IS_OFF'],
    551542                                        'URL_STATUS'                    => ($config['allow_sig_links']) ? $user->lang['URL_IS_ON'] : $user->lang['URL_IS_OFF'],
     543                                        'MAX_FONT_SIZE'                 => (int) $config['max_sig_font_size'],
    552544
    553545                                        'L_SIGNATURE_EXPLAIN'   => sprintf($user->lang['SIGNATURE_EXPLAIN'], $config['max_sig_chars']),
     
    573565                                $category = basename(request_var('category', ''));
    574566
    575                                 $can_upload = ($config['allow_avatar_upload'] && file_exists($phpbb_root_path . $config['avatar_path']) && @is_writable($phpbb_root_path . $config['avatar_path']) && $auth->acl_get('u_chgavatar') && (@ini_get('file_uploads') || strtolower(@ini_get('file_uploads')) == 'on')) ? true : false;
     567                                $can_upload = (file_exists($phpbb_root_path . $config['avatar_path']) && @is_writable($phpbb_root_path . $config['avatar_path']) && $auth->acl_get('u_chgavatar') && (@ini_get('file_uploads') || strtolower(@ini_get('file_uploads')) == 'on')) ? true : false;
    576568
    577569                                add_form_key('ucp_avatar');
     
    596588                                }
    597589
     590                                if (!$config['allow_avatar'] && $user->data['user_avatar_type'])
     591                                {
     592                                        $error[] = $user->lang['AVATAR_NOT_ALLOWED'];
     593                                }
     594                                else if ((($user->data['user_avatar_type'] == AVATAR_UPLOAD) && !$config['allow_avatar_upload']) ||
     595                                 (($user->data['user_avatar_type'] == AVATAR_REMOTE) && !$config['allow_avatar_remote']) ||
     596                                 (($user->data['user_avatar_type'] == AVATAR_GALLERY) && !$config['allow_avatar_local']))
     597                                {
     598                                        $error[] = $user->lang['AVATAR_TYPE_NOT_ALLOWED'];
     599                                }
     600
    598601                                $template->assign_vars(array(
    599602                                        'ERROR'                 => (sizeof($error)) ? implode('<br />', $error) : '',
    600                                         'AVATAR'                => get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height']),
     603                                        'AVATAR'                => get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height'], 'USER_AVATAR', true),
    601604                                        'AVATAR_SIZE'   => $config['avatar_filesize'],
    602605
    603606                                        'U_GALLERY'             => append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=profile&amp;mode=avatar&amp;display_gallery=1'),
    604607
    605                                         'S_FORM_ENCTYPE'        => ($can_upload) ? ' enctype="multipart/form-data"' : '',
     608                                        'S_FORM_ENCTYPE'        => ($can_upload && ($config['allow_avatar_upload'] || $config['allow_avatar_remote_upload'])) ? ' enctype="multipart/form-data"' : '',
    606609
    607610                                        'L_AVATAR_EXPLAIN'      => sprintf($user->lang['AVATAR_EXPLAIN'], $config['avatar_max_width'], $config['avatar_max_height'], $config['avatar_filesize'] / 1024),
    608611                                ));
    609612
    610                                 if ($display_gallery && $auth->acl_get('u_chgavatar') && $config['allow_avatar_local'])
     613                                if ($config['allow_avatar'] && $display_gallery && $auth->acl_get('u_chgavatar') && $config['allow_avatar_local'])
    611614                                {
    612615                                        avatar_gallery($category, $avatar_select, 4);
    613616                                }
    614                                 else
    615                                 {
    616                                         $avatars_enabled = ($can_upload || ($auth->acl_get('u_chgavatar') && ($config['allow_avatar_local'] || $config['allow_avatar_remote']))) ? true : false;
     617                                else if ($config['allow_avatar'])
     618                                {
     619                                        $avatars_enabled = (($can_upload && ($config['allow_avatar_upload'] || $config['allow_avatar_remote_upload'])) || ($auth->acl_get('u_chgavatar') && ($config['allow_avatar_local'] || $config['allow_avatar_remote']))) ? true : false;
    617620
    618621                                        $template->assign_vars(array(
     
    621624
    622625                                                'S_AVATARS_ENABLED'             => $avatars_enabled,
    623                                                 'S_UPLOAD_AVATAR_FILE'  => $can_upload,
    624                                                 'S_UPLOAD_AVATAR_URL'   => $can_upload,
     626                                                'S_UPLOAD_AVATAR_FILE'  => ($can_upload && $config['allow_avatar_upload']) ? true : false,
     627                                                'S_UPLOAD_AVATAR_URL'   => ($can_upload && $config['allow_avatar_remote_upload']) ? true : false,
    625628                                                'S_LINK_AVATAR'                 => ($auth->acl_get('u_chgavatar') && $config['allow_avatar_remote']) ? true : false,
    626629                                                'S_DISPLAY_GALLERY'             => ($auth->acl_get('u_chgavatar') && $config['allow_avatar_local']) ? true : false)
  • trunk/forum/includes/ucp/ucp_register.php

    r400 r702  
    33*
    44* @package ucp
    5 * @version $Id: ucp_register.php 8782 2008-08-23 17:20:55Z acydburn $
     5* @version $Id$
    66* @copyright (c) 2005 phpBB Group
    77* @license http://opensource.org/licenses/gpl-license.php GNU Public License
     
    3838                include($phpbb_root_path . 'includes/functions_profile_fields.' . $phpEx);
    3939
    40                 $confirm_id             = request_var('confirm_id', '');
    4140                $coppa                  = (isset($_REQUEST['coppa'])) ? ((!empty($_REQUEST['coppa'])) ? 1 : 0) : false;
    4241                $agreed                 = (!empty($_POST['agreed'])) ? 1 : 0;
     
    5453                }
    5554
    56 
    5755                if ($change_lang || $user_lang != $config['default_lang'])
    5856                {
     
    6967                                }
    7068
    71                                 $user->lang_name = $lang = $use_lang;
     69                                $user->lang_name = $user_lang = $use_lang;
    7270                                $user->lang = array();
     71                                $user->data['user_lang'] = $user->lang_name;
    7372                                $user->add_lang(array('common', 'ucp'));
    7473                        }
     
    8079                }
    8180
     81
    8282                $cp = new custom_profile();
    8383
    8484                $error = $cp_data = $cp_error = array();
    85 
    8685
    8786                if (!$agreed || ($coppa === false && $config['coppa_enable']) || ($coppa && !$config['coppa_enable']))
     
    9089                        $add_coppa = ($coppa !== false) ? '&amp;coppa=' . $coppa : '';
    9190
    92                         $s_hidden_fields = ($confirm_id) ? array('confirm_id' => $confirm_id) : array();
     91                        $s_hidden_fields = array(
     92                                'change_lang'   => $change_lang,
     93                        );
    9394
    9495                        // If we change the language, we want to pass on some more possible parameter.
     
    100101                                        'email'                         => strtolower(request_var('email', '')),
    101102                                        'email_confirm'         => strtolower(request_var('email_confirm', '')),
    102                                         'confirm_code'          => request_var('confirm_code', ''),
    103                                         'confirm_id'            => request_var('confirm_id', ''),
    104103                                        'lang'                          => $user->lang_name,
    105104                                        'tz'                            => request_var('tz', (float) $config['board_timezone']),
    106105                                ));
    107                         }
     106
     107                        }
     108
     109                        // Checking amount of available languages
     110                        $sql = 'SELECT lang_id
     111                                FROM ' . LANG_TABLE;
     112                        $result = $db->sql_query($sql);
     113
     114                        $lang_row = array();
     115                        while ($row = $db->sql_fetchrow($result))
     116                        {
     117                                $lang_row[] = $row;
     118                        }
     119                        $db->sql_freeresult($result);
    108120
    109121                        if ($coppa === false && $config['coppa_enable'])
     
    114126
    115127                                $template->assign_vars(array(
     128                                        'S_LANG_OPTIONS'        => (sizeof($lang_row) > 1) ? language_select($user_lang) : '',
    116129                                        'L_COPPA_NO'            => sprintf($user->lang['UCP_COPPA_BEFORE'], $coppa_birthday),
    117130                                        'L_COPPA_YES'           => sprintf($user->lang['UCP_COPPA_ON_AFTER'], $coppa_birthday),
     
    128141                        {
    129142                                $template->assign_vars(array(
     143                                        'S_LANG_OPTIONS'        => (sizeof($lang_row) > 1) ? language_select($user_lang) : '',
    130144                                        'L_TERMS_OF_USE'        => sprintf($user->lang['TERMS_OF_USE_CONTENT'], $config['sitename'], generate_board_url()),
    131145
     
    137151                                );
    138152                        }
     153                        unset($lang_row);
    139154
    140155                        $this->tpl_name = 'ucp_agreement';
    141156                        return;
    142157                }
    143 
     158               
     159               
     160                // The CAPTCHA kicks in here. We can't help that the information gets lost on language change.
     161                if ($config['enable_confirm'])
     162                {
     163                        include($phpbb_root_path . 'includes/captcha/captcha_factory.' . $phpEx);
     164                        $captcha =& phpbb_captcha_factory::get_instance($config['captcha_plugin']);
     165                        $captcha->init(CONFIRM_REG);
     166                }
    144167
    145168                // Try to manually determine the timezone and adjust the dst if the server date/time complies with the default setting +/- 1
     
    168191                        'email'                         => strtolower(request_var('email', '')),
    169192                        'email_confirm'         => strtolower(request_var('email_confirm', '')),
    170                         'confirm_code'          => request_var('confirm_code', ''),
    171193                        'lang'                          => basename(request_var('lang', $user->lang_name)),
    172194                        'tz'                            => request_var('tz', (float) $timezone),
     
    188210                                        array('email')),
    189211                                'email_confirm'         => array('string', false, 6, 60),
    190                                 'confirm_code'          => array('string', !$config['enable_confirm'], 5, 8),
    191212                                'tz'                            => array('num', false, -14, 14),
    192213                                'lang'                          => array('match', false, '#^[a-z_\-]{2,}$#i'),
    193214                        ));
     215
    194216                        if (!check_form_key('ucp_register'))
    195217                        {
    196218                                $error[] = $user->lang['FORM_INVALID'];
    197219                        }
     220
    198221                        // Replace "error" strings with their real, localised form
    199222                        $error = preg_replace('#^([A-Z_]+)$#e', "(!empty(\$user->lang['\\1'])) ? \$user->lang['\\1'] : '\\1'", $error);
    200223
     224                        if ($config['enable_confirm'])
     225                        {
     226                                $vc_response = $captcha->validate($data);
     227                                if ($vc_response !== false)
     228                                {
     229                                        $error[] = $vc_response;
     230                                }
     231
     232                                if ($config['max_reg_attempts'] && $captcha->get_attempt_count() > $config['max_reg_attempts'])
     233                                {
     234                                        $error[] = $user->lang['TOO_MANY_REGISTERS'];
     235                                }
     236                        }
     237
    201238                        // DNSBL check
    202239                        if ($config['check_dnsbl'])
     
    210247                        // validate custom profile fields
    211248                        $cp->submit_cp_field('register', $user->get_iso_lang_id(), $cp_data, $error);
    212 
    213                         // Visual Confirmation handling
    214                         $wrong_confirm = false;
    215                         if ($config['enable_confirm'])
    216                         {
    217                                 if (!$confirm_id)
    218                                 {
    219                                         $error[] = $user->lang['CONFIRM_CODE_WRONG'];
    220                                         $wrong_confirm = true;
    221                                 }
    222                                 else
    223                                 {
    224                                         $sql = 'SELECT code
    225                                                 FROM ' . CONFIRM_TABLE . "
    226                                                 WHERE confirm_id = '" . $db->sql_escape($confirm_id) . "'
    227                                                         AND session_id = '" . $db->sql_escape($user->session_id) . "'
    228                                                         AND confirm_type = " . CONFIRM_REG;
    229                                         $result = $db->sql_query($sql);
    230                                         $row = $db->sql_fetchrow($result);
    231                                         $db->sql_freeresult($result);
    232 
    233                                         if ($row)
    234                                         {
    235                                                 if (strcasecmp($row['code'], $data['confirm_code']) === 0)
    236                                                 {
    237                                                         $sql = 'DELETE FROM ' . CONFIRM_TABLE . "
    238                                                                 WHERE confirm_id = '" . $db->sql_escape($confirm_id) . "'
    239                                                                         AND session_id = '" . $db->sql_escape($user->session_id) . "'
    240                                                                         AND confirm_type = " . CONFIRM_REG;
    241                                                         $db->sql_query($sql);
    242                                                 }
    243                                                 else
    244                                                 {
    245                                                         $error[] = $user->lang['CONFIRM_CODE_WRONG'];
    246                                                         $wrong_confirm = true;
    247                                                 }
    248                                         }
    249                                         else
    250                                         {
    251                                                 $error[] = $user->lang['CONFIRM_CODE_WRONG'];
    252                                                 $wrong_confirm = true;
    253                                         }
    254                                 }
    255                         }
    256249
    257250                        if (!sizeof($error))
     
    327320                                );
    328321
     322                                if ($config['new_member_post_limit'])
     323                                {
     324                                        $user_row['user_new'] = 1;
     325                                }
     326
    329327                                // Register user...
    330328                                $user_id = user_add($user_row, $cp_data);
     
    334332                                {
    335333                                        trigger_error('NO_USER', E_USER_ERROR);
     334                                }
     335
     336                                // Okay, captcha, your job is done.
     337                                if ($config['enable_confirm'] && isset($captcha))
     338                                {
     339                                        $captcha->reset();
    336340                                }
    337341
     
    441445                        $s_hidden_fields['coppa'] = $coppa;
    442446                }
     447
     448                if ($config['enable_confirm'])
     449                {
     450                        $s_hidden_fields = array_merge($s_hidden_fields, $captcha->get_hidden_fields());
     451                }
    443452                $s_hidden_fields = build_hidden_fields($s_hidden_fields);
    444 
    445453                $confirm_image = '';
    446454
    447455                // Visual Confirmation - Show images
    448 
    449456                if ($config['enable_confirm'])
    450457                {
    451                         if ($change_lang)
    452                         {
    453                                 $str = '&amp;change_lang=' . $change_lang;
    454                                 $sql = 'SELECT code
    455                                                 FROM ' . CONFIRM_TABLE . "
    456                                                 WHERE confirm_id = '" . $db->sql_escape($confirm_id) . "'
    457                                                         AND session_id = '" . $db->sql_escape($user->session_id) . "'
    458                                                         AND confirm_type = " . CONFIRM_REG;
    459                                 $result = $db->sql_query($sql);
    460                                 if (!$row = $db->sql_fetchrow($result))
    461                                 {
    462                                         $confirm_id = '';
    463                                 }
    464                                 $db->sql_freeresult($result);
    465                         }
    466                         else
    467                         {
    468                                 $str = '';
    469                         }
    470                         if (!$change_lang || !$confirm_id)
    471                         {
    472                                 $user->confirm_gc(CONFIRM_REG);
    473 
    474                                 $sql = 'SELECT COUNT(session_id) AS attempts
    475                                         FROM ' . CONFIRM_TABLE . "
    476                                         WHERE session_id = '" . $db->sql_escape($user->session_id) . "'
    477                                                 AND confirm_type = " . CONFIRM_REG;
    478                                 $result = $db->sql_query($sql);
    479                                 $attempts = (int) $db->sql_fetchfield('attempts');
    480                                 $db->sql_freeresult($result);
    481 
    482                                 if ($config['max_reg_attempts'] && $attempts > $config['max_reg_attempts'])
    483                                 {
    484                                         trigger_error('TOO_MANY_REGISTERS');
    485                                 }
    486 
    487                                 $code = gen_rand_string(mt_rand(5, 8));
    488                                 $confirm_id = md5(unique_id($user->ip));
    489                                 $seed = hexdec(substr(unique_id(), 4, 10));
    490 
    491                                 // compute $seed % 0x7fffffff
    492                                 $seed -= 0x7fffffff * floor($seed / 0x7fffffff);
    493 
    494                                 $sql = 'INSERT INTO ' . CONFIRM_TABLE . ' ' . $db->sql_build_array('INSERT', array(
    495                                         'confirm_id'    => (string) $confirm_id,
    496                                         'session_id'    => (string) $user->session_id,
    497                                         'confirm_type'  => (int) CONFIRM_REG,
    498                                         'code'                  => (string) $code,
    499                                         'seed'                  => (int) $seed)
    500                                 );
    501                                 $db->sql_query($sql);
    502                         }
    503                         $confirm_image = '<img src="' . append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=confirm&amp;id=' . $confirm_id . '&amp;type=' . CONFIRM_REG . $str) . '" alt="" title="" />';
    504                         $s_hidden_fields .= '<input type="hidden" name="confirm_id" value="' . $confirm_id . '" />';
     458                        $template->assign_vars(array(
     459                                'CAPTCHA_TEMPLATE'              => $captcha->get_template(),
     460                        ));
    505461                }
    506462
     
    525481                        'EMAIL'                         => $data['email'],
    526482                        'EMAIL_CONFIRM'         => $data['email_confirm'],
    527                         'CONFIRM_IMG'           => $confirm_image,
    528 
    529                         'L_CONFIRM_EXPLAIN'                     => sprintf($user->lang['CONFIRM_EXPLAIN'], '<a href="mailto:' . htmlspecialchars($config['board_contact']) . '">', '</a>'),
     483
    530484                        'L_REG_COND'                            => $l_reg_cond,
    531485                        'L_USERNAME_EXPLAIN'            => sprintf($user->lang[$config['allow_name_chars'] . '_EXPLAIN'], $config['min_name_chars'], $config['max_name_chars']),
     
    534488                        'S_LANG_OPTIONS'        => language_select($data['lang']),
    535489                        'S_TZ_OPTIONS'          => tz_select($data['tz']),
    536                         'S_CONFIRM_CODE'        => ($config['enable_confirm']) ? true : false,
     490                        'S_CONFIRM_REFRESH'     => ($config['enable_confirm'] && $config['confirm_refresh']) ? true : false,
     491                        'S_REGISTRATION'        => true,
    537492                        'S_COPPA'                       => $coppa,
    538493                        'S_HIDDEN_FIELDS'       => $s_hidden_fields,
    539494                        'S_UCP_ACTION'          => append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=register'),
    540                         )
    541                 );
     495                ));
    542496
    543497                //
  • trunk/forum/includes/ucp/ucp_remind.php

    r400 r702  
    33*
    44* @package ucp
    5 * @version $Id: ucp_remind.php 8977 2008-10-06 14:04:33Z acydburn $
     5* @version $Id$
    66* @copyright (c) 2005 phpBB Group
    77* @license http://opensource.org/licenses/gpl-license.php GNU Public License
     
    3939                        $sql = 'SELECT user_id, username, user_permissions, user_email, user_jabber, user_notify_type, user_type, user_lang, user_inactive_reason
    4040                                FROM ' . USERS_TABLE . "
    41                                 WHERE user_email = '" . $db->sql_escape($email) . "'
     41                                WHERE user_email_hash = '" . $db->sql_escape(phpbb_email_hash($email)) . "'
    4242                                        AND username_clean = '" . $db->sql_escape(utf8_clean_string($username)) . "'";
    4343                        $result = $db->sql_query($sql);
  • trunk/forum/includes/ucp/ucp_resend.php

    r400 r702  
    33*
    44* @package ucp
    5 * @version $Id: ucp_resend.php 8479 2008-03-29 00:22:48Z naderman $
     5* @version $Id$
    66* @copyright (c) 2005 phpBB Group
    77* @license http://opensource.org/licenses/gpl-license.php GNU Public License
     
    4646                        $sql = 'SELECT user_id, group_id, username, user_email, user_type, user_lang, user_actkey, user_inactive_reason
    4747                                FROM ' . USERS_TABLE . "
    48                                 WHERE user_email = '" . $db->sql_escape($email) . "'
     48                                WHERE user_email_hash = '" . $db->sql_escape(phpbb_email_hash($email)) . "'
    4949                                        AND username_clean = '" . $db->sql_escape(utf8_clean_string($username)) . "'";
    5050                        $result = $db->sql_query($sql);
     
    134134                                        $messenger->im($row['user_jabber'], $row['username']);
    135135
     136                                        $messenger->headers('X-AntiAbuse: Board servername - ' . $config['server_name']);
     137                                        $messenger->headers('X-AntiAbuse: User_id - ' . $user->data['user_id']);
     138                                        $messenger->headers('X-AntiAbuse: Username - ' . $user->data['username']);
     139                                        $messenger->headers('X-AntiAbuse: User IP - ' . $user->ip);
     140
    136141                                        $messenger->assign_vars(array(
    137142                                                'USERNAME'                      => htmlspecialchars_decode($user_row['username']),
     
    147152                        meta_refresh(3, append_sid("{$phpbb_root_path}index.$phpEx"));
    148153
    149                         $message = ($config['require_activation'] == USER_ACTIVATION_ADMIN) ? $user->lang['ACIVATION_EMAIL_SENT_ADMIN'] : $user->lang['ACTIVATION_EMAIL_SENT'];
     154                        $message = ($config['require_activation'] == USER_ACTIVATION_ADMIN) ? $user->lang['ACTIVATION_EMAIL_SENT_ADMIN'] : $user->lang['ACTIVATION_EMAIL_SENT'];
    150155                        $message .= '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a>');
    151156                        trigger_error($message);
  • trunk/forum/includes/ucp/ucp_zebra.php

    r400 r702  
    33*
    44* @package ucp
    5 * @version $Id: ucp_zebra.php 8479 2008-03-29 00:22:48Z naderman $
     5* @version $Id$
    66* @copyright (c) 2005 phpBB Group
    77* @license http://opensource.org/licenses/gpl-license.php GNU Public License
     
    5353                                if (confirm_box(true))
    5454                                {
     55                                        // Remove users
     56                                        if (!empty($data['usernames']))
     57                                        {
     58                                                $sql = 'DELETE FROM ' . ZEBRA_TABLE . '
     59                                                        WHERE user_id = ' . $user->data['user_id'] . '
     60                                                                AND ' . $db->sql_in_set('zebra_id', $data['usernames']);
     61                                                $db->sql_query($sql);
     62
     63                                                $updated = true;
     64                                        }
     65
     66                                        // Add users
    5567                                        if ($data['add'])
    5668                                        {
     
    125137                                                                        $user_id_ary[] = $row['user_id'];
    126138                                                                }
     139                                                                else if ($row['user_id'] != ANONYMOUS)
     140                                                                {
     141                                                                        $error[] = $user->lang['NOT_ADDED_' . $l_mode . '_BOTS'];
     142                                                                }
    127143                                                                else
    128144                                                                {
     
    183199                                                        }
    184200                                                }
    185                                         }
    186                                         else if (sizeof($data['usernames']))
    187                                         {
    188                                                 // Force integer values
    189                                                 $data['usernames'] = array_map('intval', $data['usernames']);
    190 
    191                                                 $sql = 'DELETE FROM ' . ZEBRA_TABLE . '
    192                                                         WHERE user_id = ' . $user->data['user_id'] . '
    193                                                                 AND ' . $db->sql_in_set('zebra_id', $data['usernames']);
    194                                                 $db->sql_query($sql);
    195 
    196                                                 $updated = true;
    197201                                        }
    198202
Note: See TracChangeset for help on using the changeset viewer.