You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
3.2 KiB
PHTML
100 lines
3.2 KiB
PHTML
8 months ago
|
<?php
|
||
|
/**
|
||
|
* Common admin.
|
||
|
*
|
||
|
* @package \ET\Common
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Get code snippets application nonces.
|
||
|
*/
|
||
|
function et_code_snippets_get_nonces() {
|
||
|
return [
|
||
|
'saveDomainToken' => wp_create_nonce( 'et_builder_ajax_save_domain_token' ),
|
||
|
'et_theme_builder_api_get_terms' => wp_create_nonce( 'et_theme_builder_api_get_terms' ),
|
||
|
'et_library_save_item' => wp_create_nonce( 'et_library_save_item' ),
|
||
|
];
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Gets the available languages.
|
||
|
*
|
||
|
* @return array Available languages.
|
||
|
*/
|
||
|
function et_common_get_available_languages() {
|
||
|
$translations = get_site_transient( 'available_translations' );
|
||
|
$available_languages = [];
|
||
|
|
||
|
if ( ! $translations ) {
|
||
|
/** Load WordPress Translation Install API */
|
||
|
require_once ABSPATH . 'wp-admin/includes/translation-install.php';
|
||
|
|
||
|
$translations = wp_get_available_translations();
|
||
|
}
|
||
|
|
||
|
foreach ( $translations as $translation => $translation_data ) {
|
||
|
if ( ! isset( $translation_data['english_name'] ) ) {
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
$english_name = $translation_data['english_name'];
|
||
|
|
||
|
$available_languages[ $english_name ] = $english_name;
|
||
|
}
|
||
|
|
||
|
return $available_languages;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Localize common app js data.
|
||
|
*/
|
||
|
function et_common_global_js_vars() {
|
||
|
if ( ! is_admin() && ! et_core_is_fb_enabled() ) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if ( is_admin() ) {
|
||
|
global $shortname;
|
||
|
|
||
|
// phpcs:disable WordPress.Security.NonceVerification -- This function does not change any state and is therefore not susceptible to CSRF.
|
||
|
$is_templates_page = isset( $_GET['page'] ) && 'et_theme_builder' === $_GET['page'];
|
||
|
$current_screen = get_current_screen();
|
||
|
$toplevel_page = 'toplevel_page_et_' . $shortname . '_options';
|
||
|
$is_options_page = $toplevel_page === $current_screen->id;
|
||
|
$is_layouts_library_page = isset( $current_screen->id ) && 'edit-et_pb_layout' === $current_screen->id;
|
||
|
$is_divi_library = isset( $_GET['post_type'] ) && 'et_pb_layout' === $_GET['post_type'];
|
||
|
|
||
|
if ( ! $is_templates_page && ! $is_options_page && ! $is_layouts_library_page && ! $is_divi_library && ! et_builder_bfb_enabled() ) {
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$home_url = wp_parse_url( get_site_url() );
|
||
|
|
||
|
$data = [
|
||
|
'config' => [
|
||
|
'nonces' => et_code_snippets_get_nonces(),
|
||
|
'api' => admin_url( 'admin-ajax.php' ),
|
||
|
'site_domain' => $home_url['host'],
|
||
|
'domainToken' => get_option( 'et_server_domain_token', '' ),
|
||
|
'layoutCategories' => et_theme_builder_get_terms( 'layout_category' ),
|
||
|
'layoutTags' => et_theme_builder_get_terms( 'layout_tag' ),
|
||
|
'localCategoriesEdit' => current_user_can( 'manage_categories' ) ? 'allowed' : 'notAllowed',
|
||
|
'availableLanguages' => et_common_get_available_languages(),
|
||
|
'post_types' => [
|
||
|
'et_code_snippet' => ET_CODE_SNIPPET_POST_TYPE,
|
||
|
'et_theme_options' => is_admin() ? ET_THEME_OPTIONS_POST_TYPE : '',
|
||
|
],
|
||
|
],
|
||
|
'i18n' => [
|
||
|
'library' => require ET_COMMON_DIR . 'i18n/library.php',
|
||
|
'ai' => require ET_COMMON_DIR . 'i18n/ai.php',
|
||
|
],
|
||
|
];
|
||
|
|
||
|
echo '<script>var et_common_data = ' . wp_json_encode( $data ) . '</script>';
|
||
|
}
|
||
|
|
||
|
add_action( 'wp_head', 'et_common_global_js_vars' );
|
||
|
add_action( 'admin_head', 'et_common_global_js_vars' );
|