*/ /** * entry id prefix and identifier */ define('BDB_ENTRY', 'entry'); /** * comment id prefix and identifier */ define('BDB_COMMENT', 'comment'); /** * default file extension */ define('EXT', '.txt'); /** * function bdb_idtofile * *
Takes the id $id and returns a filepath
* * @param string $id string formatted like "prefixYYMMDD-HHMMSS.EXT" * @return string */ function bdb_idtofile($id,$type=null) { $fname = $id.EXT; $date = date_from_id($id); if (!$date) return false; $path = CONTENT_DIR . $date['y'] . '/' . $date['m'] . '/'; if ($type == null || $type == BDB_ENTRY) { $path .= $fname; } elseif ($type == BDB_COMMENT) { $path .= $id . '/comments/'; } return $path; } /** * function bdb_idfromtime * *Returns a well formatted id for entry type specified in $type * and date eventually specified in $date;
* * @param string $type one of the BDB_ constants * @param int $timestamp UNIX timestamp * @return string */ function bdb_idfromtime($type, $timestamp=null) { if (!$timestamp) $timestamp=time(); /*if (!ctype_digit($timestamp)) { trigger_error("bdb_idfromtime(): $timestamp Not a valid timestamp", E_USER_WARNING); }*/ return $type . date('ymd-His', $timestamp); } /** * function bdb_filetoid * *Cosmetic wrapper to basename($file, EXT)
* * @param string $file filepath of the blogdb entry * @return string * * @todo validate returned id */ function bdb_filetoid($file) { return basename($file, EXT); } /** * function bdb_parse_entry * *Parses the entry file passed as parameter; returns an associative array * of the file content
* Tipically, entry arrays are usually made of these keys * - VERSION : SimplePHPBlog or compatible blogs' version identifier string * - SUBJECT : Subject of the entry * - CONTENT : Content of the entry * - DATE : UNIX filestamp to format by {@link date_format()}. * * comments usually provide also * - NAME : author name * - EMAIL : author email (if any) * - URL : author website url (if any) * * A common usage of the function could be *
	 * 
	 * 
	 *
	 * @param string $file filepath of the blogdb entry
	 * @return string
	 *
	 * @todo validate returned id
	 */
	function bdb_parse_entry($id, $type=null) {
	
		if (file_exists($id))
			$file = $id;
		else
			$file = bdb_idtofile($id, $type);
			
		
		if (file_exists($file)) {
			$contents = io_load_file($file);
			// TODO: here we must add compatibility to encoding conversion!
			// if "dumb" (legacy :D) mode is enabled (set to true in default.php, then we set parsing
			// to ignore array key case (defaults to true i.e. check them to be uppercase or failing otherwise
			$entry = utils_kexplode($contents, '|', !DUMB_MODE_ENABLED);
		
			return $entry;
		} else return false; 
		
	}
?>