Show network modules on the web interface menu

Closes #121
This commit is contained in:
Kyle Fuller
2012-02-13 23:50:09 +00:00
parent f4a80f7218
commit e08d53dcd5
3 changed files with 35 additions and 3 deletions

View File

@@ -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();

View File

@@ -328,6 +328,19 @@ void CWebSock::SetVars() {
for (unsigned int a = 0; a < vMods.size(); a++) {
AddModLoop("UserModLoop", *vMods[a]);
}
vector<CIRCNetwork*> vNetworks = GetSession()->GetUser()->GetNetworks();
vector<CIRCNetwork*>::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();

View File

@@ -27,5 +27,20 @@
</ul>
</li>
<? ENDIF ?>
<? IF NetworkModLoop ?>
<? LOOP NetworkModLoop SORTASC=NetworkName ?>
<li class="topitem parent"><span class="title">Network Modules (<? VAR NetworkName ?>)</span>
<ul>
<? LOOP ModLoop SORTASC=ModName ?>
<li class="modtitle<? IF Active ?> active<? ENDIF ?>"><a href="<? VAR ModPath ?>"><? VAR Title ?></a></li>
<? LOOP SubPageLoop ?>
<li class="subitem<? IF Active ?> active<? ENDIF ?>"><a href="<? VAR ModPath ?>/<? VAR PageName ?><? IF Params ?>?<? VAR Params ?><? ENDIF ?>"><? VAR Title ?></a></li>
<? ENDLOOP ?>
<? ENDLOOP ?>
</ul>
</li>
<? ENDLOOP ?>
<? ENDIF ?>
</ul>
</div>