diff options
| author | Tomas Bzatek <tbzatek@users.sourceforge.net> | 2011-06-04 17:30:12 +0200 |
|---|---|---|
| committer | Tomas Bzatek <tbzatek@users.sourceforge.net> | 2011-06-04 17:30:12 +0200 |
| commit | fb5a52884dd17d17bab47de7f53c17c05ced6e1b (patch) | |
| tree | fdb3873d295b615bfb1689c54fb76e3abb4e273f /src/generators.c | |
| parent | 960c477148cf832f79e89a4cdf9f3ce3389c7b06 (diff) | |
| download | cataract-fb5a52884dd17d17bab47de7f53c17c05ced6e1b.tar.xz | |
Introduce conditional system
This is very basic scripting support - simple value retrieval and
block conditionals. Defines could be either static from theme setup
or programatically added during page generation.
Diffstat (limited to 'src/generators.c')
| -rw-r--r-- | src/generators.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/generators.c b/src/generators.c index 051ee28..4f0963d 100644 --- a/src/generators.c +++ b/src/generators.c @@ -280,6 +280,7 @@ write_html_album (TGallerySetup *setup, ReplaceTable *local_replace_table; BlockParser *block_parser; TImageSize *image_size, *thumb_image_size; + GHashTable *defines; fin = fopen (template_src, "r"); @@ -296,8 +297,10 @@ write_html_album (TGallerySetup *setup, res = TRUE; - global_replace_table = replace_table_new (); + global_replace_table = replace_table_new_from_defines (theme->defines); block_parser = block_parser_new (); + defines = clone_string_hash_table (theme->defines); + block_parser_set_conditionals (block_parser, defines); /* Get number of real pictures in the list */ real_total_items = 0; @@ -460,7 +463,7 @@ write_html_album (TGallerySetup *setup, } /* Generate images (preview, original, thumbnail) */ - local_replace_table = replace_table_new (); + local_replace_table = replace_table_new_from_defines (defines); s1 = NULL; switch (item->type) { @@ -546,6 +549,7 @@ write_html_album (TGallerySetup *setup, fclose (fout); fclose (fin); + g_hash_table_destroy (defines); replace_table_free (global_replace_table); block_parser_free (block_parser); return res; @@ -600,6 +604,7 @@ write_html_image (TGallerySetup *setup, ReplaceTable *replace_table; BlockParser *block_parser; TImageSize *image_size; + GHashTable *defines; fin = fopen (template_src, "r"); @@ -620,8 +625,10 @@ write_html_image (TGallerySetup *setup, preload_imgname = NULL; res = TRUE; - replace_table = replace_table_new (); + replace_table = replace_table_new_from_defines (theme->defines); block_parser = block_parser_new (); + defines = clone_string_hash_table (theme->defines); + block_parser_set_conditionals (block_parser, defines); /* Get our index in the album */ item_index = 0; @@ -927,6 +934,7 @@ write_html_image (TGallerySetup *setup, g_free (img_orig_dst_page); g_free (imgname); g_free (preload_imgname); + g_hash_table_destroy (defines); free_exif_data (exif); replace_table_free (replace_table); block_parser_free (block_parser); |
