File "WPDA_Apps.php"
Full Path: /home/vantageo/public_html/cache/cache/cache/cache/cache/cache/cache/.wp-cli/wp-content/plugins/wp-data-access/WPDataAccess/Data_Apps/WPDA_Apps.php
File size: 3.19 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace WPDataAccess\Data_Apps;
use WPDataAccess\Plugin_Table_Models\WPDA_App_Model;
use WPDataAccess\WPDA;
class WPDA_Apps {
private $wp_admin_toolbar = array();
public function add_apps_to_menu() {
$apps = WPDA_App_Model::add_to_dashboard_menu();
foreach ( $apps as $app ) {
$settings = json_decode( $app['app_settings'], true );
if (
! isset(
$settings['rest_api']['authorization'],
$settings['rest_api']['authorized_roles'],
$settings['rest_api']['authorized_users'],
$settings['settings']['app_menu_title']
)
) {
continue;
}
if ( $settings['rest_api']['authorization'] === 'authorized' ) {
$authorized_roles = $settings['rest_api']['authorized_roles'];
$current_user_roles = WPDA::get_current_user_roles();
if ( 0 === count( array_intersect( $authorized_roles, $current_user_roles ) ) ) {
$authorized_users = $settings['rest_api']['authorized_users'];
$current_user_name = WPDA::get_current_user_login();
if ( ! in_array( $current_user_name, $authorized_users ) ) {
continue;
}
}
}
$title = $settings['settings']['app_menu_title'];
if ( is_admin() ) {
// Add app to dashboard menu
add_menu_page(
$title,
$title,
WPDA::get_current_user_capability(),
$title,
null,
'dashicons-database-view'
);
add_submenu_page(
$title,
$title,
$title,
WPDA::get_current_user_capability(),
$title,
function() use ( $app, $title ) {
// Style not enqueued from container class.
// Adding container style manually.
$args = array(
'app_id' => $app['app_id'],
'feedback' => true,
);
$app_container = new WPDA_App_Container( $args );
?>
<div class="wrap wpda-dashboard-app">
<h1 class="wp-heading-inline">
<?php echo esc_html( $title ); ?>
</h1>
<?php $app_container->show(); ?>
</div>
<style>
.wrap.wpda-dashboard-app .pp-container-app {
margin: 20px 0 0 0;
}
</style>
<?php
}
);
} else {
// Add app to WordPress toolbar
$this->wp_admin_toolbar[ $app['app_id'] ][] = array(
'menu_id' => $title,
'menu_name' => $title,
'menu_title' => $title,
'page_title' => $title,
);
}
}
if ( ! is_admin() ) {
foreach ( $this->wp_admin_toolbar as $pid => $toolbar ) {
foreach ( $toolbar as $key => $menu ) {
if ( 0 === $key ) {
$this->additem_to_toolbar( $pid, $menu );
}
$this->additem_to_toolbar( $menu['menu_id'], $menu, $pid );
}
}
}
}
private function additem_to_toolbar( $pid, $menu, $parent = null ) {
global $wp_admin_bar;
$args = array(
'id' => $pid,
'title' => null === $parent ? $menu['menu_name'] : $menu['page_title'],
'href' => admin_url('admin.php') . '?page=' . $menu['menu_id'],
'zindex' => '9999',
'meta' =>array(
'class' => null === $parent ? 'wpda-wpdp-toolbar' : '',
'title' => null === $parent ? $menu['menu_title'] : $menu['page_title'],
)
);
if ( null !== $parent ) {
$args['parent'] = $parent;
}
$wp_admin_bar->add_node( $args );
}
}