Modules can now embed web stuff directly to other web pages which support this feature.

git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@2128 726aef4b-f618-498e-8847-2d620e286838
This commit is contained in:
darthgandalf
2010-09-11 18:51:54 +00:00
parent ced8aa82ed
commit dffabfed2e
4 changed files with 43 additions and 10 deletions

View File

@@ -243,11 +243,10 @@ size_t CWebSock::GetAvailSkins(vector<CFile>& vRet) {
return vRet.size();
}
void CWebSock::SetPaths(CModule* pModule, bool bIsTemplate) {
m_Template.ClearPaths();
VCString CWebSock::GetDirs(CModule* pModule, bool bIsTemplate) {
CString sHomeSkinsDir(CZNC::Get().GetZNCPath() + "/webskins/");
CString sSkinName(GetSkinName());
VCString vsResult;
// Module specific paths
@@ -257,37 +256,58 @@ void CWebSock::SetPaths(CModule* pModule, bool bIsTemplate) {
// 1. ~/.znc/webskins/<user_skin_setting>/mods/<mod_name>/
//
if (!sSkinName.empty()) {
m_Template.AppendPath(GetSkinPath(sSkinName) + "/mods/" + sModName + "/");
vsResult.push_back(GetSkinPath(sSkinName) + "/mods/" + sModName + "/");
}
// 2. ~/.znc/webskins/_default_/mods/<mod_name>/
//
m_Template.AppendPath(GetSkinPath("_default_") + "/mods/" + sModName + "/");
vsResult.push_back(GetSkinPath("_default_") + "/mods/" + sModName + "/");
// 3. ./modules/<mod_name>/tmpl/
//
m_Template.AppendPath(pModule->GetModDataDir() + "/tmpl/");
vsResult.push_back(pModule->GetModDataDir() + "/tmpl/");
// 4. ~/.znc/webskins/<user_skin_setting>/mods/<mod_name>/
//
if (!sSkinName.empty()) {
m_Template.AppendPath(GetSkinPath(sSkinName) + "/mods/" + sModName + "/");
vsResult.push_back(GetSkinPath(sSkinName) + "/mods/" + sModName + "/");
}
// 5. ~/.znc/webskins/_default_/mods/<mod_name>/
//
m_Template.AppendPath(GetSkinPath("_default_") + "/mods/" + sModName + "/");
vsResult.push_back(GetSkinPath("_default_") + "/mods/" + sModName + "/");
}
// 6. ~/.znc/webskins/<user_skin_setting>/
//
if (!sSkinName.empty()) {
m_Template.AppendPath(GetSkinPath(sSkinName) + CString(bIsTemplate ? "/tmpl/" : "/"), (0 && pModule != NULL));
vsResult.push_back(GetSkinPath(sSkinName) + CString(bIsTemplate ? "/tmpl/" : "/"));
}
// 7. ~/.znc/webskins/_default_/
//
m_Template.AppendPath(GetSkinPath("_default_") + CString(bIsTemplate ? "/tmpl/" : "/"), (0 && pModule != NULL));
vsResult.push_back(GetSkinPath("_default_") + CString(bIsTemplate ? "/tmpl/" : "/"));
return vsResult;
}
CString CWebSock::FindTmpl(CModule* pModule, const CString& sName) {
VCString vsDirs = GetDirs(pModule, true);
for (size_t i = 0; i < vsDirs.size(); ++i) {
if (CFile::Exists(vsDirs[i] + sName)) {
return vsDirs[i] + sName;
}
}
return sName;
}
void CWebSock::SetPaths(CModule* pModule, bool bIsTemplate) {
m_Template.ClearPaths();
VCString vsDirs = GetDirs(pModule, bIsTemplate);
for (size_t i = 0; i < vsDirs.size(); ++i) {
m_Template.AppendPath(vsDirs[i]);
}
m_bPathsSet = true;
}