Topツール > 2009年6月
2009年6月16日

Feed2JS の表示結果のタイトルに日付を表示する

June 16,2009 1:55 AM
Tag:[, , , , , , ]
Permalink

フィードの内容をブログ等に表示するツール「Feed2JS」を使ったときに、タイトル横に日付を表示する方法です。

Feed2JS の詳細については、「RSS Feed(フィード)を表示する」をご覧ください。

下の例は、はてなブックマーク「最近の人気エントリー」のフィードを表示した場合の、変更前と変更後です。変更前はタイトル下に日付と時刻が表示されますが、変更後はタイトルの左に日付を表示します(いずれも設定項目の「Show item posting date? 」を「Yes」に設定)。

変更前
変更前

変更後
変更後

西暦を2桁表示することも可能です。
西暦を2桁表示

元のように、時刻も表示できます。
時刻も表示

1.タイトル横に日付を適用する

自サーバにアップロードした feed2js ディレクトリ直下にある、feed2js.php の 200 行目あたり(確認バージョンは1.98)にある、下記の赤色部分を削除し、青色部分を追加します。バージョンによって行が異なる場合は似たような箇所をみつけてください。

変更前(赤色を削除)

...前略...
if ($desc < 0) {
    $str.= "document.write('<li class=\"rss-item\">');\n";
    
} elseif ($item['title']) {
    // format item title
    $my_title = addslashes(strip_returns($item['title']));
                
    // create a title attribute. thanks Seb!
    $title_str = substr(addslashes(strip_returns(strip_tags((htmlspecialchars($item['summary']))))), 0, 255) . '...'; 
 
    // write the title strng
    $str.= "document.write('<li class=\"rss-item\"><a class=\"rss-item\" href=\"" . trim($my_url) . "\" title=\"$title_str\"". $target_window . '>' . $my_title . "</a><br />');\n";
 
} else {
    // if no title, build a link to tag on the description
    $str.= "document.write('<li class=\"rss-item\">');\n";
    $more_link = " <a class=\"rss-item\" href=\"" . trim($my_url) . '"' . $target_window . ">&laquo;details&raquo;</a>";
}
 
// print out date if option indicated
 
if ($date == 'y') {
            
    if ($tz == 'feed') {
    //   echo the date/time stamp reported in the feed
 
        if ($item['pubdate'] != '') {
            // RSS 2.0 is alreayd formatted, so just use it
            $pretty_date = $item['pubdate'];
        } elseif ($item['published'] != "") {
            // ATOM 1.0 format, remove the "T" and "Z" and the time zone offset
            $pretty_date = str_replace("T", " ", $item['published']);
            $pretty_date= str_replace("Z", " ", $pretty_date);
 
        } elseif ($item['issued'] != "") {
            // ATOM 0.3 format, remove the "T" and "Z" and the time zone offset
            $pretty_date = str_replace("T", " ", $item['issued']);
            $pretty_date= str_replace("Z", " ", $pretty_date);
        } elseif ( $item['dc']['date'] != "") {
            // RSS 1.0, remove the "T" and the time zone offset
            $pretty_date = str_replace("T", " ", $item['dc']['date']);
            $pretty_date = substr($pretty_date, 0,-6);
        } else {
        
            // no time/date stamp, 
            $pretty_date =  'n/a';
        }
 
    } else {
        // convert to local time via conversion to GMT + offset
        
        // adjust local server time to GMT and then adjust time according to user
        // entered offset.
        
        $pretty_date = date($date_format, $item['date_timestamp'] - $tz_offset + $tz * 3600);
    
    }
 
    $str.= "document.write('<span class=\"rss-date\">$pretty_date</span><br />');\n"; 
}
 
// link to podcast media if availavle
...後略...

変更後(青色を追加)

