X-Git-Url: http://git.harvie.cz/?a=blobdiff_plain;f=wwwroot%2Fbackend%2Fmysql%2Fbackend.inc;h=78bda9b82f50dfc56128405c960d0867d62f7f41;hb=ff4eaa9c95433962a02f6241b8bf7822b409488d;hp=0881c10384622a2cffc35adf3795e4961d158171;hpb=f4d6836d51b506c31b6804a343c1940d6e2d8d7b;p=mirrors%2FKyberia-bloodline.git diff --git a/wwwroot/backend/mysql/backend.inc b/wwwroot/backend/mysql/backend.inc index 0881c10..78bda9b 100644 --- a/wwwroot/backend/mysql/backend.inc +++ b/wwwroot/backend/mysql/backend.inc @@ -35,6 +35,35 @@ function update_nodes($user_id,$node_id,$referer_id) { } +function putNode($what,$where,$checkpermissions=true) { + global $db,$error,$error_messages; + $user_id = $_SESSION['user_id']; + if (!$user_id) { + $user_id=UBIK_ID; + } + if (!is_numeric($what) || !is_numeric($where)) { + $error=$error_messages['NUMERIC_NOT_NUMERIC']; + } + + $nodeshell = nodes::getNodeById($where,$user_id); + $nodeshell_vector = $nodeshell['node_vector']; + + if ($checkpermissions) { + $nodeshell_permissions = permissions::checkPermissions($nodeshell); + if (!$nodeshell_permissions['w']) { + $error = $error_messages['WRITE_PERMISSION_ERROR']; + return false; + } + } + + $dst_vector = $nodeshell_vector.str_pad($chosen,VECTOR_CHARS,0,STR_PAD_LEFT); + $q = "update neurons set synapse_created=NOW(),link='hard',synapse=synapse+1, dst_vector='$dst_vector' where src='$what' and dst='$where'"; + $result=$db->update($q); + + if (!$result) $db->query("insert into neurons set synapse_creator='$user_id',synapse_created=NOW(), src='$what',dst='$where',dst_vector='$dst_vector',link='hard',synapse=1"); + $db->query("update nodes set lastdescendant_created=NOW(),node_children_count=node_children_count+1 where node_id='$where'"); +} + function addNode($params) { global $db,$node,$error,$error_messages; $parent_id=$params['node_parent']; @@ -136,34 +165,34 @@ node_vector='".$params['node_vector']."'"; } - function getUserByLogin($login) { - global $error, $error_messages; - $q2="select user_id from users where login='".$login."'"; - $userset=$db->query($q2); - $userset->next(); - $id=$userset->getString('user_id'); - if (is_numeric($id)) return $id; - else { - $error = $error_messages['USER_NOT_FOUND']; - return false; - } - } +function getUserByLogin($login) { + global $error, $error_messages; + $q2="select user_id from users where login='".$login."'"; + $userset=$db->query($q2); + $userset->next(); + $id=$userset->getString('user_id'); + if (is_numeric($id)) return $id; + else { + $error = $error_messages['USER_NOT_FOUND']; + return false; + } +} - function getNodeIdByName($name, $external_link=false) { - global $db; +static function getNodeIdByName($name, $external_link=false) { + global $db; - $qh = sprintf('select node_id from nodes where node_name = "%s"', mysql_real_escape_string($name)); - if ($external_link) - $qh .= sprintf(' and external_link="%s"', mysql_real_escape_string($external_link)); + $qh = sprintf('select node_id from nodes where node_name = "%s"', mysql_real_escape_string($name)); + if ($external_link) + $qh .= sprintf(' and external_link="%s"', mysql_real_escape_string($external_link)); - $set = $db->query($qh); - $set->next(); - return $set->getString('node_id'); - } + $set = $db->query($qh); + $set->next(); + return $set->getString('node_id'); +} - function getNodeById($node_handle,$user_id, $table_name="nodes") { - global $db, $error; - $q="select length(concat($table_name.node_vector)) as +function getNodeById($node_handle,$user_id, $table_name="nodes") { + global $db, $error; + $q="select length(concat($table_name.node_vector)) as vector_depth,$table_name.*,$table_name.node_creator as node_owner_id,creator.node_name as owner,node_access.*,$table_name.node_id as node_id,node_parent.node_name as node_parent_name @@ -172,128 +201,144 @@ left join $table_name as node_parent on $table_name.node_parent=node_parent.node left join node_access on (node_access.node_id='$node_handle' and node_access.user_id='$user_id') where $table_name.node_id='$node_handle'"; - $result=$db->query($q); - if (!$result->next()) { - return false; - } - else { - $node=addBase36id($result->getRecord()); - $node['node_vector']=trim($node['node_vector'],"z"); - $ancestors=str_split($node['node_vector'],VECTOR_CHARS); - foreach ($ancestors as $ancestor) { - $node['ancestors'][]=array("name"=>"","link"=>ltrim($ancestor,"0")); - } - } - transport_process_node($node); - return $node; + $result=$db->query($q); + if (!$result->next()) { + return false; + } + else { + $node=addBase36id($result->getRecord()); + $node['node_vector']=trim($node['node_vector'],"z"); + $ancestors=str_split($node['node_vector'],VECTOR_CHARS); + foreach ($ancestors as $ancestor) { + $node['ancestors'][]=array("name"=>"","link"=>ltrim($ancestor,"0")); + } + } + transport_process_node($node); + return $node; - } +} - function redirByName($node_handle) { - global $db, $error; - $user_id=$_SESSION['user_id']; - $set=$db->query("select node_id from nodes where node_name='$node_handle' and node_creator='$user_id'"); - if ($set->next()) { - $node_id=$set->getString('node_id'); - if (!empty($node_id)) { - return nodes::getNodeById($node_id,$_SESSION['user_id']); - } +function redirByName($node_handle) { + global $db, $error; + $user_id=$_SESSION['user_id']; + $set=$db->query("select node_id from nodes where node_name='$node_handle' and node_creator='$user_id'"); + if ($set->next()) { + $node_id=$set->getString('node_id'); + if (!empty($node_id)) { + return nodes::getNodeById($node_id,$_SESSION['user_id']); + } - } - $set=$db->query("select node_id from nodes where node_name='$node_handle' "); - $set->next(); - $node_id=$set->getString('node_id'); - if (!empty($node_id)) { - return nodes::getNodeById($node_id,$_SESSION['user_id']); - } + } + $set=$db->query("select node_id from nodes where node_name='$node_handle' "); + $set->next(); + $node_id=$set->getString('node_id'); + if (!empty($node_id)) { + return nodes::getNodeById($node_id,$_SESSION['user_id']); + } - } +} - function getNodesByName($node_handle) { - global $db, $error; - $q="select nodes.* from nodes where node_name='$node_handle%'"; +function getNodesByName($node_handle) { + global $db, $error; + $q="select nodes.* from nodes where node_name='$node_handle%'"; - $result=$db->query($q); + $result=$db->query($q); - while ($result->next()){ - $record[]=addBase36id($result->getRecord()); - } - return $record; + while ($result->next()){ + $record[]=addBase36id($result->getRecord()); + } + return $record; - } +} - function getChildrenNodes($orderby="desc",$offset=0,$limit=DEFAULT_LISTING_AMOUNT) { - global $db, $error, $node; - $node_handle=$node['node_id']; +function getChildrenNodes($orderby="desc",$offset=0,$limit=DEFAULT_LISTING_AMOUNT) { + global $db, $error, $node; + $node_handle=$node['node_id']; - $q="select users.*,nodes.* from nodes + $q="select users.*,nodes.* from nodes left join users on users.user_id=nodes.node_creator where node_parent='$node_handle' order by node_created $orderby LIMIT $offset,$limit"; - echo $q; - $result=$db->query($q); + echo $q; + $result=$db->query($q); - while ($result->next()) { - $array[]=addBase36id($result->getRecord()); - } + while ($result->next()) { + $array[]=addBase36id($result->getRecord()); + } - return $array; + return $array; - } +} - function getThreadedChildrenNodes($orderby="desc",$offset=0,$limit=DEFAULT_LISTING_AMOUNT) { - global $db, $error, $node; - $node_handle=$node['node_id']; +function getThreadedChildrenNodes($orderby="desc",$offset=0,$limit=DEFAULT_LISTING_AMOUNT) { + global $db, $error, $node; + $node_handle=$node['node_id']; - $q="select length(node_vector) as depth,users.login,nodes.* from nodes left join users on users.user_id=nodes.node_creator where node_vector like '".$node['node_vector'].";".$node['node_id']."%' and node_type=3 order by concat(node_vector,';',nodes.node_id,';z') desc,depth LIMIT $offset,$limit"; + $q="select length(node_vector) as depth,users.login,nodes.* from nodes left join users on users.user_id=nodes.node_creator where node_vector like '".$node['node_vector'].";".$node['node_id']."%' and node_type=3 order by concat(node_vector,';',nodes.node_id,';z') desc,depth LIMIT $offset,$limit"; - $result=$db->query($q); + $result=$db->query($q); - while ($result->next()) { - $children_array[]=addBase36id($result->getRecord()); - } + while ($result->next()) { + $children_array[]=addBase36id($result->getRecord()); + } - return $children_array; + return $children_array; - } +} - function getNodeAccessData() { - global $node,$db; - $q="select users.login,node_access.* from node_access left join users on users.user_id=node_access.user_id where node_id='".$node['node_id']."' and node_permission!=''"; - $result=$db->query($q); +function getNodeAccessData() { + global $node,$db; + $q="select users.login,node_access.* from node_access left join users on users.user_id=node_access.user_id where node_id='".$node['node_id']."' and node_permission!=''"; + $result=$db->query($q); - while ($result->next()) { - $access_data[]=$result->getRecord(); - } + while ($result->next()) { + $access_data[]=$result->getRecord(); + } - return $access_data; + return $access_data; - } +} // Simple internal function to set node parrent -function setParent($params) { - global $db,$node,$error,$error_messages; - $parent_id=$params['node_parent']; - $node_id=$params['node_id']; +function setParent($node_id,$parent_id) { + global $db,$node,$error,$error_messages; + + if (!is_numeric($parent_id)) { + return false; + } - if (!is_numeric($parent_id)) { - return false; - } $q="select node_vector from nodes where node_id='$parent_id'"; - $parent_vector=$db->query($q); + $set=$db->query($q); + $set->next(); + $parent_vector=$set->getString('node_vector'); + $new_vector=$parent_vector.str_pad($node_id,VECTOR_CHARS,"0",STR_PAD_LEFT); - $new_vector=$parent_vector.str_pad($node_id,VECTOR_CHARS,"0",STR_PAD_LEFT); - $q="update nodes set node_parent='$parent_id',node_vector='".$new_vector." - ' where node_id='$node_id'"; + $q="update nodes set node_parent='$parent_id',node_vector='$new_vector' where node_id='$node_id'"; $db->query($q); + + return 0; } +// XXX TODO +// + +function get_k_neurons_($user_id,$interval) { + global $db,$node,$error,$error_messages; + + $q="call k_neurons('$user_id','$interval')"; + $set=$db->query($q); + $set->next(); + return $set; +} + + + }