Contact: thecrew@pixelpost.org Copyright © 2005 Pixelpost.org (corrected link back after comments by Connie, July 28. 2005) License: http://www.gnu.org/copyleft/gpl.html This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ error_reporting(0); ini_set('arg_separator.output', '&'); // includes require("includes/pixelpost.php"); require("includes/markdown.php"); require("includes/functions.php"); require("includes/exifer1_5/exif.php"); require("includes/no-refer-spam.php"); // Set cookie for visitor counter, re-count a person after 60 mins setcookie("lastvisit","expires in 24 hours",time() +60*60*24); // save user info if requested if(isset($_POST['vcookie'])) { $vcookiename = addslashes($_POST['name']); $vcookieurl = addslashes($_POST['url']); // modified for Email $vcookieemail = clean($_POST['email']); setcookie("visitorinfo","$vcookiename%$vcookieurl%$vcookieemail",time() +60*60*24*30); // save cookie 30 days } start_mysql(); book_visitor($pixelpost_db_prefix."visitors"); // get config if($cfgrow = sql_array("select * from ".$pixelpost_db_prefix."config")) { $upload_dir = $cfgrow['imagepath']; } else { echo "Coming Soon. Not Installed Yet."; exit; } if($mod_rewrite == "1") { $showprefix = ""; } else { $showprefix = "index.php?showimage="; } $tz = $cfgrow['timezone']; $datetime = gmdate("Y-m-d H:i:s",time()+(3600 * $tz)); // current date+time $cdate = $datetime; // for future posting, current date+time // get the language file if (file_exists("language/lang-".$cfgrow['langfile'].".php")) { require("language/lang-".$cfgrow['langfile'].".php"); } else { echo 'Error:
No language folder exists or the file "lang-' .$cfgrow['langfile'] .'.php" is missing in that folder.
Make sure that you have uploaded all necessary files with the exact same names as mentioned here.'; exit; } $pixelpost_site_title = $cfgrow['sitetitle']; // Added ability to use header and footers for templates. They are not needed but used if included in the template $header = file_get_contents("templates/".$cfgrow['template']."/header.html"); $footer = file_get_contents("templates/".$cfgrow['template']."/footer.html"); // You can now add any template you want by just adding the template and a link to it. For example, // ?x=about will load the template about_template.html // x="ref" or x="referer" is blocked due to referrer-spam if( $_GET['x'] == "ref" ) { // Maintain backwards compatibility with the referer template $_GET['x'] = "referer"; } if( file_exists( "templates/".$cfgrow['template']."/".$_GET['x']."_template.html" ) ){ $tpl = file_get_contents("templates/".$cfgrow['template']."/".$_GET['x']."_template.html"); } else { if (!file_exists("templates/".$cfgrow['template']."/image_template.html")) { echo 'Error:
No template folder exists by the name of "' .$cfgrow['template'] .'" or the file image_template.html is missing in that folder.
Make sure that you have uploaded all necessary files with the exact same names as mentioned here.'; exit; } $tpl = file_get_contents("templates/".$cfgrow['template']."/image_template.html"); } if($_GET['popup'] == "comment") { $tpl = file_get_contents("templates/".$cfgrow['template']."/comment_template.html"); } // Added ability to use header and footers for templates. They are not needed but used if included in the template $tpl = $header . $tpl . $footer; // Get visitor count $visitors = sql_array("select count(*) as count from ".$pixelpost_db_prefix."visitors"); $pixelpost_visitors = $visitors['count']; // Get number of photos in database $photonumb = sql_array("select count(*) as count from ".$pixelpost_db_prefix."pixelpost where datetime<='$datetime'"); $pixelpost_photonumb = $photonumb['count']; // images/main site if($_GET['x'] == "") { // Get Current Image. if($_GET['showimage'] == "") { $row = sql_array("select * from ".$pixelpost_db_prefix."pixelpost where datetime<='$cdate' order by datetime DESC limit 0,1"); } else { $row = sql_array("select * from ".$pixelpost_db_prefix."pixelpost where (id='".$_GET['showimage']."')"); } if(!$row['image']) { echo "Coming Soon! Nothing to show. No image to show here!"; exit; } $image_name = $row['image']; $image_title = pullout($row['headline']); $image_id = $row['id']; $image_datetime = $row['datetime']; $image_datetime_formatted = strtotime($image_datetime); $image_datetime_formatted = date($cfgrow['dateformat'],$image_datetime_formatted); $image_date = substr($row['datetime'],0,10); $image_time = substr($row['datetime'],11,5); $image_date_year_full = substr($row['datetime'],0,4); $image_date_year = substr($row['datetime'],2,2); $image_date_month = substr($row['datetime'],5,2); $image_date_day = substr($row['datetime'],8,2); $image_notes = markdown(pullout($row['body'])); $thumbnail_extra = getimagesize("thumbnails/thumb_$image_name"); $image_extra = getimagesize("images/$image_name"); $image_width = $image_extra['0']; $image_height = $image_extra['1']; $tpl = str_replace("",$image_width,$tpl); $tpl = str_replace("",$image_height,$tpl); $local_width = $thumbnail_extra['0']; $local_height = $thumbnail_extra['1']; // added by ramin to reseve ' and "s. $image_title = htmlspecialchars($image_title,ENT_QUOTES); //$image_title = htmlentities($image_title ); $image_thumbnail = "$image_title"; // thumnail no link $image_thumbnail_no_link = "$image_title"; $image_permalink = "$lang_permalink"; // permalink automated for fancy url/no fancy // get previous image id and name $previous_row = sql_array("select id,headline,image from ".$pixelpost_db_prefix."pixelpost where (datetime < '$image_datetime') and (datetime<='$cdate') order by datetime desc limit 0,1"); $image_previous_name = $previous_row['image']; $image_previous_id = $previous_row['id']; $image_previous_title = pullout($previous_row['headline']); $image_previous_link = "$lang_previous"; list($local_width,$local_height,$type,$attr) = getimagesize("thumbnails/thumb_$image_name"); $image_previous_thumbnail = "$image_previous_title"; if($image_previous_id == "") { $image_previous_id = $image_id; $image_previous_title = "$lang_no_previous"; $image_previous_link = ""; $image_previous_thumbnail = ""; } // get next image id and name $next_row = sql_array("select id,headline,image from ".$pixelpost_db_prefix."pixelpost where (datetime > '$image_datetime') and (datetime<='$cdate') order by datetime asc limit 0,1"); $image_next_name = $next_row['image']; $image_next_id = $next_row['id']; $image_next_title = pullout($next_row['headline']); $image_next_link = "$lang_next"; list($local_width,$local_height,$type,$attr) = getimagesize("thumbnails/thumb_$image_name"); $image_next_thumbnail = "$image_next_title"; if($image_next_id == "") { $image_next_id = $image_id; $image_next_title = "$lang_no_next"; $image_next_link = ""; $image_next_thumbnail = ""; } if(function_exists(gd_info)) { $gd_info = gd_info(); if($gd_info != "") { // check that gd is here before this $aheadnumb = sql_array("select count(*) as count from ".$pixelpost_db_prefix."pixelpost where (datetime > '$image_datetime') and (datetime<='$cdate')"); $aheadnumb = $aheadnumb['count']; $behindnumb = sql_array("select count(*) as count from ".$pixelpost_db_prefix."pixelpost where (datetime < '$image_datetime') and (datetime<='$cdate')"); $behindnumb = $behindnumb['count']; $aheadlimit = round(($cfgrow['thumbnumber']-1)/2); $behindlimit = round(($cfgrow['thumbnumber']-1)/2); if($aheadnumb <= $aheadlimit) { $behindlimit = ($cfgrow['thumbnumber']-1)-$aheadnumb; $aheadlimit = $aheadnumb; } if($behindnumb <= $behindlimit) { $aheadlimit = ($cfgrow['thumbnumber']-1)-$behindnumb; $behindlimit = $behindnumb; } $totalthumbcounter = 1; $ahead_thumbs = ""; $ahead_thumbs_reverse =""; $thumbs_ahead = mysql_query("select id,headline,image from ".$pixelpost_db_prefix."pixelpost where (datetime > '$image_datetime') and (datetime<='$cdate') order by datetime asc limit 0,$aheadlimit"); while(list($id,$headline,$image) = mysql_fetch_row($thumbs_ahead)) { $headline = pullout($headline); $headline = htmlspecialchars($headline,ENT_QUOTES); list($local_width,$local_height,$type,$attr) = getimagesize("thumbnails/thumb_$image_name"); $ahead_thumbs .= "$headline"; $ahead_thumbs_reverse = "$headline" .$ahead_thumbs_reverse ; $totalthumbcounter++; } $behind_thumbs = ""; $behind_thumbs_reverse =""; $thumbs_behind = mysql_query("select id,headline,image from ".$pixelpost_db_prefix."pixelpost where (datetime < '$image_datetime') and (datetime<='$cdate') order by datetime desc limit 0,$behindlimit"); while(list($id,$headline,$image) = mysql_fetch_row($thumbs_behind)) { $headline = pullout($headline); $headline = htmlspecialchars($headline,ENT_QUOTES); list($local_width,$local_height,$type,$attr) = getimagesize("thumbnails/thumb_$image_name"); $behind_thumbs = "$headline$behind_thumbs"; $behind_thumbs_reverse .= "$headline"; $totalthumbcounter++; } list($local_width,$local_height,$type,$attr) = getimagesize("thumbnails/thumb_$image_name"); $thumbnail_row = "$behind_thumbs$image_title$ahead_thumbs"; $thumbnail_row_reverse = "$ahead_thumbs_reverse$image_title$behind_thumbs_reverse"; $tpl = str_replace("",$thumbnail_row,$tpl); $tpl = str_replace("",$thumbnail_row_reverse,$tpl); } // gd_info() } // func exist // Modified from Mark Lewin's hack for multiple categories $querystr = "select t1.cat_id,t2.name from ".$pixelpost_db_prefix."catassoc as t1 inner join ".$pixelpost_db_prefix."categories t2 on t1.cat_id = t2.id where t1.image_id = '$image_id' order by t2.name "; $query = mysql_query($querystr); $image_category_number = 0; while(list($cat_id,$name) = mysql_fetch_row($query)) { $name = pullout($name); $image_category_all .= "" .$cfgrow['catgluestart'] .$name .$cfgrow['catglueend']."  "; $image_category_all_paged .= "" .$cfgrow['catgluestart'] .$name .$cfgrow['catglueend']."  "; $image_category_number = $image_category_number +1; } if ($image_category_number >1) {$image_categoryword = "$lang_category_plural $image_category";} else {$image_categoryword = "$lang_category_singular $image_category";} $tpl = str_replace("",$pixelpost_site_title,$tpl); $tpl = str_replace("",$image_categoryword." ".$image_category_all,$tpl); // for paged_archive addon $tpl = str_replace("",$image_categoryword." ".$image_category_all_paged,$tpl); $tpl = str_replace("",$image_date_year_full,$tpl); $tpl = str_replace("",$image_date_year,$tpl); $tpl = str_replace("",$image_date_month,$tpl); $tpl = str_replace("",$image_date_day,$tpl); $tpl = str_replace("",$image_thumbnail,$tpl); // thumbnail no link $tpl = str_replace("",$image_thumbnail_no_link,$tpl); $tpl = str_replace("",$image_date,$tpl); $tpl = str_replace("",$image_time,$tpl); $tpl = str_replace("",$image_name,$tpl); $tpl = str_replace("",$image_title,$tpl); $tpl = str_replace("",$image_datetime_formatted,$tpl); $tpl = str_replace("",$image_notes,$tpl); // image notes without HTML tags $tpl = str_replace("",strip_tags($image_notes),$tpl); $tpl = str_replace("",$image_id,$tpl); $tpl = str_replace("",$image_previous_link,$tpl); $tpl = str_replace("",$image_previous_thumbnail,$tpl); $tpl = str_replace("",$image_previous_id,$tpl); $tpl = str_replace("",$image_previous_title,$tpl); $tpl = str_replace("",$image_next_id,$tpl); $tpl = str_replace("",$image_next_title,$tpl); $tpl = str_replace("",$image_next_thumbnail,$tpl); $tpl = str_replace("",$image_next_link,$tpl); // get number of comments $cnumb_row = sql_array("select count(*) as count from ".$pixelpost_db_prefix."comments where parent_id='$image_id'"); $image_comments_number = $cnumb_row['count']; // get latest comment $latest_comment = sql_array("select parent_id from ".$pixelpost_db_prefix."comments order by id desc limit 0,1"); $latest_comment = $latest_comment['parent_id']; $queryrow = sql_array("select headline from ".$pixelpost_db_prefix."pixelpost where id='$latest_comment'"); $latest_comment_name = pullout($queryrow['headline']); // EXIF STUFF, modified by Connie not to present empty TAGs when no EXIF-info at hand $curr_image = "images/$image_name"; // set empty-tag + prepare not to produce empty exif-tags in the template $empty_exif = ""; $exif_result = read_exif_data_raw($curr_image,"0"); $exposure = $exif_result['SubIFD']['ExposureTime']; // exposure time if($exposure != "") { $exposure = reduceExif($exposure); $exposure = "$exposure sec"; } $aperture = $exif_result['SubIFD']['FNumber']; // Aperture $capture_date = $exif_result['SubIFD']['DateTimeOriginal']; // Date and Time $flash = $exif_result['SubIFD']['Flash']; // flash $focal = $exif_result['SubIFD']['FocalLength']; // focal length $info_camera_manu = trim($exif_result['IFD0']['Make']); // camera maker $info_camera_model = trim($exif_result['IFD0']['Model']); // camera model $iso = pullout($exif_result['SubIFD']['ISOSpeedRatings']); // not working apparently if($flash == "No Flash") { $flash = "$lang_flash_not_fired"; } elseif ($flash) {$flash = "$lang_flash_fired";} if($exposure != "") {$tpl = ereg_replace("",$exposure,$tpl); $exposure = "$lang_exposure $exposure";} else {$exposure = "$empty_exif"; $tpl = ereg_replace("",$exposure,$tpl);} $tpl = ereg_replace("",$exposure,$tpl); if($aperture != "") {$tpl = ereg_replace("",$aperture,$tpl); $aperture = "$lang_aperture $aperture";} else {$aperture = "$empty_exif"; $tpl = ereg_replace("",$aperture,$tpl);} $tpl = ereg_replace("",$aperture,$tpl); if($capture_date != "") { $tpl = ereg_replace("",$capture_date,$tpl); $capture_date = "$lang_capture_date $capture_date";} else {$capture_date = "$empty_exif"; $tpl = ereg_replace("",$capture_date,$tpl);} $tpl = ereg_replace("",$capture_date,$tpl); if($focal != "") { $tpl = ereg_replace("",$focal,$tpl); $focal = "$lang_focal $focal";} else {$focal = "$empty_exif"; $tpl = ereg_replace("",$focal,$tpl);} $tpl = ereg_replace("",$focal,$tpl); if($info_camera_manu != "") { $tpl = ereg_replace("",$info_camera_manu,$tpl); $info_camera_manu = "$lang_camera_maker $info_camera_manu";} else { $info_camera_manu = "$empty_exif"; $tpl = ereg_replace("",$info_camera_manu,$tpl);} $tpl = ereg_replace("",$info_camera_manu,$tpl); if($info_camera_model != "") { $tpl = ereg_replace("",$info_camera_model,$tpl); $info_camera_model = "$lang_camera_model $info_camera_model";} else { $info_camera_model = "$empty_exif"; $tpl = ereg_replace("",$info_camera_model,$tpl);} $tpl = ereg_replace("",$info_camera_model,$tpl); if($iso != "") { $tpl = ereg_replace("",$iso,$tpl); $iso = "$lang_iso $iso";} else {$iso = "$empty_exif"; $tpl = ereg_replace("",$iso,$tpl);} $tpl = ereg_replace("",$iso,$tpl); if($flash != "") { $tpl = ereg_replace("",$flash,$tpl); $flash = "$lang_flash $flash";} else { $flash = "$empty_exif"; $tpl = ereg_replace("",$flash,$tpl); } $tpl = ereg_replace("",$flash,$tpl); ///////////// // build a string with all comments if(($_GET['x'] == "") or ($_GET['popup'] == "comment")) { if($_GET['comment'] == "save") { $datetime = gmdate("Y-m-d H:i:s",time()+(3600 * $cfgrow['timezone'])); // current date+time //was date("Y-m-d H:i:s"); $ip = $_SERVER['REMOTE_ADDR']; $parent_id = $_POST['parent_id']; $message = clean(nl2br($_POST['message'])); $name = clean($_POST['name']); $url = clean($_POST['url']); $parent_name = clean($_POST['parent_name']); $email = clean($_POST['email']); if($parent_id == "") { $extra_message = "$lang_message_missing_image

