summaryrefslogtreecommitdiffabout
path: root/ui-shared.c
authorLars Hjemli <hjemli@gmail.com>2008-06-26 11:53:30 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2008-06-26 11:53:30 (UTC)
commitde5e9281719809c5b07051faa88e95bd16e8d485 (patch) (unidiff)
tree30c6f6bc74c067ebad78e45e5602011006332f8b /ui-shared.c
parent29b37e9781ce1bb04e558c7490d2c29eb1a477e5 (diff)
downloadcgit-de5e9281719809c5b07051faa88e95bd16e8d485.zip
cgit-de5e9281719809c5b07051faa88e95bd16e8d485.tar.gz
cgit-de5e9281719809c5b07051faa88e95bd16e8d485.tar.bz2
Add support for including a footer on all pages
The new cgitrc option `footer` can be used to include a html-file which replaces the standard 'generated by cgit' message at the bottom of each page. Suggested-by: Peter Danenberg <pcd@wikitex.org> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to 'ui-shared.c') (more/less context) (ignore whitespace changes)
-rw-r--r--ui-shared.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/ui-shared.c b/ui-shared.c
index cd98387..8a00099 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -422,52 +422,58 @@ void cgit_print_http_headers(struct cgit_context *ctx)
422 htmlf("Expires: %s\n", http_date(ctx->page.expires)); 422 htmlf("Expires: %s\n", http_date(ctx->page.expires));
423 html("\n"); 423 html("\n");
424} 424}
425 425
426void cgit_print_docstart(struct cgit_context *ctx) 426void cgit_print_docstart(struct cgit_context *ctx)
427{ 427{
428 html(cgit_doctype); 428 html(cgit_doctype);
429 html("<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>\n"); 429 html("<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>\n");
430 html("<head>\n"); 430 html("<head>\n");
431 html("<title>"); 431 html("<title>");
432 html_txt(ctx->page.title); 432 html_txt(ctx->page.title);
433 html("</title>\n"); 433 html("</title>\n");
434 htmlf("<meta name='generator' content='cgit %s'/>\n", cgit_version); 434 htmlf("<meta name='generator' content='cgit %s'/>\n", cgit_version);
435 if (ctx->cfg.robots && *ctx->cfg.robots) 435 if (ctx->cfg.robots && *ctx->cfg.robots)
436 htmlf("<meta name='robots' content='%s'/>\n", ctx->cfg.robots); 436 htmlf("<meta name='robots' content='%s'/>\n", ctx->cfg.robots);
437 html("<link rel='stylesheet' type='text/css' href='"); 437 html("<link rel='stylesheet' type='text/css' href='");
438 html_attr(ctx->cfg.css); 438 html_attr(ctx->cfg.css);
439 html("'/>\n"); 439 html("'/>\n");
440 html("</head>\n"); 440 html("</head>\n");
441 html("<body>\n"); 441 html("<body>\n");
442} 442}
443 443
444void cgit_print_docend() 444void cgit_print_docend()
445{ 445{
446 html("</div><div class='footer'>generated "); 446 html("</div>");
447 cgit_print_date(time(NULL), FMT_LONGDATE); 447 if (ctx.cfg.footer)
448 htmlf(" by cgit %s", cgit_version); 448 html_include(ctx.cfg.footer);
449 html("</div>\n</body>\n</html>\n"); 449 else {
450 html("<div class='footer'>generated ");
451 cgit_print_date(time(NULL), FMT_LONGDATE);
452 htmlf(" by cgit %s", cgit_version);
453 html("</div>\n");
454 }
455 html("</body>\n</html>\n");
450} 456}
451 457
452int print_branch_option(const char *refname, const unsigned char *sha1, 458int print_branch_option(const char *refname, const unsigned char *sha1,
453 int flags, void *cb_data) 459 int flags, void *cb_data)
454{ 460{
455 char *name = (char *)refname; 461 char *name = (char *)refname;
456 html_option(name, name, ctx.qry.head); 462 html_option(name, name, ctx.qry.head);
457 return 0; 463 return 0;
458} 464}
459 465
460int print_archive_ref(const char *refname, const unsigned char *sha1, 466int print_archive_ref(const char *refname, const unsigned char *sha1,
461 int flags, void *cb_data) 467 int flags, void *cb_data)
462{ 468{
463 struct tag *tag; 469 struct tag *tag;
464 struct taginfo *info; 470 struct taginfo *info;
465 struct object *obj; 471 struct object *obj;
466 char buf[256], *url; 472 char buf[256], *url;
467 unsigned char fileid[20]; 473 unsigned char fileid[20];
468 int *header = (int *)cb_data; 474 int *header = (int *)cb_data;
469 475
470 if (prefixcmp(refname, "refs/archives")) 476 if (prefixcmp(refname, "refs/archives"))
471 return 0; 477 return 0;
472 strncpy(buf, refname+14, sizeof(buf)); 478 strncpy(buf, refname+14, sizeof(buf));
473 obj = parse_object(sha1); 479 obj = parse_object(sha1);