Ejemplo n.º 1
0
/**
* Create a profile link for the user with his own color
*/
function colorize_username($user_id, $username = '', $user_color = '', $user_active = true, $no_profile = false, $get_only_color_style = false, $from_db = false, $force_cache = false, $alt_link_url = '')
{
    global $db, $config, $lang;
    $user_id = empty($user_id) ? ANONYMOUS : $user_id;
    $is_guest = $user_id == ANONYMOUS ? true : false;
    if (!$is_guest && $from_db || !$is_guest && empty($username) && empty($user_color)) {
        // Get the user info and see if they are assigned a color_group
        $sql = user_color_sql($user_id);
        $cache_cleared = CACHE_COLORIZE && defined('IN_ADMIN') ? clear_user_color_cache($user_id) : false;
        $result = (CACHE_COLORIZE || $force_cache) && !defined('IN_ADMIN') ? $db->sql_query($sql, 0, POST_USERS_URL . '_', USERS_CACHE_FOLDER) : $db->sql_query($sql);
        $sql_row = array();
        $row = array();
        while ($sql_row = $db->sql_fetchrow($result)) {
            $row = $sql_row;
        }
        $db->sql_freeresult($result);
        $username = $row['username'];
        $user_color = $row['user_color'];
        $user_active = $row['user_active'];
    }
    $username = $user_id == ANONYMOUS || empty($username) ? $lang['Guest'] : str_replace('&', '&', htmlspecialchars($username));
    $user_link_url = !empty($alt_link_url) ? str_replace('$USER_ID', $user_id, $alt_link_url) : (defined('USER_LINK_URL_OVERRIDE') ? str_replace('$USER_ID', $user_id, USER_LINK_URL_OVERRIDE) : CMS_PAGE_PROFILE . '?mode=viewprofile&' . POST_USERS_URL . '=' . $user_id);
    $user_link_style = '';
    $user_link_begin = '<a href="' . append_sid(IP_ROOT_PATH . $user_link_url) . '"';
    $user_link_end = '>' . $username . '</a>';
    if (!$user_active || $is_guest) {
        $user_link = $user_link_begin . $user_link_style . $user_link_end;
        $user_link = $no_profile || $is_guest ? $username : $user_link;
        $user_link = $get_only_color_style ? '' : $user_link;
    } else {
        $user_color = check_valid_color($user_color);
        $user_color = $user_color != false ? $user_color : $config['active_users_color'];
        $user_link_style = ' style="font-weight: bold; text-decoration: none; color: ' . $user_color . ';"';
        if ($no_profile) {
            $user_link = '<span' . $user_link_style . '>' . $username . '</span>';
        } else {
            $user_link = $user_link_begin . $user_link_style . $user_link_end;
        }
        $user_link = $get_only_color_style ? $user_link_style : $user_link;
    }
    return $user_link;
}
Ejemplo n.º 2
0
/**
* Update user posts details
*
* @param => user_id
* @return => true on success
*/
function update_user_posts_details($user_id, $color = '', $username = '', $update_color = false, $update_username = false)
{
    global $db;
    if ($update_color || $update_username) {
        $sql = user_color_sql($user_id);
        $result = $db->sql_query($sql);
        $sql_row = array();
        $row = array();
        while ($sql_row = $db->sql_fetchrow($result)) {
            $row = $sql_row;
        }
        $db->sql_freeresult($result);
        $username = $update_username || empty($username) ? $row['username'] : $username;
        $color = $update_color ? $row['user_color'] : $color;
        $sql_topic_first_poster_set = "topic_first_poster_name = '" . $db->sql_escape($username) . "', ";
        $sql_topic_last_poster_set = "topic_last_poster_name = '" . $db->sql_escape($username) . "', ";
        $sql_forum_last_poster_set = "forum_last_poster_name = '" . $db->sql_escape($username) . "', ";
    }
    $sql = "UPDATE " . TOPICS_TABLE . " SET " . $sql_topic_first_poster_set . "topic_first_poster_color = '" . $db->sql_escape($color) . "' WHERE topic_first_poster_id = " . $user_id;
    $result = $db->sql_query($sql);
    $sql = "UPDATE " . TOPICS_TABLE . " SET " . $sql_topic_last_poster_set . "topic_last_poster_color = '" . $db->sql_escape($color) . "' WHERE topic_last_poster_id = " . $user_id;
    $result = $db->sql_query($sql);
    $sql = "UPDATE " . FORUMS_TABLE . " SET " . $sql_forum_last_poster_set . "forum_last_poster_color = '" . $db->sql_escape($color) . "' WHERE forum_last_poster_id = " . $user_id;
    $result = $db->sql_query($sql);
    return true;
}