表紙 | 新規 | 編集 | 編集 | 差分 | 一覧 | RSS | 検索 | 閲覧履歴 | 作成履歴 | 更新履歴

print_header関数 - YukiWikiベースのPonyWikiのソースを読んでみる その15

YukiWikiベースのPonyWikiのソースを読んでみる その15

htmlのヘッダ部分・メニュー・ページのヘッダ部分(最初のページ名とか)を表示する関数

処理の流れはこんな感じ。

<div class="document-body"><a name="top">で本文のデザインを指定しています。その為、<div.タグの数が合っていませんが、print_footer関数で</div>入れているので、出力されるhtml全体としては整合性は取れています。


sub print_header {
    my ($page) = @_;
    my $bodyclass = "normal";
    my $editable = 0;
    my $admineditable = 0;
	my $editmode = 0;

    if($form{mycmd} =~ /edit$/ or $form{mycmd} =~ /^diff$/) {
        $editmode = 1;
    } elsif (&is_frozen($page) and $form{mycmd} =~ /^(read|write)$/) {
        $editable = 0;
        $admineditable = 1;
        $bodyclass = "frozen";
    } elsif (&is_editable($page) and $form{mycmd} =~ /^(read|write)$/) {
        $admineditable = 1;
        $editable = 1;
    } else {
        $editable = 0;
    }
	my $cookedpage = &encode($page);
	my $escapedpage = &escape($page);
	my $escapedsubject = &escape(&get_subjectline($page));
	$escapedsubject =~ s/$subject_delimiter//;

    print <<"EOD";
Content-type: text/html; charset=$charset

<!DOCTYPE html
    PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html lang="$lang">
<head>
    <meta http-equiv="Content-Language" content="$lang">
    <meta http-equiv="Content-Type" content="text/html; charset=$charset">
    @{[ $editmode
        ? qq(<meta name="robots" content="nofollow,noindex">)
        : qq()
    ]}
    @{[ $editable
        ? qq(<meta name="keywords" content="$escapedpage,$escapedsubject">)
        : qq()
    ]}
    <title>[$modifier_rss_title] $escapedpage @{[&escape(&get_subjectline($page))]}</title>
    <link rel="index" href="$url_cgi?$IndexPage">
    <link rev="made" href="mailto:$modifier_mail">
    <link rel="stylesheet" type="text/css" href="$url_stylesheet">
    <link rel="alternate" type="application/rss+xml" title="RSS" href="$url_cgi?RssPage" />
</head>
<body class="$bodyclass">
<div class="tools">
    <a href="$url_cgi?">$resource{frontpage}</a> <br> 
    <a href="$url_cgi?$CreatePage">$resource{createbutton}</a> <br> 
    @{[ $admineditable
        ? qq(<a title="$resource{admineditthispage}" href="$url_cgi?mycmd=adminedit&amp;mypage=$cookedpage">$resource{admineditbutton}</a> <br> )
        : qq()
    ]}
    @{[ $editable
        ? qq(<a title="$resource{editthispage}" href="$url_cgi?mycmd=edit&amp;mypage=$cookedpage">$resource{editbutton}</a> <br> )
        : qq()
    ]}
    @{[ $admineditable
        ? qq(<a href="$url_cgi?mycmd=diff&amp;mypage=$cookedpage">$resource{diffbutton}</a> <br> )
        : qq()
    ]}
    <a href="$url_cgi?$IndexPage">$resource{indexbutton}</a> <br> 
    <a href="$url_cgi?$RssPage">$resource{rssbutton}</a> <br> 
    <a href="$url_cgi?$SearchPage">$resource{searchbutton}</a> <br> 
    <a href="$url_cgi?$[[RecentCreates]]">$resource{recentcreatesbutton}</a> <br> 
    <a href="$url_cgi?$[[RecentChanges]]">$resource{recentchangesbutton} </a>
</div>
<div class="document-body"><a name="top">
<h1 class="header"><a
    title="$resource{searchthispage}"
    href="$url_cgi?mycmd=search&amp;mymsg=$cookedpage">@{[&escape($page)]}</a> @{[&escape(&get_subjectline($page))]}</h1>
EOD
}

''TrackBack'' - http://you-like.to/cgi-bin/ponytail/yukiwiki/wiki.cgi/print_header%b4%d8%bf%f4

先頭へ