/*
** display comments on specified article ($ArticleID)
** $ParentID - 0 - to display top level comments, non 0 value to display comments on specified comment
** $StartingPos - from which comment (default = 0 , from the first )
*/
$MAXCOMMENTSPERPAGE = 10;
function ShowParentComments($ArticleID, $COMMENTS_CURRPARENT, $StartingPos, &$lineprefix, $ForumClass, $cat_id = ""){
global $DB;
global $PHP_SELF;
global $cat;
if( $COMMENTS_CURRPARENT == 0 ){
// we reach the top level... so just return
$lineprefix = "";
return;
}
$SQL = "select AIV_COMMENTS.*, AIV_MEMBER.login from AIV_COMMENTS left join AIV_MEMBER on AIV_COMMENTS.COMMENTS_WRITER_ID=AIV_MEMBER.id where COMMENTS_ORIGINATOR_ID='$ArticleID' and COMMENTS_ID='$COMMENTS_CURRPARENT'";
$result = mysql_db_query($DB, $SQL);
if( ($result > 0) && (mysql_numrows($result)==1) ){
$COMMENTS_TEXT = (mysql_result($result, 0, "COMMENTS_TEXT"));
$COMMENTS_SUBJ = (mysql_result($result, 0, "COMMENTS_SUBJ"));
$COMMENTS_MEMBER = mysql_result($result, 0, "login");
$COMMENTS_MEMBER_ID = mysql_result($result, 0, "COMMENTS_WRITER_ID");
$COMMENTS_PUBDATE = FetchDate(mysql_result($result, 0, "COMMENTS_PUBDATE"), "F j, Y h:i A");
$COMMENTS_NEWCURRPARENT = mysql_result($result, 0, "COMMENTS_PARENT_ID");
$UPLINK = mysql_result($result, 0, "COMMENTS_PARENT_ID");
ShowParentComments($ArticleID, $COMMENTS_NEWCURRPARENT, $StartingPos, $lineprefix, $ForumClass);
// draw the parrent's comment body...
if( !ereg( "
", $COMMENTS_TEXT ) ){
$COMMENTS_TEXT = wordwrap ($COMMENTS_TEXT, 40, " ", 1);
$COMMENTS_TEXT = ereg_replace("\n", "
", $COMMENTS_TEXT);
}
?>
// increase line offset...
$lineprefix = " " . $lineprefix ;
}
} // ShowParentComments
function ShowArticleComments($ArticleID, $ParentID=0, $StartingPos=0, $lineprefix="", $ForumClass="A", $cat_id=0){
global $DB;
global $MAXCOMMENTSPERPAGE;
global $PHP_SELF;
global $cat;
global $UserID;
// echo "::: AID=$ArticleID, PID=$ParentID, SP=$StartingPos, LP=$lineprefix, FC=$ForumClass, CID=$cat_id :::
\n"; flush();
$SQL = "select count(*) as totalonlevel from AIV_COMMENTS where COMMENTS_ORIGINATOR_ID='$ArticleID' and COMMENTS_PARENT_ID='$ParentID' and COMMENTS_ORIGINATOR_TYPE = '$ForumClass'";
// echo $SQL;
$result = mysql_db_query($DB, $SQL);
$TotalOnLevel = mysql_result($result, 0, "totalonlevel");
if( ($TotalOnLevel == 0) && ($ParentID == 0) ){
// return; // empty!
}
$SQL = "select AIV_COMMENTS.*, AIV_MEMBER.login from AIV_COMMENTS left join AIV_MEMBER on AIV_COMMENTS.COMMENTS_WRITER_ID=AIV_MEMBER.id where COMMENTS_ORIGINATOR_ID='$ArticleID' and COMMENTS_PARENT_ID='$ParentID' and COMMENTS_ORIGINATOR_TYPE = '$ForumClass' order by COMMENTS_PUBDATE desc";
if( $ParentID == 0 ){
// limit number of simultaneously displayed articles on the top level
$SQL = $SQL . " limit $StartingPos, $MAXCOMMENTSPERPAGE";
}
// echo $SQL ;
$result = mysql_db_query($DB, $SQL);
if( $result ){
$numrecs = mysql_num_rows($result);
if( $ParentID == 0 ){
if( $StartingPos>0 ){
$PrevPos = $StartingPos - $MAXCOMMENTSPERPAGE;
if( $PrevPos < 0 ){
$PrevPos = 0;
}
if ($ForumClass == 'F') {
$prevlink = "Предыдущая страница";
} else {
$prevlink = "Предыдущая страница";
}
}else{
$prevlink = "Предыдущая страница";
}
if( $StartingPos+$MAXCOMMENTSPERPAGE < $TotalOnLevel){
$NextPos = $StartingPos + $MAXCOMMENTSPERPAGE;
if ($ForumClass == 'F') {
$nextlink = "Следующая страница";
} else {
$nextlink = "Следующая страница";
}
} else {
$nextlink = "Следующая страница";
}
}else{
$prevlink = "";
$nextlink = "";
}
?>
if( ( $ParentID == 0 ) && ( $numrecs>0 ) ) {
?>
Темы с echo $StartingPos+1; ?> по echo $StartingPos+$numrecs; ?> echo $prevlink; ?> | echo $nextlink; ?>
|
}
$UPLINK = "";
$DrawPrevNextBar = 0;
if( ($ParentID != 0) && ($lineprefix == "") ){
// display a comment!
if( ($ParentID != 0) && ($lineprefix=="") ){
$SQLP = "select AIV_COMMENTS.*, AIV_MEMBER.login from AIV_COMMENTS left join AIV_MEMBER on AIV_COMMENTS.COMMENTS_WRITER_ID=AIV_MEMBER.id where COMMENTS_ID = '$ParentID'";
$resultP = mysql_db_query($DB, $SQLP);
if ($result && (mysql_numrows($resultP)==1) ) {
$COMMENTS_TEXT = (mysql_result($resultP, 0, "COMMENTS_TEXT"));
$COMMENTS_SUBJ = (mysql_result($resultP, 0, "COMMENTS_SUBJ"));
$COMMENTS_MEMBER = mysql_result($resultP, 0, "login");
$COMMENTS_MEMBER_ID = mysql_result($resultP, 0, "COMMENTS_WRITER_ID");
$COMMENTS_PUBDATE = FetchDate(mysql_result($resultP, 0, "COMMENTS_PUBDATE"), "F j, Y h:i A");
$COMMENTS_CURRPARENT = mysql_result($resultP, 0, "COMMENTS_PARENT_ID");
$UPLINK = mysql_result($resultP, 0, "COMMENTS_PARENT_ID");
// draw paren comments....
$lineprefix = "";
ShowParentComments($ArticleID, $COMMENTS_CURRPARENT, $StartingPos, $lineprefix, $ForumClass, $cat_id);
// find prev/next comment in thread and prepare links...
$SQLLINKS = "select COMMENTS_ID from AIV_COMMENTS where COMMENTS_ORIGINATOR_ID='$ArticleID' and COMMENTS_PARENT_ID='$COMMENTS_CURRPARENT' order by COMMENTS_PUBDATE desc";
$resultLINKS = mysql_db_query($DB, $SQLLINKS);
$PrevMessage = " Предыдущее";
$NextMessage = " Следующее";
for($linkno=0; $linkno0 ){
$PrevLinkID = mysql_result($resultLINKS, $linkno-1, "COMMENTS_ID");
if ($ForumClass == 'F') {
$PrevMessage = " Предыдущее ";
} else {
$PrevMessage = " Предыдущее ";
}
}
if( ($linkno+1)Следующее ";
} else {
$NextMessage = " Следующее ";
}
}
break;
}
}
$DrawPrevNextBar = 1;
if ($ForumClass == 'F') {
$UPLINK = " Вверх ";
} else {
$UPLINK = " Наверх ";
}
}
}
// draw the comment body...
if( !ereg( "", $COMMENTS_TEXT ) ){
$COMMENTS_TEXT = wordwrap ($COMMENTS_TEXT, 40, " ", 1);
$COMMENTS_TEXT = ereg_replace("\n", "
", $COMMENTS_TEXT);
}
echo "
\n";
if( IsCE($UserID) ){
global $PHP_SELF;
echo "-Erase-> $COMMENTS_SUBJ - $COMMENTS_MEMBER - $COMMENTS_PUBDATE |
";
}else{
echo "$COMMENTS_SUBJ - $COMMENTS_MEMBER - $COMMENTS_PUBDATE |
";
}
echo "$COMMENTS_TEXT
|
\n";
echo "
\n";
}
// draw child threads...
if( $numrecs ){
for($rec=0;$rec<$numrecs; $rec++){
$COMMENTS_ID = mysql_result($result, $rec, "COMMENTS_ID");
$COMMENTS_TEXT = (mysql_result($result, $rec, "COMMENTS_TEXT"));
$COMMENTS_SUBJ = (mysql_result($result, $rec, "COMMENTS_SUBJ"));
$COMMENTS_MEMBER = mysql_result($result, $rec, "login");
$COMMENTS_MEMBER_ID = mysql_result($result, $rec, "COMMENTS_WRITER_ID");
$COMMENTS_PUBDATE = FetchDate(mysql_result($result, $rec, "COMMENTS_PUBDATE"), "F j, Y h:i A");
$SQLrecur = "select count(*) as cnt from AIV_COMMENTS where COMMENTS_PARENT_ID='$COMMENTS_ID'";
$resultrecur = mysql_db_query($DB, $SQLrecur);
$nchilds = mysql_result($resultrecur, 0, "cnt");
if( $nchilds ){
$IMref = "/images/thread.gif";
}else{
$IMref = "/images/orig.gif";
}
if( $ParentID == 0 ){
/* separate top level messages */
// echo "";
}
echo "
";
ShowArticleComments($ArticleID, $COMMENTS_ID, $StartingPos, " " . $lineprefix, $ForumClass, $cat_id);
} // for all comments
}
// navigation bar in current thread...
if( $DrawPrevNextBar ) {
echo "\n";
?>
echo "$PrevMessage $UPLINK $NextMessage"; ?> |
echo "
";
}
} // if valid result
?>
} // ShowArticleComments
function EraseArticleComments($ArticleID, $ParentID=0, $StartingPos=0, $lineprefix="", $ForumClass="A", $cat_id=0){
global $DB;
if( $ParentID > 0 ){
$SQL = "delete from AIV_COMMENTS where COMMENTS_ID='$ParentID' and COMMENTS_ORIGINATOR_TYPE='$ForumClass' and COMMENTS_ORIGINATOR_ID='$ArticleID'";
mysql_db_query($DB, $SQL);
$SQL = "select COMMENTS_ID as ChildcommentID from AIV_COMMENTS where COMMENTS_PARENT_ID='$ParentID' and COMMENTS_ORIGINATOR_TYPE='$ForumClass' and COMMENTS_ORIGINATOR_ID='$ArticleID'";
$result = mysql_db_query($DB, $SQL);
if( $result && (mysql_numrows($result)>0) ){
for( $ck=0; $ckmember_email;
}
// echo "CU:$WriterEmail:EM";
if( $ParentCommentID > 0 ){
$SQL = "select COMMENTS_WRITER_ID, COMMENTS_ISAUTOREPLY, login, prime_email, public_email from AIV_COMMENTS LEFT JOIN AIV_MEMBER on (AIV_MEMBER.id = AIV_COMMENTS.COMMENTS_WRITER_ID) where COMMENTS_ID = '$ParentCommentID' and COMMENTS_ORIGINATOR_TYPE='$CommentClass'";
$res = mysql_db_query($DB, $SQL);
$AllowAutoreply = mysql_result($res, 0, "COMMENTS_ISAUTOREPLY");
if( $AllowAutoreply == "Y" ){
$public_email = mysql_result($tr, 0, "public_email");
$prime_email = mysql_result($tr, 0, "prime_email");
if( $public_email == "" ){
$SendTo = $public_email;
}else{
$SendTo = $prime_email;
}
mailreply($SendTo,
"$SERVER_NAME alert. Ответ на Ваше сообщение:" . ($CommSubj),
($CommentText), $WriterEmail);
}
}
// Those line is for debug porpouses only!!!!
// and control of supervizor!!!
if( $TOTAL_LOGGING ){
//
// Next line for DEBUG&SPY purpouses ONLY
//
CEAlerter(
"New message on $SERVER_NAME at (AID:$ArticleID MSGID:$FORUMMSG_ID CLASS:$CommentClass) : " . ($CommSubj),
($CommentText)
);
}
}
return $ArticleErrors;
}
/*
** count total number of comments on specified article
*/
function CountArticleComment($ArticleID, $CommentClass='A'){
global $DB ;
$SQL = "select count(*) as cnt from AIV_COMMENTS where COMMENTS_ORIGINATOR_ID = '$ArticleID' and COMMENTS_ORIGINATOR_TYPE='$CommentClass'";
$result = @mysql_db_query($DB, $SQL);
return @mysql_result($result, 0, "cnt");
}
?>