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' );