_directory = $f; parent::__construct(); // substr(bdb_idtofile($id), -strlen(EXT)); } function _checkFile($directory, $file) { $f = "$directory/$file"; if (fnmatch('comment*' . EXT, $file)) { array_push($this->_list, basename($file, EXT)); return 0; } } // overrides parent method to return sorted results function getList() { sort($this->_list); return parent::getList(); } } /** * function bdb_get_comments * *

On success returns an array containing the comment IDs, associated to * the entry ID in $id

*

On failure returns false

* * @param string $id * string formatted like "prefixYYMMDD-HHMMSS.EXT" * @return mixed * * @see bdb_idtofile() */ function comment_getlist($id) { $obj = new comment_indexer($id); // todo change syntax return $obj->getList(); } function comment_parse($entryid, $id) { $f = comment_exists($entryid, $id); if (!$f) return false; $fc = io_load_file($f); $arr = utils_kexplode($fc); // $arr['EMAIL'] = apply_filters('comment_email', $arr['EMAIL']); // hackish: dash to underscore for ip-address :( todo: clean this up here or somewhere else // $arr['ip_address'] = $arr['ip-address']; return array_change_key_case($arr, CASE_LOWER); } function comment_exists($entryid, $id) { if (!preg_match('|^comment[0-9]{6}-[0-9]{6}$|', $id)) return false; $f = entry_exists($entryid); if (!$f) return false; $f2 = substr($f, 0, -strlen(EXT)) . '/comments/' . $id . EXT; if (!file_exists($f2)) return false; return $f2; } function comment_clean(&$arr) { $arr ['name'] = strip_tags(apply_filters('pre_comment_author_name', stripslashes($arr ['name']))); if (isset($arr ['email'])) { $arr ['email'] = strip_tags(apply_filters('pre_comment_author_email', $arr ['email'])); } if (isset($arr ['url'])) { $arr ['url'] = strip_tags(apply_filters('pre_comment_author_url', $arr ['url'])); } $arr ['content'] = strip_tags(apply_filters('pre_comment_content', $arr ['content'])); return $arr; } /** * function bdb_save_comment * *

Saves the content of the $comment array, associating it to the entry-ID $id.

*

$comment must be formatted as the one returned by {@link bdb_parse_entry()}.

*

Returns true on success, or false on failure

* * @param string $id * string formatted like "prefixYYMMDD-HHMMSS" * @param array $comment * array formatted as the one returned by {@link bdb_parse_entry()} * @return bool * * @see bdb_parse_entry() */ function comment_save($id, $comment) { comment_clean($comment); $comment = array_change_key_case($comment, CASE_UPPER); $comment_dir = bdb_idtofile($id, BDB_COMMENT); if (!isset($comment ['DATE'])) $comment ['DATE'] = date_time(); $id = bdb_idfromtime(BDB_COMMENT, $comment ['DATE']); $f = $comment_dir . $id . EXT; $str = utils_kimplode($comment); if (io_write_file($f, $str)) return $id; return false; } /** * function comment_delete * *

Deletes the $id comment

*

Returns true on success, or false on failure

* * @param string $id * string formatted like "entryYYMMDD-HHMMSS" * @param string $comment_id * string representig comment id as in "commentYYMMDD-HHMMSS" * @return bool * * @see entry_delete() */ function comment_delete($id, $comment_id) { do_action('comment_delete', $id, $comment_id); $comment_dir = bdb_idtofile($id, BDB_COMMENT); $f = $comment_dir . $comment_id . EXT; return fs_delete($f); } function dummy_comment($val) { return $val; } add_filter('comment_validate', 'dummy_comment'); ?>