function sgp_build_minimods()
 {
     global $phpbb_root_path, $user, $template, $db, $k_config, $config, $k_config, $phpEx;
     $block_cache_time = $k_config['block_cache_time_default'];
     $queries = $cached_queries = $i = $j = 0;
     $same_mod_count = 1;
     $stored_mod_type = $mod_type = '';
     $mod_bbcode_bitfield = '';
     $filename = '';
     $select_allow = $config['override_user_style'] ? false : true;
     $sql = "SELECT * FROM " . K_MODULES_TABLE . "\n\t\t\tWHERE mod_status > 0\n\t\t\t\tORDER BY mod_type, mod_origin DESC ";
     if (!($result1 = $db->sql_query($sql, $block_cache_time))) {
         trigger_error($user->lang['ERROR_PORTAL_MENUS'] . basename(dirname(__FILE__)) . '/' . basename(__FILE__) . ', line ' . __LINE__);
     }
     $mod = array();
     while ($row = $db->sql_fetchrow($result1)) {
         $mods[] = $row;
     }
     foreach ($mods as $mod) {
         $mod_type = $mod['mod_type'];
         switch ($mod['mod_download_count']) {
             case 0:
                 $mod['mod_download_count'] = sprintf($user->lang['DOWNLOAD_COUNT_NONE'], $mod['mod_download_count']);
                 break;
             case 1:
                 $mod['mod_download_count'] = sprintf($user->lang['DOWNLOAD_COUNT'], $mod['mod_download_count']);
                 break;
             default:
                 $mod['mod_download_count'] = sprintf($user->lang['DOWNLOAD_COUNTS'], $mod['mod_download_count']);
                 break;
         }
         if ($mod_type == $stored_mod_type) {
             $same_mod_count++;
         } else {
             $same_mod_count = 1;
         }
         $info = process_for_vars(htmlspecialchars_decode($mod['mod_details']));
         $info = acronym_pass($info);
         $mod_bbcode_bitfield = $mod_bbcode_bitfield | base64_decode($mod['mod_bbcode_bitfield']);
         // Instantiate BBCode class
         if (!isset($bbcode) && $mod_bbcode_bitfield !== '') {
             if (!class_exists('bbcode')) {
                 include $phpbb_root_path . 'includes/bbcode.' . $phpEx;
             }
             $bbcode = new bbcode(base64_encode($mod_bbcode_bitfield));
         }
         if ($mod['mod_bbcode_bitfield']) {
             $bbcode->bbcode_second_pass($info, $mod['mod_bbcode_uid'], $mod['mod_bbcode_bitfield']);
         }
         $info = bbcode_nl2br($info);
         $info = smiley_text($info);
         $filename = $phpbb_root_path . 'download/file.php?name=' . $mod['mod_filename'] . '.zip';
         // separate out our mods //
         if ($mod['mod_origin']) {
             $template->assign_block_vars('our_mod_' . $mod['mod_type'] . '_row', array('MOD_NAME' => $mod['mod_name'], 'MOD_TYPE' => $mod['mod_type'], 'MOD_ORIGIN' => $mod['mod_origin'], 'MOD_VERSION' => $mod['mod_version'], 'MOD_IMG' => $phpbb_root_path . 'images/style_thumbs/' . $mod['mod_thumb'], 'MOD_THUMB' => $phpbb_root_path . 'images/style_thumbs/thumbs/' . $mod['mod_thumb'], 'MOD_UPDATED' => $mod['mod_last_update'], 'MOD_AUTHOR' => $mod['mod_author'], 'MOD_AUTHOR_CO' => $mod['mod_author_co'], 'MOD_DETAILS' => $info, 'MOD_THIS' => $i++, 'MOD_COUNT' => $mod['mod_type'] == 'style' ? $j++ : $j, 'MOD_DOWNLOAD_COUNT' => $mod['mod_download_count'], 'MOD_STATUS' => k_progress_bar($mod['mod_status']), 'MOD_COUNT' => $same_mod_count, 'U_MOD_FILENAME' => $filename, 'U_MOD_LINK' => htmlspecialchars_decode($mod['mod_link']), 'U_MOD_SUPPORT' => htmlspecialchars_decode($mod['mod_support_link']), 'U_MOD_TEST_IT' => $mod['mod_link_id'] && $select_allow ? $phpbb_root_path . 'portal.php?style=' . $mod['mod_link_id'] : ''));
         } else {
             $template->assign_block_vars('mod_' . $mod['mod_type'] . '_row', array('MOD_NAME' => $mod['mod_name'], 'MOD_TYPE' => $mod['mod_type'], 'MOD_ORIGIN' => $mod['mod_origin'], 'MOD_VERSION' => $mod['mod_version'], 'MOD_IMG' => $phpbb_root_path . 'images/style_thumbs/' . $mod['mod_thumb'], 'MOD_THUMB' => $phpbb_root_path . 'images/style_thumbs/thumbs/' . $mod['mod_thumb'], 'MOD_UPDATED' => $mod['mod_last_update'], 'MOD_AUTHOR' => $mod['mod_author'], 'MOD_AUTHOR_CO' => $mod['mod_author_co'], 'MOD_DETAILS' => $info, 'MOD_THIS' => $i++, 'MOD_COUNT' => $mod['mod_type'] == 'style' ? $j++ : $j, 'MOD_DOWNLOAD_COUNT' => $mod['mod_download_count'], 'MOD_STATUS' => k_progress_bar($mod['mod_status']), 'MOD_COUNT' => $same_mod_count, 'U_MOD_FILENAME' => $filename, 'U_MOD_LINK' => htmlspecialchars_decode($mod['mod_link']), 'U_MOD_SUPPORT' => htmlspecialchars_decode($mod['mod_support_link']), 'U_MOD_TEST_IT' => $mod['mod_link_id'] && $select_allow ? $phpbb_root_path . 'portal.php?style=' . $mod['mod_link_id'] : ''));
         }
         $stored_mod_type = $mod['mod_type'];
     }
     $template->assign_vars(array('DOWNLOAD_IMG' => '<img src="' . $phpbb_root_path . 'images/2download-box-32.png" title="Download" alt="" />', 'TEST_IT_IMG' => '<img src="' . $phpbb_root_path . 'images/gnome-view-fullscreen-32.png" title="Check it out!" alt="" />', 'PINFO_IMG' => '<img src="' . $phpbb_root_path . 'images/information-32.png" title="Info" alt="" />'));
 }
