Right so you have a requirement to have admin control over a menu on the site.

A standard example would be Home | About Us | Press | History | Delivery | Contact | etc | etc

Now you could do this with a whole bunch of work making new tables, extending the topic sections, etc etc.

However a simpler method is to use a topic block to hold the html for the menu.

So for instance you can place a topic block in Footer.cshtml to hold a menu.

in the example below we have used 4 topics to hold 4 menu columns. We could have used one but figured the admins would mess up a 4 column layout in one topic block.

@model FooterModel
@using Nop.Web.Models.Common;
<div class="footer">
    <div id="fcolumn1">@Html.Action("TopicBlock", "Topic", new { systemName = "footer-column-1" })<div class="clear"></div></div>
    <div id="fcolumn2">@Html.Action("TopicBlock", "Topic", new { systemName = "footer-column-2" })<div class="clear"></div></div>
    <div id="fcolumn3">@Html.Action("TopicBlock", "Topic", new { systemName = "footer-column-3" })<div class="clear"></div></div>
    <div id="fcolumn4">@Html.Action("TopicBlock", "Topic", new { systemName = "footer-column-4" })<div class="clear"></div></div>
    <div class="clear"></div>    
</div>
<div class="footerbase">
    @T("Content.CreditCardNotice") <a href="/" class="footerhomelogo">&nbsp;</a>
</div>
<div class="footer-disclaimer">
    @T("Content.CopyrightNotice", DateTime.Now.Year.ToString(), @Model.StoreName)
</div>
<div class="footer-storetheme">
    @Html.Action("StoreThemeSelector", "Common")
</div>
@Html.Action("ChangeDeviceBlock", "Common")
@Html.Action("WidgetsByZone", "Widget", new { widgetZone = Nop.Core.Domain.Cms.WidgetZone.Footer })


You can apply this method to the header or LHS column if required.

Yes this is not as automatic as a CMS however given the overhead of coding that up and the questionable benefits in terms of ease of use (If the admins can edit topics then they already know how to use this system as opposed to working out how to use a menu system) this is a quick way of letting admins edit menus.

1.x
Fairly similar concept here the only difference being the code needed to include the topic.

1. you need to add a reference to the ascx file

<%@ Register TagPrefix="nopCommerce" TagName="Topic" Src="~/Modules/Topic.ascx" %>


2. Add the topic module to the page

<%@ Control Language="C#" AutoEventWireup="true" Inherits="NopSolutions.NopCommerce.Web.Modules.FooterControl"
    CodeBehind="Footer.ascx.cs" %>

<%@ Register TagPrefix="nopCommerce" TagName="Topic" Src="~/Modules/Topic.ascx" %>    

<div class="footer">
    <div class="footer-menu">
        <nopCommerce:Topic ID="topicFooterMenu" runat="server" TopicName="FooterMenu"
            OverrideSEO="false"></nopCommerce:Topic>
    </div>
    <div class="clear">
    </div>
    <div class="footer-disclaimer">
        <%=String.Format(GetLocaleResourceString("Content.CopyrightNotice"),
                                    DateTime.Now.Year.ToString(),
                                    SettingManager.StoreName)%>
    </div>
    
    <div class="footer-poweredby">
        Powered by <a href="https://www.nopcommerce.com/">nopCommerce</a>
    </div>
</div>


Don't forget to create the topics

HTH

Dave