Seite 1 von 1

NO_PM + Staffliste von AWSW

Verfasst: 11.01.2004 19:53
von Firestarter
Also ich hab mal etwas an der Staffliste herumgespielt, um den Hack NO_PM dort mit einzubauen, doch leider hab ich es nicht geschafft, das die Abfrage bzgl. Usereinstellung noch net richtig stimmt.
So werden immer nur die Buttons von NO_PM dargestellt.

Wo ist mein Fehler versteckt, ich sehe nur Buchstaben.

Code: Alles auswählen

<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

$userdata = session_pagestart($user_ip, PAGE_STAFF, $session_length);
init_userprefs($userdata);

include_once($phpbb_root_path.'includes/functions_color_groups.'.$phpEx);
color_groups_setup_list();
$page_title = $lang['Staff'];
include('includes/page_header.'.$phpEx);

        $template->set_filenames(array(
                'body' => 'staff_body.tpl')
        );

// forums
// $sql = "SELECT ug.user_id, f.forum_id, f.forum_name
//           FROM " . FORUMS_TABLE . " f, " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug
//           LEFT JOIN  " . USER_GROUP_TABLE . " ug2  ON ug2.user_id = " . $userdata['user_id'] . "
//           LEFT JOIN  " . AUTH_ACCESS_TABLE . " aa2 ON aa2.group_id = ug2.group_id AND aa2.auth_view = " . TRUE . "
//           WHERE aa.auth_mod = " . TRUE . "
//                      AND ug.group_id = aa.group_id
//                      AND f.forum_id = aa.forum_id
//                      AND ( f.auth_view <= '.$auth.'
//                      OR aa2.auth_view = " . TRUE . ")
//           GROUP BY ug.user_id, ug2.user_id
//           ORDER BY ug.user_id";
$sql = "SELECT ug.user_id, f.forum_id, f.forum_name
           FROM ".AUTH_ACCESS_TABLE." aa, ".USER_GROUP_TABLE." ug, ".FORUMS_TABLE." f
           WHERE aa.auth_mod = " . TRUE . "
                      AND ug.group_id = aa.group_id
                      AND f.forum_id = aa.forum_id";
if ( !$result = $db->sql_query($sql) )
{
        message_die(GENERAL_ERROR, 'Could not query forums.', '', __LINE__, __FILE__, $sql);
}
while( $row = $db->sql_fetchrow($result) )
{
        $forum_id = $row['forum_id'];
        $staff2[$row['user_id']][$row['forum_id']] = 'ø <a href='.append_sid("viewforum.$phpEx?f=$forum_id").' class=genmed>'.$row['forum_name'].'</a><br />';
}

//main
$sql = "SELECT * FROM ".USERS_TABLE."
           WHERE user_level >= 1
           ORDER BY user_level = 2, user_level = 3";
