- if (is_numeric($id)) return $id;
- else {
- $error = $error_messages['USER_NOT_FOUND'];
- return false;
- }
- }
-
-
- function getNodeIdByName($name) {
- global $db;
- $q="select node_id from nodes where node_name='$name'";
- $set=$db->query($q);
- $set->next();
- return $set->getString('node_id');
- }
-
- function getNodeById($node_handle,$user_id) {
- global $db, $error;
- $q="select length(concat(nodes.node_vector)) as vector_depth,node_content.node_content,nodes.*,nodes.node_creator as node_owner_id,creator.node_name as owner,node_access.*,nodes.node_id as node_id,node_parent.node_name as node_parent_name from nodes left join nodes as creator on creator.node_id=nodes.node_creator left join nodes as node_parent on nodes.node_parent=node_parent.node_id left join node_content on nodes.node_id=node_content.node_id left join node_access on (node_access.node_id='$node_handle' and node_access.user_id='$user_id') where nodes.node_id='$node_handle'";
-
- $result=$db->query($q);
- if (!$result->next()) {
- $error="no such node_id $node_handle exists";
- return false;
- }
- else {
- $node=$result->getRecord();
- }
- 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)) {
- Header("Location: /id/$node_id");
- }
- return true;
- }
- $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)) {
- Header("Location: /id/$node_id");
- }
-
- }
-
- function getNodesByName($node_handle) {
- global $db, $error;
- $q="select nodes.* from nodes where node_name='$node_handle%'";
-
- $result=$db->query($q);
-
- while ($result->next()){
- $record[]=$result->getRecord();
- }
- return $record;
-
- }
-
-
-
- function getChildrenNodes($orderby="desc",$offset=0,$limit=DEFAULT_LISTING_AMOUNT) {
- global $db, $error, $node;
- $node_handle=$node['node_id'];
-
- $q="select users.*,nodes.*,node_content.* from nodes
-left join node_content on (node_content.node_id=nodes.node_id)
+ if (is_numeric($id)) return $id;
+ else {
+ $error = $error_messages['USER_NOT_FOUND'];
+ return false;
+ }
+ }
+
+
+ function getNodeIdByName($name,$external_link=false) {
+ global $db;
+ $q="select node_id from nodes where node_name='$name'";
+ if ($external_link) $q.=" and external_link='$external_link'";
+ $set=$db->query($q);
+ $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
+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
+from $table_name left join $table_name as creator on creator.node_id=$table_name.node_creator
+left join $table_name as node_parent on $table_name.node_parent=node_parent.node_id
+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=$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"));
+ }
+ }
+ 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']);
+ }
+
+ }
+ $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%'";
+
+ $result=$db->query($q);
+
+ while ($result->next()){
+ $record[]=$result->getRecord();
+ }
+ return $record;
+
+ }
+
+
+
+ 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