aboutsummaryrefslogtreecommitdiff
path: root/src/ContentManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ContentManager.cpp')
-rw-r--r--src/ContentManager.cpp34
1 files changed, 24 insertions, 10 deletions
diff --git a/src/ContentManager.cpp b/src/ContentManager.cpp
index 6beef5a..ace325e 100644
--- a/src/ContentManager.cpp
+++ b/src/ContentManager.cpp
@@ -1,10 +1,5 @@
#include "ContentManager.hpp"
-void ContentManager::SetStaticFilesystem(std::shared_ptr<Filesystem> & static_fs)
-{
- m_StaticFilesystem = static_fs;
-}
-
void ContentManager::SetTemplateSystem(std::shared_ptr<TemplateManager> & tmgr)
{
m_TemplateManager = tmgr;
@@ -18,7 +13,7 @@ bool ContentManager::RegisterModule(std::shared_ptr<Content> ctnt)
m_ContentModules[basePath] = ctnt;
for (auto & redirect : rs)
{
- m_ContentModules[redirect] = ctnt;
+ m_ContentModulesRoutes[redirect] = ctnt;
}
return false;
@@ -57,26 +52,40 @@ void ContentManager::ShutdownAll(void)
}
}
+ m_ContentModulesRoutes.clear();
m_ContentModules.clear();
}
bool ContentManager::Render(char const * basePath, RequestResponse & rr, std::string & out)
{
+ std::shared_ptr<Content> cntm;
+
if (m_ContentModules.find(basePath) == m_ContentModules.end())
{
- return false;
+ if (m_ContentModulesRoutes.find(basePath) == m_ContentModulesRoutes.end())
+ {
+ return false;
+ }
+ else
+ {
+ cntm = m_ContentModulesRoutes[basePath];
+ }
+ }
+ else
+ {
+ cntm = m_ContentModules[basePath];
}
RenderData rd;
- auto & cntm = m_ContentModules[basePath];
auto & main = cntm->GetMainTemplate();
- if (m_ContentModules[basePath]->Render(rr, rd) == false)
+ out.clear();
+ if (cntm->Render(rr, rd, out) == false)
{
return false;
}
- if (m_TemplateManager->RenderTemplate(main, rd, out) == false)
+ if (main.empty() == false && out.empty() == true && m_TemplateManager->RenderTemplate(main, rd, out) == false)
{
return false;
}
@@ -88,3 +97,8 @@ ContentModules const & ContentManager::GetAllModules() const
{
return m_ContentModules;
}
+
+ContentModules const & ContentManager::GetAllModulesRoutes() const
+{
+ return m_ContentModulesRoutes;
+}