id || false !== strpos( (string) $screen->id, 'dadan' ) || false !== strpos( (string) $screen->post_type, 'dadan' );
}
}
/*
* Abort cleanly if a legacy Dadan Video / Elementor plugin is still loaded
* (same class / constant names would otherwise fatal).
*/
if ( defined( 'DADAN_VIDEO_VERSION' ) || defined( 'DADAN_ELEMENTOR_VERSION' ) || class_exists( 'Dadan_Plugin', false ) ) {
add_action(
'admin_notices',
static function () {
if ( ! current_user_can( 'activate_plugins' ) || ! dadan_is_notice_screen() ) {
return;
}
echo '
';
echo esc_html__(
'Dadan cannot run while another Dadan plugin is active (Dadan Video Embed / Dadan for Elementor / Dadan U2). Deactivate and delete those plugins, then activate Dadan again.',
'dadan'
);
echo '
';
}
);
return;
}
define( 'DADAN_VIDEO_VERSION', '2.1.4' );
define( 'DADAN_VIDEO_FILE', __FILE__ );
define( 'DADAN_VIDEO_PATH', plugin_dir_path( __FILE__ ) );
define( 'DADAN_VIDEO_URL', plugin_dir_url( __FILE__ ) );
/** Production API / player origin (not SDK staging). */
define( 'DADAN_API_BASE', 'https://app.dadan.io' );
/**
* Optional: force local proprietary recorder SDK (private/Hostinger).
* WordPress.org builds omit assets/recorder-sdk.js and lazy-load the Dadan CDN instead.
*
* define( 'DADAN_RECORDER_FORCE_LOCAL', true );
* define( 'DADAN_RECORDER_FORCE_CDN', true );
*/
require_once DADAN_VIDEO_PATH . 'includes/class-dadan-url.php';
require_once DADAN_VIDEO_PATH . 'includes/class-dadan-fallback.php';
require_once DADAN_VIDEO_PATH . 'includes/class-dadan-oembed.php';
require_once DADAN_VIDEO_PATH . 'includes/class-dadan-shortcode.php';
require_once DADAN_VIDEO_PATH . 'includes/class-dadan-settings.php';
require_once DADAN_VIDEO_PATH . 'includes/class-dadan-instance.php';
require_once DADAN_VIDEO_PATH . 'includes/class-dadan-recorder.php';
require_once DADAN_VIDEO_PATH . 'includes/class-dadan-record-shortcode.php';
require_once DADAN_VIDEO_PATH . 'includes/class-dadan-plugin.php';
/**
* Bootstrap the plugin.
*/
function dadan_plugin_bootstrap() {
Dadan_Plugin::instance()->init();
}
add_action( 'plugins_loaded', 'dadan_plugin_bootstrap' );
/**
* Activation: ensure default instance exists.
*/
function dadan_plugin_activate() {
require_once DADAN_VIDEO_PATH . 'includes/class-dadan-settings.php';
require_once DADAN_VIDEO_PATH . 'includes/class-dadan-instance.php';
$instance = new Dadan_Instance();
$instance->register_post_type();
Dadan_Instance::maybe_migrate();
flush_rewrite_rules( false );
}
register_activation_hook( __FILE__, 'dadan_plugin_activate' );
/**
* Deactivation: flush rewrite rules (data kept until uninstall).
*/
function dadan_plugin_deactivate() {
flush_rewrite_rules( false );
}
register_deactivation_hook( __FILE__, 'dadan_plugin_deactivate' );