How to hide a single ajax page from the panel

If you’re willing to modify the core files, you can do what I did…

Edit “panel/app/snippets/pages/sidebar/subpage.php” (add the wrapping if statement)

<?php if($subpage->hidepage() != 'true'): ?>
<li>
  <a class="draggable" data-helper="<?php echo esc($subpage->title(), 'attr') ?>" data-text="<?php echo esc(dragText($subpage), 'attr') ?>" href="<?php _u($subpage, 'show') ?>">
    <?php i($subpage) ?><span><?php __($subpage->title()) ?></span>
    <small class="marginalia shiv shiv-left shiv-white"><?php __(n($subpage)) ?></small>
  </a>
</li>
<?php endif; ?>

Create a new hidepage field at “site/fields/hidepage/hidepage.php”

<?php

class HidepageField extends BaseField {

  public function template() {
    return new Brick('input', null, array(
      'type'  => 'hidepage',
      'name'  => $this->name(),
      'value' => $this->value()
    ));
  }

  public function element() {
    if($this->hidepage) {
      $element->addClass('field-is-hidden');
    }
  }

}

In the content file add “hidepage: true”

Title: Settings

----

Hidepage: true
1 Like