ページ

2004年4月27日火曜日

各記事の下に Trackback URL を表示するようにする

「各個別記事の下に TrackBack URL を表示するようにしてみました」
に書いた件なんですが、「.Text にどういう修正を加えたか」を書くのをすっかり忘れてました。

ソースコードの修正は必要ありません。スキンの修正だけです(というか、スキンの修正だけで済むようにしてみました)。各スキンに ViewPost.ascx がありますが、これに修正を加えます。以下、例として Simple スキンを使いますが、他のスキンでも基本的に同じです。

ViewPost.ascx の改造

<%@ Control Language="c#" Inherits="Dottext.Web.UI.Controls.ViewPost" %>
<%@ Import Namespace = "Dottext.Framework" %>
<%@ Import Namespace = "Dottext.Framework.Components" %>
<%@ Import Namespace = "Dottext.Framework.Util" %>
<%@ Import Namespace = "Dottext.Common.Data" %>
<script Runat="server">
private string GetTrackBackUrl() {
    Entry entry = Cacher.GetEntryFromRequest(Context,CacheTime.Short);
    if (entry != null) {
        return "トラックバックは下記のURLにpingを送信してください。<br/>\nTrackBack URL: " + CurrentBlog.UrlFormats.TrackBackUrl(entry.EntryID);
    }
    return "";
}
</script>
<div class = "singlepost">
    <div class = "posttitle">
        <asp:HyperLink  CssClass="singleposttitle" Runat="server" ID="TitleUrl" />
    </div>
    
    <asp:Literal id="Body"  runat="server" />
    <div class = "itemdesc">
        投稿日時 : <asp:Literal id="PostDescription"  runat="server" />
    </div>
</div>
    <div class="trackbackurl"><% Response.Write(GetTrackBackUrl()); %></div>
    <asp:Literal ID = "PingBack" Runat = "server" />
    <asp:Literal ID = "TrackBack" Runat = "server" />

太字の部分が追加した行です(追加だけで既存部分の修正は必要ありません)。
あとは、Style.css にお好みの CSS を設定しておくだけです。


Style.css(私が使っている CSS)

.trackbackurl
{
    border: 1px solid #DDDDDD;
    background-color: #DDDDDD;
    padding: 4px;
    font-size: 14px;
}