HandlerPageView: Parse dynamically included pages recursively

This commit is contained in:
Albert S. 2022-03-28 21:25:37 +02:00
джерело ba06d04a08
коміт 03c5646858
2 змінених файлів з 4 додано та 4 видалено

@ -6,9 +6,7 @@ std::string DynamicContentIncludePage::render()
auto rev = revisionDao->getCurrentForPage(this->argument);
if(rev)
{
Parser parser;
auto result = parser.parse(*this->database->createPageDao(), *this->urlProvider, rev->content);
return result;
return rev->content;
}
return {};
}

@ -137,6 +137,8 @@ Response HandlerPageView::handleRequest(PageDao &pageDao, std::string pagename,
std::string indexcontent;
std::string parsedcontent;
bool keepParsing = true;
std::function<std::string(std::string_view, std::string_view)> dynamicParseCallback =
[&](std::string_view key, std::string_view value) -> std::string
{
@ -150,7 +152,7 @@ Response HandlerPageView::handleRequest(PageDao &pageDao, std::string pagename,
{
std::shared_ptr<DynamicContentIncludePage> includePage = createDynamic<DynamicContentIncludePage>();
includePage->setArgument(std::string(value));
return includePage->render();
return parser.parse(pageDao, *this->urlProvider, includePage->render(), dynamicParseCallback);
}
return std::string{};
};