assemble( $post_id ); include PRAUTOBLOGGER_PLUGIN_DIR . 'templates/admin/dossier-page.php'; } /** * Enqueue dossier-specific CSS + JS. * * The hook suffix for an options.php-parent page is `admin_page_{slug}`. * * @param string $hook_suffix Current admin page hook suffix. * @return void */ public function on_enqueue_assets( string $hook_suffix ): void { // options.php-parent pages resolve to 'admin_page_{slug}' (not 'prautoblogger_page_*'). $dossier_hook = 'admin_page_' . self::PAGE_SLUG; if ( $hook_suffix !== $dossier_hook ) { return; } wp_enqueue_style( 'prautoblogger-dossier', PRAUTOBLOGGER_PLUGIN_URL . 'assets/css/dossier.css', array( 'prautoblogger-admin' ), PRAUTOBLOGGER_VERSION ); wp_enqueue_script( 'prautoblogger-dossier', PRAUTOBLOGGER_PLUGIN_URL . 'assets/js/dossier.js', array(), PRAUTOBLOGGER_VERSION, true ); } /** * Build the URL to the dossier for a given post. * * Deep-link URLs use admin.php?page= which is parent-agnostic. * This method is unchanged from v0.19.2 -- only the registration parent changed. * * @param int $post_id WordPress post ID. * @return string Admin URL to the dossier page. */ public static function url_for_post( int $post_id ): string { return admin_url( 'admin.php?page=' . self::PAGE_SLUG . '&post_id=' . $post_id ); } }