requireUIFile("jquery-ui-nestedsortable.js");
$AF->requireUIFile("EditNav.js");
# get plugin
$SecondaryNavPlugin = SecondaryNavigation::getInstance();
# get tree
$ToPrint = $SecondaryNavPlugin->getTree($NavMenu);
# print all NavItems using the tree
print "
";
printItems($ToPrint);
print "
";
# output the javascript to wire-in the jquery-ui-nestedsortable
print "";
}
/**
* Print items in an unordered list for nestedsortable sorting
* @param array $Items to print, in tree structure
*/
function printItems(array $Items): void
{
print "";
foreach ($Items as $Info) {
print "";
}
print "
";
}
/**
* Get the rename and delete buttons for nav items
* put here so printItems() isn't too cluttered (and copying format of MFO)
* @param int $NavItemId ID of NavItem to print buttons for
* @return string html buttons to print
*/
function getItemButtons(int $NavItemId): string
{
$EditButton = new HtmlButton("Edit");
$EditButton->setIcon("Pencil.svg");
$EditButton->setSize(HtmlButton::SIZE_SMALL);
$EditButton->addClass("mv-menu-sort-button");
$EditButton->setLink("index.php?P=P_SecondaryNavigation_EditItem&NI=$NavItemId");
$DeleteButton = new HtmlButton("Delete");
$DeleteButton->setIcon("Delete.svg");
$DeleteButton->setSize(HtmlButton::SIZE_SMALL);
$DeleteButton->addClass("mv-menu-sort-button");
$DeleteButton->addSemanticClass("btn-danger");
$DeleteButton->setValue("DeleteItem,$NavItemId");
$DeleteButton->setTitle("Delete this link");
# render the edit button if this is not a system generated item
# (i.e., it's created by a user)
$NavItem = new NavItem($NavItemId);
return ($NavItem->createdByUser() ? $EditButton->getHtml() : "") . $DeleteButton->getHtml();
}
/**
* Print the list of offered items
* @param array $OfferedItems label/link pairs to display (keyed on link)
*/
function printOfferedItems(array $OfferedItems): void
{
$TooltipId = 0;
print "";
}
# ----- SETUP ----------------------------------------------------------------
$AF = ApplicationFramework::getInstance();
$AF->requireUIFile("jquery-ui.js");
$AF->requireUIFile("jquery-ui.css");
$AddButton = new HtmlButton("Add");
$AddButton->setIcon("Plus.svg");
$AddButton->setSize(HtmlButton::SIZE_SMALL);
$AddButton->setValue("Add Item");
# ----- DISPLAY --------------------------------------------------------------
PageTitle("Edit Your Menu");
?>
Changes to menu order saved
Tip: drag objects to reorder them.