//-- News Items are seen by everyone! Reply is restricted...
global $k_config;
$block_cache_time = $k_config['block_cache_time_default'];
$sql = 'SELECT config_name, config_value
		FROM ' . K_BLOCKS_CONFIG_VAR_TABLE . '';
$result = $db->sql_query($sql, $block_cache_time);
while ($row = $db->sql_fetchrow($result)) {
    $config[$row['config_name']] = $row['config_value'];
}
$db->sql_freeresult($result);
$number_of_news_items = $config['number_of_news_items_to_display'];
$max_news_length = $config['max_news_item_length'];
$news_forum = $config['news_forum_id'];
$allow_news = $config['allow_news'];
// Stargate Portal progress bar function + a useful function for creating text bar graph //
$template->assign_vars(array('PORTAL_PROGRESS' => k_progress_bar(95)));
// or for more use //$template->assign_block_vars('rept',array('PORTAL_PROGRESS' => progress_bar(65)));
// Fetch Posts from News Forum code borrowed from MD's IM Portal news block //
global $forum_id, $locked;
$fetch_news = phpbb_fetch_news($news_forum, $number_of_news_items, $max_news_length, 0, 0 ? 'all' : 'normal');
//$fetch_news = phpbb_fetch_news($news_forum, $number_of_news_items, $max_news_length, 0, true);
if (count($fetch_news) == 0) {
    $template->assign_block_vars('news_row', array('S_NO_TOPICS' => true, 'S_NOT_LAST' => false));
} else {
    for ($i = 0; $i < count($fetch_news); $i++) {
        if (isset($fetch_news[$i]['striped']) && $fetch_news[$i]['striped'] == true) {
            $open_bracket = '[ ';
            $close_bracket = ' ]';
            $read_full = $user->lang['READ_FULL'];
        } else {
            $open_bracket = '';
$select_theme = "<select class=\"inputbox autowidth\" onchange=\"this.form.submit();\" name=\"style\" >\n";
while ($row = $db->sql_fetchrow($result)) {
    if ($new_style) {
        $selected = $new_style == $row['style_id'] ? " selected=\"selected\"" : "";
    } else {
        $selected = $style == $row['style_id'] ? " selected=\"selected\"" : "";
    }
    $class = "\"list_release\"";
    $row['style_name'] = sgp_checksize($row['style_name'], 16);
    $select_theme .= "<option class=" . $class . " value=\"" . $row['style_id'] . "\"" . $selected . ">" . $row['style_name'] . "</option>";
}
$select_theme .= "</select>\n";
$select_theme_ok = $user->lang['WARNING_LOGIN_STYLE_SELECT'];
$s_hidden = '<input type="hidden"  id="change" name="change" value="' . $row['style_id'] . '" />';
// as $new_style will be empty for first call we need to set it to something else it will not work on first call //
if (!$new_style) {
    $new_style = $current_style;
}
switch ($style_download_count) {
    case 0:
        $style_download_count = sprintf($user->lang['DOWNLOAD_COUNT_NONE'], $style_download_count);
        break;
    case 1:
        $style_download_count = sprintf($user->lang['DOWNLOAD_COUNT'], $style_download_count);
        break;
    default:
        $style_download_count = sprintf($user->lang['DOWNLOAD_COUNTS'], $style_download_count);
        break;
}
$template->assign_vars(array('S_CH' => $select_style, 'S_MOD_ID' => $mod_id, 'S_EXTERNAL' => $mod_origin ? false : true, 'S_COPYRIGHT' => $style_copyright, 'S_SELECT_ALLOW' => $allow_style_change, 'S_SELECT_STYLE' => $select_theme, 'S_SELECT_CHANGE' => $s_hidden, 'S_SELECT_ACTION' => $s_select_action, 'S_TOTAL_STYLES' => $styles_num, 'S_CURRENT_STYLE' => $stylename, 'S_UPDATED' => $style_last_update, 'S_AUTHOR' => $style_author, 'S_AUTHOR_CO' => $style_ported_by, 'S_DETAILS' => htmlspecialchars_decode($style_details), 'S_LINK' => htmlspecialchars_decode($style_link), 'S_SUPPORT' => htmlspecialchars_decode($style_support_link), 'S_DOWNLOAD_COUNT' => $style_download_count, 'S_COMPETED' => k_progress_bar($style_status), 'S_DOWNLOAD_IMG' => '<img src="' . $phpbb_root_path . 'images/download.png" alt="" />', 'S_ANIMGIF_IMG' => '<img src="' . $phpbb_root_path . 'images/theme_thumbs.gif" style="padding-bottom:6px;" width="120" height="84" alt="" />', 'STYLE_USERS' => sprintf($user->lang['STYLE_USERS'], $style_count, $style_count == 1 ? '' : 's'), 'STYLE_SELECT_DEBUG' => sprintf($user->lang['PORTAL_DEBUG_QUERIES'], $queries ? $queries : '0', $cached_queries ? $cached_queries : '0', $total_queries ? $total_queries : '0')));