...前略...
if ($desc < 0) {
    $str.= "document.write('<li class=\"rss-item\">');\n";
    
} elseif ($item['title']) {
    // format item title
    $my_title = addslashes(strip_returns($item['title']));
                
    // create a title attribute. thanks Seb!
    $title_str = substr(addslashes(strip_returns(strip_tags((htmlspecialchars($item['summary']))))), 0, 255) . '...'; 
 
    // print out date if option indicated
 
    if ($date == 'y') {
            
        if ($tz == 'feed') {
        //   echo the date/time stamp reported in the feed
 
            if ($item['pubdate'] != '') {
                // RSS 2.0 is alreayd formatted, so just use it
                $pretty_date = $item['pubdate'];
            } elseif ($item['published'] != "") {
                // ATOM 1.0 format, remove the "T" and "Z" and the time zone offset
                $pretty_date = str_replace("T", " ", $item['published']);
                $pretty_date= str_replace("Z", " ", $pretty_date);
 
            } elseif ($item['issued'] != "") {
                // ATOM 0.3 format, remove the "T" and "Z" and the time zone offset
                $pretty_date = str_replace("T", " ", $item['issued']);
                $pretty_date= str_replace("Z", " ", $pretty_date);
            } elseif ( $item['dc']['date'] != "") {
                // RSS 1.0, remove the "T" and the time zone offset
                $pretty_date = str_replace("T", " ", $item['dc']['date']);
                $pretty_date = substr($pretty_date, 0,-6);
            } else {
        
                // no time/date stamp, 
                $pretty_date =  'n/a';
            }
 
        } else {
            // convert to local time via conversion to GMT + offset
        
            // adjust local server time to GMT and then adjust time according to user
            // entered offset.
        
            $pretty_date = date($date_format, $item['date_timestamp'] - $tz_offset + $tz * 3600);
    
        }
        $pretty_date = substr($pretty_date, 0,-8);
    }
 
    // write the title strng
    $str.= "document.write('<li class=\"rss-item\">$pretty_date <a class=\"rss-item\" href=\"" . trim($my_url) . "\" title=\"$title_str\"". $target_window . '>' . $my_title . "</a><br />');\n";
 
} else {
    // if no title, build a link to tag on the description
    $str.= "document.write('<li class=\"rss-item\">');\n";
    $more_link = " <a class=\"rss-item\" href=\"" . trim($my_url) . '"' . $target_window . ">&laquo;details&raquo;</a>";
}
 
// link to podcast media if availavle
...後略...

2.西暦を2桁にする

表示されている西暦を4桁から2桁にするには、1項で追加した、

$pretty_date = substr($pretty_date, 0,-8);

$pretty_date = substr($pretty_date, 2,-8);

に変更します。

3.時刻を表示する

時刻を表示するには、1項で追加した、

$pretty_date = substr($pretty_date, 0,-8);

の1行を丸ごと削除してください。

Comments [2] | Trackbacks [0]
2009年6月 9日

Feed2JS の表示結果の title 属性をカスタマイズする

June 9,2009 1:55 AM
Tag:[, , , , , , ]
Permalink

フィードの内容をブログ等に表示するツール「Feed2JS」を使ったときに、a 要素部分に設定される title 属性をカスタマイズする方法を紹介します。

Feed2JS の詳細については、「RSS Feed(フィード)を表示する」をご覧ください。

下の例は、はてなブックマーク「最近の人気エントリー」のフィードを表示した場合の、変更前と変更後です。変更前はリンクのツールチップをポイントすると、ずらずらと日本語が表示されますが、変更後はタイトルのみを表示します(title 要素の内容は RSS フィードの description 要素から取得しています)。

変更前
変更前

変更後
変更後

また、title 属性自体を削除することも可能です。
title 属性自体を削除

時々、Feed2JS の質問を頂くことがあるのですが、紹介してから個人的には使っていなかったため、質問を頂いてもスルーさせて頂いている状態でした。ということで、お詫びをかねて以前頂いた質問を元にエントリー致します。

1.title 属性にタイトルを適用する

自サーバにアップロードした feed2js ディレクトリ直下にある、feed2js.php の 202 行目(確認バージョンは1.98)にある、下記の赤色部分を青色部分のように変更します。バージョンによって行が異なる場合は似たような箇所をみつけてください。

変更前

...前略...
// write the title strng
$str.= "document.write('<li class=\"rss-item\"><a class=\"rss-item\" href=\"" . trim($my_url) . "\" title=\"$title_str\"". $target_window . '>' . $my_title . "</a><br />');\n";
...後略...

変更後

...前略...
// write the title strng
$str.= "document.write('<li class=\"rss-item\"><a class=\"rss-item\" href=\"" . trim($my_url) . "\" title=\"Jump to $my_title\"". $target_window . '>' . $my_title . "</a><br />');\n";
...後略...

2.title 属性を表示しない

1項と同じ、feed2js.php の 202 行目(確認バージョンは1.98)にある、下記の赤色部分を削除してください。バージョンによって行が異なる場合は似たような箇所をみつけてください。ダブルクォーテーションを消しすぎないように気をつけましょう。

変更前

...前略...
// write the title strng
$str.= "document.write('<li class=\"rss-item\"><a class=\"rss-item\" href=\"" . trim($my_url) . "\" title=\"$title_str\"". $target_window . '>' . $my_title . "</a><br />');\n";
...後略...

変更後

// write the title strng
$str.= "document.write('<li class=\"rss-item\"><a class=\"rss-item\" href=\"" . trim($my_url) . "\" ". $target_window . '>' . $my_title . "</a><br />');\n";
Comments [1] | Trackbacks [0]
Now loading...
ギターに入った猫
掲載広告募集
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

AMN
Categories
Monthly Archives
2020年
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
Powered by
Movable Type 6.0.3