I need php api, and i start it make. I take library predis for it. I added class topic_add and saw how it hard ) But i think what can be variants easier. Please tell me in the right way in me?
code:
class pr{
function topic_add($title='', $content='', $category=2, $link='', $user=1){
global $trans, $redis, $char_restrict, $word_separator;
// get topics and last index
$m = array();
foreach ( $redis->keys('topic:*') as $v ){
$n = explode(':', $v)[1];
$m[] = $n;
} sort($m);
$tli = end($m)+1;
// get posts and last index
$m = array();
foreach ( $redis->keys('post:*') as $v ){
$n = explode(':', $v)[1];
$m[] = $n;
} sort($m);
$pli = end($m)+1;
// vals
$ut = time().'000';
$title =
isset($title) && trim($title) != ''
? $title
: 'Новый топик'.$tli;
$link =
isset($link) && trim($link) != ''
? $trans->stripAlias($link, $char_restrict, $word_separator)
: $trans->stripAlias($title, $char_restrict, $word_separator);
$category =
isset($category) && trim($category) != ''
? $category
: 1;
$content =
isset($content) && trim($content) != ''
? $content
: 'В ближайшее время тема обязательно будет описана';
$user =
isset($user) && trim($user) != ''
? $user
: 1;
$topics = array(
tid => $tli,
uid => $user,
cid => $category,
mainPid => $pli,
title => $title,
slug => $tli.'/'.$link,
timestamp => $ut,
lastposttime => $ut,
postcount => 0,
viewcount => 0,
locked => 0,
deleted => 0,
pinned => 0
);
foreach ($topics as $k => $v) {
$redis->hset('topic:'.($tli), $k, $v);
}
$posts = array(
pid => $pli,
uid => $user,
tid => $tli,
content => $content,
timestamp => $ut,
reputation => 0,
votes => 0,
editor => '',
edited => '0',
deleted => 0
);
foreach ($posts as $k => $v) {
$redis->hset('post:'.($pli), $k, $v);
}
$redis->zadd('cid:'.$category.':tids', $ut, $tli);
$redis->zadd('cid:'.$category.':pids', $ut, $pli);
$redis->zadd('topics:posts', 1, $tli);
$redis->zadd('topics:recent', $ut, $tli);
$redis->zadd('topics:tid', $ut, $tli);
}
function category_get ($what=''){
}
function category_add ($name='', $parent='', $link='', $class='col-md-12 col-xs-6 '){
global $trans, $redis, $char_restrict, $word_separator;
// get categories and last index
$m = array();
foreach ( $redis->keys('category:*') as $v ){
$n = explode(':', $v)[1];
$m[] = $n;
} sort($m);
$cli = end($m)+1;
}
} $pr = new pr;
I think it would be useful to many.