public function onMove() { $sourceNode = MenuItem::find(post('sourceNode')); $targetNode = post('targetNode') ? MenuItem::find(post('targetNode')) : null; if ($sourceNode == $targetNode) { return; } switch (post('position')) { case 'before': $sourceNode->moveBefore($targetNode); break; case 'after': $sourceNode->moveAfter($targetNode); break; case 'child': $sourceNode->makeChildOf($targetNode); break; default: $sourceNode->makeRoot(); break; } }
/** * Outputs custom markup in place of the default URL. If not specified, * URL is output. * * @param MenuItem $item * * @return string */ public function onRender(MenuItem $item, Controller $controller, array $settings, $depth = 0, $url, $child_count = 0) { $theme = Theme::getEditTheme(); return $controller->renderPartial($item->master_object_id, ['item' => $item, 'settings' => $settings, 'depth' => $depth, 'url' => $url, 'child_count' => $child_count, 'before_item' => sprintf($settings['before_item'], $item->id, $item->id_attrib, $item->getClassAttrib($settings, $depth), $item->title_attrib), 'after_item' => sprintf($settings['after_item'], $item->id, $item->id_attrib, $item->getClassAttrib($settings, $depth), $item->title_attrib)]); }