*/ /** * 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;
}
?>