"; } if($message == "") { $extra_message = "$lang_message_missing_comment

"; } if(($parent_id != "") and ($message != "")) { sql_save(" insert into ".$pixelpost_db_prefix."comments(id,parent_id,datetime,ip,message,name,url,email) VALUES('NULL','$parent_id','$datetime','$ip','$message','$name','$url','$email') "); } } // visitor information in comments $vinfo_name = ""; $vinfo_url = ""; $vinfo_email = ""; if(isset($_COOKIE['visitorinfo'])) { list($vinfo_name,$vinfo_url,$vinfo_email) = split("%",$_COOKIE['visitorinfo']); } $tpl = str_replace("",$vinfo_name,$tpl); $tpl = str_replace("",$vinfo_url,$tpl); $tpl = str_replace("",$vinfo_email,$tpl); if($_GET['showimage'] == "") { $imageid = $image_id; } else { $imageid = $_GET['showimage']; } $image_comments = print_comments($imageid); $tpl = str_replace("",$image_comments,$tpl); if(($_GET['popup'] == "comment") AND ($_GET['x'] != "save_comment")) { echo $tpl; exit; } } // end if comment } // end imageprint // fix a popuplink // refererlog if($_GET['x'] == "referer") { header("Location: index.php"); exit; } // end refererlog $tpl = str_replace("",$pixelpost_site_title,$tpl); if($_GET['x'] == "browse") { $thumb_output = ""; $where = ""; if($_GET['category'] != "") { // Modified from Mark Lewin's hack for multiple categories $query = mysql_query("select 1,t2.id,headline,image,datetime from {$pixelpost_db_prefix}catassoc as t1 inner join {$pixelpost_db_prefix}pixelpost t2 on t2.id = t1.image_id where t1.cat_id = '".$_GET['category']."' AND (datetime<='$cdate') order by datetime desc"); $lookingfor = 1; } ELSE IF ($_GET['archivedate'] != "") { $where = "and (DATE_FORMAT(datetime, '%Y-%m')='".$_GET['archivedate']."')"; //DATE_FORMAT(foo, '%Y-%m-%d') $query = mysql_query("select 1,id,headline,image, datetime from ".$pixelpost_db_prefix."pixelpost where (datetime<='$cdate') $where order by datetime desc"); $lookingfor = 1; } ELSE IF (isset($_POST['category']) ) { $lookingfor = 0; $where = "("; foreach( $_POST['category'] as $cat ) { $where .= "t1.cat_id='$cat' OR "; $lookingfor++; } $where .= " 0 )"; $querystr = "SELECT COUNT(t1.id), t2.id,headline,image,datetime FROM {$pixelpost_db_prefix}catassoc AS t1 INNER JOIN {$pixelpost_db_prefix}pixelpost t2 ON t2.id = t1.image_id WHERE (datetime<='$cdate') AND $where GROUP BY t2.id ORDER BY datetime, t2.id DESC"; $query = mysql_query($querystr); } ELSE { $lookingfor = 1; $query = mysql_query("select 1,id,headline,image,datetime from ".$pixelpost_db_prefix."pixelpost where (datetime<='$cdate') order by datetime desc"); } while(list($count,$id,$title,$name,$datetime) = mysql_fetch_row($query)) { if( $count != $lookingfor ) continue; // Major hack for the browse filters. $title = pullout($title); $thumbnail = "thumbnails/thumb_$name"; $thumb_output .= "$title"; } $tpl = str_replace("",$thumb_output,$tpl); } // build browse menu $browse_select = ""; $tpl = str_replace("",$browse_select,$tpl); // build browse checkboxes $checkboxes = "

