]> git.llucax.com Git - software/bife/bife++.git/blob - hit.h
Added initial Widget, Container and Fallback implementation.
[software/bife/bife++.git] / hit.h
1 // vim: set expandtab tabstop=4 shiftwidth=4:
2
3 #ifndef BIFE_HIT_H
4 #define BIFE_HIT_H
5
6 #include "hash.h"
7 #include <string>
8
9 using std::string;
10
11 /**
12  * Hooks vs IT Template Engine.
13  *
14  * Hooks vs IT (HIT) is a simple template implementation, based on hooks
15  * and IT template systems.
16  *
17  * @todo Implementar buffers?
18  */
19 class HIT {
20     // Attributes.
21     public:
22         /// Root directory where to search for templates.
23         string root;
24         /// Postfix added to the blockname to convert it to a filename.
25         string postfix;
26         // bool search_path = false
27         // TODO - Para subclases
28         //Hash buffer;
29
30     // Methods.
31     protected:
32         /**
33          * Gets file name based on the blockname.
34          *
35          * @param  blockname Name of the block to get the filename.
36          * @return Block's filename.
37          */
38         virtual string getFileName(string);
39
40         /**
41          * Gets file content.
42          *
43          * @param  filename Name of the file to get the content.
44          * @return File content.
45          */
46         virtual string getFileContent(string);
47
48     public:
49         /**
50          * Constructor.
51          *
52          * @param root    Root directory from where to get the templates.
53          * @param postfix Postfix of the template files.
54          */
55         HIT(string = string("."), string = string(".tpl"));
56
57         /**
58          * Destructor.
59          */
60         virtual ~HIT(void);
61
62         /**
63          * Parses a block replacing keys with values in the hash.
64          *
65          * @param  blockname Name of the block to parse.
66          * @param  vars      Hash containing the variable names and their values.
67          * @return Parsed block with variables replaced.
68          */
69         string parse(string, Hash&);
70 };
71
72 #endif