PageRenderTime 48ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/wp-content/plugins/photo-gallery/admin/controllers/BWGControllerTags_bwg.php

https://gitlab.com/edgarze188/sunrise
PHP | 238 lines | 186 code | 12 blank | 40 comment | 37 complexity | 8e7aa7bcda447b5582382d14cf7cae7e MD5 | raw file
  1. <?php
  2. class BWGControllerTags_bwg {
  3. ////////////////////////////////////////////////////////////////////////////////////////
  4. // Events //
  5. ////////////////////////////////////////////////////////////////////////////////////////
  6. ////////////////////////////////////////////////////////////////////////////////////////
  7. // Constants //
  8. ////////////////////////////////////////////////////////////////////////////////////////
  9. ////////////////////////////////////////////////////////////////////////////////////////
  10. // Variables //
  11. ////////////////////////////////////////////////////////////////////////////////////////
  12. ////////////////////////////////////////////////////////////////////////////////////////
  13. // Constructor & Destructor //
  14. ////////////////////////////////////////////////////////////////////////////////////////
  15. public function __construct() {
  16. }
  17. ////////////////////////////////////////////////////////////////////////////////////////
  18. // Public Methods //
  19. ////////////////////////////////////////////////////////////////////////////////////////
  20. public function execute() {
  21. $task = WDWLibrary::get('task');
  22. $id = WDWLibrary::get('current_id', 0);
  23. $message = WDWLibrary::get('message');
  24. echo WDWLibrary::message_id($message);
  25. if (method_exists($this, $task)) {
  26. $this->$task($id);
  27. }
  28. else {
  29. $this->display();
  30. }
  31. }
  32. public function display() {
  33. require_once WD_BWG_DIR . "/admin/models/BWGModelTags_bwg.php";
  34. $model = new BWGModelTags_bwg();
  35. require_once WD_BWG_DIR . "/admin/views/BWGViewTags_bwg.php";
  36. $view = new BWGViewTags_bwg($model);
  37. $view->display();
  38. }
  39. public function save() {
  40. $message = $this->save_tag();
  41. $page = WDWLibrary::get('page');
  42. WDWLibrary::spider_redirect(add_query_arg(array('page' => $page, 'task' => 'display', 'message' => $message), admin_url('admin.php')));
  43. }
  44. public function bwg_get_unique_slug($slug, $id) {
  45. global $wpdb;
  46. $slug = sanitize_title($slug);
  47. if ($id != 0) {
  48. $query = $wpdb->prepare("SELECT slug FROM " . $wpdb->prefix . "terms WHERE slug = %s AND term_id != %d", $slug, $id);
  49. }
  50. else {
  51. $query = $wpdb->prepare("SELECT slug FROM " . $wpdb->prefix . "terms WHERE slug = %s", $slug);
  52. }
  53. if ($wpdb->get_var($query)) {
  54. $num = 2;
  55. do {
  56. $alt_slug = $slug . "-$num";
  57. $num++;
  58. $slug_check = $wpdb->get_var($wpdb->prepare("SELECT slug FROM " . $wpdb->prefix . "terms WHERE slug = %s", $alt_slug));
  59. } while ($slug_check);
  60. $slug = $alt_slug;
  61. }
  62. return $slug;
  63. }
  64. public function bwg_get_unique_name($name, $id) {
  65. /*global $wpdb;
  66. if ($id != 0) {
  67. $query = $wpdb->prepare("SELECT name FROM " . $wpdb->prefix . "terms WHERE name = %s AND term_id != %d", $name, $id);
  68. }
  69. else {
  70. $query = $wpdb->prepare("SELECT name FROM " . $wpdb->prefix . "terms WHERE name = %s", $name);
  71. }
  72. if ($wpdb->get_var($query)) {
  73. $num = 2;
  74. do {
  75. $alt_name = $name . "-$num";
  76. $num++;
  77. $slug_check = $wpdb->get_var($wpdb->prepare("SELECT name FROM " . $wpdb->prefix . "terms WHERE name = %s", $alt_name));
  78. } while ($slug_check);
  79. $name = $alt_name;
  80. }*/
  81. return $name;
  82. }
  83. public function save_tag() {
  84. $name = ((isset($_POST['tagname'])) ? esc_html(stripslashes($_POST['tagname'])) : '');
  85. $name = $this->bwg_get_unique_name($name, 0);
  86. $slug = ((isset($_POST['slug']) && (esc_html($_POST['slug']) != '')) ? esc_html(stripslashes($_POST['slug'])) : $name);
  87. $slug = $this->bwg_get_unique_slug($slug, 0);
  88. $slug = sanitize_title($slug);
  89. if ($name) {
  90. $save = wp_insert_term($name, 'bwg_tag', array(
  91. 'description'=> '',
  92. 'slug' => $slug,
  93. 'parent' => 0
  94. )
  95. );
  96. if (isset($save->errors)) {
  97. return 14;
  98. }
  99. else {
  100. return 1;
  101. }
  102. }
  103. else {
  104. return 15;
  105. }
  106. }
  107. function edit_tag() {
  108. global $wpdb;
  109. $flag = FALSE;
  110. $id = ((isset($_REQUEST['tag_id'])) ? esc_html(stripslashes($_REQUEST['tag_id'])) : '');
  111. $query = "SELECT count FROM " . $wpdb->prefix . "term_taxonomy WHERE term_id=" . $id;
  112. $count = $wpdb->get_var($query);
  113. $name = ((isset($_REQUEST['tagname'])) ? esc_html(stripslashes($_REQUEST['tagname'])) : '');
  114. $name = $this->bwg_get_unique_name($name, $id);
  115. if ($name) {
  116. $slug = ((isset($_REQUEST['slug']) && (esc_html($_REQUEST['slug']) != '')) ? esc_html(stripslashes($_REQUEST['slug'])) : $name);
  117. $slug = $this->bwg_get_unique_slug($slug, $id);
  118. $save = wp_update_term($id, 'bwg_tag', array(
  119. 'name' => $name,
  120. 'slug' => $slug
  121. ));
  122. if (isset($save->errors)) {
  123. echo 'The slug must be unique.';
  124. }
  125. else {
  126. $flag = TRUE;
  127. }
  128. }
  129. if ($flag) {
  130. echo $name . '.' . $slug . '.' . $count;
  131. }
  132. die();
  133. }
  134. public function edit_tags() {
  135. $flag = FALSE;
  136. $rows = get_terms('bwg_tag', array('orderby' => 'count', 'hide_empty' => 0));
  137. $name = ((isset($_POST['tagname'])) ? esc_html(stripslashes($_POST['tagname'])) : '');
  138. $name = $this->bwg_get_unique_name($name, 0);
  139. $slug = ((isset($_POST['slug']) && (esc_html($_POST['slug']) != '')) ? esc_html(stripslashes($_POST['slug'])) : $name);
  140. $slug = $this->bwg_get_unique_slug($slug, 0);
  141. if ($name) {
  142. $save = wp_insert_term($name, 'bwg_tag', array(
  143. 'description'=> '',
  144. 'slug' => $slug,
  145. 'parent' => 0
  146. )
  147. );
  148. if (isset($save->errors)) {
  149. $message = 15;
  150. }
  151. else {
  152. $message = 1;
  153. }
  154. }
  155. foreach ($rows as $row) {
  156. $id = $row->term_id;
  157. $name = ((isset($_POST['tagname' . $row->term_id])) ? esc_html(stripslashes($_POST['tagname' . $id])) : '');
  158. $name = $this->bwg_get_unique_name($name, $id);
  159. if ($name) {
  160. $slug = ((isset($_POST['slug' . $row->term_id]) && (esc_html($_POST['slug' . $id]) != '')) ? esc_html(stripslashes($_POST['slug' . $id])) : $name);
  161. $slug = $this->bwg_get_unique_slug($slug, $id);
  162. $save = wp_update_term($id, 'bwg_tag', array(
  163. 'name' => $name,
  164. 'slug' => $slug
  165. ));
  166. if (isset($save->errors)) {
  167. $message = 16;
  168. }
  169. else {
  170. $flag = TRUE;
  171. }
  172. }
  173. }
  174. if ($flag) {
  175. $message = 1;
  176. }
  177. else {
  178. $message = '';
  179. }
  180. $page = WDWLibrary::get('page');
  181. WDWLibrary::spider_redirect(add_query_arg(array('page' => $page, 'task' => 'display', 'message' => $message), admin_url('admin.php')));
  182. }
  183. public function delete($id) {
  184. global $wpdb;
  185. wp_delete_term($id, 'bwg_tag');
  186. $query = $wpdb->prepare('DELETE FROM ' . $wpdb->prefix . 'bwg_image_tag WHERE tag_id="%d"', $id);
  187. $flag = $wpdb->query($query);
  188. if ($flag !== FALSE) {
  189. $message = 3;
  190. }
  191. else {
  192. $message = 2;
  193. }
  194. $page = WDWLibrary::get('page');
  195. WDWLibrary::spider_redirect(add_query_arg(array('page' => $page, 'task' => 'display', 'message' => $message), admin_url('admin.php')));
  196. }
  197. public function delete_all() {
  198. global $wpdb;
  199. $flag = FALSE;
  200. $tag_ids_col = $wpdb->get_col("SELECT term_id FROM " . $wpdb->prefix . "terms");
  201. foreach ($tag_ids_col as $tag_id) {
  202. if (isset($_POST['check_' . $tag_id])) {
  203. wp_delete_term($tag_id, 'bwg_tag');
  204. $wpdb->query($wpdb->prepare('DELETE FROM ' . $wpdb->prefix . 'bwg_image_tag WHERE tag_id="%d"', $tag_id));
  205. $flag = TRUE;
  206. }
  207. }
  208. if ($flag) {
  209. $message = 5;
  210. }
  211. else {
  212. $message = 6;
  213. }
  214. $page = WDWLibrary::get('page');
  215. WDWLibrary::spider_redirect(add_query_arg(array('page' => $page, 'task' => 'display', 'message' => $message), admin_url('admin.php')));
  216. }
  217. ////////////////////////////////////////////////////////////////////////////////////////
  218. // Getters & Setters //
  219. ////////////////////////////////////////////////////////////////////////////////////////
  220. ////////////////////////////////////////////////////////////////////////////////////////
  221. // Private Methods //
  222. ////////////////////////////////////////////////////////////////////////////////////////
  223. ////////////////////////////////////////////////////////////////////////////////////////
  224. // Listeners //
  225. ////////////////////////////////////////////////////////////////////////////////////////
  226. }