"; $query = mysql_query("select * from ".$pixelpost_db_prefix."categories order by name"); while(list($id,$name) = mysql_fetch_row($query)) { $name = pullout($name); $checkbox_checked = ""; if(in_array($id,$category)) { $checkbox_checked = "checked"; } $checkboxes .= "$name   \n"; } $checkboxes .= "
"; $tpl = str_replace("",$checkboxes,$tpl); // ##########################################################################################// // RSS 2.0 FEED // ##########################################################################################// if($_GET['x'] == "rss") { pullout($cfgrow['sitetitle']); $output = " ".$cfgrow['sitetitle']." ".$cfgrow['siteurl']." ".$cfgrow['sitetitle']." photoblog http://blogs.law.harvard.edu/tech/rss pixelpost "; $tzoner = $cfgrow['timezone']; $tprefix = '+'; $tzoner = sprintf ("%01.2f", $tzoner); if (substr($tzoner,0,1)=='-') { $tzoner = (substr($tzoner,1)); $tprefix = '-'; } if ($tzoner < 10){$tzoner = "0".$tzoner;} $hh = substr($tzoner,0,2); $mm = substr($tzoner,-2); $tzoner = $tprefix.$hh.$mm; $query = mysql_query("select id,datetime,headline,body,image from ".$pixelpost_db_prefix."pixelpost where (datetime<='$cdate') order by datetime desc limit 10"); while(list($id,$datetime,$headline,$body,$image) = mysql_fetch_row($query)) { $headline = pullout($headline); $body = pullout($body); $image = $cfgrow['siteurl']."thumbnails/thumb_$image"; $datetime = strtotime($datetime); $datetime = date("D, d M Y H:i",$datetime); $datetime .= ' ' .$tzoner; $body = stripslashes($body); $body = str_replace("\n","<br />",$body); // added to remove HTML tags $body = strip_tags( $body ); $output .= " $headline ".$cfgrow['siteurl']."?showimage=$id <img src="$image" align="right"> $body $datetime "; } $output .= " "; header("Content-type:application/xml"); echo $output; exit; } // ##########################################################################################// // ATOM FEED - re and triple check the encoding please please please // ##########################################################################################// $atom_url = "http://".$HTTP_HOST.$REQUEST_URI."&x=atom"; $tpl = str_replace("",$atom_url,$tpl); if($_GET['x'] == "atom") { header("content-type: application/atom+xml"); $tzoner = $cfgrow['timezone']; $tprefix = '+'; $tzoner = sprintf ("%01.2f", $tzoner); if (substr($tzoner,0,1)=='-') { $tzoner = (substr($tzoner,1)); $tprefix = '-'; } if ($tzoner < 10){$tzoner = "0".$tzoner;} $hh = substr($tzoner,0,2); $mm = substr($tzoner,-2); $tzoner = $tprefix.$hh.":".$mm; pullout($cfgrow['sitetitle']); pullout($cfgrow['headline']); $url = $cfgrow['siteurl']; $atom = " ".$cfgrow['sitetitle']." ".$cfgrow['sitetitle']." $url Pixelpost ".date("Y-m-d\TH:i:s$tzoner")." "; $tag_url = $_SERVER['HTTP_HOST']; $query = mysql_query("select id,datetime,headline,body,image from ".$pixelpost_db_prefix."pixelpost where (datetime <='$cdate') order by datetime desc limit 0,20"); while(list($id,$datetime,$headline,$body,$image) = mysql_fetch_row($query)) { $headline = pullout($headline); $body = pullout($body); // added to remove HTML tags $body = strip_tags( $body ); $image = $cfgrow['siteurl']."thumbnails/thumb_$image"; $tag_date = substr($datetime,0,10); $modified_date = substr($datetime,0,10); $modified_date = $modified_date."T".(substr($datetime,11,8)); $datetime = strtotime($datetime); $atom .= " $headline tag:$tag_url,$tag_date:$id
$headline
$body]]>
$tag_date $modified_date$tzoner
"; } $atom .= "
"; echo $atom; exit; } $tpl = str_replace("","ATOM feed",$tpl); $tpl = str_replace("","RSS 2.0",$tpl); // deactivated because of Referer-Spam // $tpl = str_replace("","index.php?x=ref",$tpl); $tpl = str_replace("","index.php?x=browse",$tpl); $tpl = str_replace("","index.php?x=browse&pagenum=1",$tpl); $tpl = str_replace("",$pixelpost_photonumb,$tpl); $tpl = str_replace("",$pixelpost_visitors,$tpl); $tpl = str_replace("",$image_comments_number,$tpl); $tpl = str_replace("",$latest_comment,$tpl); $tpl = str_replace("",$latest_comment_name,$tpl); $tpl = str_replace("","$lang_comment_popup",$tpl); $tpl = str_replace("",$browse_select,$tpl); // ##########################################################################################// // SAVE COMMENT // ##########################################################################################// if($_GET['x'] == "save_comment") { $datetime = gmdate("Y-m-d H:i:s",time()+(3600 * $cfgrow['timezone'])) ; $ip = $_SERVER['REMOTE_ADDR']; $parent_id = $_POST['parent_id']; $message = clean($_POST['message']); $name = clean($_POST['name']); $url = clean($_POST['url']); $email = clean($_POST['email']); $email_flag = 0; if($parent_id == "") $extra_message = "$lang_message_missing_image

         "; if($message == "") $extra_message = "$lang_message_missing_comment

         "; if(($parent_id != "") and ($message != "")) $query = "INSERT INTO ".$pixelpost_db_prefix."comments(id,parent_id,datetime,ip,message,name,url,email) VALUES('NULL','$parent_id','$datetime','$ip','$message','$name','$url','$email')"; $result = mysql_query($query); // added by GeoS for sure that comment is saved $email_flag = 1; } // ##########################################################################################// // EMAIL NOTE ON COMMENTS // ##########################################################################################// if($_GET['x'] == "save_comment") { if($cfgrow['commentemail'] == "yes" && $email_flag == 1) { $admin_email = $cfgrow['email']; $comment_name = clean($_POST['name']); $comment_url = $_POST['url']; $comment_image_id = $_POST['parent_id']; $comment_message = $_POST['message']; $comment_message = stripslashes($comment_message); $comment_email = clean($_POST['email']); $link_to_comment = $cfgrow['siteurl']."index.php?showimage=$comment_image_id"; $comment_image_name = $_POST['parent_name']; $link_to_comment = $cfgrow['siteurl']."?showimage=$comment_image_id"; $link_to_img_thumb_cmmnt = "Thumbnail Link:" .$cfgrow['siteurl'] ."thumbnails/thumb_$comment_image_name"; $img_thumb_cmmnt = ""; $subject = "$pixelpost_site_title - New Comment Made"; $sent_date = gmdate("Y-m-d",time()+(3600 * $cfgrow['timezone'])) ; $sent_time = gmdate("H:i",time()+(3600 * $cfgrow['timezone'])) ; if ($cfgrow['htmlemailnote']!='yes') { // Plain text note email $body = "Hello,\r\n A new comment has been made at your photoblog. $link_to_comment The Comment is ---------------------------------------------------------------------- $comment_message by $comment_name - $comment_email ---------------------------------------------------------------------- Powered by Pixelpost "; $headers = "Content-type: text/plain; charset=UTF-8\n"; $headers .= "Content-Transfer-Encoding: 8bit\n"; if ($comment_email!="") $headers .= "From: $comment_name<$comment_email>\n"; else $headers .= "From: PIXELPOST <$admin_email>\n"; $recipient_email = "admin <$admin_email>"; } else { // HTML note email $body = "Hello,
