summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HISTORY2
-rw-r--r--config.c5
-rw-r--r--config.h1
-rw-r--r--libtemplate/templatefunction.c11
4 files changed, 17 insertions, 2 deletions
diff --git a/HISTORY b/HISTORY
index a0f256d..1caaed6 100644
--- a/HISTORY
+++ b/HISTORY
@@ -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}
+
diff --git a/config.c b/config.c
index 34b489d..4ef6964 100644
--- a/config.c
+++ b/config.c
@@ -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) == '/'))
diff --git a/config.h b/config.h
index 9d10588..7773208 100644
--- a/config.h
+++ b/config.h
@@ -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);