- extended the ecm_info file (thanks to DimitarCC)
[oscam.git] / module-webif-tpl.h
blob53783bad9f1c5e4394879bb10965a37d50261ec6
1 #ifndef MODULE_WEBIF_TPL_H_
2 #define MODULE_WEBIF_TPL_H_
4 #ifdef WEBIF
6 /* Templates: Adds a variable. The variable can be used as often as wanted. */
7 #define TPLADD 0
8 /* Templates: Appends a variable or adds it if doesn't exist yet. The variable can be used as often as wanted. */
9 #define TPLAPPEND 1
10 /* Templates: Adds a variable which will be reset to "" after being used once, either through tpl_getVar or when used in a template.
11 tpl_addVar/tpl_printf don't do a reset and will overwrite the appendmode with a new value. */
12 #define TPLADDONCE 2
13 /* Templates: Appends a variable or adds it if doesn't exist yet. The variable will be reset to "" after being used once. See TPLADDONCE for details. */
14 #define TPLAPPENDONCE 3
16 struct templatevars
18 uint32_t varscnt;
19 uint32_t varsalloc;
20 uint32_t tmpcnt;
21 uint32_t tmpalloc;
22 char **names;
23 char **values;
24 uint8_t *vartypes;
25 char **tmp;
26 uint8_t messages;
29 void webif_tpls_prepare(void);
30 void webif_tpls_free(void);
32 struct templatevars *tpl_create(void);
33 void tpl_clear(struct templatevars *vars);
35 void tpl_addVar(struct templatevars *vars, uint8_t addmode, const char *name, const char *value);
36 void tpl_addMsg(struct templatevars *vars, const char *value);
37 void tpl_printf(struct templatevars *vars, uint8_t addmode, const char *varname, const char *fmtstring, ...) __attribute__((format(printf, 4, 5)));
39 char *tpl_getVar(struct templatevars *vars, const char *name);
40 char *tpl_getFilePathInSubdir(const char *path, const char *subdir, const char *name, const char *ext, char *result, uint32_t resultsize);
41 char *tpl_getTplPath(const char *name, const char *path, char *result, uint32_t resultsize);
42 char *tpl_getTpl(struct templatevars *vars, const char *name);
43 char *tpl_getUnparsedTpl(const char *name, int8_t removeHeader, const char *subdir);
45 int32_t tpl_saveIncludedTpls(const char *path);
47 void tpl_checkOneDirDiskRevisions(const char *subdir);
48 void tpl_checkDiskRevisions(void);
50 char *urlencode(struct templatevars *vars, const char *str);
51 char *xml_encode(struct templatevars *vars, const char *chartoencode);
52 char *sec2timeformat(struct templatevars *vars, int32_t seconds);
54 #else
55 static inline void webif_tpls_free(void)
57 return;
59 #endif
61 #endif