63 lines
2.3 KiB
C
Executable File
63 lines
2.3 KiB
C
Executable File
#ifndef MODULE_WEBIF_TPL_H_
|
|
#define MODULE_WEBIF_TPL_H_
|
|
|
|
#ifdef WEBIF
|
|
|
|
/* Templates: Adds a variable. The variable can be used as often as wanted. */
|
|
#define TPLADD 0
|
|
/* Templates: Appends a variable or adds it if doesn't exist yet. The variable can be used as often as wanted. */
|
|
#define TPLAPPEND 1
|
|
/* Templates: Adds a variable which will be reset to "" after being used once, either through tpl_getVar or when used in a template.
|
|
tpl_addVar/tpl_printf don't do a reset and will overwrite the appendmode with a new value. */
|
|
#define TPLADDONCE 2
|
|
/* 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. */
|
|
#define TPLAPPENDONCE 3
|
|
|
|
struct templatevars
|
|
{
|
|
uint32_t varscnt;
|
|
uint32_t varsalloc;
|
|
uint32_t tmpcnt;
|
|
uint32_t tmpalloc;
|
|
char **names;
|
|
char **values;
|
|
uint8_t *vartypes;
|
|
char **tmp;
|
|
uint8_t messages;
|
|
};
|
|
|
|
void webif_tpls_prepare(void);
|
|
void webif_tpls_free(void);
|
|
|
|
struct templatevars *tpl_create(void);
|
|
void tpl_clear(struct templatevars *vars);
|
|
|
|
void tpl_addVar(struct templatevars *vars, uint8_t addmode, const char *name, const char *value);
|
|
void tpl_addMsg(struct templatevars *vars, const char *value);
|
|
void tpl_printf(struct templatevars *vars, uint8_t addmode, const char *varname, const char *fmtstring, ...) __attribute__((format(printf, 4, 5)));
|
|
|
|
char *tpl_getVar(struct templatevars *vars, const char *name);
|
|
char *tpl_getFilePathInSubdir(const char *path, const char *subdir, const char *name, const char *ext, char *result, uint32_t resultsize);
|
|
char *tpl_getTplPath(const char *name, const char *path, char *result, uint32_t resultsize);
|
|
char *tpl_getTpl(struct templatevars *vars, const char *name);
|
|
char *tpl_getUnparsedTpl(const char *name, int8_t removeHeader, const char *subdir);
|
|
|
|
int32_t tpl_saveIncludedTpls(const char *path);
|
|
|
|
void tpl_checkOneDirDiskRevisions(const char *subdir);
|
|
void tpl_checkDiskRevisions(void);
|
|
|
|
char *urlencode(struct templatevars *vars, const char *str);
|
|
char *xml_encode(struct templatevars *vars, const char *chartoencode);
|
|
char *json_encode(struct templatevars *vars, const char *chartoencode);
|
|
char *sec2timeformat(struct templatevars *vars, int32_t seconds);
|
|
|
|
#else
|
|
static inline void webif_tpls_free(void)
|
|
{
|
|
return;
|
|
}
|
|
#endif
|
|
|
|
#endif
|