Changeset 8436
- Timestamp:
- 02/27/13 14:34:41 (11 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/module-webif-lib.c
r8421 r8436 387 387 char* separator = "/* External CSS */"; 388 388 char* oldallocated = allocated; 389 CSS = tpl_getUnparsedTpl("CSS" , 1, "");389 CSS = tpl_getUnparsedTpl("CSS"); 390 390 int32_t newsize = strlen(CSS) + strlen(separator) + 2; 391 391 if (oldallocated) newsize += strlen(oldallocated) + 1; … … 404 404 405 405 } else { 406 CSS = tpl_getUnparsedTpl("CSS" , 1, "");407 JSCRIPT = tpl_getUnparsedTpl("JSCRIPT" , 1, "");406 CSS = tpl_getUnparsedTpl("CSS"); 407 JSCRIPT = tpl_getUnparsedTpl("JSCRIPT"); 408 408 #ifdef TOUCH 409 TOUCH_CSS = tpl_getUnparsedTpl("TOUCH_CSS" , 1, "");410 TOUCH_JSCRIPT = tpl_getUnparsedTpl("TOUCH_JSCRIPT" , 1, "");409 TOUCH_CSS = tpl_getUnparsedTpl("TOUCH_CSS"); 410 TOUCH_JSCRIPT = tpl_getUnparsedTpl("TOUCH_JSCRIPT"); 411 411 char* res_tpl = !subdir || strcmp(subdir, TOUCH_SUBDIR) 412 412 ? (filen == 1 ? CSS : JSCRIPT) -
trunk/module-webif-tpl.c
r8435 r8436 230 230 /* Returns an unparsed template either from disk or from internal templates. 231 231 Note: You must free() the result after using it and you may get NULL if an error occured!*/ 232 char *tpl_getUnparsedTpl(const char* name, int8_t removeHeader, const char* subdir) {232 static char *__tpl_getUnparsedTpl(const char* name, bool removeHeader) { 233 233 int32_t i; 234 234 const struct tpl *tpl = NULL; … … 245 245 if (tpl && cfg.http_tpl) { 246 246 char path[255]; 247 if ((strlen(tpl_getFilePathInSubdir(cfg.http_tpl, subdir, name, ".tpl", path, 255)) > 0 && file_exists(path)) 248 || (strlen(subdir) > 0 249 #ifdef TOUCH 250 && strcmp(subdir, TOUCH_SUBDIR) 251 #endif 252 && strlen(tpl_getFilePathInSubdir(cfg.http_tpl, "" , name, ".tpl", path, 255)) > 0 && file_exists(path))) 247 if (strlen(tpl_getFilePathInSubdir(cfg.http_tpl, "", name, ".tpl", path, 255)) > 0 && file_exists(path)) 253 248 { 254 249 FILE *fp; … … 297 292 } 298 293 294 char *tpl_getUnparsedTpl(const char* name) { 295 return __tpl_getUnparsedTpl(name, true); 296 } 297 299 298 /* Returns the specified template with all variables/other templates replaced or an 300 299 empty string if the template doesn't exist. Do not free the result yourself, it 301 300 will get automatically cleaned up! */ 302 301 char *tpl_getTpl(struct templatevars *vars, const char* name) { 303 char *tplorg = tpl_getUnparsedTpl(name , 1, tpl_getVar(vars, "SUBDIR"));302 char *tplorg = tpl_getUnparsedTpl(name); 304 303 if (!tplorg) return ""; 305 304 char *tplend = tplorg + strlen(tplorg); … … 372 371 373 372 /* Checks all disk templates in a directory if they are still current or may need upgrade! */ 374 void tpl_check OneDirDiskRevisions(const char* subdir) {375 char dirpath[255] = "\0";376 snprintf(dirpath, 255, "%s%s", cfg.http_tpl ? cfg.http_tpl : "", subdir);373 void tpl_checkDiskRevisions(void) { 374 if (!cfg.http_tpl) 375 return; 377 376 int32_t i; 378 377 char path[255]; 379 378 for(i = 0; i < tpls_count; ++i) { 380 379 const struct tpl *tpl = &tpls[i]; 381 if (strncmp(tpl->tpl_name, "IC", 2) != 0 && strlen(tpl_getTplPath(tpl->tpl_name, dirpath, path, 255)) > 0 && file_exists(path)) {380 if (strncmp(tpl->tpl_name, "IC", 2) != 0 && strlen(tpl_getTplPath(tpl->tpl_name, cfg.http_tpl, path, 255)) > 0 && file_exists(path)) { 382 381 int8_t error = 1; 383 char *tplorg = tpl_getUnparsedTpl(tpl->tpl_name, 0, subdir);382 char *tplorg = __tpl_getUnparsedTpl(tpl->tpl_name, false); // Do not strip the header 384 383 unsigned long checksum = 0, curchecksum = crc32(0L, (unsigned char*)tpl->tpl_data, tpl->tpl_data_len); 385 384 char *pch1 = strstr(tplorg,"<!--OSCam"); … … 403 402 if (error) cs_log("If you are sure that it is current, add the following line at the beginning of the template to suppress this warning: <!--OSCam;%lu;%s;%s-->", curchecksum, CS_VERSION, CS_SVN_VERSION); 404 403 free(tplorg); 405 }406 }407 }408 409 /* Checks whether disk templates need upgrade - including sub-directories */410 void tpl_checkDiskRevisions(void) {411 char subdir[255];412 char dirpath[255];413 if (cfg.http_tpl) {414 tpl_checkOneDirDiskRevisions("");415 DIR *hdir;416 struct dirent entry;417 struct dirent *result;418 struct stat s;419 if ((hdir = opendir(cfg.http_tpl)) != NULL) {420 while(cs_readdir_r(hdir, &entry, &result) == 0 && result != NULL) {421 if (strcmp(".", entry.d_name) == 0 || strcmp("..", entry.d_name) == 0) {422 continue;423 }424 snprintf(dirpath, 255, "%s%s", cfg.http_tpl, entry.d_name);425 if (stat(dirpath, &s) == 0) {426 if (s.st_mode & S_IFDIR) {427 snprintf(subdir, 255,428 #ifdef WIN32429 "%s\\"430 #else431 "%s/"432 #endif433 , entry.d_name);434 tpl_checkOneDirDiskRevisions(subdir);435 }436 }437 }438 closedir(hdir);439 404 } 440 405 } -
trunk/module-webif-tpl.h
r8434 r8436 43 43 char *tpl_getTplPath(const char *name, const char *path, char *result, uint32_t resultsize); 44 44 char *tpl_getTpl(struct templatevars *vars, const char* name); 45 char *tpl_getUnparsedTpl(const char* name , int8_t removeHeader, const char* subdir);45 char *tpl_getUnparsedTpl(const char* name); 46 46 47 47 int32_t tpl_saveIncludedTpls(const char *path); 48 48 49 void tpl_checkOneDirDiskRevisions(const char* subdir);50 49 void tpl_checkDiskRevisions(void); 51 50 -
trunk/module-webif.c
r8434 r8436 3642 3642 *keepalive = 0; 3643 3643 if(!apicall){ 3644 char *CSS = tpl_getUnparsedTpl("CSS" , 1, "");3644 char *CSS = tpl_getUnparsedTpl("CSS"); 3645 3645 tpl_addVar(vars, TPLADD, "STYLESHEET", CSS); 3646 3646 free(CSS); … … 3670 3670 *keepalive = 0; 3671 3671 if(!apicall){ 3672 char *CSS = tpl_getUnparsedTpl("CSS" , 1, "");3672 char *CSS = tpl_getUnparsedTpl("CSS"); 3673 3673 tpl_addVar(vars, TPLADD, "STYLESHEET", CSS); 3674 3674 free(CSS);
Note:
See TracChangeset
for help on using the changeset viewer.