Ignore:
Timestamp:
Mar 31, 2010, 6:32:40 PM (15 years ago)
Author:
george
Message:
  • Upraveno: Aktualizace fóra.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/forum/includes/functions_display.php

    r400 r702  
    33*
    44* @package phpBB3
    5 * @version $Id: functions_display.php 9082 2008-11-22 20:26:09Z acydburn $
     5* @version $Id$
    66* @copyright (c) 2005 phpBB Group
    77* @license http://opensource.org/licenses/gpl-license.php GNU Public License
     
    103103        $forum_tracking_info = array();
    104104        $branch_root_id = $root_data['forum_id'];
     105
     106        // Check for unread global announcements (index page only)
     107        $ga_unread = false;
     108        if ($root_data['forum_id'] == 0)
     109        {
     110                $unread_ga_list = get_unread_topics($user->data['user_id'], 'AND t.forum_id = 0', '', 1);
     111
     112                if (!empty($unread_ga_list))
     113                {
     114                        $ga_unread = true;
     115                }
     116        }
     117
    105118        while ($row = $db->sql_fetchrow($result))
    106119        {
     
    155168                }
    156169
     170                // Count the difference of real to public topics, so we can display an information to moderators
     171                $row['forum_id_unapproved_topics'] = ($auth->acl_get('m_approve', $forum_id) && ($row['forum_topics_real'] != $row['forum_topics'])) ? $forum_id : 0;
    157172                $row['forum_topics'] = ($auth->acl_get('m_approve', $forum_id)) ? $row['forum_topics_real'] : $row['forum_topics'];
    158173
     
    211226                        {
    212227                                $subforums[$parent_id][$row['parent_id']]['children'][] = $forum_id;
     228                        }
     229
     230                        if (!$forum_rows[$parent_id]['forum_id_unapproved_topics'] && $row['forum_id_unapproved_topics'])
     231                        {
     232                                $forum_rows[$parent_id]['forum_id_unapproved_topics'] = $forum_id;
    213233                        }
    214234
     
    238258        if ($mark_read == 'forums' || $mark_read == 'all')
    239259        {
    240                 $redirect = build_url('mark', 'hash');
     260                $redirect = build_url(array('mark', 'hash'));
    241261                $token = request_var('hash', '');
    242262                if (check_link_hash($token, 'global'))
     
    249269                        else
    250270                        {
     271                                // Add 0 to forums array to mark global announcements correctly
     272                                $forum_ids[] = 0;
    251273                                markread('topics', $forum_ids);
    252274                                $message = sprintf($user->lang['RETURN_FORUM'], '<a href="' . $redirect . '">', '</a>');
     
    300322
    301323                $forum_unread = (isset($forum_tracking_info[$forum_id]) && $row['orig_forum_last_post_time'] > $forum_tracking_info[$forum_id]) ? true : false;
     324
     325                // Mark the first visible forum on index as unread if there's any unread global announcement
     326                if ($ga_unread && !empty($forum_ids_moderator) && $forum_id == $forum_ids_moderator[0])
     327                {
     328                        $forum_unread = true;
     329                }
    302330
    303331                $folder_image = $folder_alt = $l_subforums = '';
     
    429457                        'S_LIST_SUBFORUMS'      => ($row['display_subforum_list']) ? true : false,
    430458                        'S_SUBFORUMS'           => (sizeof($subforums_list)) ? true : false,
     459                        'S_FEED_ENABLED'        => ($config['feed_forum'] && !phpbb_optionget(FORUM_OPTION_FEED_EXCLUDE, $row['forum_options'])) ? true : false,
    431460
    432461                        'FORUM_ID'                              => $row['forum_id'],
     
    452481                        'L_MODERATOR_STR'               => $l_moderator,
    453482
     483                        'U_UNAPPROVED_TOPICS'   => ($row['forum_id_unapproved_topics']) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=queue&amp;mode=unapproved_topics&amp;f=' . $row['forum_id_unapproved_topics']) : '',
    454484                        'U_VIEWFORUM'           => $u_viewforum,
    455485                        'U_LAST_POSTER'         => get_username_string('profile', $row['forum_last_poster_id'], $row['forum_last_poster_name'], $row['forum_last_poster_colour']),
     
    474504                'S_HAS_SUBFORUM'        => ($visible_forums) ? true : false,
    475505                'L_SUBFORUM'            => ($visible_forums == 1) ? $user->lang['SUBFORUM'] : $user->lang['SUBFORUMS'],
    476                 'LAST_POST_IMG'         => $user->img('icon_topic_latest', 'VIEW_LATEST_POST'))
    477         );
     506                'LAST_POST_IMG'         => $user->img('icon_topic_latest', 'VIEW_LATEST_POST'),
     507                'UNAPPROVED_IMG'        => $user->img('icon_topic_unapproved', 'TOPICS_UNAPPROVED'),
     508        ));
    478509
    479510        if ($return_moderators)
     
    515546function generate_forum_nav(&$forum_data)
    516547{
    517         global $db, $user, $template, $auth;
     548        global $db, $user, $template, $auth, $config;
    518549        global $phpEx, $phpbb_root_path;
    519550
     
    562593                'FORUM_ID'              => $forum_data['forum_id'],
    563594                'FORUM_NAME'    => $forum_data['forum_name'],
    564                 'FORUM_DESC'    => generate_text_for_display($forum_data['forum_desc'], $forum_data['forum_desc_uid'], $forum_data['forum_desc_bitfield'], $forum_data['forum_desc_options']))
    565         );
     595                'FORUM_DESC'    => generate_text_for_display($forum_data['forum_desc'], $forum_data['forum_desc_uid'], $forum_data['forum_desc_bitfield'], $forum_data['forum_desc_options']),
     596
     597                'S_ENABLE_FEEDS_FORUM'  => ($config['feed_forum'] && $forum_data['forum_type'] == FORUM_POST && !phpbb_optionget(FORUM_OPTION_FEED_EXCLUDE, $forum_data['forum_options'])) ? true : false,
     598        ));
    566599
    567600        return;
     
    659692        global $config, $template, $db, $phpbb_root_path, $phpEx, $user, $auth;
    660693
    661         // Have we disabled the display of moderators? If so, then return
    662         // from whence we came ...
    663         if (!$config['load_moderators'])
    664         {
    665                 return;
    666         }
    667 
    668         $forum_sql = '';
     694        $forum_id_ary = array();
    669695
    670696        if ($forum_id !== false)
     
    675701                }
    676702
    677                 // If we don't have a forum then we can't have a moderator
    678                 if (!sizeof($forum_id))
    679                 {
    680                         return;
    681                 }
    682 
    683                 $forum_sql = 'AND m.' . $db->sql_in_set('forum_id', $forum_id);
     703                // Exchange key/value pair to be able to faster check for the forum id existence
     704                $forum_id_ary = array_flip($forum_id);
    684705        }
    685706
     
    702723                ),
    703724
    704                 'WHERE'         => "m.display_on_index = 1 $forum_sql",
     725                'WHERE'         => 'm.display_on_index = 1',
    705726        );
    706727
     728        // We query every forum here because for caching we should not have any parameter.
    707729        $sql = $db->sql_build_query('SELECT', $sql_array);
    708730        $result = $db->sql_query($sql, 3600);
     
    710732        while ($row = $db->sql_fetchrow($result))
    711733        {
     734                $f_id = (int) $row['forum_id'];
     735
     736                if (!isset($forum_id_ary[$f_id]))
     737                {
     738                        continue;
     739                }
     740
    712741                if (!empty($row['user_id']))
    713742                {
    714                         $forum_moderators[$row['forum_id']][] = get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']);
     743                        $forum_moderators[$f_id][] = get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']);
    715744                }
    716745                else
     
    720749                        if ($user->data['user_id'] != ANONYMOUS && !$auth->acl_get('u_viewprofile'))
    721750                        {
    722                                 $forum_moderators[$row['forum_id']][] = '<span' . (($row['group_colour']) ? ' style="color:#' . $row['group_colour'] . ';"' : '') . '>' . $group_name . '</span>';
     751                                $forum_moderators[$f_id][] = '<span' . (($row['group_colour']) ? ' style="color:#' . $row['group_colour'] . ';"' : '') . '>' . $group_name . '</span>';
    723752                        }
    724753                        else
    725754                        {
    726                                 $forum_moderators[$row['forum_id']][] = '<a' . (($row['group_colour']) ? ' style="color:#' . $row['group_colour'] . ';"' : '') . ' href="' . append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group&amp;g=' . $row['group_id']) . '">' . $group_name . '</a>';
     755                                $forum_moderators[$f_id][] = '<a' . (($row['group_colour']) ? ' style="color:#' . $row['group_colour'] . ';"' : '') . ' href="' . append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group&amp;g=' . $row['group_id']) . '">' . $group_name . '</a>';
    727756                        }
    728757                }
     
    847876function display_custom_bbcodes()
    848877{
    849         global $db, $template;
     878        global $db, $template, $user;
    850879
    851880        // Start counting from 22 for the bbcode ids (every bbcode takes two ids - opening/closing)
     
    861890        while ($row = $db->sql_fetchrow($result))
    862891        {
     892                // If the helpline is defined within the language file, we will use the localised version, else just use the database entry...
     893                if (isset($user->lang[strtoupper($row['bbcode_helpline'])]))
     894                {
     895                        $row['bbcode_helpline'] = $user->lang[strtoupper($row['bbcode_helpline'])];
     896                }
     897
    863898                $template->assign_block_vars('custom_tags', array(
    864899                        'BBCODE_NAME'           => "'[{$row['bbcode_tag']}]', '[/" . str_replace('=', '', $row['bbcode_tag']) . "]'",
     
    11951230* @param string $avatar_height Height of users avatar
    11961231* @param string $alt Optional language string for alt tag within image, can be a language key or text
     1232* @param bool $ignore_config Ignores the config-setting, to be still able to view the avatar in the UCP
    11971233*
    11981234* @return string Avatar image
    11991235*/
    1200 function get_user_avatar($avatar, $avatar_type, $avatar_width, $avatar_height, $alt = 'USER_AVATAR')
     1236function get_user_avatar($avatar, $avatar_type, $avatar_width, $avatar_height, $alt = 'USER_AVATAR', $ignore_config = false)
    12011237{
    12021238        global $user, $config, $phpbb_root_path, $phpEx;
    12031239
    1204         if (empty($avatar) || !$avatar_type)
     1240        if (empty($avatar) || !$avatar_type || (!$config['allow_avatar'] && !$ignore_config))
    12051241        {
    12061242                return '';
     
    12121248        {
    12131249                case AVATAR_UPLOAD:
     1250                        if (!$config['allow_avatar_upload'] && !$ignore_config)
     1251                        {
     1252                                return '';
     1253                        }
    12141254                        $avatar_img = $phpbb_root_path . "download/file.$phpEx?avatar=";
    12151255                break;
    12161256
    12171257                case AVATAR_GALLERY:
     1258                        if (!$config['allow_avatar_local'] && !$ignore_config)
     1259                        {
     1260                                return '';
     1261                        }
    12181262                        $avatar_img = $phpbb_root_path . $config['avatar_gallery_path'] . '/';
    12191263                break;
     1264
     1265                case AVATAR_REMOTE:
     1266                        if (!$config['allow_avatar_remote'] && !$ignore_config)
     1267                        {
     1268                                return '';
     1269                        }
     1270                break;
    12201271        }
    12211272
Note: See TracChangeset for help on using the changeset viewer.