X-Git-Url: http://git.harvie.cz/?a=blobdiff_plain;ds=sidebyside;f=wwwroot%2Fbackend%2Fmysql%2Fbackend.inc;h=d0861e1bd0166329903ca001a0a05389feb0499d;hb=92ac14b2de96259830a9a35cfd4f2f1485006334;hp=f72a1025162d95aef1c54a3d78ad6a5c9c1fd812;hpb=d69b37e1bc784d7510f587add2a6b9b14ba3b2fe;p=mirrors%2FKyberia-bloodline.git diff --git a/wwwroot/backend/mysql/backend.inc b/wwwroot/backend/mysql/backend.inc index f72a102..d0861e1 100644 --- a/wwwroot/backend/mysql/backend.inc +++ b/wwwroot/backend/mysql/backend.inc @@ -541,7 +541,7 @@ public static function logout() { // getNodesByType -// +// XXX // Secure // returns xxx @@ -574,5 +574,134 @@ public static function getNodesByType($vector,$user_id,$type,$orderby,$offset,$l return $result; } +// getLinkedNodes + +// XXX +// Secure +// returns XXX + +public static function getLinkedNodes($node_id,$orderby,$offset,$listing_amount) { + global $db; + + if ((!is_numeric($node_id)) + or (!is_numeric($offset)) + or (!is_numeric($listing_amount))) + { return false; } // XXX check return value by caller? + $orderby=db_escape_string($orderby); + + $q="select neurons.synapse_created,node_content,author.login,linker.login as linker,nodes.* from neurons + left join nodes on neurons.src=nodes.node_id + left join users as linker on neurons.synapse_creator=linker.user_id + left join users as author on nodes.node_creator=author.user_id + where dst='$node_id' and link in ('hard','bookmark') + order by $orderby desc limit $offset , $listing_amount"; + + $result=$db->query($q); + while ($result->next()) { + $array=$result->getRecord(); + transport_process_node($array); // XXX + $array['node_status']="linked"; + $array['node_created']=$array['synapse_created']; + $get_linked_nodes[]=$array; + } + return (isset($get_linked_nodes) ? $get_linked_nodes : false); +} + +// getThreadedChildren + +// XXX +// XXX FUCKING MESS, argh +// returns XXX + +// if ($limit > DEF_MAX_GET_THREADED_CHILDREN) +// $limit = DEF_MAX_GET_THREADED_CHILDREN; +// +// // XXX this should go to separate function +// +// if (!empty($params['search'])) { +// if ($params['search_type']=='content') $sql_type.=" and node_content like '%".addslashes($params['search'])."%' "; +// else { +// $q2="select user_id from users where login='".$params['search']."'"; +// $userset=$db->query($q2); +// $userset->next(); +// $id=$userset->getString('user_id'); +// $sql_type=" and nodes.node_creator='$id'"; +// } +// +// } + + +public static function getThreadedChildren($offset,$limit,$orderby,$time,$synapse_time,$security,$link,$search,$search_param) { + global $db; + + $sql_synapse=""; + $sql_type=""; + if ($synapse_time) { $sql_synapse.=" and node_created >'".db_escape_string($synapse_time)."'"; } + + if ($orderby=='' OR $orderby=='desc') { + $orderby="concat(node_vector,'z') desc,depth"; + } else { + $orderby="node_vector asc"; + } + + if ($time) { + $sql_time="node_created > '".db_escape_string($time)."' and"; + } + + // WTF? + if ($security) { $security=" and node_system_access!='private'"; } + else { $security = ""; } + + + if ($search=='content') { + $sql_type.=" and node_content like '%".db_escape_string($search_param)."%' "; + } + if ($search=='user') { + if (!is_numeric($search_param)) { return false; } + $sql_type=" and nodes.node_creator='$search_param'"; + } + + + + if ($link=='yes') $q.="("; + $q.="select nodes.node_id,node_name,node_external_access,external_link,node_parent, + node_system_access,node_children_count,node_creator,node_created,lastchild_created, + k,node_views,node_descendant_count,lastdescendant_created,template_id,node_updated, + length(node_vector) as depth,users.login,node_vector, node_content,'' as synapse_creator + from nodes + left join users on users.user_id=nodes.node_creator + where $sql_time node_vector like '".$node['node_vector']."%' $sql_type + and node_id != '".$node['node_id']."' $security + order by $orderby LIMIT $offset,$limit"; + + if ($link=='yes') { + $q.=" ) UNION (select nodes.node_id,node_name,node_external_access,external_link, + node_parent,node_system_access,node_children_count,node_creator,node_created, + lastchild_created,k,node_views,node_descendant_count,lastdescendant_created, + template_id,node_updated,length(dst_vector) as depth, + users.login,dst_vector as node_vector,node_content,synapse_creator + from neurons + left join nodes on neurons.src=nodes.node_id + left join users on users.user_id=nodes.node_creator + where $sql_time dst_vector like '".$node['node_vector']."%' $sql_synapse $sql_type + and node_id != '".$node['node_id']."' order by $orderby LIMIT $offset,$limit)"; + } + + if ($link=='yes') $q.=" order by $orderby LIMIT $limit"; + + $result=$db->query($q); + + while ($result->next()) { + $child = $result->getRecord(); + transport_process_node($child); + if($child['synapse_creator']!='') $child['node_status']='linked'; + + $get_children_array[]=$child; + } + + return $get_children_array; +} + } + ?>