1 | #ifndef MODULE_WEBIF_TPL_H_
|
---|
2 | #define MODULE_WEBIF_TPL_H_
|
---|
3 |
|
---|
4 | #ifdef WEBIF
|
---|
5 |
|
---|
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
|
---|
15 |
|
---|
16 | #define TOUCH_SUBDIR "touch/"
|
---|
17 |
|
---|
18 | struct templatevars {
|
---|
19 | uint32_t varscnt;
|
---|
20 | uint32_t varsalloc;
|
---|
21 | uint32_t tmpcnt;
|
---|
22 | uint32_t tmpalloc;
|
---|
23 | char **names;
|
---|
24 | char **values;
|
---|
25 | uint8_t *vartypes;
|
---|
26 | char **tmp;
|
---|
27 | uint8_t messages;
|
---|
28 | };
|
---|
29 |
|
---|
30 | void webif_tpls_prepare(void);
|
---|
31 | void webif_tpls_free(void);
|
---|
32 |
|
---|
33 | struct templatevars *tpl_create(void);
|
---|
34 | void tpl_clear(struct templatevars *vars);
|
---|
35 |
|
---|
36 | char *tpl_addVar(struct templatevars *vars, uint8_t addmode, char *name, char *value);
|
---|
37 | char *tpl_addMsg(struct templatevars *vars, char *value);
|
---|
38 | char *tpl_addTmp(struct templatevars *vars, char *value);
|
---|
39 | char *tpl_printf(struct templatevars *vars, uint8_t addmode, char *varname, char *fmtstring, ...) __attribute__ ((format (printf, 4, 5)));
|
---|
40 |
|
---|
41 | char *tpl_getVar(struct templatevars *vars, char *name);
|
---|
42 | char *tpl_getFilePathInSubdir(const char *path, const char* subdir, const char *name, const char* ext, char *result, uint32_t resultsize);
|
---|
43 | char *tpl_getTplPath(const char *name, const char *path, char *result, uint32_t resultsize);
|
---|
44 | char *tpl_getTpl(struct templatevars *vars, const char* name);
|
---|
45 | char *tpl_getUnparsedTpl(const char* name, int8_t removeHeader, const char* subdir);
|
---|
46 |
|
---|
47 | int32_t tpl_saveIncludedTpls(const char *path);
|
---|
48 |
|
---|
49 | void tpl_checkOneDirDiskRevisions(const char* subdir);
|
---|
50 | void tpl_checkDiskRevisions(void);
|
---|
51 |
|
---|
52 | char *urlencode(struct templatevars *vars, char *str);
|
---|
53 | char *xml_encode(struct templatevars *vars, char *chartoencode);
|
---|
54 | char *sec2timeformat(struct templatevars *vars, int32_t seconds);
|
---|
55 |
|
---|
56 | #else
|
---|
57 | static inline void webif_tpls_free(void) { return; }
|
---|
58 | #endif
|
---|
59 |
|
---|
60 | #endif
|
---|