/system/core/post_handler.php

https://github.com/fryed/Brick_cms · PHP · 350 lines · 195 code · 117 blank · 38 comment · 17 complexity · 592f0a67a70873e279b1a1ca4b3017ab MD5 · raw file

  1. <?php
  2. //-----ALL POSTS COME THROUGH HERE AND ARE PROCESSED BY THE VAL OF THE SUBMIT BUTTON USED TO POST-----//
  3. class postHandler extends DBconnect {
  4. //set vars
  5. var $posts;
  6. var $pageUrl;
  7. var $homePath;
  8. var $settingsArray;
  9. var $siteInfoArray;
  10. //run main function
  11. public function handlePosts() {
  12. //check for posts
  13. if($this->posts && isset($this->posts["action"])){
  14. //work out the action
  15. switch ($this->posts["action"]) {
  16. case "search":
  17. $this->search();
  18. break;
  19. case "save changes":
  20. $this->editPage();
  21. break;
  22. case "create page":
  23. case "create article":
  24. case "create gallery":
  25. $this->createPage();
  26. break;
  27. case "delete page":
  28. case "delete article":
  29. $this->deletePage();
  30. break;
  31. case "update menu":
  32. $this->updateMenu();
  33. break;
  34. case "add to menu":
  35. case "create":
  36. case "add link":
  37. case "add comment":
  38. $this->create();
  39. break;
  40. case "add feature":
  41. $this->addFeature();
  42. break;
  43. case "edit feature":
  44. $this->editFeature();
  45. break;
  46. case "upload":
  47. case "upload logo":
  48. $this->upload();
  49. break;
  50. case "delete selected":
  51. case "delete logo":
  52. $this->deleteMultiple();
  53. break;
  54. case "add user":
  55. $this->addUser();
  56. break;
  57. case "edit user":
  58. $this->editUser();
  59. break;
  60. case "delete":
  61. $this->delete();
  62. break;
  63. case "save":
  64. $this->edit();
  65. break;
  66. case "clear cache":
  67. $this->clearCache();
  68. break;
  69. case "send message":
  70. $this->sendMessage();
  71. break;
  72. case "create module":
  73. $this->createModule();
  74. break;
  75. case "uninstall selected":
  76. $this->uninstallModule();
  77. break;
  78. case "install module":
  79. $this->installModule();
  80. break;
  81. case "toggle build mode":
  82. $this->toggleBuildMode();
  83. break;
  84. default:
  85. return;
  86. }
  87. }
  88. }
  89. //--------------------PAGE FUNCTIONS--------------------//
  90. //edit page
  91. public function editPage() {
  92. include("system/core/post_functions/edit_page.php");
  93. }
  94. //delete page
  95. public function deletePage(){
  96. include("system/core/post_functions/delete_page.php");
  97. }
  98. //create page
  99. public function createPage() {
  100. include("system/core/post_functions/create_page.php");
  101. }
  102. //--------------------USER FUNCTIONS--------------------//
  103. //add a user
  104. public function addUser() {
  105. include("system/core/post_functions/create_user.php");
  106. }
  107. //edit a user
  108. public function editUser() {
  109. include("system/core/post_functions/edit_user.php");
  110. }
  111. //--------------------MENU FUNCTIONS--------------------//
  112. public function updateMenu(){
  113. include("system/core/post_functions/update_menu.php");
  114. }
  115. //--------------------FEATURE FUNCTIONS--------------------//
  116. //add a feature
  117. public function addFeature(){
  118. include("system/core/post_functions/create_feature.php");
  119. }
  120. //edit a feature
  121. public function editFeature(){
  122. include("system/core/post_functions/edit_feature.php");
  123. }
  124. //--------------------UPLOAD FUNCTIONS--------------------//
  125. public function upload() {
  126. include("system/core/post_functions/upload.php");
  127. }
  128. //--------------------MODULE FUNCTIONS--------------------//
  129. //create a module
  130. public function createModule() {
  131. include("system/core/post_functions/create_module.php");
  132. }
  133. //uninstall modules
  134. public function uninstallModule() {
  135. include("system/core/post_functions/uninstall_module.php");
  136. }
  137. //install modules
  138. public function installModule() {
  139. include("system/core/post_functions/install_module.php");
  140. }
  141. //toggle build mode
  142. public function toggleBuildMode() {
  143. include("system/core/post_functions/toggle_build_mode.php");
  144. }
  145. //--------------------OTHER FUNCTIONS--------------------//
  146. //clear the cache
  147. public function clearCache(){
  148. include("system/core/post_functions/clear_cache.php");
  149. }
  150. //search main tables
  151. public function search(){
  152. include("system/core/post_functions/search.php");
  153. }
  154. //send a message
  155. public function sendMessage(){
  156. include("system/core/post_functions/send_message.php");
  157. }
  158. //--------------------GENERIC FUNCTIONS--------------------//
  159. //delete single
  160. public function delete(){
  161. include("system/core/post_functions/delete_single.php");
  162. }
  163. //create single
  164. public function create(){
  165. include("system/core/post_functions/create_single.php");
  166. }
  167. //edit
  168. public function edit(){
  169. include("system/core/post_functions/edit.php");
  170. }
  171. //delete multiple
  172. public function deleteMultiple(){
  173. include("system/core/post_functions/delete_multiple.php");
  174. }
  175. //--------------------FUNCTIONS USED BY THE OTHERS IN THIS CLASS--------------------//
  176. public function createTable(){
  177. $keys = array();
  178. $values = array();
  179. //loop through post data and create vars
  180. foreach($this->posts as $key => $value){
  181. if($key != "table" && $key != "action"){
  182. $keys[] = $key;
  183. $values[] = "'$value'";
  184. }
  185. }
  186. $keys = implode(",",$keys);
  187. $values = implode(",",$values);
  188. //add table
  189. DBconnect::insert($this->posts["table"],$keys,$values);
  190. }
  191. public function updateTable($params){
  192. //loop through post data and save
  193. foreach($this->posts as $key => $value){
  194. if($key != "table" && $key != "action" && $key != "id")
  195. DBconnect::update($this->posts["table"],$key,$value,$params);
  196. }
  197. //die();
  198. }
  199. public function deleteResource(){
  200. //delete resources if set
  201. if(isset($this->posts["src"])){
  202. $src = $this->posts["src"];
  203. if(file_exists($src))
  204. unlink($src);
  205. }elseif(isset($this->posts["img_src"])){
  206. $src = $this->posts["img_src"];
  207. if(file_exists($src))
  208. unlink($src);
  209. }
  210. }
  211. public function tableCheck(){
  212. //remind to add hidden table field
  213. if(!$this->posts["table"])
  214. die("Error: Please include '&lt;input type='hidden' name='table' value='insert table name'/&gt;");
  215. }
  216. public function duplicateCheck($row,$value){
  217. $params = "WHERE $row = '$value'";
  218. $check = DBconnect::query("*",$this->posts["table"],$params);
  219. if($check){
  220. $_SESSION["errors"][] = "Error: ".$row." '".$value."' already exists.";
  221. header("Location: ".$this->homePath."/admin".$this->pageUrl);
  222. exit;
  223. }
  224. }
  225. }
  226. ?>