<?php
function getTheme( &$pageTitle )
{
if ( !isset( $_GET['idForum'] ) ) {
header( 'Location: '.$_SERVER['PHP_SELF'] );
die();
}
if ( !isset( $_GET['id_theme'] ) ) {
header( 'Location: '.$_SERVER['PHP_SELF'] );
die();
}
$id_theme = (int)$_GET['id_theme'];
if ( $id_theme < 1 ) {
header( 'Location: '.$_SERVER['PHP_SELF'] );
die();
}
$query = "SELECT name, locked FROM ".TABLE_THEMES." WHERE id_theme=".$id_theme;
$res = mysql_query( $query );
if ( !$res ) {
$msg = 'Ошибка при получении списка сообщений темы';
$err = 'Ошибка при выполнении запроса: <br/>'.
$query.'<br/>'.mysql_errno().': '.mysql_error().'<br/>'.
'(Файл '. __FILE__ .', строка '. __LINE__ .')';
return showErrorMessage( $msg, $err, true,
'action=showForum&idForum='.$_GET['idForum'] );
}
if ( mysql_num_rows( $res ) == 0 )
return showInfoMessage( 'Запрошенная тема не найдена', 'action=showForum&idForum='.$_GET['idForum'] );
list( $theme, $locked ) = mysql_fetch_row( $res );
$pageTitle = $pageTitle.' / '.$theme;
$html = '<h1>'.$theme.'</h1>'."\n";
$query = "SELECT name FROM ".TABLE_FORUMS." WHERE id_forum=".$_GET['idForum'];
$res = mysql_query( $query );
if ( !$res ) {
$msg = 'Ошибка при получении списка сообщений темы';
$err = 'Ошибка при выполнении запроса: <br/>'.
$query.'<br/>'.mysql_errno().': '.mysql_error().'<br/>'.
'(Файл '. __FILE__ .', строка '. __LINE__ .')';
return showErrorMessage( $msg, $err, true, 'action=showForum&idForum='.
$_GET['idForum'] );
}
$html = $html.'<div class="navDiv">'."\n";
$html = $html.'<a class="navigation" href="'.$_SERVER['PHP_SELF'].'">Список форумов</a> >'."\n";
$html = $html.'<a class="navigation" href="'.$_SERVER['PHP_SELF'].'?action=showForum&idForum='.
$_GET['idForum'].'">'.mysql_result( $res, 0, 0 ).'</a> >'."\n";
$html = $html.'<a class="navigation" href="'.$_SERVER['PHP_SELF'].'?action=showTheme&idForum='.
$_GET['idForum'].'&id_theme='.$id_theme.'">'.$theme.'</a>'."\n";
$html = $html.'</div>'."\n";
$query = "SELECT COUNT(*) FROM ".TABLE_POSTS." WHERE id_theme=".$id_theme;
$res = mysql_query( $query );
if ( !$res ) {
$msg = 'Ошибка при получении списка сообщений темы';
$err = 'Ошибка при выполнении запроса: <br/>'.
$query.'<br/>'.mysql_errno().': '.mysql_error().'<br/>'.
'(Файл '. __FILE__ .', строка '. __LINE__ .')';
return showErrorMessage( $msg, $err, true,
'action=showForum&idForum='.$_GET['idForum'] );
}
$total = mysql_result( $res, 0, 0 );
if ( $total == 0 ) {
$q = "DELETE FROM ".TABLE_THEMES." WHERE id_theme=".$id_theme;
$r = mysql_query( $q );
if ( !$r ) {
$msg = 'Ошибка при получении списка сообщений темы';
$err = 'Ошибка при выполнении запроса: <br/>'.
$q.'<br/>'.mysql_errno().': '.mysql_error().'<br/>'.
'(Файл '. __FILE__ .', строка '. __LINE__ .')';
return showErrorMessage( $msg, $err, true, 'action=showForum&idForum='.$_GET['idForum'] );
}
return showInfoMessage( 'Запрошенная тема не найдена', 'action=showForum&idForum='.$_GET['idForum'] );
}
$cntPages = ceil( $total / POSTS_PER_PAGE );
if ( isset($_GET['page']) ) {
$page = (int)$_GET['page'];
if ( $page < 1 ) $page = 1;
} else {
$page = $cntPages;
}
if ( $page > $cntPages ) $page = $cntPages;
$start = ( $page - 1 ) * POSTS_PER_PAGE;
if ( $cntPages > 1 ) {
$pages = pageIterator( $page, $cntPages, $_SERVER['PHP_SELF'].'?action=showTheme&idForum='.
$_GET['idForum'].'&id_theme='.$id_theme );
} else {
$pages = ' ';
}
$query = "SELECT a.id_post, a.name, a.id_author, a.time, a.putfile, a.locked, a.id_theme,
DATE_FORMAT(a.edittime, '%d.%m.%Y') AS edittime, a.id_editor,
IFNULL(b.name, '".NOT_REGISTERED_USER."') AS author, b.posts, b.url,
DATE_FORMAT(b.puttime, '%d.%m.%Y') AS regtime, b.status AS status,
IFNULL(c.name, '') AS editor, IFNULL(c.status, '') AS editor_status
FROM ".TABLE_POSTS." a LEFT JOIN ".TABLE_USERS." b
ON a.id_author=b.id_author
LEFT JOIN ".TABLE_USERS." c
ON a.id_editor=c.id_author
WHERE id_theme=".$id_theme." ORDER BY time ASC
LIMIT ".$start.", ".POSTS_PER_PAGE;
$res = mysql_query( $query );
if ( !$res ) {
$msg = 'Ошибка при получении списка сообщений темы';
$err = 'Ошибка при выполнении запроса: <br/>'.
$query.'<br/>'.mysql_errno().': '.mysql_error().'<br/>'.
'(Файл '. __FILE__ .', строка '. __LINE__ .')';
return showErrorMessage( $msg, $err, true,
'action=showForum&idForum='.$_GET['idForum'] );
}
if ( mysql_num_rows( $res ) == 0 ) {
$q = "DELETE FROM ".TABLE_THEMES." WHERE id_theme=".$id_theme;
$r = mysql_query( $q );
if ( !$r ) {
$msg = 'Ошибка при получении списка сообщений темы';
$err = 'Ошибка при выполнении запроса: <br/>'.
$q.'<br/>'.mysql_errno().': '.mysql_error().'<br/>'.
'(Файл '. __FILE__ .', строка '. __LINE__ .')';
return showErrorMessage( $msg, $err, true, 'action=showForum&idForum='.$_GET['idForum'] );
}
return showInfoMessage( 'Запрошенная тема не найдена', 'action=showForum&idForum='.$_GET['idForum'] );
}
if ( $locked == 0 )
$addPost = '<a href="'.$_SERVER['PHP_SELF'].'?action=addPostForm&idForum='.$_GET['idForum'].
'&id_theme='.$id_theme.'"><img src="./images/reply.gif"
alt="Ответить" title="Ответить" /></a>'."\n";
else
$addPost = '<img src="./images/reply_locked.gif"
alt="Тема закрыта" title="Тема закрыта" />'."\n";
$pagesAddPost = '<table width="100%" cellpadding="0" cellspacing="0">'."\n";
$pagesAddPost = $pagesAddPost.'<tr valign="middle">'."\n";
$pagesAddPost = $pagesAddPost.'<td>'.$pages.'</td>'."\n";
$pagesAddPost = $pagesAddPost.'<td align="right">'.$addPost.'</td>'."\n";
$pagesAddPost = $pagesAddPost.'</tr>'."\n";
$pagesAddPost = $pagesAddPost.'</table>'."\n";
$html = $html.$pagesAddPost;
while ( $post = mysql_fetch_array( $res ) ) {
$html = $html.'<table class="postTable">'."\n";
$html = $html.'<tr class="postTop">'."\n";
$html = $html.'<td width="120"><span class="postAuthor" onClick="javascript:putName(\''.
$post['author'].'\')" onMouseOver="this.className=\'postAuthorOver\'"
onMouseOut="this.className=\'postAuthor\'">'.$post['author'].
'</span><br/><img src="./images/null.gif" alt="" width="120" height="1" /></td>'."\n";
$html = $html.'<td width="45%"><span class="details"> Добавлено '.$post['time'].'</span></td>'."\n";
$html = $html.'<td width="45%" align="right">';
if ( $locked == 0 ) {
$html = $html.'<a href="'.$_SERVER['PHP_SELF'].'?action=addPostForm&idForum='.$_GET['idForum'].
'&id_theme='.$id_theme.'"><img src="./images/icon_quote.gif"
alt="Ответить с цитатой" title="Ответить с цитатой" border="0" /></a> ';
}
if ( hasRightEditPost( $post ) ) {
$html = $html.'<a href="'.$_SERVER['PHP_SELF'].'?action=editPostForm&idForum='.$_GET['idForum'].
'&id_theme='.$id_theme.'&id_post='.$post['id_post'].'"><img src="./images/icon_edit.gif"
alt="Править" title="Править" border="0" /></a> ';
}
if ( hasRightDeletePost( $post ) ) {
$html = $html.'<a href="'.$_SERVER['PHP_SELF'].'?action=deletePost&idForum='.$_GET['idForum'].
'&id_theme='.$id_theme.'&id_post='.$post['id_post'].'"><img src="./images/icon_delete.gif"
alt="Удалить" title="Удалить" border="0" /></a>';
}
$html = $html.'</td>'."\n";
$html = $html.'</tr>'."\n";
$html = $html.'<tr class="postMiddle">'."\n";
$html = $html.'<td>'."\n";
if ( $post['id_author'] ) {
if ( is_file( './photo/'.$post['id_author'] ) ) {
$html = $html.'<img src="./photo/'.$post['id_author'].'" alt="'.$post['author'].'"
title="'.$post['author'].'" /><br/>'."\n";
} else {
$html = $html.'<img src="./images/null.gif" alt="" width="100" height="100"
style="border:1px solid #CCCCCC" /><br/>'."\n";
}
$status = array( 'user' => 'Пользователь',
'moderator' => 'Модератор',
'admin' => 'Администратор' );
if ( $post['status'] == 'admin' )
$html = $html.'<span class="adminStatus">'.$status[$post['status']].'</span><br/>'."\n";
if ( $post['status'] == 'moderator' )
$html = $html.'<span class="moderStatus">'.$status[$post['status']].'</span><br/>'."\n";
$stars = '';
$rating = $post['posts'];
while( $rating > 0 ) {
if ( $rating < 50 )
$img = 'stars0.gif';
else if ( $rating >= 50 and $rating < 100 )
$img = 'stars1.gif';
else if ( $rating >= 100 and $rating < 150 )
$img = 'stars2.gif';
else if ( $rating >= 150 and $rating < 200 )
$img = 'stars3.gif';
else if ( $rating >= 200 and $rating < 250 )
$img = 'stars4.gif';
else if ( $rating >= 250 and $rating < 300 )
$img = 'stars5.gif';
else if ( $rating >= 300 and $rating < 350 )
$img = 'stars6.gif';
else if ( $rating >= 350 and $rating < 400 )
$img = 'stars7.gif';
else if ( $rating >= 400 and $rating < 450 )
$img = 'stars8.gif';
else if ( $rating >= 450 and $rating < 500 )
$img = 'stars9.gif';
else
$img = 'stars10.gif';
$rating = $rating - 500;
$stars = $stars.'<img src="./images/'.$img.'" alt="" /><br/>';
}
$html = $html.$stars.'<br/>'."\n";
$html = $html.'<span class="details">Сообщений: '.$post['posts'].'</span><br/>'."\n";
$html = $html.'<span class="details">Зарегистрирован: '.$post['regtime'].'</span><br/>'."\n";
if ( isset( $_SESSION['usersOnLine'] ) ) {
if ( in_array( $post['id_author'], $_SESSION['usersOnLine'] ) )
$html = $html.'<span class="details">Просматривает форум</span><br/>'."\n";
else
$html = $html.'<span class="details">Покинул форум</span><br/>'."\n";
}
} else {
$html = $html.'<img src="./images/null.gif" alt="" width="100" height="100"
style="border:1px solid #CCCCCC" /><br/>'."\n";
}
$html = $html.'<br/><span class="quoteAuthor" onClick=quoteSelection(\''.$post['author'].'\');
onMouseOver="catchSelection(); this.className=\'quoteAuthorOver\'"
onMouseOut="this.className=\'quoteAuthor\'">Цитировать</span>';
$html = $html.'</td>'."\n";
$html = $html.'<td colspan="2">'."\n";
$html = $html.print_page( $post['name'] )."\n";
if( !empty( $post['putfile'] ) and is_file( './files/'.$post['putfile'] ) ) {
$html = $html.'<div align="right"><img src="./images/file.gif" alt="Открыть файл"
title="Открыть файл" align="absmiddle" /> <a target="_blank"
href="./files/'.$post['putfile'].'">'.
( getFileSize( './files/'.$post['putfile'] ) ).' Кб</a></div>'."\n";
}
$html = $html.'</td>'."\n";
$html = $html.'</tr>'."\n";
$html = $html.'<tr class="postBottom">'."\n";
$html = $html.'<td><a class="navigation" href="#top">Наверх</a></td>'."\n";
if ( $post['id_author'] ) {
$html = $html.'<td>'."\n";
$html = $html.' <a href="'.$_SERVER['PHP_SELF'].'?action=showUserInfo&idUser='.
$post['id_author'].'"><img src="./images/icon_profile.gif"
alt="Посмотреть профиль" title="Посмотреть профиль" /></a>';
$html = $html.' '."\n";
if ( isset( $_SESSION['user'] ) ) {
$html = $html.'<a href="'.$_SERVER['PHP_SELF'].'?action=sendMailForm&idUser='.
$post['id_author'].'"><img src="./images/icon_email.gif"
alt="Написать письмо" title="Написать письмо" /></a>';
$html = $html.' '."\n";
$html = $html.'<a href="'.$_SERVER['PHP_SELF'].'?action=sendMsgForm&idUser='.
$post['id_author'].'"><img src="./images/icon_pm.gif"
alt="Личное сообщение" title="Личное сообщение" /></a>';
$html = $html.' '."\n";
}
if ( !empty( $post['url'] ) ) {
$html = $html.'<a href="'.$post['url'].'"><img src="./images/icon_www.gif"
alt="Сайт автора" title="Сайт автора" target="_blank" /></a>';
}
$html = $html.'</td>'."\n";
} else {
$html = $html.'<td><span class="details"><img src="./images/null.gif" alt="" width="1"
height="20" align="absmiddle" />Незарегистрированный пользователь</span></td>'."\n";
}
if ( !empty( $post['editor'] ) ) {
$html = $html.'<td align="right">';
if ( $post['id_author'] == $post['id_editor'] ) {
$html = $html.'<span class="editedByUser">Отредактировано автором '.$post['edittime'].'</span>'."\n";
} else {
if ( $post['editor_status'] == 'admin' )
$html = $html.'<span class="editedByAdmin">Отредактировано администратором '.
$post['editor'].' '.$post['edittime'].'</span>'."\n";
if ( $post['editor_status'] == 'moderator' )
$html = $html.'<span class="editedByModer">Отредактировано модератором '.
$post['editor'].' '.$post['edittime'].'</span>'."\n";
if ( $post['editor_status'] == 'user' )
$html = $html.'<span class="editedByUser">Отредактировано '.
$post['editor'].' '.$post['edittime'].'</span>'."\n";
}
$html = $html.'</td>'."\n";
} else {
$html = $html.'<td> </td>'."\n";
}
$html = $html.'</tr>'."\n";
$html = $html.'</table>'."\n";
}
$html = $html.$pagesAddPost;
if ( $locked == 0 ) $html = $html.getQuickReplyForm( $id_theme );
if ( isset( $_SESSION['user'] ) and isset( $_SESSION['newThemes'] ) ) {
if ( count( $_SESSION['newThemes'] ) > 0 )
if ( in_array( $id_theme, $_SESSION['newThemes'] ) ) unset( $_SESSION['newThemes'][$id_theme] );
else
unset( $_SESSION['newThemes'] );
}
return $html;
}
?>
Вот сузил проблемную зону :( может кто знает в чем я допустил ошибку