Beispiel #1
0
 /**
  * Displays a few tools associated with the currently viewed page
  * @return string
  */
 function tools($id = false, $extras = true)
 {
     global $Controller, $ID;
     if (!$id) {
         $id = $ID;
     }
     if (is_object($id)) {
         $obj = $id;
         $id = $obj->ID;
     } else {
         $obj = $Controller->get($id);
     }
     if (!$obj) {
         return false;
     }
     $r = array();
     if ($extras === true) {
         $r[] = icon('small/eye', __('View'), url(array('id' => $id)), true);
         $extras = false;
     }
     if ($obj->mayI(EDIT)) {
         if ($editors = $obj->editable) {
             foreach ($editors as $editor => $aLevel) {
                 if ($obj->mayI($aLevel)) {
                     $r[] = icon($editor::$edit_icon, __($editor::$edit_text), url(array('edit' => $id, 'with' => $editor)), true);
                 }
             }
         }
     }
     if (is_array($extras)) {
         $r = array_merge($r, $extras);
     } elseif ($extras) {
         $r[] = $extras;
     }
     return Box::dropdown('small/bullet_wrench', false, $r);
 }
 /**
  * Render the menu for editing
  * @param array $array
  * @return string
  */
 private function makeMenu($array)
 {
     static $i = 0;
     static $recursion = 0;
     if (count($array) == 0) {
         return;
     }
     ++$recursion;
     global $CONFIG, $USER;
     if ($this->mayI(EDIT)) {
         JS::loadjQuery(false);
         JS::lib('menusort');
     }
     /* $r=''; */
     $r = '<ul class="menulist">';
     $save = array('edit', 'with', 'id');
     while (list(, $obj) = each($array)) {
         $r .= '<li id="m' . $obj['id'] . '" class="' . (++$i % 2 ? 'odd' : 'even') . (is_a($obj['object'], 'MenuSection') ? ' menusection' : '') . '"><span class="fixed-width">' . $obj['object'] . '</span>' . Box::tools($obj['object']) . Box::dropdown('small/add', false, array(icon('small/arrow_right', __('New child page'), url(array('action' => 'newpage', 'where' => 'child', 'to' => $obj['id']), $save), true), icon('small/arrow_down', __('New page below'), url(array('action' => 'newpage', 'where' => 'below', 'to' => $obj['id']), $save), true))) . Box::dropdown('small/arrow_out', false, false, 'pagemove') . (isset($obj['children']) ? $this->makeMenu($obj['children']) : '') . '</li>';
     }
     $r .= '</ul>';
     --$recursion;
     if ($recursion == 0) {
         $i = 0;
     }
     return $r;
 }