# blockspare/5.0.1/inc/theme-builder/class-blockspare-tb-admin-menu.php

BlockSpare – Gutenberg Blocks, AI Content Generator &amp; Site Builder for News, Magazine &amp; Blogs, version 5.0.1. 45 lines.

- Page: https://pluginprobe.com/plugins/blockspare/5.0.1/code/inc/theme-builder/class-blockspare-tb-admin-menu.php
- Raw: https://pluginprobe.com/plugins/blockspare/5.0.1/raw/inc/theme-builder/class-blockspare-tb-admin-menu.php
- Modified: 2026-09-24T10:31:40+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/blockspare/5.0.1/code/inc/theme-builder/class-blockspare-tb-admin-menu.php#L10-L20`.

```php
<?php

/**
 * Registers the plugin's top-level admin page.
 *
 * @package Blockspare
 */

defined('ABSPATH') || exit;


class Blockspare_TB_Admin_Menu
{

  const PAGE_SLUG = 'blockspare-theme-builder';

  /**
   * Registers the menu.
   */
  public function blocksspare_builder_register()
  {
    $badge_count = __('New', 'blockspare'); // Dynamic count variable
    add_submenu_page(
      'blockspare',                     // Parent Slug (The slug of your main Blockspare menu)
      __('Site Builder', 'blockspare'), // Page Title
      sprintf(
        __('Site Builder %s', 'blockspare'),
        '<span class="update-plugins count-' . esc_attr($badge_count) . '"><span class="plugin-count">' . esc_html($badge_count) . '</span></span>'
      ),
      'edit_pages',                     // Capability
      self::PAGE_SLUG,                  // Submenu Slug
      array($this, 'render'),          // Callback Function
      1
    );
  }

  /**
   * Renders the mount point. All real content is rendered by React.
   */
  public function render()
  {
    echo '<div id="blocksparetb-app" class="blocksparetb-app"></div>';
  }
}

```
