PluginProbe
WP Data Access – App Builder for Tables, Forms, Charts, Maps & Dashboards / 5.5.41
WP Data Access – App Builder for Tables, Forms, Charts, Maps & Dashboards v5.5.41
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_Media_Model.php

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

198 lines 4.6 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_Media_Model
15 *
16 * Model for plugin table 'table_settings'
17 *
18 * @author Peter Schulz
19 * @since 2.6.0
20 */
21 class WPDA_Media_Model extends WPDA_Plugin_Table_Base_Model {
22
23 const BASE_TABLE_NAME = 'wpda_media';
24
25 /**
26 * Holds all defined media columns
27 *
28 * @var null|array
29 */
30 protected static $pooled_media_columns = null;
31
32 /**
33 * Indicates if pool was already setup
34 *
35 * @var bool
36 */
37 protected static $pool_setup = false;
38
39 /**
40 * Set up media column pool
41 *
42 * Gets all defined media columns and stores them in a two dimensional named array
43 */
44 public static function setup_pool() {
45 if ( ! self::$pool_setup ) {
46 global $wpdb;
47 $media = $wpdb->get_results(
48 $wpdb->prepare(
49 "select * from `%1s` where media_activated = 'Yes'", // phpcs:ignore WordPress.DB.PreparedSQLPlaceholders
50 array(
51 WPDA::remove_backticks( self::get_base_table_name() ),
52 )
53 ),
54 'ARRAY_A'
55 );
56
57 foreach ( $media as $m ) {
58 if ( '' === $m['media_schema_name'] ) {
59 $schema_name = $wpdb->dbname;
60 } else {
61 $schema_name = $m['media_schema_name'];
62 }
63 self::$pooled_media_columns[ $schema_name ][ $m['media_table_name'] ][ $m['media_column_name'] ] = $m['media_type'];
64 }
65
66 self::$pool_setup = true;
67 }
68 }
69
70 /**
71 * Returns pool (all media columns)
72 *
73 * @return array|null
74 */
75 public static function get_pool() {
76 if ( ! self::$pool_setup ) {
77 self::setup_pool();
78 }
79
80 return self::$pooled_media_columns;
81 }
82
83 /**
84 * Returns the media type for a specific database schema/table/column
85 *
86 * Returns false if no media type is assigned to the database schema/table/column
87 *
88 * @param $table_name
89 * @param $column_name
90 * @param $schema_name
91 *
92 * @return bool|string
93 */
94 public static function get_column_media( $table_name, $column_name, $schema_name = '' ) {
95 if ( ! self::$pool_setup ) {
96 self::setup_pool();
97 }
98
99 global $wpdb;
100 if ( '' === $schema_name ) {
101 $schema_name = $wpdb->dbname;
102 }
103
104 if ( isset( self::$pooled_media_columns[ $schema_name ][ $table_name ] [ $column_name ] ) ) {
105 return self::$pooled_media_columns[ $schema_name ][ $table_name ] [ $column_name ];
106 } else {
107 return false;
108 }
109 }
110
111 /**
112 * Insert a record in the base table
113 *
114 * @param string $table_name Media table name
115 * @param string $column_name Media column name
116 * @param string $media_type Media type
117 * @param string $media_activated Media activated?
118 * @param string $schema_name Schema name
119 *
120 * @return bool TRUE = Insert was successful
121 */
122 public static function insert( $table_name, $column_name, $media_type, $media_activated = 'Yes', $schema_name = '' ) {
123 global $wpdb;
124 if ( '' === $schema_name ) {
125 $schema_name = $wpdb->dbname;
126 }
127
128 return ( 1 === $wpdb->insert(
129 static::get_base_table_name(),
130 array(
131 'media_schema_name' => $schema_name,
132 'media_table_name' => $table_name,
133 'media_column_name' => $column_name,
134 'media_type' => $media_type,
135 'media_activated' => $media_activated,
136 )
137 )
138 );
139 }
140
141 /**
142 * Update a record in the base table
143 *
144 * @param string $table_name Media table name
145 * @param string $column_name Media column name
146 * @param string $media_type Media type
147 * @param string $schema_name Schema name
148 *
149 * @return mixed Transaction status
150 */
151 public static function update( $table_name, $column_name, $media_type, $schema_name = '' ) {
152 global $wpdb;
153 if ( '' === $schema_name ) {
154 $schema_name = $wpdb->dbname;
155 }
156
157 return $wpdb->update(
158 static::get_base_table_name(),
159 array(
160 'media_type' => $media_type,
161 ),
162 array(
163 'media_schema_name' => $schema_name,
164 'media_table_name' => $table_name,
165 'media_column_name' => $column_name,
166 )
167 );
168 }
169
170 /**
171 * Delete a record fro the base table
172 *
173 * @param string $table_name Media table name
174 * @param string $column_name Media column name
175 * @param string $schema_name Schema name
176 *
177 * @return mixed Transaction status
178 */
179 public static function delete( $table_name, $column_name, $schema_name = '' ) {
180 global $wpdb;
181 if ( '' === $schema_name ) {
182 $schema_name = $wpdb->dbname;
183 }
184
185 return $wpdb->delete(
186 static::get_base_table_name(),
187 array(
188 'media_schema_name' => $schema_name,
189 'media_table_name' => $table_name,
190 'media_column_name' => $column_name,
191 )
192 );
193 }
194
195 }
196
197 }
198