"
. "\n";
$SQL = "SELECT `news_comments_id`, `name`, `email`, `comment`, `date_posted` "
. " FROM `" . DB_TABLE_NEWS_COMMENTS . "` "
. " WHERE `news_id` = $view_details "
. " AND `is_active` = 1 AND `is_deleted` = 0 "
. " ORDER BY `news_comments_id` ASC ";
$all_comments = db_data_multi_hash( $SQL );
$all_comments_html = "\n";
return $all_comments_html
.= "
\n"
. "$new_comment_form\n";
} # end get_all_news_comments
$view_details = 0; # display detail?
if( $_GET['vd'] ) $view_details = (int)$_GET['vd'];
if( is_int( $view_details ) && 0 != $view_details ) { # news item detail
$SQL = "SELECT `date`, `title`, `content`, DATE_FORMAT( `date`, '%M %e, %Y' ) `date_explained`, `meta_keywords`, `meta_description` "
. " FROM `" . DB_TABLE_NEWS . "` "
. " WHERE `active` = 1 AND `ID` = '$view_details' AND `type` = 2 ";
$n = db_data_single_hash( $SQL );
if( is_array( $n ) ) {
$meta_keywords = str_replace( '"', '', $n['meta_keywords'] );
$meta_description = str_replace( '"', '', $n['meta_description'] );
$all_comments_html = get_all_news_comments( $view_details );
$r = "{$n['title']}
\n"
. "{$n['date_explained']}
\n"
. "{$n['content']}
\n"
. "\n"
. "\n";
} else
$r = "No such news item found.
\n";
} else { # news list
# time range
$days_past = 60; # hard-coded default
if( $options['archive'] ) {
$archive_title = ' Archive';
$archive_link = '';
$date_direction = '<=';
} else {
$archive_title = '';
$archive_link = "\n";
$date_direction = '>=';
}
$r = $archive_link
. "News$archive_title
\n"; # title
if( $_GET['dp'] ) $days_past = (int)$_GET['dp'];
$SQL = "SELECT `ID`, `date`, `title`, `type`, `url`, `content` "
. " FROM `" . DB_TABLE_NEWS . "` "
. " WHERE `active` = 1 "
. " AND `date` $date_direction DATE_SUB( NOW(), INTERVAL '$days_past' DAY ) "
. " ORDER BY `date` DESC, `created` DESC ";
$news = db_data_multi_hash( $SQL );
if( is_array( $news ) && $news ) {
foreach( $news as $n ) {
$r .= "{$n['date']}: "; # the date
if( 1 == $n['type'] ) # url
$r .= "{$n['title']}";
elseif( 2 == $n['type'] ) { # content
$title_url_encoded = urlencode( $n['title'] );
$r .= "{$n['title']}";
}
$r .= "
\n";
}
} else $r .= "No news found.
\n";
$r .= $archive_link;
}
return array( 'html_content' => $r,
'meta_keywords' => $meta_keywords,
'meta_description' => $meta_description );
} # end the_news
# comment_html
function comment_html( $comment_data ) {
$comment_formatted_for_html = htmlentities( $comment_data['comment'] );
return "{$comment_data['name']}
\n"
. "{$comment_data['date_posted']}
\n"
#. "{$comment_data['email']}
\n"
. "\n"
. "
\n";
} # end comment_html
# insert_new_comment
function insert_new_comment( $data ) {
$SQL = "INSERT INTO `" . DB_TABLE_NEWS_COMMENTS . "` "
. " ( `name`, `email`, `comment`, `date_posted`, `news_id` ) "
. "VALUES ( '{$data['name']}', '{$data['email']}', '{$data['comment']}', NOW(), '{$data['news_id']}' ) ";
if( mysql_query( $SQL ) )
return mysql_insert_id();
else
return mysql_error();
} # end insert_new_comment
# get_news_info
function get_news_info( $id ) {
$SQL = "SELECT `date`, `title`, `content`, DATE_FORMAT( `date`, '%M %e, %Y' ) `date_explained` "
. " FROM `" . DB_TABLE_NEWS . "` "
. " WHERE `active` = 1 AND `ID` = '$id' AND `type` = 2 ";
return db_data_single_hash( $SQL );
} # end get_news_info
# send_comment_notification
function send_comment_notification( $data ) {
$news_info = get_news_info( $data['news_id'] );
#$to = 'jedihawk@gmail.com';
$to = 'swagner@cchr.org';
$from = 'do_not_reply@psychcrime.org';
$subject = "New comment posted to {$news_info['title']} ({$news_info['date']})";
$headers = "From: $from\r\n"
. "X-Priority: Low";
$message = "Dear PsychCrime.org Administrator,
A new comment was posted to news item #{$data['news_id']}:
News Item Title: {$news_info['title']}
News Item Date: {$news_info['date_explained']}
Comment Name: {$data['name']}
Comment Email: {$data['email']}
Date Posted: {$data['date_posted']}
Comment:
{$data['comment']}
- - -
Admin link:
http://www.psychcrime.org/news/admin.php
";
mail( $to, $subject, $message, $headers );
} # end send_comment_notification
# post_new_comment
function post_new_comment() {
header('Content-type: text/html');
$data = array(
'name' => mysql_escape_string( $_POST['name'] ),
'email' => mysql_escape_string( $_POST['email'] ),
'comment' => mysql_escape_string( $_POST['comment'] ),
'news_id' => mysql_escape_string( $_POST['news_id'] ),
);
$comment_data = array(
'name' => htmlentities( $_POST['name'] ),
'email' => htmlentities( $_POST['email'] ),
'comment' => $_POST['comment'],
'date_posted' => date('Y-m-d H:i:s'),
'news_id' => $_POST['news_id'],
);
$insert_result = insert_new_comment( $data );
if( is_int( $insert_result ) ) {
send_comment_notification( $comment_data );
#echo comment_html( $comment_data ); # this gives the user back their comment and makes it appear like it's live on the webpage now
# but this is not true any more, comments are 'hidden' by default now (2010-06-13)
echo "Thank you, your comment is pending.
\n";
} else
echo "ERROR: $insert_result
\n";
} # end post_new_comment
# start
require '../libs/lib.php';
require '../libs/db.php';
$scriptname = $_SERVER['PHP_SELF'];
#
# actions
#
if( $_POST['new_comment'] ) { # a new comment was posted via AJAX
post_new_comment();
}
else { # standard / default
if( 'archive' == $_GET['news'] ) { # archive, older than 30 days
$the_news = the_news( array( 'archive' => true ) );
}
else { # standard, last 30 days
$the_news = the_news();
}
if( $the_news['meta_keywords'] ) { # keywords
$meta_keywords = $the_news['meta_keywords'];
} else {
$meta_keywords = 'database, criminal database, criminal psychiatrist database, psychiatry, psychiatrist, psychiatric crime, human rights';
}
if( $the_news['meta_description'] ) { # description
$meta_description = $the_news['meta_description'];
} else {
$meta_description = 'PsychCrime.org, look up criminal psychiatrists in our database';
}
echo include_ssi( '/html_top.html' );
echo <<The PsychCrime Database - PsychCrime.org
HTML_HEADER;
echo include_ssi( '/master_content_table1.html' );
echo $the_news['html_content'];
echo include_ssi( '/master_content_table2.html' );
}
?>