From fb5a52884dd17d17bab47de7f53c17c05ced6e1b Mon Sep 17 00:00:00 2001 From: Tomas Bzatek Date: Sat, 4 Jun 2011 17:30:12 +0200 Subject: 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. --- src/generators.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src/generators.c') 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); -- cgit v1.2.3