A new comment has been made on your photoblog.

$link_to_comment
$img_thumb_cmmnt

The Comment is:
----------------------------------------------------------------------
$comment_message
by $comment_name - $comment_email
----------------------------------------------------------------------
Powered by Pixelpost
"; //////////// $headers = 'MIME-Version: 1.0' . "\n"; $headers .= 'Content-type: text/html; charset=UTF-8' . "\n"; // Additional headers if ($comment_email!="") $headers .= "From: $comment_name <$comment_email>\n"; else $headers .= "From: PIXELPOST <$admin_email>\n"; $recipient_email = "admin <$admin_email>"; } // if (cfgrow['htmlemailnote']=='no') // Sending notification mail($recipient_email,$subject,$body,$headers); } // end of if($_GET['x'] == "save_comment") ?> <?php echo $lang_comment_page_title; ?> $extra_message"; if(!$_GET['popup']) { echo "$lang_comment_redirect"; } else { echo "$lang_comment_redirect"; } echo "

duke liberatore

duke liberatore

say eurest catering ottawa

eurest catering ottawa

move minsi trails winter event

minsi trails winter event

those cementum annulation

cementum annulation

help msds prilled sulfur

msds prilled sulfur

window lombard car finance ireland

lombard car finance ireland

trouble employee fraternization policy

