/wp-content/plugins/photo-gallery/admin/models/BWGModelGalleries_bwg.php

https://gitlab.com/edgarze188/sunrise · PHP · 185 lines · 147 code · 14 blank · 24 comment · 45 complexity · 5fa4b03372a774dd89c4461aead4d88a MD5 · raw file

  1. <?php
  2. class BWGModelGalleries_bwg {
  3. ////////////////////////////////////////////////////////////////////////////////////////
  4. // Events //
  5. ////////////////////////////////////////////////////////////////////////////////////////
  6. ////////////////////////////////////////////////////////////////////////////////////////
  7. // Constants //
  8. ////////////////////////////////////////////////////////////////////////////////////////
  9. ////////////////////////////////////////////////////////////////////////////////////////
  10. // Variables //
  11. ////////////////////////////////////////////////////////////////////////////////////////
  12. private $per_page = 20;
  13. ////////////////////////////////////////////////////////////////////////////////////////
  14. // Constructor & Destructor //
  15. ////////////////////////////////////////////////////////////////////////////////////////
  16. public function __construct() {
  17. $user = get_current_user_id();
  18. $screen = get_current_screen();
  19. $option = $screen->get_option('per_page', 'option');
  20. $this->per_page = get_user_meta($user, $option, true);
  21. if ( empty ( $this->per_page) || $this->per_page < 1 ) {
  22. $this->per_page = $screen->get_option( 'per_page', 'default' );
  23. }
  24. }
  25. ////////////////////////////////////////////////////////////////////////////////////////
  26. // Public Methods //
  27. ////////////////////////////////////////////////////////////////////////////////////////
  28. public function get_image_rows_data($gallery_id) {
  29. global $wpdb;
  30. if (!current_user_can('manage_options') && $wpdb->get_var("SELECT image_role FROM " . $wpdb->prefix . "bwg_option")) {
  31. $where = " WHERE author=" . get_current_user_id();
  32. }
  33. else {
  34. $where = " WHERE author>=0 ";
  35. }
  36. $where .= ((isset($_POST['search_value'])) ? ' AND filename LIKE "%' . esc_html(stripslashes($_POST['search_value'])) . '%"' : '');
  37. $asc_or_desc = ((isset($_POST['asc_or_desc'])) ? esc_html(stripslashes($_POST['asc_or_desc'])) : 'asc');
  38. $asc_or_desc = ($asc_or_desc != 'asc') ? 'desc' : 'asc';
  39. $image_order_by = ' ORDER BY `' . ((isset($_POST['image_order_by']) && esc_html(stripslashes($_POST['image_order_by'])) != '') ? esc_html(stripslashes($_POST['image_order_by'])) : 'order') . '` ' . $asc_or_desc;
  40. if (isset($_POST['page_number']) && $_POST['page_number']) {
  41. $limit = ((int) $_POST['page_number'] - 1) * $this->per_page;
  42. }
  43. else {
  44. $limit = 0;
  45. }
  46. $row = $wpdb->get_results("SELECT * FROM " . $wpdb->prefix . "bwg_image " . $where . " AND gallery_id='" . $gallery_id . "' " . $image_order_by . " LIMIT " . $limit . ",".$this->per_page);
  47. return $row;
  48. }
  49. public function get_tag_rows_data($image_id) {
  50. global $wpdb;
  51. $rows = $wpdb->get_results($wpdb->prepare("SELECT * FROM " . $wpdb->prefix . "terms AS table1 INNER JOIN " . $wpdb->prefix . "bwg_image_tag AS table2 ON table1.term_id=table2.tag_id WHERE table2.image_id='%d' ORDER BY table2.tag_id", $image_id));
  52. return $rows;
  53. }
  54. public function get_rows_data() {
  55. global $wpdb;
  56. if (!current_user_can('manage_options') && $wpdb->get_var("SELECT gallery_role FROM " . $wpdb->prefix . "bwg_option")) {
  57. $where = " WHERE author=" . get_current_user_id();
  58. }
  59. else {
  60. $where = " WHERE author>=0 ";
  61. }
  62. $where .= ((isset($_POST['search_value'])) ? ' AND name LIKE "%' . esc_html(stripslashes($_POST['search_value'])) . '%"' : '');
  63. $asc_or_desc = ((isset($_POST['asc_or_desc'])) ? esc_html(stripslashes($_POST['asc_or_desc'])) : 'asc');
  64. $asc_or_desc = ($asc_or_desc != 'asc') ? 'desc' : 'asc';
  65. $order_by = ' ORDER BY `' . ((isset($_POST['order_by']) && esc_html(stripslashes($_POST['order_by'])) != '') ? esc_html(stripslashes($_POST['order_by'])) : 'order') . '` ' . $asc_or_desc;
  66. if (isset($_POST['page_number']) && $_POST['page_number']) {
  67. $limit = ((int) $_POST['page_number'] - 1) * $this->per_page;
  68. }
  69. else {
  70. $limit = 0;
  71. }
  72. $query = "SELECT * FROM " . $wpdb->prefix . "bwg_gallery " . $where . $order_by . " LIMIT " . $limit . ",".$this->per_page;
  73. $rows = $wpdb->get_results($query);
  74. return $rows;
  75. }
  76. public function get_row_data($id) {
  77. global $wpdb;
  78. if ($id != 0) {
  79. if (!current_user_can('manage_options') && $wpdb->get_var("SELECT gallery_role FROM " . $wpdb->prefix . "bwg_option")) {
  80. $where = " WHERE author=" . get_current_user_id();
  81. }
  82. else {
  83. $where = " WHERE author>=0 ";
  84. }
  85. $row = $wpdb->get_row($wpdb->prepare('SELECT * FROM ' . $wpdb->prefix . 'bwg_gallery ' . $where . ' AND id="%d"', $id));
  86. }
  87. else {
  88. $row = new stdClass();
  89. $row->id = 0;
  90. $row->name = '';
  91. $row->slug = '';
  92. $row->description = '';
  93. $row->preview_image = '';
  94. $row->order = 0;
  95. $row->author = get_current_user_id();
  96. $row->images_count = 0;
  97. $row->published = 1;
  98. }
  99. return $row;
  100. }
  101. public function page_nav() {
  102. global $wpdb;
  103. if (!current_user_can('manage_options') && $wpdb->get_var("SELECT gallery_role FROM " . $wpdb->prefix . "bwg_option")) {
  104. $where = " WHERE author=" . get_current_user_id();
  105. }
  106. else {
  107. $where = " WHERE author>=0 ";
  108. }
  109. $where .= ((isset($_POST['search_value']) && (esc_html(stripslashes($_POST['search_value'])) != '')) ? ' AND name LIKE "%' . esc_html(stripslashes($_POST['search_value'])) . '%"' : '');
  110. $query = "SELECT COUNT(*) FROM " . $wpdb->prefix . "bwg_gallery " . $where;
  111. $total = $wpdb->get_var($query);
  112. $page_nav['total'] = $total;
  113. if (isset($_POST['page_number']) && $_POST['page_number']) {
  114. $limit = ((int) $_POST['page_number'] - 1) * $this->per_page;
  115. }
  116. else {
  117. $limit = 0;
  118. }
  119. $page_nav['limit'] = (int) ($limit / $this->per_page + 1);
  120. return $page_nav;
  121. }
  122. public function image_page_nav($gallery_id) {
  123. global $wpdb;
  124. if (!current_user_can('manage_options') && $wpdb->get_var("SELECT image_role FROM " . $wpdb->prefix . "bwg_option")) {
  125. $where = " AND author=" . get_current_user_id();
  126. }
  127. else {
  128. $where = " AND author>=0 ";
  129. }
  130. $where .= ((isset($_POST['search_value']) && (esc_html(stripslashes($_POST['search_value'])) != '')) ? ' AND filename LIKE "%' . esc_html(stripslashes($_POST['search_value'])) . '%"' : '');
  131. $query = "SELECT COUNT(*) FROM " . $wpdb->prefix . "bwg_image WHERE gallery_id='" . $gallery_id . "' " . $where;
  132. $total = $wpdb->get_var($query);
  133. $page_nav['total'] = $total;
  134. if (isset($_POST['page_number']) && $_POST['page_number']) {
  135. $limit = ((int) $_POST['page_number'] - 1) * $this->per_page;
  136. }
  137. else {
  138. $limit = 0;
  139. }
  140. $page_nav['limit'] = (int) ($limit / $this->per_page + 1);
  141. return $page_nav;
  142. }
  143. public function get_option_row_data() {
  144. global $wpdb;
  145. $row = $wpdb->get_row($wpdb->prepare('SELECT * FROM ' . $wpdb->prefix . 'bwg_option WHERE id="%d"', 1));
  146. return $row;
  147. }
  148. public function get_images_count($gallery_id) {
  149. global $wpdb;
  150. if (!current_user_can('manage_options') && $wpdb->get_var("SELECT image_role FROM " . $wpdb->prefix . "bwg_option")) {
  151. $where = " WHERE author=" . get_current_user_id();
  152. }
  153. else {
  154. $where = " WHERE author>=0 ";
  155. }
  156. $row = $wpdb->get_var($wpdb->prepare("SELECT COUNT(filename) FROM " . $wpdb->prefix . "bwg_image " . $where . " AND gallery_id='%d'", $gallery_id));
  157. return $row;
  158. }
  159. ////////////////////////////////////////////////////////////////////////////////////////
  160. // Getters & Setters //
  161. ////////////////////////////////////////////////////////////////////////////////////////
  162. public function per_page(){
  163. return $this->per_page;
  164. }
  165. ////////////////////////////////////////////////////////////////////////////////////////
  166. // Private Methods //
  167. ////////////////////////////////////////////////////////////////////////////////////////
  168. ////////////////////////////////////////////////////////////////////////////////////////
  169. // Listeners //
  170. ////////////////////////////////////////////////////////////////////////////////////////
  171. }