diff --git a/include/znc/WebModules.h b/include/znc/WebModules.h index e94721e2..cdeb87ae 100644 --- a/include/znc/WebModules.h +++ b/include/znc/WebModules.h @@ -136,7 +136,7 @@ public: protected: using CHTTPSock::PrintErrorPage; - bool AddModLoop(const CString& sLoopName, CModule& Module); + bool AddModLoop(const CString& sLoopName, CModule& Module, CTemplate *pTemplate = NULL); VCString GetDirs(CModule* pModule, bool bIsTemplate); void SetPaths(CModule* pModule, bool bIsTemplate = false); void SetVars(); diff --git a/src/WebModules.cpp b/src/WebModules.cpp index 63c46a81..6a7685a9 100644 --- a/src/WebModules.cpp +++ b/src/WebModules.cpp @@ -328,6 +328,19 @@ void CWebSock::SetVars() { for (unsigned int a = 0; a < vMods.size(); a++) { AddModLoop("UserModLoop", *vMods[a]); } + + vector vNetworks = GetSession()->GetUser()->GetNetworks(); + vector::iterator it; + for (it = vNetworks.begin(); it != vNetworks.end(); ++it) { + CModules& vnMods = (*it)->GetModules(); + + CTemplate& Row = m_Template.AddRow("NetworkModLoop"); + Row["NetworkName"] = (*it)->GetName(); + + for (unsigned int a = 0; a < vnMods.size(); a++) { + AddModLoop("ModLoop", *vnMods[a], &Row); + } + } } if (IsLoggedIn()) { @@ -335,11 +348,15 @@ void CWebSock::SetVars() { } } -bool CWebSock::AddModLoop(const CString& sLoopName, CModule& Module) { +bool CWebSock::AddModLoop(const CString& sLoopName, CModule& Module, CTemplate *pTemplate) { + if (!pTemplate) { + pTemplate = &m_Template; + } + CString sTitle(Module.GetWebMenuTitle()); if (!sTitle.empty() && (IsLoggedIn() || (!Module.WebRequiresLogin() && !Module.WebRequiresAdmin())) && (GetSession()->IsAdmin() || !Module.WebRequiresAdmin())) { - CTemplate& Row = m_Template.AddRow(sLoopName); + CTemplate& Row = pTemplate->AddRow(sLoopName); Row["ModName"] = Module.GetModName(); Row["ModPath"] = Module.GetWebPath(); diff --git a/webskins/_default_/tmpl/Menu.tmpl b/webskins/_default_/tmpl/Menu.tmpl index a8849bc6..60847cf1 100644 --- a/webskins/_default_/tmpl/Menu.tmpl +++ b/webskins/_default_/tmpl/Menu.tmpl @@ -27,5 +27,20 @@ + + + +
  • Network Modules () +
      + +
    • + +
    • + + +
    +
  • + +