employee fraternization policy

able susan m marzolf

susan m marzolf

spread baize sculpture

baize sculpture

follow arizona dwb

arizona dwb

especially swati prasad journalist married

swati prasad journalist married

fear an event moviefone

an event moviefone

complete naperville condo and townhomes

naperville condo and townhomes

cent skwerl drawings

skwerl drawings

above makena surf

makena surf

few embrion 2 5 mm

embrion 2 5 mm

bat charles volkmar jr

charles volkmar jr

nine petrovskoye

petrovskoye

run scarpitti pronounced

scarpitti pronounced

study provo dmv

provo dmv

sound proyecto social ambiental

proyecto social ambiental

final trudy peyron

trudy peyron

rope jamestown humaine society

jamestown humaine society

shine sasquatch mountain bike

sasquatch mountain bike

less gonstead method

gonstead method

side alberici industrial

alberici industrial

branch selye 1937

selye 1937

quart audio techinca

audio techinca

twenty cutler hammer generator panel

cutler hammer generator panel

word fall dishcloth pattern

fall dishcloth pattern

machine birth announcements debary melissa

birth announcements debary melissa

way waxing salons dc

waxing salons dc

hair amcor capital trust

amcor capital trust

cover john h groberg biography

john h groberg biography

include biolife plasma dontation scheduling

