diff options
-rw-r--r-- | HISTORY | 2 | ||||
-rw-r--r-- | config.c | 5 | ||||
-rw-r--r-- | config.h | 1 | ||||
-rw-r--r-- | libtemplate/templatefunction.c | 11 |
4 files changed, 17 insertions, 2 deletions
@@ -38,6 +38,8 @@ Version 0.0.2 - improved menu icon display, additionally using menu cat - changed devices list, device numbers start with 0 - fixed bug that hasposter is only true if poster really exists +- no absolute pathes allowed for image type "image", path has to start with {ressourcedir} + @@ -87,7 +87,6 @@ bool cDesignerConfig::GetSkin(string &skin) { return true; } - void cDesignerConfig::SetChannelLogoSize(void) { cImageLoader imgLoader; imgLoader.DeterminateChannelLogoSize(logoWidth, logoHeight); @@ -168,6 +167,10 @@ bool cDesignerConfig::OsdFontsChanged(void) { return changed; } +cString cDesignerConfig::GetSkinRessourcePath(void) { + return cString::sprintf("%s%s", *skinPath, osdSkin.c_str()); +} + cString cDesignerConfig::CheckSlashAtEnd(std::string path) { try { if (!(path.at(path.size()-1) == '/')) @@ -42,6 +42,7 @@ public: bool OsdSizeChanged(void); void SetOSDFonts(void); bool OsdFontsChanged(void); + cString GetSkinRessourcePath(void); cString logoExtension; cString skinPath; cString logoPath; diff --git a/libtemplate/templatefunction.c b/libtemplate/templatefunction.c index b96f0be..4b0c66f 100644 --- a/libtemplate/templatefunction.c +++ b/libtemplate/templatefunction.c @@ -1067,8 +1067,17 @@ void cTemplateFunction::ParseStringParameters(void) { }
parsedText = text.str();
- //now check further possible string variables
string path = GetParameter(ptPath);
+ if (GetNumericParameter(ptImageType) == itImage && path.size() > 0) {
+ //no absolute pathes allowed
+ if (!startswith(path.c_str(), "{")) {
+ esyslog("skindesigner: no absolute pathes allowed for images - %s", path.c_str());
+ }
+ if (startswith(path.c_str(), "{ressourcedir}")) {
+ imgPath = path.replace(0, 14, *config.GetSkinRessourcePath());
+ }
+ }
+ //now check further possible string variables
if (stringTokens && path.size() > 0 && path.find("{") != string::npos) {
for (map < string, string >::iterator it = stringTokens->begin(); it != stringTokens->end(); it++) {
size_t found = path.find(it->first);
|