"January", "Feb" => "February", "Mar" => "March", "Apr" => "April", "May" => "May", "Jun" => "June", "Jul" => "July", "Aug" => "August", "Sep" => "September", "Oct" => "October", "Nov" => "November", "Dec" => "December", ); function EntryClass($p) { $this->_path = $p; $this->_files = $this->getFiles(); } function getFileNum() { return count($this->_files); } function getFiles() { $tmp = ""; if ( $handle = opendir($this->_path) ) { while (false !== ($file = readdir($handle))) { if( preg_match ("/\d*.j$/", $file ) ) { if ( $tmp != "" ) { $tmp .= "|".$file; } else { $tmp = $file; } } } } closedir($handle); $files = split("\|", $tmp) ; sort ($files); return $files; } function getEntry($num) { if ($num > count($this->_files) || $num<1 ) return 0; $entry = array( "date" => "", "title" => "", "content" => "", ); $filename = $this->_path.$this->_files[$num-1]; $handle = fopen( $filename, "r"); $file = fread ($handle, filesize ($filename)); fclose ($handle); $pattern = "/(.*)<\/date>"; $pattern .= ".*(.*)<\/title>"; $pattern .= ".*<content>(.*)<\/content>/s"; if (preg_match($pattern, $file, $matches)) { $entry["date"] = $matches[1]; $entry["title"] = $matches[2]; $entry["content"] = $matches[3]; } return $entry; } function dispEntry($num) { $entry = $this->getEntry($num); print "<h3>".$entry["title"]."</h3>"; print "<div class=\"timeStamp\">".$entry["date"]."</div>"; print $entry["content"]; } function listEntries() { $n = count($this->_files); $curM = ""; for( $i=$n; $i>0; $i--) { if ( $entry = $this->getEntry($i) ) { $date = ereg_replace("\ ", "|", $entry["date"]); $date = split("\|", $date); if ($date[1] != $curM) { if ($curM != "" ) { print "</ul>\n"; } $curM = $date[1]; print "<h3>".$this->_months[$curM]." ".$date[2]."</h3>\n"; print "<ul class=\"archive\">\n"; } print "<li>#".$i." - <a class=\"archive\" href=\"".$PHP_SELF."?archive:".$i."\" desc=\"\" >"; print $date[0]." ".$this->_months[$curM]." :: ".$entry["title"]."</a></li>\n"; } } print "</ul>\n"; } } ?>