Esempio n. 1
0
 function display_legend($blockname = '', $onset = false)
 {
     global $db, $lang, $theme, $template;
     global $get;
     if (!empty($blockname) && empty($onset)) {
         return;
     }
     // initialize vars
     $legend = array('count' => 0, 'list' => array(), 'allowed' => $this->rcs_var['enable'] && $this->rcs_var['ranks_sts'] && !empty($this->id_color['legend']));
     // get user levels
     $user_levels = array(LID_ADMIN => array('id' => ADMIN, 'name' => 'Administrator', 'color' => $theme['rcs_admincolor'], 'style' => 'admincolor', 'single' => 2, 'display' => $this->rcs_var['level_adm'] || !$this->rcs_var['ranks_sts'] || !$this->rcs_var['enable']), LID_MOD => array('id' => MOD, 'name' => 'Moderator', 'color' => $theme['rcs_modcolor'], 'style' => 'modcolor', 'single' => 2, 'display' => $this->rcs_var['level_mod'] || !$this->rcs_var['ranks_sts'] || !$this->rcs_var['enable']), LID_USER => array('id' => USER, 'name' => 'User', 'color' => $theme['rcs_usercolor'], 'style' => 'usercolor', 'single' => 2, 'display' => true));
     // build legend
     $legend['list'] = !$legend['allowed'] ? $user_levels : $user_levels + $this->id_color['legend'];
     $legend['count'] = count($legend['list']);
     @ksort($legend['list']);
     // display legend
     $cnt_ranks = 0;
     foreach ($legend['list'] as $rank) {
         if (!empty($rank['display'])) {
             $var = $rank['single'] == 2 ? RCS_LEVEL_URL : (!empty($rank['single']) ? RCS_USER_URL : RCS_GROUP_URL);
             $template->assign_block_vars((empty($blockname) ? '' : $blockname . '.') . 'legend', array('RANK_NAME' => lang_item($rank['name']), 'RANK_STYLE' => $this->get_style($rank[!empty($rank['style']) ? 'style' : 'name'], $rank['color']), 'RANK_SEP' => $cnt_ranks < $legend['count'] - 1 ? ',' : '', 'U_RANK' => $get->url('userlist', array($var => $rank['id']), true)));
             $get->assign_switch((empty($blockname) ? '' : $blockname . '.') . 'legend.sep', $cnt_ranks < $legend['count'] - 1);
         }
         $cnt_ranks++;
     }
     // constants
     $template->assign_vars(array('L_LEGEND' => $lang['Legend']));
 }
Esempio n. 2
0
 function display()
 {
     global $board_config, $template, $lang;
     global $get;
     if (!empty($this->data)) {
         foreach ($this->data as $provider => $data) {
             // process author
             $template->assign_block_vars('author', array('AUTHOR' => empty($data['author']) ? $provider : $data['author'], 'AUTHOR_INFO' => lang_item($data['infos']), 'U_AUTHOR' => $data['author_url']));
             $get->assign_switch('author.info', !empty($data['infos']));
             $get->assign_switch('author.link', !empty($data['author_url']));
             // process error
             if (!empty($this->data[$provider]['errno'])) {
                 $template->assign_block_vars('author.error_msg', array('ERROR_MSG' => $this->data[$provider]['errstr'] ? sprintf($lang['version_socket_error'], $this->data[$provider]['errstr']) : $lang['version_socket_disabled']));
             }
             // dump the mods
             if (empty($this->data[$provider]['errno']) && !empty($this->data[$provider]['mods'])) {
                 foreach ($this->data[$provider]['mods'] as $mod_name => $mod_data) {
                     // get current version
                     $mod_data['current'] = $mod_data['head'] . ($board_config[$mod_name] ? $board_config[$mod_name] : (defined(strtoupper($mod_name)) ? constant(strtoupper($mod_name)) : ''));
                     $template->assign_block_vars('author.mod', array('NAME' => lang_item($mod_data['name']), 'DESC' => lang_item($mod_data['desc']), 'U_PAGE' => $mod_data['page'], 'ANNOUNCEMENT' => empty($mod_data['announcement']) ? '' : sprintf($lang['version_announcement'], $mod_data['announcement']), 'CURRENT_VERSION' => $mod_data['current'], 'LATEST_VERSION' => $mod_data['latest']));
                     $get->assign_switch('author.mod.desc', !empty($mod_data['desc']));
                     $get->assign_switch('author.mod.page', !empty($mod_data['page']));
                     $get->assign_switch('author.mod.announcement', !empty($mod_data['announcement']));
                     $get->assign_switch('author.mod.latest', !empty($mod_data['latest']));
                     // check results
                     $up_to_date = version_compare(strtolower($mod_data['current']), strtolower($mod_data['latest']), '<') ? false : true;
                     $get->assign_switch('author.mod.success', !empty($up_to_date) && !empty($mod_data['latest']));
                     $get->assign_switch('author.mod.error', empty($up_to_date) && !empty($mod_data['latest']));
                     $get->assign_switch('author.mod.unchecked', empty($mod_data['latest']));
                     if (!empty($mod_data['latest'])) {
                         $get->assign_switch('author.mod.latest.success', !empty($up_to_date));
                     }
                 }
             }
         }
     }
 }