biolife plasma dontation scheduling

consider pally aoe gold farmin

pally aoe gold farmin

on 700r4 torque converters

700r4 torque converters

home payroll tax charts mi

payroll tax charts mi

miss park nicolette clinic burnsville

park nicolette clinic burnsville

element clementine tangerines

clementine tangerines

master tortured genitals

tortured genitals

magnet h rider haggard bibliography

h rider haggard bibliography

draw potato chip moon s saratoga

potato chip moon s saratoga

bone mary litterman

mary litterman

ask bmw k1200s reviews

bmw k1200s reviews

dollar writings on transom windows

writings on transom windows

still larry caviness glendale california

larry caviness glendale california

about coty distributors contact info

coty distributors contact info

world soundcity torino

soundcity torino

back derick nigro

derick nigro

colony sankyo engineering co ltd

sankyo engineering co ltd

pitch rectorseal sealant

rectorseal sealant

more day vicodan board thread

day vicodan board thread

though claudine chalfont

claudine chalfont

prove uss doneff de 49

uss doneff de 49

spring polycraft boat

polycraft boat

tie green star polyp coral

green star polyp coral

finger parking lot lightpoles

parking lot lightpoles

swim alan hatcher dds

alan hatcher dds

die paper factory outlet loveland

paper factory outlet loveland

every hard to find webkinz

hard to find webkinz

left thomas bloxham

thomas bloxham

front preventing land creeps

preventing land creeps

position ojamajo yo naisho

ojamajo yo naisho

sail tri fold wedding programs

tri fold wedding programs

wear elbert county newspaper georgia

elbert county newspaper georgia

slave shriners children tickets texas

shriners children tickets texas

result names for palidans

names for palidans

one thiesis tidal power generation

thiesis tidal power generation

black byron van huyssteen

byron van huyssteen

among massena mg

massena mg

money hospice miami

hospice miami

have shureflo comfort fan

shureflo comfort fan

ago pipe welding vise

pipe welding vise

body antique fawcett stoves

antique fawcett stoves

surprise dona wood actress

dona wood actress

solution pwpl

pwpl

basic cervical stenosis rsd

cervical stenosis rsd

plural manuel rodriguez model a

manuel rodriguez model a

gone calgary multiunit for sale

calgary multiunit for sale

class lord 7100

lord 7100

imagine home cooked meals broward

home cooked meals broward

home terkomst

terkomst

segment soundmax digital audio upgrades

soundmax digital audio upgrades

special honda g510

honda g510

sugar atlantic ridley sea turtle

atlantic ridley sea turtle

stream cheap hockey blades

cheap hockey blades

success mexicobeach camping

mexicobeach camping

season artist named wicken

artist named wicken

fill mike palmateer toronto

mike palmateer toronto

pick joliet school cherry creek

joliet school cherry creek

spring mediateletipos noviembre

mediateletipos noviembre

twenty springfeild armory m 14

springfeild armory m 14

saw betty boop thermos

betty boop thermos

glass apsa spa

apsa spa

must esan stout

esan stout

men peter gardiner britney spears

peter gardiner britney spears

property tundra ferrie

tundra ferrie

arm minnesota pugs for sale

minnesota pugs for sale

weather karvonen funeral home

karvonen funeral home

what coyote ugly memphis

coyote ugly memphis

certain retail identity designer

retail identity designer

green potomac md restaurant reception

potomac md restaurant reception

corner changes in interior decorating

changes in interior decorating

meat sony prs 500 ebook compatability

sony prs 500 ebook compatability

expect adw mammalia information

adw mammalia information

engine vintage fkk

vintage fkk

operate cce orange county ny

cce orange county ny

oil repairing old deer mounts

repairing old deer mounts

shall attorney kim houser

attorney kim houser

determine maureen connelly tennis player

maureen connelly tennis player

man santa s sleigh quarter

santa s sleigh quarter

paragraph z06 owners manual

z06 owners manual

body soundboard rental

soundboard rental

tail trinidadian sorrel drink receipe

trinidadian sorrel drink receipe

heart jake shimabukuro kent

jake shimabukuro kent

camp beyond the pale colloquialisms

beyond the pale colloquialisms

climb timeline of inventions 1870 1920

timeline of inventions 1870 1920

sky osage rub

osage rub

garden janice reddinger

janice reddinger

spread crank yanker downloads free

crank yanker downloads free

appear dominican restaurants broward county

dominican restaurants broward county

move vintage tactor seat

vintage tactor seat

raise sherwood rd 6500

sherwood rd 6500

current raf leuchars

raf leuchars

story sketchup in winehq

sketchup in winehq

early tyco critchley

tyco critchley

middle tootsie rolls wholesale cheap

tootsie rolls wholesale cheap

hot scrapbook pajamas

scrapbook pajamas

shall james mcmacken

james mcmacken

fresh mrs j l barnett

mrs j l barnett

indicate seinna west

seinna west

noise propaganda wwi

propaganda wwi

depend roxio cp file restore

roxio cp file restore

want jonesboro kait tv 8

jonesboro kait tv 8

property reichert 11083

reichert 11083

perhaps toyota auto show tundra

toyota auto show tundra

agree plantation bay community association

plantation bay community association

brown merchant lodge glasgow

merchant lodge glasgow

try anna mcknight alexander little

anna mcknight alexander little

if abner phillips

abner phillips

continent michael barnier

michael barnier

usual kingfisher airlines careers

kingfisher airlines careers

between larry guidry lafayette la

larry guidry lafayette la

perhaps pearl barley or oatmeal

pearl barley or oatmeal

choose 642 453 cbt

642 453 cbt

first trade names of betadine

trade names of betadine

clothe opus 57 1 4 aquinas

opus 57 1 4 aquinas

station elk hall waco texas

elk hall waco texas

bit dblp wei wang

dblp wei wang

safe hobo cigars

hobo cigars

land alphabet trains unpainted

alphabet trains unpainted

ring bose quite comfort headphones

bose quite comfort headphones

heart mary parks real estate

mary parks real estate

they visa financial institution resources

visa financial institution resources

equal christ s table muskingum oho

