File "WPDA_App_Container_Model.php"
Full Path: /home/vantageo/public_html/cache/cache/cache/cache/cache/cache/cache/.wp-cli/wp-content/plugins/wp-data-access/WPDataAccess/Plugin_Table_Models/WPDA_App_Container_Model.php
File size: 7.7 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace WPDataAccess\Plugin_Table_Models;
use WPDataAccess\WPDA;
class WPDA_App_Container_Model extends WPDA_Plugin_Table_Base_Model {
const BASE_TABLE_NAME = 'wpda_app_container';
public static function select( $app_id, $cnt_seq_nr ) {
global $wpdb;
if ( 0 === $cnt_seq_nr ) {
return $wpdb->get_results(
$wpdb->prepare(
'SELECT * FROM `%1s` WHERE app_id = %d and cnt_seq_nr = 0 order by cnt_id',
// phpcs:ignore WordPress.DB.PreparedSQLPlaceholders
array(WPDA::remove_backticks( self::get_base_table_name() ), $app_id)
),
// db call ok; no-cache ok.
'ARRAY_A'
);
// phpcs:ignore Standard.Category.SniffName.ErrorCode
} else {
return $wpdb->get_results(
$wpdb->prepare(
'SELECT * FROM `%1s` WHERE app_id = %d and cnt_seq_nr > 0 order by cnt_seq_nr, cnt_id',
// phpcs:ignore WordPress.DB.PreparedSQLPlaceholders
array(WPDA::remove_backticks( self::get_base_table_name() ), $app_id)
),
// db call ok; no-cache ok.
'ARRAY_A'
);
// phpcs:ignore Standard.Category.SniffName.ErrorCode
}
}
public static function select_all( $app_id ) {
global $wpdb;
return $wpdb->get_results(
$wpdb->prepare(
'SELECT * FROM `%1s` WHERE app_id = %d order by cnt_seq_nr',
// phpcs:ignore WordPress.DB.PreparedSQLPlaceholders
array(WPDA::remove_backticks( self::get_base_table_name() ), $app_id)
),
// db call ok; no-cache ok.
'ARRAY_A'
);
// phpcs:ignore Standard.Category.SniffName.ErrorCode
}
public static function get_container( $cnt_id ) {
global $wpdb;
return $wpdb->get_results(
$wpdb->prepare(
'SELECT * FROM `%1s` WHERE cnt_id = %d',
// phpcs:ignore WordPress.DB.PreparedSQLPlaceholders
array(WPDA::remove_backticks( self::get_base_table_name() ), $cnt_id)
),
// db call ok; no-cache ok.
'ARRAY_A'
);
// phpcs:ignore Standard.Category.SniffName.ErrorCode
}
public static function create(
$app_id,
$app_dbs,
$app_tbl,
$app_cls,
$cnt_title,
$cnt_seq_nr,
$cnt_table,
$cnt_relation = null
) {
global $wpdb;
if ( 1 === $cnt_seq_nr ) {
$max_seq_nr = $wpdb->get_results(
$wpdb->prepare(
'SELECT max(cnt_seq_nr) FROM `%1s` WHERE app_id = %d',
// phpcs:ignore WordPress.DB.PreparedSQLPlaceholders
array(WPDA::remove_backticks( self::get_base_table_name() ), $app_id)
),
// db call ok; no-cache ok.
'ARRAY_N'
);
// phpcs:ignore Standard.Category.SniffName.ErrorCode
if ( isset( $max_seq_nr[0][0] ) ) {
$cnt_seq_nr = $max_seq_nr[0][0] + 1;
}
}
if ( 1 === $wpdb->insert( static::get_base_table_name(), array(
'cnt_dbs' => $app_dbs,
'cnt_tbl' => $app_tbl,
'cnt_cls' => $app_cls,
'cnt_title' => $cnt_title,
'app_id' => $app_id,
'cnt_seq_nr' => $cnt_seq_nr,
'cnt_table' => $cnt_table,
'cnt_relation' => $cnt_relation,
) ) ) {
// Return new container
$cnt_id = $wpdb->insert_id;
return array(
'cnt_id' => $wpdb->insert_id,
'msg' => '',
);
} else {
return array(
'cnt_id' => false,
'msg' => $wpdb->last_error,
);
}
}
public static function update(
$app_id,
$app_cnt,
$app_dbs,
$app_tbl,
$app_cls,
$cnt_title,
$cnt_seq_nr,
$cnt_table,
$cnt_relation = null
) {
global $wpdb;
$wpdb->update( static::get_base_table_name(), array(
'cnt_dbs' => $app_dbs,
'cnt_tbl' => $app_tbl,
'cnt_cls' => $app_cls,
'cnt_title' => $cnt_title,
'cnt_seq_nr' => $cnt_seq_nr,
'cnt_table' => $cnt_table,
'cnt_relation' => $cnt_relation,
), array(
'app_id' => $app_id,
'cnt_id' => $app_cnt,
) );
return $wpdb->last_error;
}
public static function delete( $app_id ) {
global $wpdb;
return $wpdb->delete( static::get_base_table_name(), array(
'app_id' => $app_id,
) );
}
public static function delete_container( $cnt_id ) {
global $wpdb;
return $wpdb->delete( static::get_base_table_name(), array(
'cnt_id' => $cnt_id,
) );
}
public static function update_master(
$app_id,
$app_dbs,
$app_tbl,
$app_cls
) {
global $wpdb;
$wpdb->update( static::get_base_table_name(), array(
'cnt_dbs' => $app_dbs,
'cnt_tbl' => $app_tbl,
'cnt_cls' => $app_cls,
), array(
'app_id' => $app_id,
'cnt_seq_nr' => 0,
) );
return $wpdb->last_error;
}
public static function update_table_settings( $cnt_id, $cnt_table_settings ) {
global $wpdb;
$wpdb->update( static::get_base_table_name(), array(
'cnt_table' => $cnt_table_settings,
), array(
'cnt_id' => $cnt_id,
) );
return $wpdb->last_error;
}
public static function update_form_settings( $cnt_id, $cnt_form_settings ) {
global $wpdb;
$wpdb->update( static::get_base_table_name(), array(
'cnt_form' => $cnt_form_settings,
), array(
'cnt_id' => $cnt_id,
) );
return $wpdb->last_error;
}
public static function container_move( $cnt_id_from, $cnt_id_to ) {
// This is a premium feature.
return '';
}
public static function copy( $app_id_old, $app_id_new ) {
global $wpdb;
$containers = $wpdb->get_results(
$wpdb->prepare(
'SELECT * FROM `%1s` WHERE app_id = %d order by cnt_seq_nr',
// phpcs:ignore WordPress.DB.PreparedSQLPlaceholders
array(WPDA::remove_backticks( self::get_base_table_name() ), $app_id_old)
),
// db call ok; no-cache ok.
'ARRAY_A'
);
// phpcs:ignore Standard.Category.SniffName.ErrorCode
$cnt_id_master = null;
foreach ( $containers as $container ) {
if ( 0 !== $container['cnt_seq_nr'] && '0' !== $container['cnt_seq_nr'] ) {
$relation = $container['cnt_relation'];
if ( null !== $relation && '' !== $relation ) {
$json = json_decode( $relation, true );
if ( isset( $json['cnt_id_master'] ) ) {
$json['cnt_id_master'] = strval( $cnt_id_master );
$container['cnt_relation'] = json_encode( $json );
}
}
}
$container['app_id'] = $app_id_new;
unset($container['cnt_id']);
$wpdb->insert( static::get_base_table_name(), $container );
if ( 0 === $container['cnt_seq_nr'] || '0' === $container['cnt_seq_nr'] ) {
$cnt_id_master = $wpdb->insert_id;
}
}
}
}