PluginProbe
WP Data Access – App Builder for Tables, Forms, Charts, Maps & Dashboards / 5.5.84
WP Data Access – App Builder for Tables, Forms, Charts, Maps & Dashboards v5.5.84
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.84, at WPDataAccess/Plugin_Table_Models/WPDA_User_Menus_Model.php

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