oont-contents/plugins/jetpack-boost/app/admin/class-config.php
2025-02-08 15:10:23 +01:00

72 lines
2.2 KiB
PHP

<?php
namespace Automattic\Jetpack_Boost\Admin;
use Automattic\Jetpack\Status;
use Automattic\Jetpack\Status\Host;
/**
* Handle the configuration constants.
*
* This is a global state of Jetpack Boost and passed on to the front-end.
*/
class Config {
public function constants() {
/**
* Filters the internal path to the distributed assets used by the plugin
*
* @param string $path the path to the assets
*
* @since 1.0.0
*/
$internal_path = apply_filters( 'jetpack_boost_asset_internal_path', 'app/assets/dist/' );
$constants = array(
'version' => JETPACK_BOOST_VERSION,
'pluginDirUrl' => untrailingslashit( JETPACK_BOOST_PLUGINS_DIR_URL ),
'assetPath' => plugins_url( $internal_path, JETPACK_BOOST_PATH ),
'canResizeImages' => wp_image_editor_supports( array( 'methods' => array( 'resize' ) ) ),
'site' => array(
'url' => get_home_url(),
'domain' => ( new Status() )->get_site_suffix(),
'online' => ! ( new Status() )->is_offline_mode() && ! ( new Status() )->is_private_site(),
'host' => ( new Host() )->get_known_host_guess(),
),
'api' => array(
'namespace' => JETPACK_BOOST_REST_NAMESPACE,
'prefix' => JETPACK_BOOST_REST_PREFIX,
),
'postTypes' => (object) $this->get_custom_post_types(),
'developmentFeatures' => defined( 'JETPACK_BOOST_DEVELOPMENT_FEATURES' ) && JETPACK_BOOST_DEVELOPMENT_FEATURES,
);
/**
* Filters the constants so each module can define extra ones
*
* @param array $constant The array of constants used by the plugin
*
* @since 1.0.0
*/
return apply_filters( 'jetpack_boost_js_constants', $constants );
}
/**
* Retrieves custom post types.
*
* @return array Associative array of custom post types
* with their labels as keys and names as values.
*/
private static function get_custom_post_types() {
$post_types = get_post_types(
array(
'public' => true,
'_builtin' => false,
),
false
);
unset( $post_types['attachment'] );
$post_types = array_filter( $post_types, 'is_post_type_viewable' );
return wp_list_pluck( $post_types, 'label', 'name' );
}
}