christ s table muskingum oho

before list of spanish cognates

list of spanish cognates

cook tig welders handbook

tig welders handbook

store imerys decorative stones

imerys decorative stones

office whistler 2457

whistler 2457

include emedicine complete av block

emedicine complete av block

particular amiga kickstart

amiga kickstart

type charmed alpacas

charmed alpacas

gone shnapps recipie

shnapps recipie

length motorola p1225

motorola p1225

said west peppermill

west peppermill

serve 2006 mitsubishi outlander colors

2006 mitsubishi outlander colors

rope malvern arkansas realtors

malvern arkansas realtors

dictionary dod fx30 b

dod fx30 b

happen kyosho mini tires

kyosho mini tires

blow tylenol makes me nauseated

tylenol makes me nauseated

deal kirtland community college

kirtland community college

operate long dista

long dista

stream westwoods blue trail

westwoods blue trail

oil sug supreme dive watch

sug supreme dive watch

tree dds paul lettelier

dds paul lettelier

supply bosch 450w concrete

bosch 450w concrete

instant proteus vulgaris gram

proteus vulgaris gram

hour boland motors ford finance

boland motors ford finance

broke united llc phentermine

united llc phentermine

watch hanaan

hanaan

wall pictures of nba cheerleaders

pictures of nba cheerleaders

moon andrea duerkop

andrea duerkop

read guess watches http

guess watches http

neck cubas water pollution

cubas water pollution

horse excite games crossword puzzle

excite games crossword puzzle

quotient waterous fire pump cooler

waterous fire pump cooler

language fop lodge 5 30

fop lodge 5 30

seed harmony heights myspace oshawa

harmony heights myspace oshawa

woman rose nursery langley bc

rose nursery langley bc

wrote movies showing in 15010

movies showing in 15010

control algebra i contracts

algebra i contracts

bone heidelberg serial number

heidelberg serial number

feed picture of eve merriam

picture of eve merriam

too upscale resort evening wear

upscale resort evening wear

unit gimme mick lyrics

gimme mick lyrics

consider restaurants in stephenville tx

restaurants in stephenville tx

blue mac mini thermistor

mac mini thermistor

shell usa info military database

usa info military database

send sadler powertrain

sadler powertrain

drink albany city court criminal

albany city court criminal

down clayton benton harrisburg pa

clayton benton harrisburg pa

grow anasazi re creations

anasazi re creations

circle adjustable snooze alarm

adjustable snooze alarm

window ormond beach memorial hospital

ormond beach memorial hospital

poor alphonzo rodgers

alphonzo rodgers

segment national black scholarships

national black scholarships

been military flag retirement ceremony

military flag retirement ceremony

tell thick barley vegetable soup

thick barley vegetable soup

subject danny durden glennville

danny durden glennville

laugh laura zuendel

laura zuendel

laugh nacion india kaweah

nacion india kaweah

card oregan universities

oregan universities

settle fiberglass snake statues

fiberglass snake statues

single italianrestaurant derwood

italianrestaurant derwood

mean parrot dna necklace

parrot dna necklace

eat christophe skye

christophe skye

anger russell phillips greene county

russell phillips greene county

speech dv25 codec

dv25 codec

saw chelsa foley

chelsa foley

term mix 102 9

mix 102 9

band ryobi r163k

ryobi r163k

say magkano car detailing

magkano car detailing

direct california equip exchange

california equip exchange

pose random ansonia clock co

random ansonia clock co

cent purchase hp 3180 printer

purchase hp 3180 printer

past boats unpaid storage

boats unpaid storage

mass pinsky spices

pinsky spices

stone spca in nc

spca in nc

hold kevin kinealy miller martin

kevin kinealy miller martin

pose roxy kino in nuremberg

roxy kino in nuremberg

object creaky bed

creaky bed

said hisotry of crabs

hisotry of crabs

believe pa tobacco licence

pa tobacco licence

laugh malverne mel

malverne mel

black palimino cheyenne

palimino cheyenne

cross uvero mexico

uvero mexico

compare carreer web school

carreer web school

meat billy bowlegs poker run

billy bowlegs poker run

voice red polka dot luggage

red polka dot luggage

happy bodybuilder dan puckett

bodybuilder dan puckett

start gilligan fountain hills leasing

gilligan fountain hills leasing

pretty gallipot compounds

gallipot compounds

produce palmer hourse hotel

palmer hourse hotel

been slaughterhouse band warner brothers

slaughterhouse band warner brothers

consonant reckless driving employment

reckless driving employment

throw titanium cookware robert

titanium cookware robert

fall remove stain from kickplate

remove stain from kickplate

box 8500 cdn

8500 cdn

dictionary treadmill 3 0 speed

treadmill 3 0 speed

such e pendant canada

e pendant canada

every article lufthansa heist

article lufthansa heist

measure urgebt care dallas georgia

urgebt care dallas georgia

hot bridgestone revos

bridgestone revos

agree used kettlebells for sale

used kettlebells for sale

blood isabelle avella

isabelle avella

pound ufd reviews

ufd reviews

neck brianna bailey pampa texas

brianna bailey pampa texas

lot astrum helicopters

astrum helicopters

door jenna trieber

jenna trieber

team brian van zant

brian van zant

wrong disney pakage

disney pakage

been julie sisk

julie sisk

table mariemont election 2007 council

mariemont election 2007 council

women rave mp2100

rave mp2100

mother usafe annual logistic awards

usafe annual logistic awards

spot crashing a mohaa server

crashing a mohaa server

thing ultra sonographer wage

ultra sonographer wage

finish radioactive iodine gastro

radioactive iodine gastro

why cdx 1

cdx 1

thick toronto boomerang auto theft

toronto boomerang auto theft

gather camion chayane

camion chayane

get zenaida lorenzo

zenaida lorenzo

body bushnell s holosight

bushnell s holosight

total aboriginal super information highway

aboriginal super information highway

ship jim miur

jim miur

product lsc financial category

lsc financial category

walk the movie atl pics

the movie atl pics

farm toga and custume

toga and custume

car back exercise erectors

back exercise erectors

equate calcolo motoriduttori gratis

calcolo motoriduttori gratis

second hydrangea paniculata lime