if ( !($results = $db->sql_query($sql)) )
{
        message_die(GENERAL_ERROR, 'Could not obtain user information.', '', __LINE__, __FILE__, $sql);
}
while($staff = $db->sql_fetchrow($results))
{
        if ( $staff['user_avatar'] )
        {
                switch( $staff['user_avatar_type'] )
                {
                        case USER_AVATAR_UPLOAD:
		         	$avatar = ( $board_config['allow_avatar_upload'] ) ? '<img src="' . $board_config['avatar_path'] . '/' . $staff['user_avatar'] . '" border="0" />' : '';
			break;
                        case USER_AVATAR_REMOTE:
			$avatar = ( $board_config['allow_avatar_remote'] ) ? '<img src="' . $staff['user_avatar'] . '" width="60" height="40" alt="" border="0" />' : '';
			break;
                        case USER_AVATAR_GALLERY:
			$avatar = ( $board_config['allow_avatar_local'] ) ? '<img src="' . $board_config['avatar_gallery_path'] . '/' . $staff['user_avatar'] . '" alt="" border="0" />' : '';
			break;
                }
        }
        else
        {
                $avatar = '';
        }

        $level = ( $staff['user_level'] == 1 ) ? '<b style="color:#' . $theme['fontcolor3'] . '">'.$lang['Admin'].'</b>' : '';
        $level .= ( $staff['user_level'] == 9 ) ? '<b style="color:#' . $theme['fontcolor1'] . '">'.$lang['Junior'].'</b>' : '';
        $level .= ( $staff['user_level'] == 3 ) ? '<b style="color:#' . $theme['fontcolor1'] . '">'.$lang['Super'].'</b>' : '';
        $level .= ( $staff['user_level'] == 2 ) ? '<b style="color:#' . $theme['fontcolor2'] . '">'.$lang['Mod'].'</b>' : '';

        $forums = '';
        if ( !empty($staff2[$staff['user_id']]) )
        {
                asort($staff2[$staff['user_id']]);
                $forums = implode(' ',$staff2[$staff['user_id']]);
        }

        $memberdays = max(1, round( ( time() - $staff['user_regdate'] ) / 86400 ));
        $posts_per_day = $staff['user_posts'] / $memberdays;
        if ( $staff['user_posts'] != 0 )
        {
                $total_posts = get_db_stat('postcount');
                $percentage = ( $total_posts ) ? min(100, ($staff['user_posts'] / $total_posts) * 100) : 0;
        }
        else
        {
                $percentage = 0;
        }
        $user_id = $staff['user_id'];
        $sql = "SELECT post_time, post_id FROM ".POSTS_TABLE." WHERE poster_id = " . $user_id . " ORDER BY post_time DESC LIMIT 1";
        if ( !($result = $db->sql_query($sql)) )
        {
                message_die(GENERAL_ERROR, 'Error getting user last post time', '', __LINE__, __FILE__, $post_time_sql);
        }
        $row = $db->sql_fetchrow($result);
        $last_post = ( isset($row['post_time']) ) ? '<a href="'.append_sid("viewtopic.$phpEx?" . POST_POST_URL . "=$row[post_id]#$row[post_id]").'" class=gensmall>'.create_date($board_config['default_dateformat'], $row['post_time'], $board_config['board_timezone']).'</a>' : $lang['None'];

        $mailto = ( $board_config['board_email_form'] ) ? append_sid("profile.$phpEx?mode=email&" . POST_USERS_URL .'=' . $staff['user_id']) : 'mailto:' . $staff['user_email'];
        $mail = ( $staff['user_email'] ) ? '<a href="' . $mailto . '"><img src="' . $images['icon_email'] . '" alt="' . $lang['Send_email'] . '" title="' . $lang['Send_email'] . '" border="0" /></a>' : '';

        $pmto = append_sid("privmsg.$phpEx?mode=post&" . POST_USERS_URL . "=$staff[user_id]");
        $pm = '<a href="' . $pmto . '"><img src="' . $images['icon_pm'] . '" alt="' . $lang['Send_private_message'] . '" title="' . $lang['Send_private_message'] . '" border="0" /></a>';
        
        if( $row['user_no_pm'] == 1 )
   {
      $pmto = append_sid("privmsg.$phpEx?mode=post&" . POST_USERS_URL . "=$staff[user_id]");
      $pm_img = '<a href="' . $pmto . '"><img src="' . $images['icon_pm'] . '" alt="' . $lang['Send_private_message'] . '" title="' . $lang['Send_private_message'] . '" border="0" /></a>';
      $pm = '<a href="' . $pmto . '">' . $lang['Send_private_message'] . '</a>';
   }
   else
   {
      $pm_img = '<img src="'.$images['icon_no_pm'].'" alt="'.$lang['Dont_want_pm'].'" title="'.$lang['Dont_want_pm'].'" />';
      $pm = $lang['Dont_want_pm'];
   } 

        $msn = ( $staff['user_msnm'] ) ? '<a href="mailto: '.$staff['user_msnm'].'"><img src="' . $images['icon_msnm'] . '" alt="' . $lang['MSNM'] . '" title="' . $lang['MSNM'] . '" border="0" /></a>' : '';
        $yim = ( $staff['user_yim'] ) ? '<a href="http://edit.yahoo.com/config/send_webmesg?.target=' . $staff['user_yim'] . '&.src=pg"><img src="' . $images['icon_yim'] . '" alt="' . $lang['YIM'] . '" title="' . $lang['YIM'] . '" border="0" /></a>' : '';
        $aim = ( $staff['user_aim'] ) ? '<a href="aim:goim?screenname=' . $staff['user_aim'] . '&message=Hello+Are+you+there?"><img src="' . $images['icon_aim'] . '" alt="' . $lang['AIM'] . '" title="' . $lang['AIM'] . '" border="0" /></a>' : '';
        $icq = ( $staff['user_icq'] ) ? '<a href="http://wwp.icq.com/scripts/contact.dll?msgto=' . $staff['user_icq'] . '"><img src="' . $images['icon_icq'] . '" alt="' . $lang['ICQ'] . '" title="' . $lang['ICQ'] . '" border="0" /></a>' : '';

        $www = ( $staff['user_website'] ) ? '<a href="' . $staff['user_website'] . '" target="_userwww"><img src="' . $images['icon_www'] . '" alt="' . $lang['Visit_website'] . '" title="' . $lang['Visit_website'] . '" border="0" /></a>' : '';

        $sql = "SELECT * FROM " . RANKS_TABLE . " ORDER BY rank_special, rank_min";
        if ( !($result = $db->sql_query($sql)) )
        {
        	message_die(GENERAL_ERROR, "Could not obtain ranks information.", '', __LINE__, __FILE__, $sql);
        }
        $ranksrow = array();
        while ( $row = $db->sql_fetchrow($result) )
        {
                $ranksrow[] = $row;
        }
        $db->sql_freeresult($result);

        $rank = '';
        $rank_image = '';
        if ( $staff['user_rank'] )
        {
                for($j = 0; $j < count($ranksrow); $j++)
                {
                        if ( $staff['user_rank'] == $ranksrow[$j]['rank_id'] && $ranksrow[$j]['rank_special'] )
                        {
                                $rank = $ranksrow[$j]['rank_title'];
                                $rank_image = ( $ranksrow[$j]['rank_image'] ) ? '<img src="' . $ranksrow[$j]['rank_image'] . '" alt="' . $rank . '" title="' . $rank . '" border="0" /><br />' : '';
                        }
                }
        }
        else
        {
                for($j = 0; $j < count($ranksrow); $j++)
                {
                        if ( $staff['user_posts'] >= $ranksrow[$j]['rank_min'] && !$ranksrow[$j]['rank_special'] )
                        {
                                $rank = $ranksrow[$j]['rank_title'];
                                $rank_image = ( $ranksrow[$j]['rank_image'] ) ? '<img src="' . $ranksrow[$j]['rank_image'] . '" alt="' . $rank . '" title="' . $rank . '" border="0" /><br />' : '';
                        }
                }
        }

        $template->assign_block_vars('staff', array(
                'AVATAR' => $avatar,
                'RANK' => $rank,
                'RANK_IMAGE' => $rank_image,
                'U_NAME' => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$staff[user_id]"),
                'NAME' => color_group_colorize_name($staff['user_id']),
                'LEVEL' => $level,
                'FORUMS' => $forums,
                'JOINED' => create_date($board_config['default_dateformat'], $staff['user_regdate'], $board_config['board_timezone']),
                'PERIOD' => sprintf($lang['Period'], $memberdays),
                'POSTS' => $staff['user_posts'],
                'POST_DAY' => sprintf($lang['User_post_day_stats'], $posts_per_day),
                'POST_PERCENT' => sprintf($lang['User_post_pct_stats'], $percentage),
                'LAST_POST' => $last_post,
                'MAIL' => $mail,
                'PM' => $pm_img,
                'MSN' => $msn,
                'YIM' => $yim,
                'AIM' => $aim,
                'ICQ' => $icq,
                'WWW' => $www)
        );
}
        $template->assign_vars(array(
                'L_AVATAR' => $lang['Avatar'],
                'L_USERNAME' => $lang['Username'],
                'L_FORUMS' => $lang['Forums'],
                'L_POSTS' => $lang['Posts'],
                'L_JOINED' => $lang['Joined'],
                'L_EMAIL' => $lang['Email'],
                'L_PM' => $lang['Private_Message'],
                'L_MESSENGER' => $lang['Messenger'],
                'L_WWW' => $lang['Website'])
        );

        $template->pparse('body');

