Commit | Line | Data |
---|---|---|
e586807d H |
1 | <?php |
2 | /* This program is free software. It comes without any warranty, to | |
3 | * the extent permitted by applicable law. You can redistribute it | |
4 | * and/or modify it under the terms of the Do What The Fuck You Want | |
5 | * To Public License, Version 2, as published by Sam Hocevar. See | |
6 | * http://sam.zoy.org/wtfpl/COPYING for more details. */ | |
7 | ||
8 | ||
9 | {{ | |
10 | class nodes { | |
11 | ||
12 | function processRegexp($matches) { | |
13 | print_r($matches); | |
14 | } | |
15 | ||
16 | function processContent($node_content) { | |
17 | require(SYSTEM_ROOT.'/inc/htmlparse.inc'); | |
18 | if ($_POST['no_html']) { | |
19 | $node_content=htmlspecialchars($node_content); | |
20 | } | |
21 | ||
22 | else { | |
23 | global $db,$htmlparse,$error; | |
24 | /* | |
25 | if (!htmlparse::htmlparse($node_content)) { | |
26 | $error=$htmlparse; | |
27 | return false; | |
28 | } | |
29 | */ | |
30 | $node_content = EregI_Replace("((( )|(\n)|(^))+)(http://|ftp://|https://)([[:alnum:]][^,[:space:]]*)","\\2<a target='_blank'href=\"\\6\\7\">\\6\\7</a>",$node_content); | |
31 | $node_content=preg_replace_callback("/#(.*)#(.*)#/i","processRegexp",$node_content); | |
32 | // $node_content=strip_tags($node_content,'<center><a><b><i><u><img><br><p><font><pre>'); | |
33 | } | |
34 | $node_content=addslashes($node_content); | |
35 | return $node_content; | |
36 | } | |
37 | ||
38 | ||
39 | function getNodeById($node_handle,$user_id) { | |
40 | global $db, $error; | |
41 | $q="select length(concat(nodes.node_vector,';',nodes.node_id)) 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'"; | |
42 | ||
43 | $result=$db->query($q); | |
44 | if (!$result->next()) { | |
45 | $error="no such node_id $node_handle exists"; | |
46 | return false; | |
47 | } | |
48 | else { | |
49 | $node=$result->getRecord(); | |
50 | if (($node['node_system_access']=='crypto') && isset($_SESSION['crypto'])) { | |
51 | require(SYSTEM_ROOT.'/inc/crypto.inc'); | |
52 | $node['node_content']=crypto::decrypto($node['node_content'],$_SESSION['crypto'][$node['node_id']]); | |
53 | } | |
54 | return $node; | |
55 | } | |
56 | } | |
57 | ||
58 | ||
59 | function getNodeByOldId($node_handle,$user_id) { | |
60 | global $db, $error; | |
61 | $q="select nodes.* from nodes where nodes.old_id='$node_handle'"; | |
62 | ||
63 | $result=$db->query($q); | |
64 | if (!$result->next()) { | |
65 | $error="no such old_id $node_handle exists"; | |
66 | return false; | |
67 | } | |
68 | else { | |
69 | return $result->getRecord(); | |
70 | } | |
71 | ||
72 | } | |
73 | ||
74 | function redirByName($node_handle) { | |
75 | global $db, $error; | |
76 | $set=$db->query("select node_id from nodes where node_name='$node_handle'"); | |
77 | $set->next(); | |
78 | $node_id=$set->getString('node_id'); | |
79 | if ($node_id) { | |
80 | Header("Location: /id/$node_id"); | |
81 | } | |
82 | ||
83 | } | |
84 | ||
85 | function getNodesByName($node_handle) { | |
86 | global $db, $error; | |
87 | $q="select nodes.* from nodes where node_name='$node_handle%'"; | |
88 | ||
89 | $result=$db->query($q); | |
90 | ||
91 | while ($result->next()){ | |
92 | $record[]=$result->getRecord(); | |
93 | } | |
94 | return $record; | |
95 | ||
96 | } | |
97 | ||
98 | ||
99 | ||
100 | function getChildrenNodes($orderby="desc",$offset=0,$limit=DEFAULT_LISTING_AMOUNT) { | |
101 | global $db, $error, $node; | |
102 | $node_handle=$node['node_id']; | |
103 | ||
104 | $q="select users.*,nodes.*,node_content.* from nodes | |
105 | left join node_content on (node_content.node_id=nodes.node_id) | |
106 | left join users on users.user_id=nodes.node_creator where | |
107 | node_parent='$node_handle' order by node_created $orderby LIMIT $offset,$limit"; | |
108 | echo $q; | |
109 | $result=$db->query($q); | |
110 | ||
111 | while ($result->next()) { | |
112 | $array[]=$result->getRecord(); | |
113 | } | |
114 | ||
115 | return $array; | |
116 | ||
117 | } | |
118 | ||
119 | ||
120 | function getThreadedChildrenNodes($orderby="desc",$offset=0,$limit=DEFAULT_LISTING_AMOUNT) { | |
121 | global $db, $error, $node; | |
122 | $node_handle=$node['node_id']; | |
123 | ||
124 | $q="select length(node_vector) as depth,users.login,nodes.*,node_content.* from nodes left join node_content on (node_content.node_id=nodes.node_id) 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"; | |
125 | ||
126 | $result=$db->query($q); | |
127 | ||
128 | while ($result->next()) { | |
129 | $children_array[]=$result->getRecord(); | |
130 | } | |
131 | ||
132 | return $children_array; | |
133 | ||
134 | } | |
135 | ||
136 | ||
137 | ||
138 | function getNodeAccessData() { | |
139 | global $node,$db; | |
140 | $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!=''"; | |
141 | $result=$db->query($q); | |
142 | ||
143 | while ($result->next()) { | |
144 | $access_data[]=$result->getRecord(); | |
145 | } | |
146 | ||
147 | return $access_data; | |
148 | ||
149 | } | |
150 | } | |
151 | ||
152 | ?> |