Esempio n. 3
0
 function set_zodiac($user_zodiac, $tpl_data = array())
 {
     global $images;
     $img = isset($images[$this->zodiacs[$user_zodiac]]);
     $tpl_data = !is_array($tpl_data) ? array() : $tpl_data;
     $tpl_data = !$this->config['zodiac'] ? array() : array_merge($tpl_data, array('L_ZODIAC' => lang_item($this->zodiacs[$user_zodiac]), 'I_ZODIAC' => $img ? $images[$this->zodiacs[$user_zodiac]] : ''));
     return array('value' => $this->config['zodiac'] ? $this->zodiacs[$user_zodiac] : 0, 'tpl_data' => $tpl_data);
 }
Esempio n. 4
0
            break;
        default:
            $gender = $lang['No_gender_specify'];
            $gender_img = $lang['No_gender_specify'];
    }
} else {
    $gender = $lang['No_gender_specify'];
}
// End add - Gender MOD
//
// Generate page
//
define('IS_AJAX', !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
$gen_simple_header = TRUE;
include $phpbb_root_path . 'includes/page_header.' . $phpEx;
$template->set_filenames(array('miniprofile' => 'miniprofile_body.tpl'));
if (function_exists('get_html_translation_table')) {
    $u_search_author = urlencode(strtr($profiledata['username'], array_flip(get_html_translation_table(HTML_ENTITIES))));
} else {
    $u_search_author = urlencode(str_replace(array('&amp;', '&#039;', '&quot;', '&lt;', '&gt;'), array('&', "'", '"', '<', '>'), $profiledata['username']));
}
if (strlen($profiledata['user_occ']) > 23) {
    $profiledata['user_occ'] = '<acronym title="' . $profiledata['user_occ'] . '">' . substr($profiledata['user_occ'], 0, 20) . '...</acronym>';
}
if (strlen($profiledata['user_interests']) > 23) {
    $profiledata['user_interests'] = '<acronym title="' . $profiledata['user_interests'] . '">' . substr($profiledata['user_interests'], 0, 20) . '...</acronym>';
}
$profiledata['username'] = $rcs->get_colors($profiledata, $profiledata['username']);
$template->assign_vars(array('USERNAME' => $profiledata['username'], 'POSTER_RANK' => $poster_rank, 'RANK_IMAGE' => $rank_image, 'PM_IMG' => $pm_img, 'PM' => $pm, 'EMAIL_IMG' => $email_img, 'EMAIL' => $email, 'WWW_IMG' => $www_img, 'WWW' => $www, 'ICQ_STATUS_IMG' => $icq_status_img, 'ICQ_IMG' => $icq_img, 'ICQ' => $icq, 'AIM_IMG' => $aim_img, 'AIM' => $aim, 'MSN_IMG' => $msn_img, 'MSN' => $msn, 'YIM_IMG' => $yim_img, 'YIM' => $yim, 'AVATAR_IMG' => $avatar_img, 'PROFILE_IMG' => $profile_img, 'PROFILE' => $profile, 'LOCATION' => $profiledata['user_from'] ? $profiledata['user_from'] : '', 'OCCUPATION' => $profiledata['user_occ'] ? $profiledata['user_occ'] : '', 'INTERESTS' => $profiledata['user_interests'] ? $profiledata['user_interests'] : '', 'GENDER' => $gender, 'GENDER_IMG' => $gender_img, 'L_GENDER' => $lang['Gender'], 'L_CLOSE_WINDOW' => "<a href='javascript:window.close();'>" . $lang['Close_window'] . "</a>", 'L_VIEWING_MINI_PROFILE' => sprintf($lang['Viewing_user_mini_profile'], $profiledata['username']), 'L_AVATAR' => $lang['Avatar'], 'L_POSTER_RANK' => $lang['Poster_rank'], 'L_SEARCH_USER_POSTS' => sprintf($lang['Search_user_posts'], $profiledata['username']), 'L_CONTACT' => $lang['Contact'], 'L_EMAIL_ADDRESS' => $lang['Email_address'], 'L_EMAIL' => $lang['Email'], 'L_PM' => $lang['Private_Message'], 'L_ICQ_NUMBER' => $lang['ICQ'], 'L_YAHOO' => $lang['YIM'], 'L_AIM' => $lang['AIM'], 'L_MESSENGER' => $lang['MSNM'], 'L_WEBSITE' => $lang['Website'], 'L_BIRTHDAY' => $lang['Birthday'], 'L_OCCUPATION' => $lang['Occupation'], 'L_INTERESTS' => $lang['Interests'], 'U_SEARCH_USER' => append_sid("search.{$phpEx}?search_author=" . $u_search_author), 'USER_BIRTHDATE' => empty($birthdays) ? '' : $birthdays['birthday'], 'USER_AGE' => empty($birthdays) ? '' : $birthdays['age'], 'L_USER_ZODIAC' => empty($birthdays) ? '' : lang_item($birthdays['zodiac']), 'I_USER_ZODIAC' => empty($birthdays) ? '' : $images[$birthdays['zodiac']], 'IS_AJAX' => IS_AJAX));
$template->pparse('miniprofile');
// no footer §
Esempio n. 5
0
 function display()
 {
     global $template, $images;
     global $get;
     $count_nav = count($this->nav);
     for ($i = 0; $i < $count_nav; $i++) {
         $template->assign_block_vars('nav', array('U_NAV' => $get->url($this->nav[$i]['url'], $this->nav[$i]['parms'], true), 'L_NAV' => lang_item($this->nav[$i]['name']), 'L_NAV_DESC' => lang_item($this->nav[$i]['desc']), 'I_NAV' => !isset($images[$this->nav[$i]['img']]) ? '' : $this->root . $images[$this->nav[$i]['img']]));
         $get->assign_switch('nav.img', !empty($this->nav[$i]['img']) && isset($images[$this->nav[$i]['img']]));
         $get->assign_switch('nav.sep', $i < $count_nav - 1);
     }
     if (!empty($count_nav)) {
         $template->set_filenames(array('navigation_box' => 'navigation_box.tpl'));
         $template->assign_var_from_handle('NAVIGATION_BOX', 'navigation_box');
     }
 }
Esempio n. 6
0
function forum_combo($forum_id)
{
    global $db, $lang, $board_config;
    $sql = 'SELECT f.forum_id, f.forum_name
		FROM ' . FORUMS_TABLE . ' f, ' . CATEGORIES_TABLE . ' c
		WHERE c.cat_id = f.cat_id ORDER BY c.cat_order ASC, f.forum_order ASC';
    if (!($result = $db->sql_query($sql))) {
        message_die(GENERAL_ERROR, 'Couldn\'t obtain forum list', '', __LINE__, __FILE__, $sql);
    }
    $row = $db->sql_fetchrowset($result);
    $db->sql_freeresult($result);
    $forums_list = '<select name="' . $forum_id . '"><option value="0">' . $lang['Select_forum'] . '</option>';
    for ($i = 0; $i < count($row); $i++) {
        $selected = $row[$i]['forum_id'] == $board_config[$forum_id] ? ' selected="selected"' : '';
        $forums_list .= '<option value="' . $row[$i]['forum_id'] . '" ' . $selected . '>' . lang_item($row[$i]['forum_name']) . '</option>';
    }
    $forums_list .= '</select>';
    return $forums_list;
}
Esempio n. 7
0
    function action()
    {
        global $db, $template, $lang, $images;
        global $common, $rcs, $get;
        if ($this->mode == 'edit' || $this->mode == 'add') {
            if ($this->mode == 'edit') {
                if (!isset($this->data[$this->rcs_id]['id'])) {
                    // send achievement message
                    $this->_achievement('rcs_not_exists');
                }
                // get this rank data
                $rank = $this->data[$this->rcs_id];
                // hidden fields
                _hide_build(array('id' => $this->rcs_id, 'rcs_tmp_name' => $rank['name'], 'rcs_tmp_color' => $rank['color'], 'rcs_tmp_order' => $rank['order'], 'rcs_tmp_single' => $rank['single'], 'rcs_tmp_display' => $rank['display']));
                $style = $rcs->get_style($rank['name'], $rank['color']);
                $template->assign_block_vars('edit', array('L_RCS_EDIT_TITLE' => sprintf($lang['rcs_edit_title'], $style, lang_item($rank['name'])), 'L_RCS_EDIT_TITLE_DESC' => $lang['rcs_edit_title_desc']));
            } else {
                // get the last rank
                $last_idx = count($this->data);
                $keys = array_values($this->data);
                $last_rank = $keys[intval($last_idx - 1)];
                // set last rank data
                $rank['name'] = $rank['color'] = '';
                $rank['single'] = $rank['display'] = 0;
                // hidden fields
                _hide_build(array('rcs_tmp_order' => $last_rank['order']));
                $template->assign_block_vars('add', array('L_RCS_ADD_TITLE' => $lang['rcs_add_title'], 'L_RCS_ADD_TITLE_DESC' => $lang['rcs_add_title_desc']));
            }
            $rcs_is_single = $rank['single'] ? ' checked="checked"' : '';
            $rcs_is_not_single = !$rank['single'] ? ' checked="checked"' : '';
            $rcs_is_display = $rank['display'] ? ' checked="checked"' : '';
            $rcs_is_not_display = !$rank['display'] ? ' checked="checked"' : '';
            // build list order
            $after = 0;
            $items = array();
            $list_move_after = array(0 => 'Top');
            if (!empty($this->data)) {
                $keys = array_keys($this->data);
                $tkeys = array_flip($keys);
                $after = intval($keys[$tkeys[$this->rcs_id] - 1]);
                unset($tkeys);
                foreach ($this->data as $rank_id => $rank_data) {
                    if ($rank_id != $this->rcs_id) {
                        $list_move_after[$rank_id] = $rank_data['name'];
                    }
                }
            }
            if (!empty($list_move_after)) {
                foreach ($list_move_after as $val => $desc) {
                    $items[] = array('name' => lang_item($desc), 'value' => $this->data[$val]['order'], 'style' => !empty($val) ? $rcs->get_style($desc, $this->data[$val]['color']) : '', 'selected' => $val == $after);
                }
                $rcs_list_order = array('name' => 'rcs_order', 'items' => $items);
                $rcs->constructor($rcs_list_order, 'LIST_ORDER');
                unset($items);
            }
            // hidden fields
            _hide_send();
            // display
            $template->assign_vars(array('RCS_NAME' => $rank['name'], 'RCS_COLOR' => $rank['color'], 'RCS_SINGLE' => $rcs_is_single, 'RCS_NOT_SINGLE' => $rcs_is_not_single, 'RCS_DISPLAY' => $rcs_is_display, 'RCS_NOT_DISPLAY' => $rcs_is_not_display, 'L_RCS_NAME' => $lang['rcs_name'], 'L_RCS_NAME_DESC' => $lang['rcs_name_desc'], 'L_RCS_COLOR' => $lang['rcs_color'], 'L_RCS_COLOR_DESC' => $lang['rcs_color_desc'], 'L_RCS_SINGLE' => $lang['rcs_single'], 'L_RCS_SINGLE_DESC' => $lang['rcs_single_desc'], 'L_RCS_DISPLAY' => $lang['rcs_display'], 'L_RCS_DISPLAY_DESC' => $lang['rcs_display_desc'], 'L_RCS_MOVE_AFTER' => $lang['rcs_move_after'], 'L_PICK_COLOR' => $lang['rcs_pick_color'], 'L_SUBMIT' => $lang['Submit'], 'L_CANCEL' => $lang['Cancel'], 'L_YES' => $lang['Yes'], 'L_NO' => $lang['No'], 'I_SUBMIT' => $this->root . $images['cmd_submit'], 'I_CANCEL' => $this->root . $images['cmd_cancel'], 'S_RCS_ACTION' => $get->url($this->requester, '', true)));
            // send to template
            $template->set_filenames(array('body' => 'admin/rcs_edit_body.tpl'));
        } else {
            if ($this->mode == 'save') {
                $rcs_name = request_var('rcs_name', TYPE_NO_HTML);
                $rcs_color = request_var('rcs_color', TYPE_NO_HTML);
                $rcs_single = request_var('rcs_single', TYPE_INT);
                $rcs_display = request_var('rcs_display', TYPE_INT);
                $rcs_tmp_name = request_var('rcs_tmp_name', TYPE_NO_HTML);
                $rcs_tmp_color = request_var('rcs_tmp_color', TYPE_NO_HTML);
                $rcs_tmp_single = request_var('rcs_tmp_single', TYPE_INT);
                $rcs_tmp_display = request_var('rcs_tmp_display', TYPE_INT);
                $rcs_tmp_order = request_var('rcs_tmp_order', TYPE_INT);
                $rcs_order = request_var('rcs_order', TYPE_INT);
                $rcs_order = $rcs_order + 10 == $rcs_tmp_order ? $rcs_tmp_order : $rcs_order + 5;
                if ($rcs_name == '' || !preg_match('/^[a-z0-9_-]*$/i', $rcs_name) && empty($rcs_color)) {
                    // send achievement message
                    $this->_achievement('rcs_must_fill');
                }
                // prepare data
                $rcs_name = $common->sql_type_cast($rcs_name, true);
                $rcs_color = !preg_match('/^[0-9a-f]{6}$/i', $rcs_color) ? '' : $rcs_color;
                $rcs_single = $common->sql_type_cast($rcs_single);
                $rcs_display = $common->sql_type_cast($rcs_display);
                $rcs_order = $common->sql_type_cast($rcs_order);
                if (!empty($this->rcs_id)) {
                    $sql = 'UPDATE ' . RCS_TABLE . '
					SET rcs_name = ' . $rcs_name . ', rcs_color = \'' . $rcs_color . '\', rcs_single = ' . $rcs_single . ', rcs_display = ' . $rcs_display . ', rcs_order = ' . $rcs_order . '
					WHERE rcs_id = ' . $this->rcs_id;
                    $l_key = 'rcs_updated';
                } else {
                    $rcs_new_order = $rcs_order - 5;
                    $rcs_order = $rcs_tmp_order == $rcs_new_order ? $rcs_order + 5 : $rcs_order;
                    $sql = 'INSERT INTO ' . RCS_TABLE . ' (rcs_name, rcs_color, rcs_single, rcs_display, rcs_order)
					VALUES (' . $rcs_name . ', \'' . $rcs_color . '\', ' . $rcs_single . ', ' . $rcs_display . ', ' . $rcs_order . ')';
                    $rcs_order = $rcs_tmp_order == $rcs_new_order ? $rcs_tmp_order : $rcs_order;
                    $l_key = 'rcs_added';
                }
                if (!$db->sql_query($sql)) {
                    message_die(GENERAL_ERROR, 'Could not update/insert into rank color system table', '', __LINE__, __FILE__, $sql);
                }
                // renum order
                if ($rcs_order != $rcs_tmp_order) {
                    $this->_renum_order();
                }
                // update colors if individual value has changed
                if ($rcs_single != $rcs_tmp_single && !empty($this->rcs_id)) {
                    // users/groups to update
                    $list_ids = array();
                    $sql = 'SELECT group_id
					FROM ' . GROUPS_TABLE . '
					WHERE group_color = ' . $this->rcs_id;
                    if (!empty($rcs_tmp_single)) {
                        $patterns = array('group_id', GROUPS_TABLE, 'group_color');
                        $replacements = array('user_id', USERS_TABLE, 'user_color');
                        $sql = str_replace($patterns, $replacements, $sql);
                    }
                    if (!($result = $db->sql_query($sql))) {
                        message_die(GENERAL_ERROR, 'Error getting group/user information', '', __LINE__, __FILE__, $sql);
                    }
                    while ($row = $db->sql_fetchrow($result)) {
                        $row_id = !empty($rcs_tmp_single) ? $row['user_id'] : $row['group_id'];
                        if (!empty($row_id)) {
                            $list_ids[intval($row_id)] = true;
                        }
                    }
                    $db->sql_freeresult($result);
                    // delete users/groups color
                    if (!empty($list_ids)) {
                        $result_ids = implode(', ', array_keys($list_ids));
                        $rcs->update_colors($result_ids, $rcs_tmp_single, 0);
                    }
                }
                // re-cache ranks color variables, if necessary
                $has_modified = $rcs_tmp_name != $rcs_name || $rcs_tmp_color != $rcs_color || $rcs_tmp_single != $rcs_single || $rcs_tmp_display != $rcs_display;
                if ($has_modified) {
                    $rcs->obtain_ids_colors(true);
                }
                // send achievement message
                $this->_achievement($l_key);
            } else {
                if ($this->mode == 'delete') {
                    if (!isset($this->data[$this->rcs_id]['id'])) {
                        // send achievement message
                        $this->_achievement('rcs_not_exists');
                    }
                    $confirm = request_var('confirm', TYPE_NO_HTML);
                    if (!empty($confirm)) {
                        $sql = 'DELETE FROM ' . RCS_TABLE . '
					WHERE rcs_id = ' . $this->rcs_id;
                        if (!$db->sql_query($sql)) {
                            message_die(GENERAL_ERROR, 'Could not delete rank color', '', __LINE__, __FILE__, $sql);
                        }
                        // renum order
                        $this->_renum_order();
                        // users/groups to update
                        $list_ids = array();
                        $rcs_tmp_single = $this->data[$this->rcs_id]['single'];
                        $sql = 'SELECT group_id
					FROM ' . GROUPS_TABLE . '
					WHERE group_color = ' . $this->rcs_id;
                        if (!empty($rcs_tmp_single)) {
                            $patterns = array('group_id', GROUPS_TABLE, 'group_color');
                            $replacements = array('user_id', USERS_TABLE, 'user_color');
                            $sql = str_replace($patterns, $replacements, $sql);
                        }
                        if (!($result = $db->sql_query($sql))) {
                            message_die(GENERAL_ERROR, 'Error getting group/user information', '', __LINE__, __FILE__, $sql);
                        }
                        while ($row = $db->sql_fetchrow($result)) {
                            $row_id = !empty($rcs_tmp_single) ? $row['user_id'] : $row['group_id'];
                            if (!empty($row_id)) {
                                $list_ids[intval($row_id)] = true;
                            }
                        }
                        $db->sql_freeresult($result);
                        // delete users/groups color
                        if (!empty($list_ids)) {
                            $result_ids = implode(', ', array_keys($list_ids));
                            $rcs->update_colors($result_ids, $rcs_tmp_single, false, true);
                        }
                        // re-cache ranks color variables
                        $rcs->obtain_ids_colors(true);
                        // send achievement message
                        $this->_achievement('rcs_removed');
                    } else {
                        // hidden fields
                        _hide_build(array('mode' => 'delete', 'id' => $this->rcs_id));
                        _hide_send();
                        $template->assign_vars(array('MESSAGE_TITLE' => $lang['Confirm'], 'MESSAGE_TEXT' => $lang['rcs_confirm_delete'], 'L_YES' => $lang['Yes'], 'L_NO' => $lang['No'], 'S_CONFIRM_ACTION' => $get->url($this->requester, '', true)));
                        // send to template
                        $template->set_filenames(array('body' => 'admin/confirm_body.tpl'));
                    }
                }
            }
        }
    }
Esempio n. 8
0
                    $db->sql_freeresult($result);
                    $message = $lang['Attribute_Order_Updated'] . '<br /><br />' . sprintf($lang['Click_Return_Attributes_Management'], '<a href="' . $get->url($requester, '', true) . '">', '</a>') . '<br /><br />' . sprintf($lang['Click_return_admin_index'], '<a href="' . $get->url('admin/index', array('pane' => 'right'), true) . '">', '</a>');
                    message_die(GENERAL_MESSAGE, $message);
                }
            }
        }
    }
} else {
    /**
     * Show the default page
     */
    $template->set_filenames(array('body' => 'admin/title_list_body.tpl'));
    $sql = 'SELECT * FROM ' . ATTRIBUTES_TABLE . ' ORDER BY attribute_order ASC';
    if (!($result = $db->sql_query($sql))) {
        message_die(GENERAL_ERROR, $lang['Attr_Error_Message_09'], '', __LINE__, __FILE__, $sql);
    }
    $row = $db->sql_fetchrowset($result);
    $row_count = count($row);
    for ($i = 0; $i < $row_count; $i++) {
        $permissions = $row[$i]['attribute_administrator'] ? $lang['Administrator'] . '<br />' : '';
        $permissions .= $row[$i]['attribute_moderator'] ? $lang['Moderator'] . '<br />' : '';
        $permissions .= $row[$i]['attribute_author'] ? $lang['Author'] : '';
        $color = trim($row[$i]['attribute_color']);
        $text = lang_item($row[$i]['attribute']);
        $image = '<img src="' . $phpbb_root_path . image_item($row[$i]['attribute_image']) . '" alt="' . $text . '" title="' . $text . '" />';
        $template->assign_block_vars('attribute', array('ROW_CLASS' => !($i % 2) ? $theme['td_class1'] : $theme['td_class2'], 'ATTRIBUTE' => !$row[$i]['attribute_type'] ? '<span ' . get_color($row[$i]['attribute'], $color) . '>' . $text . '</span>' : $image, 'COLOR' => $row[$i]['attribute_color'] ? '<span ' . get_color($row[$i]['attribute'], $color) . '>' . $color . '</span>' : $lang['Attribute_None'], 'PERMISSIONS' => $permissions, 'DATE_FORMAT' => $row[$i]['attribute_date_format'] ? $row[$i]['attribute_date_format'] : $lang['Attribute_None'], 'POSITION' => !$row[$i]['attribute_position'] ? $lang['Left'] : $lang['Right'], 'U_MOVEUP' => $get->url($requester, array('mode' => 'moveup', 'id' => $row[$i]['attribute_id']), true), 'U_MOVEDW' => $get->url($requester, array('mode' => 'movedw', 'id' => $row[$i]['attribute_id']), true), 'U_EDIT' => $get->url($requester, array('mode' => 'edit', 'id' => $row[$i]['attribute_id']), true), 'U_DELETE' => $get->url($requester, array('mode' => 'delete', 'id' => $row[$i]['attribute_id']), true)));
    }
    $template->assign_vars(array('L_TITLE' => $lang['Attributes_System'], 'L_TITLE_EXPLAIN' => $lang['Attributes_System_Explain'], 'L_ATTRIBUTE' => $lang['Attribute'], 'L_COLOR' => $lang['Attribute_Color'], 'L_PERMISSIONS' => $lang['Attribute_Permissions'], 'L_DATE_FORMAT' => $lang['Date_format'], 'L_POSITION' => $lang['Attribute_Position'], 'L_MOVEUP' => $lang['Move_up'], 'L_MOVEDW' => $lang['Move_down'], 'L_CREATE' => $lang['Create_new'], 'L_ACTION' => $lang['Action'], 'I_MOVEUP' => $phpbb_root_path . $images['cmd_up_arrow'], 'I_MOVEDW' => $phpbb_root_path . $images['cmd_down_arrow'], 'I_DELETE' => $phpbb_root_path . $images['cmd_delete'], 'I_EDIT' => $phpbb_root_path . $images['cmd_edit'], 'I_CREATE' => $phpbb_root_path . $images['cmd_create'], 'U_CREATE' => $get->url($requester, array('mode' => 'add'), true), 'S_ATTR_ACTION' => $get->url($requester)));
}
$template->pparse('body');
include $get->url('admin/page_footer_admin');