PluginProbe
WP Data Access – App Builder for Tables, Forms, Charts, Maps & Dashboards / 5.5.32
WP Data Access – App Builder for Tables, Forms, Charts, Maps & Dashboards v5.5.32
5.5.84 5.5.83 5.5.82 5.5.81 5.5.80 5.5.79 5.5.77 5.5.76 5.5.75 5.5.73 5.5.72 5.5.22 5.5.23 5.5.29 5.5.3 5.5.31 5.5.32 5.5.34 5.5.35 5.5.36 5.5.37 5.5.4 5.5.40 5.5.41 5.5.42 All 160 releases
wp-data-access / WPDataAccess / Plugin_Table_Models / WPDA_User_Menus_Model.php

WPDA_User_Menus_Model.php in WP Data Access – App Builder for Tables, Forms, Charts, Maps & Dashboards 5.5.32, at WPDataAccess/Plugin_Table_Models/WPDA_User_Menus_Model.php

161 lines 3.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Suppress "error - 0 - No summary was found for this file" on phpdoc generation
5 *
6 * @package WPDataAccess\Plugin_Table_Models
7 */
8
9 namespace WPDataAccess\Plugin_Table_Models {
10
11 use PHPMailer\PHPMailer\Exception;
12 use WPDataAccess\WPDA;
13
14 /**
15 * Class WPDA_Publisher_Model
16 *
17 * Model for plugin table 'menus'
18 *
19 * @author Peter Schulz
20 * @since 2.6.0
21 */
22 class WPDA_User_Menus_Model extends WPDA_Plugin_Table_Base_Model {
23
24 const BASE_TABLE_NAME = 'wpda_menus';
25
26 /**
27 * List of external menu items
28 *
29 * Used in {@see \WP_Data_Access_Admin::add_menu_my_tables()} to build user defined menus.
30 *
31 * Returns all external menu items. These menus are below a user defined menu.
32 *
33 * @return array List of menu items
34 * @since 1.0.0
35 */
36 public static function list_external_menus() {
37 global $wpdb;
38
39 try {
40 return $wpdb->get_results(
41 $wpdb->prepare(
42 'select * from `%1s` order by menu_name', // phpcs:ignore WordPress.DB.PreparedSQLPlaceholders
43 array(
44 WPDA::remove_backticks( self::get_base_table_name() ),
45 )
46 )
47 ); // phpcs:ignore Standard.Category.SniffName.ErrorCode
48 } catch( \Exception $e ) {
49 return array();
50 }
51 }
52
53 /**
54 * Get menus defined for a specific table
55 *
56 * @param string $menu_table_name Table name
57 * @param string $menu_schema_name Schema name
58 *
59 * @return array List of menus for the requested table name
60 */
61 public static function get_table_menus( $menu_table_name, $menu_schema_name ) {
62 global $wpdb;
63
64 if ( self::table_exists() ) {
65 return $wpdb->get_results(
66 $wpdb->prepare(
67 'select * from `%1s` where menu_schema_name = %s and menu_table_name = %s order by menu_name', // phpcs:ignore WordPress.DB.PreparedSQLPlaceholders
68 array(
69 WPDA::remove_backticks( self::get_base_table_name() ),
70 $menu_schema_name,
71 $menu_table_name,
72 )
73 ),
74 'ARRAY_A'
75 ); // phpcs:ignore Standard.Category.SniffName.ErrorCode
76 } else {
77 return array();
78 }
79 }
80
81 /**
82 * Insert a record in the base table
83 *
84 * @param string $menu_table_name Table name
85 * @param string $menu_name Menu name
86 * @param string $menu_slug Menu slug
87 * @param string $menu_role Menu role(s)
88 * @param string $menu_schema_name Schema name
89 *
90 * @return bool TRUE = Insert was successful
91 */
92 public static function insert( $menu_table_name, $menu_name, $menu_slug, $menu_role, $menu_schema_name ) {
93 global $wpdb;
94
95 if ( self::table_exists() ) {
96 return ( 1 === $wpdb->insert(
97 static::get_base_table_name(),
98 array(
99 'menu_schema_name' => $menu_schema_name,
100 'menu_table_name' => $menu_table_name,
101 'menu_name' => $menu_name,
102 'menu_slug' => $menu_slug,
103 'menu_role' => $menu_role,
104 )
105 )
106 );
107 }
108 }
109
110 /**
111 * Update a record in the base table
112 *
113 * @param int $menu_id Menu id
114 * @param string $menu_table_name Table name
115 * @param string $menu_name Menu name
116 * @param string $menu_slug Menu slug
117 * @param string $menu_role Menu role(s)
118 * @param string $menu_schema_name Schema name
119 *
120 * @return mixed Transaction status
121 */
122 public static function update( $menu_id, $menu_table_name, $menu_name, $menu_slug, $menu_role, $menu_schema_name ) {
123 global $wpdb;
124
125 return $wpdb->update(
126 static::get_base_table_name(),
127 array(
128 'menu_schema_name' => $menu_schema_name,
129 'menu_table_name' => $menu_table_name,
130 'menu_name' => $menu_name,
131 'menu_slug' => $menu_slug,
132 'menu_role' => $menu_role,
133 ),
134 array(
135 'menu_id' => $menu_id,
136 )
137 );
138 }
139
140 /**
141 * Delete a record fro the base table
142 *
143 * @param int $menu_id Menu id
144 *
145 * @return mixed Transaction status
146 */
147 public static function delete( $menu_id ) {
148 global $wpdb;
149
150 return $wpdb->delete(
151 static::get_base_table_name(),
152 array(
153 'menu_id' => $menu_id,
154 )
155 );
156 }
157
158 }
159
160 }
161