edit.php 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  1. <?php
  2. session_start();
  3. $http_host = $_SERVER["HTTP_HOST"];
  4. $doc_root = $_SERVER["DOCUMENT_ROOT"] . "/";
  5. include $doc_root . "functions.php";
  6. $proto = get_protocol();
  7. $lang = "en";
  8. $con = start_db();
  9. $server = $proto . $http_host;
  10. $pserver = $proto . substr($http_host, 0, strpos($http_host, ':')); // public server
  11. if (!check_session($con)){
  12. http_response_code(401);
  13. header("Location: /authentication.php");
  14. }
  15. else{
  16. $id = intval(mysqli_real_escape_string($con, $_GET["p"]));
  17. if (strlen($id) < 1){
  18. http_response_code(400); // No or bad ID: Bad request.
  19. header("Location: /blog/");
  20. }
  21. else{
  22. $q_post = mysqli_query($con, "SELECT * FROM post WHERE id = $id;");
  23. if (mysqli_num_rows($q_post) == 0){
  24. http_response_code(404); // Unexistent id: Not found.
  25. header("Location: /blog/");
  26. }
  27. else{
  28. $r_post = mysqli_fetch_array($q_post);
  29. $id = $r_post["id"];
  30. $title = text($con, $r_post["title"], $lang);
  31. $q_lang = mysqli_query($con, "SELECT * FROM lang;");
  32. ?>
  33. <html>
  34. <head>
  35. <meta content='text/html; charset=windows-1252' http-equiv='content-type'/>
  36. <meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1'>
  37. <link rel='shortcut icon' href='<?=$pserver?>/img/logo/x2/favicon.ico'/>
  38. <title><?=$title?>I&ntilde;igo Valentin - Administration Panel</title>
  39. <style>
  40. <?php
  41. include $doc_root . "css/ui.css";
  42. include $doc_root . "css/blog.css";
  43. ?>
  44. </style>
  45. <!-- CSS for mobile version -->
  46. <style media='(max-width : 990px)'>
  47. <?php
  48. include $doc_root . "css/m/ui.css";
  49. include $doc_root . "css/m/blog.css";
  50. ?>
  51. </style>
  52. <!-- Script files -->
  53. <script type='text/javascript'>
  54. <?php
  55. include $doc_root . "script/ui.js";
  56. include $doc_root . "script/blog.js";
  57. ?>
  58. </script>
  59. <script src='/script/ckeditor/ckeditor.js'></script>
  60. </head>
  61. <body>
  62. <?php
  63. include $doc_root . "header.php";
  64. ?>
  65. <div id='content'>
  66. <div class='section' id='post_edit'>
  67. <h3 class='section_title'><?=$title?></h3>
  68. <div class='entry'>
  69. <div id='lang_tabs'>
  70. <table>
  71. <tr>
  72. <?php
  73. mysqli_data_seek($q_lang, 0);
  74. $active = 'lang_tabs_active';
  75. while ($r_lang = mysqli_fetch_array($q_lang)){
  76. ?>
  77. <td class='pointer <?=$active?>' id='lang_tab_<?=$r_lang["code"]?>' onclick='showLanguage("<?=$r_lang["code"]?>");'>
  78. <?=$r_lang["name"]?>
  79. </td>
  80. <?php
  81. $active = '';
  82. }
  83. ?>
  84. </tr>
  85. </table>
  86. </div> <!-- #lang_tabs -->
  87. <span class='bold'>URL:</span>
  88. <?=$pserver?>/blog/
  89. <span class='editable'>
  90. <span class='field_result'><?=$r_post["permalink"]?></span>
  91. <img class='button_edit' src='<?=$server?>/img/icon/edit.png' onclick='enableEdit(this);'/>
  92. <input class='field_editable' type='text' value='<?=$r_post["permalink"]?>'/>
  93. <img class='button_save' src='<?=$server?>/img/icon/save.png' onclick='saveEdit(this, "post", "permalink", <?=$id?>);'/>
  94. <img class='button_cancel' src='<?=$server?>/img/icon/cancel.png' onclick='cancelEdit(this);'/>
  95. </span>
  96. <hr class='separator'/>
  97. <?php
  98. mysqli_data_seek($q_lang, 0);
  99. $active = "content_lang_active";
  100. while ($r_lang = mysqli_fetch_array($q_lang)){
  101. ?>
  102. <div class='content_lang_<?=$r_lang["code"]?> content_lang <?=$active?>'>
  103. <div class='editable'>
  104. <span class='bold'>Title (<?=$r_lang["name"]?>):</span>
  105. <span class='field_result'><?=text($con, $r_post["title"], $r_lang["code"])?></span>
  106. <img class='button_edit' src='<?=$server?>/img/icon/edit.png' onclick='enableEdit(this);'/>
  107. <input class='field_editable' type='text' value='<?=text($con, $r_post["title"], $r_lang["code"])?>'/>
  108. <img class='button_save' src='<?=$server?>/img/icon/save.png' onclick='saveEdit(this, "text", "<?=$r_lang["code"]?>", "<?=$r_post["title"]?>");'/>
  109. <img class='button_cancel' src='<?=$server?>/img/icon/cancel.png' onclick='cancelEdit(this);'/>
  110. </div>
  111. <hr class='separator'/>
  112. <div class='editable'>
  113. <span class='bold'>Text (<?=$r_lang["name"]?>):</span>
  114. <img class='button_edit' src='<?=$server?>/img/icon/edit.png' onclick='enableEdit(this);'/>
  115. <img class='button_save' src='<?=$server?>/img/icon/save.png' onclick='saveEdit(this, "text", "<?=$r_lang["code"]?>", "<?=$r_post["text"]?>");'/>
  116. <img class='button_cancel' src='<?=$server?>/img/icon/cancel.png' onclick='cancelEdit(this);'/>
  117. <br/>
  118. <p class='field_result'><?=text($con, $r_post["text"], $r_lang["code"])?></p>
  119. <textarea id='text_<?=$r_lang["code"]?>' class='field_editable'><?=text($con, $r_post["text"], $r_lang["code"])?></textarea>
  120. <script>CKEDITOR.replace('text_<?=$r_lang["code"]?>');</script>
  121. </div>
  122. </div> <!-- .content_lang_<?=$r_lang["code"]?> -->
  123. <?php
  124. $active = '';
  125. }
  126. ?>
  127. <hr class='separator'/>
  128. <h4>Images</h4>
  129. <div id='image_reel' class='horizontal_scroll'>
  130. <?php
  131. $q_image = mysqli_query($con, "SELECT id, image FROM post_image WHERE post = $id;");
  132. while ($r_image = mysqli_fetch_array($q_image)){
  133. ?>
  134. <div class='post_image' id='post_image_<?=$r_image["id"]?>'>
  135. <img alt='<?=$title?>' title='<?=$title?>' src='<?=$pserver?>/img/blog/x4/<?=$r_image["image"]?>' />
  136. <br/>
  137. <label class="image_control image_upload">
  138. <input id="image" onchange="preview_image();" type="file" name="image" accept="image/x-png, image/gif, image/jpeg"/>
  139. @
  140. </label>
  141. <input class='image_control' type='button' onClick='deleteImage(<?=$r_image["id"]?>)' value='X' />
  142. </div>
  143. <?php
  144. }
  145. ?>
  146. <div class='post_image' id='post_image_add'>
  147. <img onClick='addImage(<?=$id?>)' alt='Add image' title='Add image' src='<?=$server?>/img/icon/addimage.png' />
  148. <input type='file' id='header_img_selector' onChange='uploadHeaderImage(event, <?=$r["id"]?>);'/>
  149. <img id="image_preview" src="<?php echo $img; ?>"/><br/><br/>
  150. </div>
  151. </div>
  152. <hr class='separator'/>
  153. <h4>Tags</h4>
  154. TODO
  155. <hr class='separator'/>
  156. <h4>Settings</h4>
  157. <?php
  158. if ($r_post["visible"] == 1){
  159. $v = "Yes";
  160. $selected1 = "selected";
  161. $selected0 = "";
  162. }
  163. else{
  164. $v = "No";
  165. $selected1 = "";
  166. $selected0 = "selected";
  167. }
  168. ?>
  169. <div class='editable'>
  170. <span class='bold'>Visible:</span>
  171. <span class='field_result'><?=$v?></span>
  172. <img class='button_edit' src='<?=$server?>/img/icon/edit.png' onclick='enableEdit(this);'/>
  173. <select class='field_editable'>
  174. <option value='1' <?=$selected1?>>Yes</option>
  175. <option value='0' <?=$selected0?>>No</option>
  176. </select>
  177. <img class='button_save' src='<?=$server?>/img/icon/save.png' onclick='saveEdit(this, "post", "visible", "<?=$id?>");'/>
  178. <img class='button_cancel' src='<?=$server?>/img/icon/cancel.png' onclick='cancelEdit(this);'/>
  179. </div>
  180. <?php
  181. if ($r_post["comments"] == 1){
  182. $v = "Yes";
  183. $selected1 = "selected";
  184. $selected0 = "";
  185. }
  186. else{
  187. $v = "No";
  188. $selected1 = "";
  189. $selected0 = "selected";
  190. }
  191. ?>
  192. <div class='editable'>
  193. <span class='bold'>Comments enabled:</span>
  194. <span class='field_result'><?=$v?></span>
  195. <img class='button_edit' src='<?=$server?>/img/icon/edit.png' onclick='enableEdit(this);'/>
  196. <select class='field_editable'>
  197. <option value='1' <?=$selected1?>>Yes</option>
  198. <option value='0' <?=$selected0?>>No</option>
  199. </select>
  200. <img class='button_save' src='<?=$server?>/img/icon/save.png' onclick='saveEdit(this, "post", "comments", "<?=$id?>");'/>
  201. <img class='button_cancel' src='<?=$server?>/img/icon/cancel.png' onclick='cancelEdit(this);'/>
  202. </div>
  203. <input type='button' onclick='deletePost(<?=$id?>, "<?=$title?>");' value='Delete post'/>
  204. <h4>Comments</h4>
  205. <?php
  206. $q_comment = mysqli_query($con, "SELECT post_comment.id AS id, text, dtime, user, username, lang, (SELECT name FROM lang WHERE code = post_comment.lang) AS lang_name, approved, ip, browser, os, uagent FROM post_comment, stat_visit WHERE stat_visit.id = visit AND post = $id;");
  207. if (mysqli_num_rows($q_comment) == 0){
  208. ?>
  209. <span>No comments yet</span>
  210. <?php
  211. }
  212. else{
  213. ?>
  214. <table id='comments'>
  215. <?php
  216. while ($r_comment = mysqli_fetch_array($q_comment)){
  217. ?>
  218. <tr>
  219. <td class='text'>
  220. <p><?=$r_comment["text"]?></p>
  221. </td>
  222. <td class='details'>
  223. On <?=format_date($r_comment["dtime"], $lang, true)?>
  224. <br/>
  225. <?php
  226. if (strlen($r_comment["user"]) > 0){
  227. $q_user = mysqli_query($con, "SELECT concat(fname, concat(' ', lname)) AS name, username FROM user WHERE id = $r_comment[user];");
  228. $r_user = mysqli_fetch_array($q_user);
  229. ?>
  230. By <?=$r_user["name"]?> (<span class='bold'><?=$r_user["username"]?></span>)
  231. <?php
  232. }
  233. else{
  234. ?>
  235. By <?=$r_comment["username"]?>
  236. <?php
  237. }
  238. if (strlen($r_comment["lang_name"]) > 0){
  239. $strlang = $r_comment["lang_name"];
  240. }
  241. else{
  242. $strlang = $r_comment["lang"];
  243. }
  244. if (file_exists($doc_root . "img/lang/" . $r_comment["lang"] . ".gif")){
  245. $imgpath = $doc_root . "img/lang/" . $r_comment["lang"] . ".gif";
  246. $strlang = $strlang . " <img class='lang' title='$r_comment[lang]' alt='$r_comment[lang]' src='$server/$imgpath' />";
  247. }
  248. ?>
  249. <br/>
  250. Language: <?=$strlang?>
  251. <?php
  252. if ($r_post["visible"] == 1){
  253. $v = "Yes";
  254. $selected1 = "selected";
  255. $selected0 = "";
  256. }
  257. else{
  258. $v = "No";
  259. $selected1 = "";
  260. $selected0 = "selected";
  261. }
  262. ?>
  263. <div class='editable'>
  264. Approved:
  265. <span class='field_result'><?=$v?></span>
  266. <img class='button_edit' src='<?=$server?>/img/icon/edit.png' onclick='enableEdit(this);'/>
  267. <select class='field_editable'>
  268. <option value='1' <?=$selected1?>>Yes</option>
  269. <option value='0' <?=$selected0?>>No</option>
  270. </select>
  271. <img class='button_save' src='<?=$server?>/img/icon/save.png' onclick='saveEdit(this, "post_comment", "approved", "<?=$r_comment["id"]?>");'/>
  272. <img class='button_cancel' src='<?=$server?>/img/icon/cancel.png' onclick='cancelEdit(this);'/>
  273. </div>
  274. </td>
  275. <td class='actions'>
  276. <input type='button' onclick='deletePostComment(<?=$id?>);' value='Delete'/>
  277. </td>
  278. </tr>
  279. <?php
  280. }
  281. ?>
  282. </table>
  283. <?php
  284. }
  285. ?>
  286. </div> <!-- .entry -->
  287. </div> <!-- .section -->
  288. </div> <!-- #content -->
  289. </body>
  290. </html>
  291. <?php
  292. }
  293. }
  294. }
  295. ?>