File "WPDA_User_Menus_Model.php"
Full Path: /home/vantageo/public_html/cache/cache/cache/cache/cache/.wp-cli/wp-content/plugins/wp-data-access/WPDataAccess/Plugin_Table_Models/WPDA_User_Menus_Model.php
File size: 3.93 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Suppress "error - 0 - No summary was found for this file" on phpdoc generation
*
* @package WPDataAccess\Plugin_Table_Models
*/
namespace WPDataAccess\Plugin_Table_Models {
use PHPMailer\PHPMailer\Exception;
use WPDataAccess\WPDA;
/**
* Class WPDA_Publisher_Model
*
* Model for plugin table 'menus'
*
* @author Peter Schulz
* @since 2.6.0
*/
class WPDA_User_Menus_Model extends WPDA_Plugin_Table_Base_Model {
const BASE_TABLE_NAME = 'wpda_menus';
/**
* List of external menu items
*
* Used in {@see \WP_Data_Access_Admin::add_menu_my_tables()} to build user defined menus.
*
* Returns all external menu items. These menus are below a user defined menu.
*
* @return array List of menu items
* @since 1.0.0
*/
public static function list_external_menus() {
global $wpdb;
try {
return $wpdb->get_results(
$wpdb->prepare(
'select * from `%1s` order by menu_name', // phpcs:ignore WordPress.DB.PreparedSQLPlaceholders
array(
WPDA::remove_backticks( self::get_base_table_name() ),
)
)
); // phpcs:ignore Standard.Category.SniffName.ErrorCode
} catch( \Exception $e ) {
return array();
}
}
/**
* Get menus defined for a specific table
*
* @param string $menu_table_name Table name
* @param string $menu_schema_name Schema name
*
* @return array List of menus for the requested table name
*/
public static function get_table_menus( $menu_table_name, $menu_schema_name ) {
global $wpdb;
if ( self::table_exists() ) {
return $wpdb->get_results(
$wpdb->prepare(
'select * from `%1s` where menu_schema_name = %s and menu_table_name = %s order by menu_name', // phpcs:ignore WordPress.DB.PreparedSQLPlaceholders
array(
WPDA::remove_backticks( self::get_base_table_name() ),
$menu_schema_name,
$menu_table_name,
)
),
'ARRAY_A'
); // phpcs:ignore Standard.Category.SniffName.ErrorCode
} else {
return array();
}
}
/**
* Insert a record in the base table
*
* @param string $menu_table_name Table name
* @param string $menu_name Menu name
* @param string $menu_slug Menu slug
* @param string $menu_role Menu role(s)
* @param string $menu_schema_name Schema name
*
* @return bool TRUE = Insert was successful
*/
public static function insert( $menu_table_name, $menu_name, $menu_slug, $menu_role, $menu_schema_name ) {
global $wpdb;
if ( self::table_exists() ) {
return ( 1 === $wpdb->insert(
static::get_base_table_name(),
array(
'menu_schema_name' => $menu_schema_name,
'menu_table_name' => $menu_table_name,
'menu_name' => $menu_name,
'menu_slug' => $menu_slug,
'menu_role' => $menu_role,
)
)
);
}
}
/**
* Update a record in the base table
*
* @param int $menu_id Menu id
* @param string $menu_table_name Table name
* @param string $menu_name Menu name
* @param string $menu_slug Menu slug
* @param string $menu_role Menu role(s)
* @param string $menu_schema_name Schema name
*
* @return mixed Transaction status
*/
public static function update( $menu_id, $menu_table_name, $menu_name, $menu_slug, $menu_role, $menu_schema_name ) {
global $wpdb;
return $wpdb->update(
static::get_base_table_name(),
array(
'menu_schema_name' => $menu_schema_name,
'menu_table_name' => $menu_table_name,
'menu_name' => $menu_name,
'menu_slug' => $menu_slug,
'menu_role' => $menu_role,
),
array(
'menu_id' => $menu_id,
)
);
}
/**
* Delete a record fro the base table
*
* @param int $menu_id Menu id
*
* @return mixed Transaction status
*/
public static function delete( $menu_id ) {
global $wpdb;
return $wpdb->delete(
static::get_base_table_name(),
array(
'menu_id' => $menu_id,
)
);
}
}
}