| Conditions | 18 |
| Paths | 8320 |
| Total Lines | 119 |
| Code Lines | 65 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 0 | ||
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
| 1 | <?php |
||
| 26 | function BoardIndex() |
||
| 27 | { |
||
| 28 | global $txt, $user_info, $sourcedir, $modSettings, $context, $settings, $scripturl; |
||
| 29 | |||
| 30 | loadTemplate('BoardIndex'); |
||
| 31 | $context['template_layers'][] = 'boardindex_outer'; |
||
| 32 | |||
| 33 | // Set a canonical URL for this page. |
||
| 34 | $context['canonical_url'] = $scripturl; |
||
| 35 | |||
| 36 | // Do not let search engines index anything if there is a random thing in $_GET. |
||
| 37 | if (!empty($_GET)) |
||
| 38 | $context['robot_no_index'] = true; |
||
| 39 | |||
| 40 | // Retrieve the categories and boards. |
||
| 41 | require_once($sourcedir . '/Subs-BoardIndex.php'); |
||
| 42 | $boardIndexOptions = array( |
||
| 43 | 'include_categories' => true, |
||
| 44 | 'base_level' => 0, |
||
| 45 | 'parent_id' => 0, |
||
| 46 | 'set_latest_post' => true, |
||
| 47 | 'countChildPosts' => !empty($modSettings['countChildPosts']), |
||
| 48 | ); |
||
| 49 | $context['categories'] = getBoardIndex($boardIndexOptions); |
||
| 50 | |||
| 51 | // Now set up for the info center. |
||
| 52 | $context['info_center'] = array(); |
||
| 53 | |||
| 54 | // Retrieve the latest posts if the theme settings require it. |
||
| 55 | if (!empty($settings['number_recent_posts'])) |
||
| 56 | { |
||
| 57 | if ($settings['number_recent_posts'] > 1) |
||
| 58 | { |
||
| 59 | $latestPostOptions = array( |
||
| 60 | 'number_posts' => $settings['number_recent_posts'], |
||
| 61 | ); |
||
| 62 | $context['latest_posts'] = cache_quick_get('boardindex-latest_posts:' . md5($user_info['query_wanna_see_board'] . $user_info['language']), 'Subs-Recent.php', 'cache_getLastPosts', array($latestPostOptions)); |
||
| 63 | } |
||
| 64 | |||
| 65 | if (!empty($context['latest_posts']) || !empty($context['latest_post'])) |
||
| 66 | $context['info_center'][] = array( |
||
| 67 | 'tpl' => 'recent', |
||
| 68 | 'txt' => 'recent_posts', |
||
| 69 | ); |
||
| 70 | } |
||
| 71 | |||
| 72 | // Load the calendar? |
||
| 73 | if (!empty($modSettings['cal_enabled']) && allowedTo('calendar_view')) |
||
| 74 | { |
||
| 75 | // Retrieve the calendar data (events, birthdays, holidays). |
||
| 76 | $eventOptions = array( |
||
| 77 | 'include_holidays' => $modSettings['cal_showholidays'] > 1, |
||
| 78 | 'include_birthdays' => $modSettings['cal_showbdays'] > 1, |
||
| 79 | 'include_events' => $modSettings['cal_showevents'] > 1, |
||
| 80 | 'num_days_shown' => empty($modSettings['cal_days_for_index']) || $modSettings['cal_days_for_index'] < 1 ? 1 : $modSettings['cal_days_for_index'], |
||
| 81 | ); |
||
| 82 | $context += cache_quick_get('calendar_index_offset_' . ($user_info['time_offset'] + $modSettings['time_offset']), 'Subs-Calendar.php', 'cache_getRecentEvents', array($eventOptions)); |
||
| 83 | |||
| 84 | // Whether one or multiple days are shown on the board index. |
||
| 85 | $context['calendar_only_today'] = $modSettings['cal_days_for_index'] == 1; |
||
| 86 | |||
| 87 | // This is used to show the "how-do-I-edit" help. |
||
| 88 | $context['calendar_can_edit'] = allowedTo('calendar_edit_any'); |
||
| 89 | |||
| 90 | if ($context['show_calendar']) |
||
| 91 | $context['info_center'][] = array( |
||
| 92 | 'tpl' => 'calendar', |
||
| 93 | 'txt' => $context['calendar_only_today'] ? 'calendar_today' : 'calendar_upcoming', |
||
| 94 | ); |
||
| 95 | } |
||
| 96 | |||
| 97 | // And stats. |
||
| 98 | $context['show_stats'] = allowedTo('view_stats') && !empty($modSettings['trackStats']); |
||
| 99 | if ($settings['show_stats_index']) |
||
| 100 | $context['info_center'][] = array( |
||
| 101 | 'tpl' => 'stats', |
||
| 102 | 'txt' => 'forum_stats', |
||
| 103 | ); |
||
| 104 | |||
| 105 | // Now the online stuff |
||
| 106 | require_once($sourcedir . '/Subs-MembersOnline.php'); |
||
| 107 | $membersOnlineOptions = array( |
||
| 108 | 'show_hidden' => allowedTo('moderate_forum'), |
||
| 109 | 'sort' => 'log_time', |
||
| 110 | 'reverse_sort' => true, |
||
| 111 | ); |
||
| 112 | $context += getMembersOnlineStats($membersOnlineOptions); |
||
| 113 | $context['show_buddies'] = !empty($user_info['buddies']); |
||
| 114 | $context['show_who'] = allowedTo('who_view') && !empty($modSettings['who_enabled']); |
||
| 115 | $context['info_center'][] = array( |
||
| 116 | 'tpl' => 'online', |
||
| 117 | 'txt' => 'online_users', |
||
| 118 | ); |
||
| 119 | |||
| 120 | // Track most online statistics? (Subs-MembersOnline.php) |
||
| 121 | if (!empty($modSettings['trackStats'])) |
||
| 122 | trackStatsUsersOnline($context['num_guests'] + $context['num_spiders'] + $context['num_users_online']); |
||
| 123 | |||
| 124 | // Are we showing all membergroups on the board index? |
||
| 125 | if (!empty($settings['show_group_key'])) |
||
| 126 | $context['membergroups'] = cache_quick_get('membergroup_list', 'Subs-Membergroups.php', 'cache_getMembergroupList', array()); |
||
| 127 | |||
| 128 | // And back to normality. |
||
| 129 | $context['page_title'] = sprintf($txt['forum_index'], $context['forum_name']); |
||
| 130 | |||
| 131 | // Mark read button |
||
| 132 | $context['mark_read_button'] = array( |
||
| 133 | 'markread' => array('text' => 'mark_as_read', 'image' => 'markread.png', 'custom' => 'data-confirm="' . $txt['are_sure_mark_read'] . '"', 'class' => 'you_sure', 'url' => $scripturl . '?action=markasread;sa=all;' . $context['session_var'] . '=' . $context['session_id']), |
||
| 134 | ); |
||
| 135 | |||
| 136 | // Allow mods to add additional buttons here |
||
| 137 | call_integration_hook('integrate_mark_read_button'); |
||
| 138 | |||
| 139 | if (!empty($settings['show_newsfader'])) |
||
| 140 | { |
||
| 141 | loadJavaScriptFile('slippry.min.js', array(), 'smf_jquery_slippry'); |
||
| 142 | loadCSSFile('slider.min.css', array(), 'smf_jquery_slider'); |
||
| 143 | } |
||
| 144 | } |
||
| 145 | |||
| 146 | ?> |