everything(everything): simply saving work
This commit is contained in:
parent
0f2761cd61
commit
76ca7b9c32
25 changed files with 1330 additions and 561 deletions
86
www/src/db_handler/db_interface.php
Normal file
86
www/src/db_handler/db_interface.php
Normal file
|
@ -0,0 +1,86 @@
|
|||
|
||||
<?php
|
||||
|
||||
function sanitize_post_path($post_path) {
|
||||
$post_path = chop($post_path, '/');
|
||||
|
||||
if($post_path == "") {
|
||||
return "";
|
||||
}
|
||||
|
||||
if(!preg_match('/^(?:\/[\w-]+)+(?:\.[\w-]+)*$/', $post_path)) {
|
||||
echo "Post path match against " . $post_path . " failed!";
|
||||
die();
|
||||
}
|
||||
|
||||
return $post_path;
|
||||
}
|
||||
|
||||
function escape_tag($tag) {
|
||||
return preg_replace_callback('/[\WZ]/', function($match) {
|
||||
return "Z" . ord($match[0]);
|
||||
}, strtolower($tag));
|
||||
}
|
||||
|
||||
function escape_search_tag($tag) {
|
||||
preg_match("/^([\+\-]?)(.*?)(\*?)$/", $tag, $matches);
|
||||
|
||||
if(!isset($matches[1])) {
|
||||
echo "Problem with tag!";
|
||||
var_dump($tag);
|
||||
}
|
||||
|
||||
return $matches[1] . $this->escape_tag($matches[2]) . $matches[3];
|
||||
}
|
||||
|
||||
interface PostdataInterface {
|
||||
/* Postdata format:
|
||||
*
|
||||
* The Postdata array is a simple intermediate data format
|
||||
* for the Post content and metadata.
|
||||
* It is slightly abstracted from the SQL format itself but will
|
||||
* only reformat keys, *not* do any alteration of the data itself.
|
||||
*
|
||||
* Any supported fields will be integrated into the database.
|
||||
* Other fields will be saved in a JSON structure, and will
|
||||
* be restored afterward.
|
||||
*
|
||||
* The following fields are mandatory for *writing*
|
||||
* - path: String, must be sanitized to consist of just alphanumeric
|
||||
* characters, `_-./`
|
||||
* used to identify the post itself
|
||||
*
|
||||
* The following fields may be returned by the database:
|
||||
* - id
|
||||
* - created_at
|
||||
* - updated_at
|
||||
* - view_count
|
||||
*
|
||||
* The following fields may be supported by the database:
|
||||
* - markdown: String, markdown of the post. May be
|
||||
* stored separately and won't be returned by default!
|
||||
* - type: String, defining the type of the post
|
||||
* - title: String, self-explanatory
|
||||
* - tags: Array of strings
|
||||
* - settings: Hash, recursively merged settings (calculated by DB!)
|
||||
*
|
||||
* The following fields are *recommended*, but nothing more:
|
||||
* - icon: String, optionally defining
|
||||
*/
|
||||
|
||||
public function stub_postdata($path);
|
||||
public function stub_postdata_tree($path);
|
||||
|
||||
public function set_postdata($data);
|
||||
public function set_post_markdown($id, $markdown);
|
||||
|
||||
public function get_postdata($path);
|
||||
// Returns a key-value pair of child paths => child data
|
||||
public function get_post_children($path,
|
||||
$limit = 50, $depth_start = 1, $depth_end = 1,
|
||||
$order_by = 'path');
|
||||
|
||||
public function get_post_markdown($id);
|
||||
}
|
||||
|
||||
?>
|
Loading…
Add table
Add a link
Reference in a new issue