/** * TOGGLE */ public function toggle() { // register assets $this->assets->setHook('css', pb::load('css', 'elements/toggle.css')); if (!pb::version("2.2.0")) { $js = 'currentURI="' . $this->page->uri() . '";siteURL="' . $this->site->url() . '";'; $this->assets->setHook('js', pb::load('js', 'elements/toggle.min.js')); $this->assets->setHook('js', $js); } else { $this->_registerIframe(); $this->assets->setHook('js', 'panelbarIframe.init([".panelbar--toggle a"]);'); } if ($this->page->isInvisible() and !pb::version("2.2.0")) { // prepare output $siblings = array(); array_push($siblings, array('url' => pb::url('toggle', $this->page), 'label' => '→<span class="gap"></span>←', 'title' => 'Publish page at this position')); foreach ($this->page->siblings()->visible() as $sibling) { array_push($siblings, array('label' => $sibling->title())); array_push($siblings, array('url' => pb::url('toggle', $this->page), 'label' => '→<span class="gap"></span>←', 'title' => 'Publish page at this position')); } return Build::dropdown(array('id' => __FUNCTION__, 'icon' => 'toggle-off', 'label' => 'Invisible', 'items' => $siblings)); } else { return Build::link(array('id' => __FUNCTION__, 'icon' => $this->page->isVisible() ? 'toggle-on' : 'toggle-off', 'label' => $this->page->isVisible() ? 'Visible' : 'Invisible', 'url' => pb::url('toggle', $this->page))); } }