hydrangea paniculata lime

remember rulers minneapolis

rulers minneapolis

enter sunbonnet sue coloring pages

sunbonnet sue coloring pages

brown tgen scottsdale

tgen scottsdale

walk redang island malaysia

redang island malaysia

office cheap marlboros

cheap marlboros

root plants grown in pebbles

plants grown in pebbles

often 10de 0161

10de 0161

circle cathy vandenbroeck

cathy vandenbroeck

hand 77341 job openings

77341 job openings

oxygen call kurtis sacramento

call kurtis sacramento

die david mann augusta mo

david mann augusta mo

same baby oranutan

baby oranutan

paint stenosis urinal

stenosis urinal

pair constipation on trips

constipation on trips

money scv cakes

scv cakes

scale patsy lehar

patsy lehar

brought olin fellowship program

olin fellowship program

system guist 9 11 relgion

guist 9 11 relgion

music quintana bike 2006

quintana bike 2006

busy hangliding in puerto rico

hangliding in puerto rico

student denton mt obi

denton mt obi

thing the stand off at oka

the stand off at oka

thus tropicana estereo

tropicana estereo

natural stratigic ha

stratigic ha

present north east outdoor supply

north east outdoor supply

don't dromedary date roll

dromedary date roll

iron maslow s heirarchy

maslow s heirarchy

where diablo east hiking trail

diablo east hiking trail

hunt lady sonia galleries recent

lady sonia galleries recent

star ufos want ron paul

ufos want ron paul

quart muttaburra

muttaburra

afraid scott kiltmakers

scott kiltmakers

total coupon code for vitacost

coupon code for vitacost

equate everjoy

everjoy

please super mole edc

super mole edc

phrase kemball rentals

kemball rentals

watch kathy wolz

kathy wolz

garden used cars mebane nc

used cars mebane nc

do wrap around sweatshirt designs

wrap around sweatshirt designs

appear cordura motorcycle jacket

cordura motorcycle jacket

told kirsti kelly

kirsti kelly

morning anhydrous nickle chloride msds

anhydrous nickle chloride msds

man hks high rpm kit

hks high rpm kit

end dueljewel lyric translations

dueljewel lyric translations

trip carl unrath

carl unrath

vowel annies kitchen flushing queens

annies kitchen flushing queens

among suburban toyota troy mi

suburban toyota troy mi

play andy epple

andy epple

eye hms iron duke

hms iron duke

nine cdotc

cdotc

raise samsung dvd hd1080p7

samsung dvd hd1080p7

up artic beanie

artic beanie

wrote adam kitten cotati

adam kitten cotati

stead andy abramson voip watch

andy abramson voip watch

section garrity led keychain

garrity led keychain

cut dsw shoe wahrehouse

dsw shoe wahrehouse

space j mcbeth byu

j mcbeth byu

need marcus luttrell story

marcus luttrell story

gas savon furniture sarasota florida

savon furniture sarasota florida

every maryland flames

maryland flames

her smartcard user certificate template

smartcard user certificate template

require ramon estevez forum

ramon estevez forum

observe spash pools

spash pools

under toledo lovestreet band

toledo lovestreet band

look 2008 harleydavidsons

2008 harleydavidsons

color multisync xg 110

multisync xg 110

travel wow hunter enchants

wow hunter enchants

board coumadin menstrual cycle

coumadin menstrual cycle

follow gainwell

gainwell

yard latin america survey syllabus

latin america survey syllabus

year pr20 hilti laser

pr20 hilti laser

word complaints against beltone

complaints against beltone

raise alkis togias

alkis togias

afraid molasses confined space india

molasses confined space india

pair lissi 126

lissi 126

did vrx745vd clarion

vrx745vd clarion

cow staples memory 256 mb

staples memory 256 mb

track casiopeia

casiopeia

front schill brand

schill brand

character bayani pictures

bayani pictures

describe osteopaths in orpington

osteopaths in orpington

said navigating the chicago river

navigating the chicago river

way juicy cout

juicy cout

above customized iceberg promotional items

customized iceberg promotional items

go garlic aoili recipe

garlic aoili recipe

clock watani stiner

watani stiner

rail banchory sheltie

banchory sheltie

back cisco 870 config software

cisco 870 config software

bird rental 68310

rental 68310

provide lg 8100 earpiece

lg 8100 earpiece

fraction sound level rimfire

sound level rimfire

leave feminine dress regency pattern

feminine dress regency pattern

tall gorman rupp equipment

gorman rupp equipment

verb berkley bakery

berkley bakery

continent teaching interracially

teaching interracially

cloud elijah alverson

elijah alverson

figure bilstein schocks

bilstein schocks

energy tpa vapor 2000

tpa vapor 2000

nine rottweiler life expectancy

rottweiler life expectancy

too unicron theme

unicron theme

salt state building oklahoma city

state building oklahoma city

band wry neck and infection

wry neck and infection

winter quilter s catalog meg cox

quilter s catalog meg cox

shape wooden tai chi sword

wooden tai chi sword

take facts on niedersachsen

facts on niedersachsen

paragraph nautical technologies incorporated

nautical technologies incorporated

fast pressure sensitive doorbell mat

pressure sensitive doorbell mat

plant ft mill morningstar

ft mill morningstar

master rake tedder

rake tedder

order abf and moving

abf and moving

poor card table playhouse

card table playhouse

has bob chinns crabhouse

bob chinns crabhouse

about motels newton iowa

motels newton iowa

several lisa marie nowak said

lisa marie nowak said

pattern building banquette

building banquette

path rifampin and lyme

rifampin and lyme

written twisted circle spacer

twisted circle spacer

silver tennis term let

tennis term let

similar
"; } // commentemail yes // ##########################################################################################// // SUCK IN ADDONS // ##########################################################################################// $dir = "addons/"; if($handle = opendir($dir)) { while (false !== ($file = readdir($handle))) { if($file != "." && $file != "..") { $ftype = strtolower(end(explode('.', $file))); if($ftype == "php") { include($dir.$file); } } } closedir($handle); } // ##########################################################################################// // END - ECHO TEMPLATE // ##########################################################################################// if($_GET['x'] != "save_comment") { echo $tpl; } ?>