· 9 years ago · Sep 15, 2017, 05:06 PM
1<?php
2set_time_limit(0);
3
4//require("phpsqlgeocode_dbinfo.php");
5$username="root";
6$password="";
7$database="greyboard-pages";
8$table="test";
9
10//Set page content vars
11$divId=$_POST['divId'];
12$ip=$_POST['ip'];
13$x=$_POST['x'];
14$y=$_POST['y'];
15$w=$_POST['w'];
16$content=$_POST['content'];
17
18// Opens a connection to a MySQL server
19$connection = mysql_connect("localhost", $username, $password);
20if (!$connection) {
21 die("Not connected : " . mysql_error());
22}
23
24// Set the active MySQL database
25$db_selected = mysql_select_db($database, $connection);
26if (!$db_selected) {
27 die("Can\'t use db : " . mysql_error());
28}
29
30// Check if post exists and if not, create post
31$query = "SELECT * FROM " . $table . " WHERE divId=" . $divId;
32$result = mysql_query($query);
33if (!$result) {
34 die("Invalid query: " . mysql_error());
35}
36
37$content=mysql_real_escape_string($content);
38
39if (mysql_fetch_array($result) == ""){
40 echo "no div found with id: " . $divId;
41 // Create new post row
42 $query = "INSERT INTO " . $table . " (divId, ip, x, y, w, content) VALUES (" . $divId . ", '" . $ip . "', '" . $x . "', '" . $y . "', '" . $w . "', '" . $content . "')";
43 $result = mysql_query($query);
44 if (!$result) {
45 die("Invalid query: " . mysql_error());
46 }
47}
48else{
49 echo "div found";
50 // Update existing post row
51 $query = "UPDATE " . $table . " SET ip='" . $ip . "', x='" . $x . "', y='" . $y . "', w='" . $w . "', content='" . $content . "' WHERE divId=" . $divId;
52 $result = mysql_query($query);
53 if (!$result) {
54 die("Invalid query: " . mysql_error());
55 }
56}
57
58
59
60?>
61
62<?php
63
64$username="root";
65$password="";
66$database="greyboard-pages";
67
68// Start XML file, create parent node
69
70$dom = new DOMDocument("1.0");
71$node = $dom->createElement("page");
72$parnode = $dom->appendChild($node);
73
74// Opens a connection to a MySQL server
75
76$connection=mysql_connect (localhost, $username, $password);
77if (!$connection) { die('Not connected : ' . mysql_error());}
78
79// Set the active MySQL database
80
81$db_selected = mysql_select_db($database, $connection);
82if (!$db_selected) {
83 die ('Can\'t use db : ' . mysql_error());
84}
85
86// Select all the rows in the markers table
87
88$query = "SELECT * FROM test WHERE 1";
89$result = mysql_query($query);
90if (!$result) {
91 die('Invalid query: ' . mysql_error());
92}
93
94header("Content-type: text/xml");
95
96// Iterate through the rows, adding XML nodes for each
97
98while ($row = @mysql_fetch_assoc($result)){
99 // ADD TO XML DOCUMENT NODE
100 $node = $dom->createElement("note");
101 $newnode = $parnode->appendChild($node);
102 $newnode->setAttribute("divId",$row['divId']);
103 $newnode->setAttribute("content", $row['content']);
104 $newnode->setAttribute("x", $row['x']);
105 $newnode->setAttribute("w", $row['w']);
106 $newnode->setAttribute("y", $row['y']);
107 }
108
109echo $dom->saveXML();
110
111?>
112
113<html>
114<head>
115<title>test scrapbook</title>
116<link type="text/css" href="./jquery/css/themename/jquery-ui-1.8.13.custom.css" rel="Stylesheet" />
117<script type="text/javascript" src="./jquery/js/jquery-1.5.1.min.js"></script>
118<script type="text/javascript" src="./jquery/js/jquery-ui-1.8.13.custom.min.js"></script>
119<script type="text/javascript" src="xmlHttp.js"></script>
120<script>
121 var userip;
122 userip = "<?php echo $_SERVER["REMOTE_ADDR"] ?>";
123 //userip = userip.replace(".",".").replace(".",".").replace(".",".").replace(".",".");
124 getNotes();
125
126 function handleClickEdit(e){
127 var div = e.target.parentNode;
128 if(div.editing !== true){
129 div.getElementsByTagName("a")[0].innerHTML="done";
130 $(div).contents()[0].contentEditable="true";
131 $(div).draggable("disable");
132 div.editing=true;
133 }
134 else{
135 saveNote(div);
136 $(div).draggable("enable");
137 div.getElementsByTagName("a")[0].innerHTML="edit";
138 $(div).contents()[1].contentEditable="false";
139 div.editing=false;
140 }
141 }
142
143 function saveDoc(){
144 var divs = document.getElementById('content').getElementsByTagName('div')
145 for(var i=0; i<divs.length;i++){
146 saveNote(divs[i]);
147 }
148 }
149
150 function saveNote(e){
151 var div = e;
152 div.x = $(div).offset().left;
153 div.y = $(div).offset().top;
154 div.w = div.offsetWidth - 14;
155 div.content = div.getElementsByTagName("P")[0].innerHTML;
156 //alert("checking for " + div.id);
157 $.post("save.php", {x: div.x, y: div.y, w: div.w, content: div.content, divId: div.id, ip: userip});
158 }
159
160 function getNotes(){
161 downloadUrl("get.php", function(data) {
162 var notes = data.documentElement.getElementsByTagName("note");
163 for (var i = 0; i < notes.length; i++) {
164 var x = notes[i].getAttribute("x");
165 var y = notes[i].getAttribute("y");
166 var w = notes[i].getAttribute("w");
167 var divId = notes[i].getAttribute("divId");
168 var content = notes[i].getAttribute("content");
169 makeDiv(x,y,w,content,divId);
170 }
171 });
172 }
173
174 function handleDivMouseOver(e){
175 var div;
176 if(e.target.tagName !== "DIV"){
177 div = e.target.parentNode;
178 }
179 else if(e.target.tagName == "A"){
180 return;
181 }
182 else{
183 var div = e.target;
184 }
185 var a = div.getElementsByTagName('a')[0];
186 a.style.visibility = "visible";
187 }
188
189 function handleDivMouseOut(e){
190 var div;
191 if(e.target.tagName !== "DIV"){
192 div = e.target.parentNode;
193 }
194 else if(e.target.tagName == "A"){
195 return;
196 }
197 else{
198 var div = e.target;
199 }
200 var a = div.getElementsByTagName('a')[0];
201 a.style.visibility="hidden";
202 }
203
204 function handleDblClick(e){
205 window.getSelection().collapseToStart()
206 if(e.target.id !== "content"){
207 return;
208 }
209 else{
210 var x = e.pageX;
211 var y = e.pageY;
212 makeDiv(x,y,180,"new note");
213 }
214 }
215
216 function getUniqueTime() {
217 var time = new Date().getTime();
218 while (time == new Date().getTime());
219 return new Date().getTime()
220 }
221
222
223 function makeDiv(x,y,w,content,divId){
224 var div = document.createElement("div");
225 div.setAttribute("style",makeDivStyle(x,y,w));
226 $(div).addClass("textDiv");
227 if(divId == null){
228 div.setAttribute("id", (getUniqueTime()));
229 }
230 else{
231 div.setAttribute("id", divId);
232 }
233 div.setAttribute("onmouseover","handleDivMouseOver(event)");
234 div.setAttribute("onmouseout","handleDivMouseOut(event)");
235 div.innerHTML = "<span><p>"+content+"</p></span><a style='visibility:hidden;' href='#' onClick='handleClickEdit(event)'>edit</a>";
236 document.getElementById('content').appendChild(div);
237 $(div).draggable({ containment:"parent"});
238 saveNote(div);
239 }
240
241 function makeDivStyle(x,y,w){
242 var html = 'position:fixed;' +
243 'left:' + x + 'px;' +
244 'top:' + y + 'px;' +
245 'width: '+ w + 'px; height: auto;';
246 return html;
247 }
248
249</script>
250</head>
251<style>
252 *{
253 font-family:arial;
254 font-size:12px;
255 }
256 body{
257 margin:0;
258 padding:0;
259 }
260
261 #wrapper{
262 height:100%;
263 width:100%;
264 padding:0;
265 margin:0;
266 }
267
268 #header{
269 height:30px;
270 padding:0 15px 2px 15px;
271 border-bottom:1px solid #A3A3A3;
272
273 background: #F5F5F5;
274 }
275 #header p{
276 margin:7px 0 0 0;
277 }
278
279 #detailsToolbar{
280 float:left;
281 }
282
283 #fontToolbar{
284 float:right;
285 }
286 #fontToolbar a{
287 margin-left:15px;
288 }
289
290 .textDiv{
291 border:1px solid #FFF;
292 //width:300px;
293 height:auto;
294 padding:0.5em;
295 background:white;
296 }
297 .textDiv p{
298 margin-top:0;
299 }
300
301 #content{
302 height:100%;
303 width:auto;
304 }
305 #content div:hover{
306 border:1px dotted #D8E5E9;
307 }
308</style>
309<body >
310<div id="wrapper">
311 <div id="header">
312 <p id="detailsToolbar">greyboard - michael ricci</p>
313 <p id="fontToolbar">
314 <a href="#" onclick="saveDoc()">save</a>
315 <a href="#" style="font-color:#A3A3A3;" onclick="colourText()">c</a>
316 <a href="#" style="font-color:#F5F5F5;padding:0 2px 0 2px;background: #A3A3A3;" onclick="colourFont()">c</a>
317 <a href="#" onclick="bold()">b</a>
318 <a href="#">u</a>
319 <a href="#">i</a>
320 </p>
321 </div>
322 <div id="content" onDblclick="handleDblClick(event)">
323
324 </div>
325</div>
326</body>
327</html>