Files
roi-theme/wp-content/plugins/advanced-ads/includes/admin/class-assets.php
root a22573bf0b Commit inicial - WordPress Análisis de Precios Unitarios
- WordPress core y plugins
- Tema Twenty Twenty-Four configurado
- Plugin allow-unfiltered-html.php simplificado
- .gitignore configurado para excluir wp-config.php y uploads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 21:04:30 -06:00

216 lines
7.5 KiB
PHP
Executable File

<?php
/**
* Assets manages the enqueuing of styles and scripts for the administration area.
*
* @package AdvancedAds
* @author Advanced Ads <info@wpadvancedads.com>
* @since 1.47.0
*/
namespace AdvancedAds\Admin;
use AdvancedAds\Constants;
use Advanced_Ads_AdSense_Admin;
use Advanced_Ads_Display_Conditions;
use AdvancedAds\Utilities\Conditional;
use AdvancedAds\Framework\Interfaces\Integration_Interface;
defined( 'ABSPATH' ) || exit;
/**
* Admin Assets.
*/
class Assets implements Integration_Interface {
/**
* Hook into WordPress.
*
* @return void
*/
public function hooks(): void {
add_action( 'admin_enqueue_scripts', [ $this, 'current_screen' ], 10, 0 );
add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_styles' ], 10, 0 );
add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_scripts' ], 9, 0 );
}
/**
* Enqueue styles and scripts for current screen
*
* @return void
*/
public function current_screen(): void {
$screens = wp_advads()->screens->get_screens();
$wp_screen = get_current_screen();
foreach ( $screens as $screen ) {
if ( $wp_screen->id === $screen->get_hook() ) {
$screen->enqueue_assets();
do_action( 'advanced-ads-screen-' . $screen->get_id(), $screen );
}
}
}
/**
* Enqueue styles
*
* @return void
*/
public function enqueue_styles(): void {
$wp_screen = get_current_screen();
if ( 'post' === $wp_screen->base && Constants::POST_TYPE_AD === $wp_screen->post_type ) {
wp_advads()->registry->enqueue_style( 'screen-ads-editing' );
wp_advads()->registry->enqueue_script( 'screen-ads-editing' );
// Enqueue code editor and settings for manipulating HTML.
$settings = wp_enqueue_code_editor( [ 'type' => 'application/x-httpd-php' ] );
// Only if CodeMirror is enabled.
if ( false !== $settings ) {
wp_advads()->json->add(
'admin',
[
'codeMirror' => [
'settings' => $settings,
],
]
);
}
}
// TODO: made them load conditionaly.
if ( 'dashboard' !== $wp_screen->id ) {
wp_advads()->registry->enqueue_style( 'ui' );
wp_advads()->registry->enqueue_style( 'admin' );
}
if ( 'post' === $wp_screen->base && Constants::POST_TYPE_AD === $wp_screen->post_type ) {
wp_advads()->registry->enqueue_style( 'ad-positioning' );
}
if ( Conditional::is_screen_advanced_ads() ) {
wp_advads()->registry->enqueue_style( 'notifications' );
}
}
/**
* Enqueue scripts
*
* @return void
*/
public function enqueue_scripts(): void {
global $post;
$screen = get_current_screen();
$this->enqueue_endpoints();
$this->enqueue_site_info();
// TODO: add conditional loading.
wp_advads()->registry->enqueue_script( 'admin-global' );
wp_advads()->registry->enqueue_script( 'find-adblocker' );
$params = [
'ajax_nonce' => wp_create_nonce( 'advanced-ads-admin-ajax-nonce' ),
'create_ad_url' => esc_url( admin_url( 'post-new.php?post_type=advanced_ads' ) ),
'create_your_first_ad' => __( 'Create your first ad', 'advanced-ads' ),
];
wp_advads_json_add( $params, 'advadsglobal' );
// TODO: remove later start using global data variable.
wp_advads_json_add( 'ajax_nonce', wp_create_nonce( 'advanced-ads-admin-ajax-nonce' ), 'advadsglobal' );
if ( Conditional::is_screen_advanced_ads() ) {
wp_advads()->registry->enqueue_script( 'admin' );
wp_advads()->registry->enqueue_script( 'conditions' );
wp_advads()->registry->enqueue_script( 'wizard' );
wp_advads()->registry->enqueue_script( 'adblocker-image-data' );
wp_advads()->registry->enqueue_script( 'notifications-center' );
$translation_array = [
'condition_or' => __( 'or', 'advanced-ads' ),
'condition_and' => __( 'and', 'advanced-ads' ),
'after_paragraph_promt' => __( 'After which paragraph?', 'advanced-ads' ),
'page_level_ads_enabled' => Advanced_Ads_AdSense_Admin::get_auto_ads_messages()['enabled'],
'today' => __( 'Today', 'advanced-ads' ),
'yesterday' => __( 'Yesterday', 'advanced-ads' ),
'this_month' => __( 'This Month', 'advanced-ads' ),
/* translators: 1: The number of days. */
'last_n_days' => __( 'Last %1$d days', 'advanced-ads' ),
/* translators: 1: An error message. */
'error_message' => __( 'An error occurred: %1$s', 'advanced-ads' ),
'all' => __( 'All', 'advanced-ads' ),
'active' => __( 'Active', 'advanced-ads' ),
'no_results' => __( 'There were no results returned for this ad. Please make sure it is active, generating impressions and double check your ad parameters.', 'advanced-ads' ),
'show_inactive_ads' => __( 'Show inactive ads', 'advanced-ads' ),
'hide_inactive_ads' => __( 'Hide inactive ads', 'advanced-ads' ),
'display_conditions_form_name' => Advanced_Ads_Display_Conditions::FORM_NAME, // not meant for translation.
'delete_placement_confirmation' => __( 'Permanently delete this placement?', 'advanced-ads' ),
'close' => __( 'Close', 'advanced-ads' ),
'close_save' => __( 'Close and save', 'advanced-ads' ),
'save_new_placement' => __( 'Save new placement', 'advanced-ads' ),
'confirmation' => __( 'Data you have entered has not been saved. Are you sure you want to discard your changes?', 'advanced-ads' ),
'admin_page' => $screen->id,
'placements_allowed_ads' => [
'action' => 'advads-placements-allowed-ads',
'nonce' => wp_create_nonce( 'advads-placements-allowed-ads' ),
],
'group_forms' => [
'save' => __( 'Save', 'advanced-ads' ),
'save_new' => __( 'Save New Group', 'advanced-ads' ),
'updated' => __( 'Group updated', 'advanced-ads' ),
'deleted' => __( 'Group deleted', 'advanced-ads' ),
/* translators: an ad group title. */
'confirmation' => __( 'You are about to permanently delete %s', 'advanced-ads' ),
],
'placement_forms' => [
'created' => __( 'New placement created', 'advanced-ads' ),
'updated' => __( 'Placement updated', 'advanced-ads' ),
],
];
// TODO: remove later start using global data variable.
wp_advads_json_add( $translation_array, 'advadstxt' );
}
if ( Constants::POST_TYPE_AD === $screen->id ) {
wp_enqueue_media( [ 'post' => $post ] );
}
// Ad edit screen.
if ( 'post' === $screen->base && Constants::POST_TYPE_AD === $screen->post_type ) {
wp_advads()->registry->enqueue_script( 'ad-positioning' );
}
if ( in_array( $screen->id, [ 'edit-post', 'edit-page' ], true ) && current_user_can( 'edit_posts' ) ) {
wp_advads()->registry->enqueue_script( 'page-quick-edit' );
wp_advads_json_add( 'page_quick_edit', [ 'nonce' => wp_create_nonce( 'advads-post-quick-edit' ) ] );
}
}
/**
* Global variables: advancedAds
*/
private function enqueue_site_info() {
$endpoints = [
'blogId' => get_current_blog_id(),
'homeUrl' => get_home_url(),
];
wp_advads_json_add( 'siteInfo', $endpoints );
}
/**
* Global variables: advancedAds
*/
private function enqueue_endpoints() {
$endpoints = [
'adminUrl' => esc_url( admin_url( '/' ) ),
'ajaxUrl' => esc_url( admin_url( 'admin-ajax.php' ) ),
'assetsUrl' => esc_url( ADVADS_BASE_URL ),
'editAd' => esc_url( admin_url( 'post.php?action=edit&post=' ) ),
];
wp_advads_json_add( 'endpoints', $endpoints );
}
}