Print an error page when templates do not exist

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@644 726aef4b-f618-498e-8847-2d620e286838
This commit is contained in:
prozacx
2006-02-11 22:17:29 +00:00
parent 294661f6d5
commit 1845b6f52c

View File

@@ -143,10 +143,14 @@ private:
CString CWebAdminSock::GetSkinDir() {
CString sModPath = CZNC::Get().FindModPath(m_pModule->GetModName()); // @todo store the path to the module at load time and store it in a member var which can be used here
// Remove the file.so portion from the path
while (!sModPath.empty() && sModPath.Right(1) != "/") {
sModPath.RightChomp();
}
// Remove the last /
sModPath.RightChomp();
CString sSkinDir = sModPath + "/" + m_pModule->GetModName() + "/skins/" + m_pModule->GetSkinName() + "/";
if (CDir::Exists(sSkinDir)) {
@@ -161,6 +165,15 @@ void CWebAdminSock::PrintPage(CString& sPageRet, const CString& sTmplName) {
// @todo possibly standardize the location of meta files such as these skins
// @todo give an option for changing the current skin from 'default'
if (!m_Template.SetFile(GetSkinDir() + sTmplName)) {
CString sTmpl;
if (IsAdmin()) {
sTmpl = GetSkinDir();
}
sTmpl += sTmplName;
sPageRet = CHTTPSock::GetErrorPage(404, "Not Found", "The template for this page [" + sTmpl + "] was not found.");
return;
}