diff options
Diffstat (limited to 'src/generators.c')
| -rw-r--r-- | src/generators.c | 42 |
1 files changed, 35 insertions, 7 deletions
diff --git a/src/generators.c b/src/generators.c index 66ade6c..a755a45 100644 --- a/src/generators.c +++ b/src/generators.c @@ -291,7 +291,7 @@ write_html_album (TGallerySetup *setup, replace_table_add_key (global_replace_table, "FOOTNOTE", items->footnote); replace_table_add_key (global_replace_table, "FOOTER", setup->footer); - /* Navigation bar */ + /* Navigation bar (NOTE: 'int level' is used below + favicon) */ s1 = g_strdup (items->ID); old_parent_item_index = items->parent_item_index + 1; parent = items->parent_index; @@ -330,6 +330,11 @@ write_html_album (TGallerySetup *setup, replace_table_add_key (global_replace_table, "NAV_BAR", s1); g_free (s1); + /* Supportfiles path */ + s1 = make_string ("../", level - 1); + replace_table_add_key (global_replace_table, "TEMPLATES_PATH", setup->support_files_use_common_root ? s1 : ""); + free (s1); + /* META tags */ s1 = g_strdup_printf ("\t<meta name=\"generator\" content=\"Cataract Gallery Generator v%s\" />\n", VERSION); if (setup->meta_author || items->meta_author) { @@ -357,11 +362,13 @@ write_html_album (TGallerySetup *setup, s1 = s2; } if (setup->favicon_file && strlen (setup->favicon_file) > 0) { + s3 = make_string ("../", level - 1); if (setup->favicon_type) - s2 = g_strdup_printf ("%s\t<link rel=\"icon\" type=\"%s\" href=\"%s\" />\n", s1, setup->favicon_type, setup->favicon_file); + s2 = g_strdup_printf ("%s\t<link rel=\"icon\" type=\"%s\" href=\"%s%s\" />\n", s1, setup->favicon_type, setup->support_files_use_common_root ? s3 : "", setup->favicon_file); else - s2 = g_strdup_printf ("%s\t<link rel=\"icon\" href=\"%s\" />\n", s1, setup->favicon_file); + s2 = g_strdup_printf ("%s\t<link rel=\"icon\" href=\"%s%s\" />\n", s1, setup->support_files_use_common_root ? s3 : "", setup->favicon_file); g_free (s1); + free (s3); s1 = s2; } replace_table_add_key (global_replace_table, "CGG_META_TAGS", s1); @@ -721,7 +728,7 @@ write_html_image (TGallerySetup *setup, replace_table_add_key_printf (replace_table, "IMG_SRC_FULL", "%s/%s", IMG_ORIG_DIR, imgname); replace_table_add_key (replace_table, "IMG_SRC_PRELOAD", preload_imgname ? preload_imgname : ""); - /* Navigation bar */ + /* Navigation bar (NOTE: 'int level' is used below + favicon) */ s1 = g_strdup (imgname); parent = parent_items; old_parent_item_index = -1; @@ -748,6 +755,11 @@ write_html_image (TGallerySetup *setup, replace_table_add_key (replace_table, "NAV_BAR", s1); g_free (s1); + /* Supportfiles path */ + s1 = make_string ("../", level - 1); + replace_table_add_key (replace_table, "TEMPLATES_PATH", setup->support_files_use_common_root ? s1 : ""); + free (s1); + /* EXIF values */ replace_table_add_key (replace_table, "EXIF_ISO", exif->iso ? exif->iso : "??"); replace_table_add_key (replace_table, "EXIF_TIME", exif->exposure ? exif->exposure : "??"); @@ -814,10 +826,11 @@ write_html_image (TGallerySetup *setup, s1 = s2; } if (setup->favicon_file && strlen (setup->favicon_file) > 0) { + s3 = make_string ("../", level - 1); if (setup->favicon_type) - s2 = g_strdup_printf ("%s\t<link rel=\"icon\" type=\"%s\" href=\"%s\" />\n", s1, setup->favicon_type, setup->favicon_file); + s2 = g_strdup_printf ("%s\t<link rel=\"icon\" type=\"%s\" href=\"%s%s\" />\n", s1, setup->favicon_type, setup->support_files_use_common_root ? s3 : "", setup->favicon_file); else - s2 = g_strdup_printf ("%s\t<link rel=\"icon\" href=\"%s\" />\n", s1, setup->favicon_file); + s2 = g_strdup_printf ("%s\t<link rel=\"icon\" href=\"%s%s\" />\n", s1, setup->support_files_use_common_root ? s3 : "", setup->favicon_file); g_free (s1); s1 = s2; } @@ -986,7 +999,22 @@ build_tree (TGallerySetup *setup, items->parent_item_index = parent_item_index; /* Copy support files */ - mirror_files (setup, setup->template_files, setup->real_templates_dir, dst_dir, "Copying template files: "); + if (! setup->support_files_use_common_root || parent_index == NULL) { + /* copy only if we're in root level or old-style is active */ + mirror_files (setup, setup->template_files, setup->real_templates_dir, dst_dir, "Copying template files: "); + + /* favicon */ + if (setup->favicon_file && strlen (setup->favicon_file) > 0) { + if (setup->verbose) printf ("Copying favicon: %s\n", setup->favicon_file); + s3 = g_path_get_dirname (setup->setup_xml_path); + s1 = g_strconcat (s3, "/", setup->favicon_file, NULL); + s2 = g_strconcat (dst_dir, "/", setup->favicon_file, NULL); + copy_file (s1, s2); + g_free (s1); + g_free (s2); + g_free (s3); + } + } /* Prepare target thumbnail directory */ thumb_dir = g_strconcat (dst_dir, "/", THUMBNAIL_DIR, NULL); |
