/** * Get an array of available Page actions, indexed by $label => $url * * @param Page $page * @return array of $label => $url * */ public function ___getActions(Page $page) { $actions = array(); $adminUrl = $this->config->urls->admin; if ($page->id == $this->config->trashPageID) { if ($this->superuser) { $actions['trash'] = array('cn' => 'Empty', 'name' => $this->actionLabels['empty'], 'url' => "{$adminUrl}page/trash/"); } } else { if ($page->editable()) { $actions['edit'] = array('cn' => 'Edit', 'name' => $this->actionLabels['edit'], 'url' => "{$adminUrl}page/edit/?id={$page->id}"); } if ($page->viewable()) { $actions['view'] = array('cn' => 'View', 'name' => $this->actionLabels['view'], 'url' => $page->httpUrl); } if ($page->addable()) { $actions['new'] = array('cn' => 'New', 'name' => $this->actionLabels['add'], 'url' => "{$adminUrl}page/add/?parent_id={$page->id}"); } $sortable = $page->sortfield == 'sort' && $page->parent->id && $page->parent->numChildren > 1 && $page->sortable(); if ($page->id > 1 && ($sortable || $page->moveable())) { $actions['move'] = array('cn' => 'Move', 'name' => $this->actionLabels['move'], 'url' => '#'); } $extras = array(); if (isset($actions['edit'])) { $extras = $this->getExtraActions($page); } if (count($extras)) { $actions['extras'] = array('cn' => 'Extras', 'name' => "<i class='fa fa-angle-right'></i>", 'url' => '#', 'extras' => $extras); } } return $actions; }