include('includes/page_tail.'.$phpEx);
?>
Ich entschuldige mich für die Darstellung, doch ich bin zur Zeit auf der Arbeit und meine FTPzugangsdaten nicht dabei. THX für das Verständnis.

Verfasst: 12.01.2004 12:38
von Acid

Code: Alles auswählen

        $pmto = append_sid("privmsg.$phpEx?mode=post&" . POST_USERS_URL . "=$staff[user_id]");
        $pm = '<a href="' . $pmto . '"><img src="' . $images['icon_pm'] . '" alt="' . $lang['Send_private_message'] . '" title="' . $lang['Send_private_message'] . '" border="0" /></a>';
       
        if( $row['user_no_pm'] == 1 )
   {
      $pmto = append_sid("privmsg.$phpEx?mode=post&" . POST_USERS_URL . "=$staff[user_id]");
      $pm_img = '<a href="' . $pmto . '"><img src="' . $images['icon_pm'] . '" alt="' . $lang['Send_private_message'] . '" title="' . $lang['Send_private_message'] . '" border="0" /></a>';
      $pm = '<a href="' . $pmto . '">' . $lang['Send_private_message'] . '</a>';
   }
   else
   {
      $pm_img = '<img src="'.$images['icon_no_pm'].'" alt="'.$lang['Dont_want_pm'].'" title="'.$lang['Dont_want_pm'].'" />';
      $pm = $lang['Dont_want_pm'];
   } 
..ersetze das mal mit..

Code: Alles auswählen

        if( $staff['user_no_pm'] == '1' )
        {
                $pmto = append_sid("privmsg.$phpEx?mode=post&" . POST_USERS_URL . "=$staff[user_id]");
                $pm_img = '<a href="' . $pmto . '"><img src="' . $images['icon_pm'] . '" alt="' . $lang['Send_private_message'] . '" title="' . $lang['Send_private_message'] . '" border="0" /></a>';
        }
        else
        {
                $pm_img = '<img src="'.$images['icon_no_pm'].'" alt="'.$lang['Dont_want_pm'].'" title="'.$lang['Dont_want_pm'].'" />';
        } 

Verfasst: 12.01.2004 13:16
von Firestarter
super, danke dir acid. Ich hab damal eine Frage noch dazu (Staffliste).
Kann man die Staffliste so umschreiben, das ein User nur die moderierten Foren von einem Moderator sieht, die aufgrund der Befugnisse des Betrachters auch im Forum zu sehen würden.

z.b. Gäste sehen nur die Moderatoren und ihre moderierten Foren aus dem öffentlichen Teil.
Mir geht es speziell um die Foren, die in der Forenbefugnisse den Status "versteckt". ich meine man richtet ja ein solches Forum nicht ohne Grund ein.

AWSW (als Autor) und Acid (als Gott der Hilfe) habt ihr vielleicht eine Idee für die Umsetzung ?

THX

Firestarter

Verfasst: 12.01.2004 13:40
von Acid
Die Frage hattest du ja mal bereits in einem anderen Thema gestellt und ich postete daraufhin eine Frage, die noch unbeantwortet ist. :wink:

Anyway.. schau dir mal die 220er Version der Staff Site an (s. DB). Der Code für die Foren sollte auch im Portal-Staff-Dingens funktionieren.

Verfasst: 12.01.2004 14:19
von Firestarter
*setzt sich die Eselmütze auf und stellt sich in die Ecke * peinlich, also ran ans Updaten der Staffliste *wird rot* das ist so peinlich *heul*