BLOGEERクラシックテンプレート 最近のコメント取り出し2

BLOGGERクラシックテンプレート 直近コメントの取り出し
<script type=”text/javascript” src=”http://www.blogger.com/feeds/8216413096516145501/comments/summary
?alt=json-in-script&callback=commentcallback&max-results=5″></script>
でjson形式でデータを呼び出しているが、

data.feed.entry[i].link[0].href の値が
https://blog.peaks.jp/2008/02/javascript
?showComment=1211451300000#c4957769072170915326
となるので、赤字の部分は必要無いので(多分?)
下記の赤字のように修正して削除しました。これで多少すっきりしたかな・・・

 

<div id="commentcallback"></div>
<script type=”text/javascript”><!–
function commentcallback(obj) {
var data = obj;
var InsertHTML = ‘<h2 class=”sidebar-title”>直近のコメント5件<\/h2>’;
InsertHTML += ‘<ul>’;
for (var i=0; i<data.feed.entry.length; i++) {
var anchor=data.feed.entry[i].link[0].href.replace(/(\?[\w]+\=[0-9]+)/, “”);
InsertHTML+= (‘<li><a href=”‘+anchor+'”>’);
InsertHTML+= (data.feed.entry[i].summary.$t.substring(0,24));if (data.feed.entry[i].summary.$t.length > 24) {InsertHTML+= (‘…’);}
InsertHTML+= (‘<\/a><br \/>’);
InsertHTML+= (‘[‘+data.feed.entry[i].published.$t.substring(2,10)+’]’);
InsertHTML+= (‘ by ‘+data.feed.entry[i].author[0].name.$t);
InsertHTML+= (‘<\/li>’);
}
InsertHTML += ‘<\/ul>’;
document.getElementById(‘commentcallback’).innerHTML = InsertHTML;
}
–></script>
<script type=”text/javascript” src=”http://www.blogger.com/feeds/8216413096516145501/comments/summary?alt=json-in-script&callback=commentcallback&max-results=5″></script>

BLOGEERクラシックテンプレート 最近の投稿の内容表示

bloggerのクラシックテンプレートでは下記のように最近の投稿を10件表示するようになっているが、(クリボウの Blogger Tips: 「最近の投稿」リストあれこれが大変参考になります。)

<h2 class="sidebar-title">Previous</h2>
<ul id="recently">
<BloggerPreviousItems>
<li><a href="<$BlogItemPermalinkURL$>"><$BlogPreviousItemTitle$></a></li>
</BloggerPreviousItems>
</ul>

これを最近のコメントを表示するBLOGGER クラシックテンプレート直近コメントの取り出し見たいな感じでjavascriptを使い、最近の投稿リストからタイトルと本文の一部を取り出すスクリプト。

<div id="newentry"></div>
<script type="text/javascript"><!--
function newentry(obj) {
var data = obj;
var InsertHTML = ('<h2 class="sidebar-title">最近のエントリー10件<\/h2>');
InsertHTML += '<ul>';
for (var i=0; i<data.feed.entry.length; i++) {
InsertHTML+= ('<li>');
InsertHTML+= ('<a href="'+data.feed.entry[i].link[0].href+'"><b>');
InsertHTML+= (data.feed.entry[i].title.$t.substring(0,28));
InsertHTML+= ('<\/b><\/a><br \/>');
InsertHTML+= ('['+data.feed.entry[i].published.$t.substring(2,10)+']');
InsertHTML+= (data.feed.entry[i].summary.$t.substring(0,39));if (data.feed.entry[i].summary.$t.length > 39) {InsertHTML+= ('...');}//切り取り文字数を40以上にするとie7で止まります。
InsertHTML+= ('<\/li>');
}
InsertHTML += '<\/ul>';
document.getElementById('newentry').innerHTML = InsertHTML;
}
--></script>
<script src="http://www.blogger.com/feeds/自分のblogid/posts/summary?alt=json-in-script&callback=newentry&start-index=1&max-results=10" type="text/javascript"></script>

とまぁいつまでたってもテンプレートの修正ばかりしているのは、ただ単にサブドメインの使えるサーバーを借りていて、サブドメイン blog.peaks.jp で運用したいためだけですけど・・・後は、バックリンク関係の見直しと、前のページ、後ろページのリンクの製作と、タグリストでのページ表示時にタグ名を表示するっていうのを作ってみようと思ってます。

BLOGGER タグリスト(クラシックテンプレート)

BLOGGERでFTP公開サイト用のタググラウンドのつづき。
以前BLOGGER FTP公開サイトのラベルでの分類方法に書いたが、
今回はタグの項目数も取り出してみた。

<?php
$dir = 'サーバーのlavelsのパス';#ラベルのパス
$url = 'https://blog.peaks.jp/labels/';
$labellist ="<h2 class='sidebar-title'>".mb_convert_encoding("ラベルリスト", "EUC-JP", "sjis")."</h2><ul class='archive-list'>";

if($handle = opendir($dir)) { #ディレクトリハンドルを獲得
while(false !== $file = readdir($handle)){ #ファイル名獲得
list($filename,$html) = split("\.", $file); #ファイル名と拡張子を分割
if(!$filename){continue;}
$filename = str_replace("__", "/", $filename); #ファイル名にするためbase64で/が__に変更されているのを戻す
$labellist .="<li><a href='$url$file'>";
if (preg_match("/=([A-F0-9]{2})/",$filename)) {
# $labellist .= quoted_printable_decode ($filename); #quoted_printable_decodeでローマ字+日本語に変換
$labellist .= mb_convert_encoding(quoted_printable_decode ($filename), "EUC-JP", "UTF-8") ;#BLOGで設定しているcharsetに合わす場合
}elseif(mb_detect_encoding(base64_decode($filename)) == "UTF-8"){
# $labellist .= base64_decode($filename) ; #encodingがUTF-8ならbase64_decodeで日本語変換
$labellist .= mb_convert_encoding(base64_decode($filename), "EUC-JP", "UTF-8") ; #BLOGで設定しているcharsetに合わす場合
}else{
$labellist .= $filename ; #ローマ字のファイル名はそのまま表示
}
$labelhtml = file_get_contents("$dir$file");
if (preg_match_all( "/<h3 class=\"post-title\">(.*)<\/h3>/i",$labelhtml,$titlename)){
$labellist .="(".count($titlename[0]).")<br />";
# foreach( $titlename[1] as $val2){$labellist .="$val2<br />";}
}
$labellist.="</a></li>";
}
}
closedir($handle); #ディレクトリハンドルを閉じる
$labellist .="</ul>";
header ("Content-Type: text/html; charset=EUC-JP");#javascriptとしてEUC-JPで表示する(環境に合わす必要があります)
echo "document.write(\"";
echo $labellist;
echo "\");";
?>

という感じで変数に代入しjavascriptで書き出します。

Labelグループのフォルダにあるファイルを1件ずつ取り出しファイルを読み込んで
テンプレートで使われる<h3 class=\”post-title\”>(.*)<\/h3>を探して件数を数えています。
$dir = ‘サーバーのlavelsのパス’ の指定をアーカイブに変えたらアーカイブも取り出せます。
$titlename[1]にすると、タイトルだけの取り出しもできますよ

デザイン変更

先日から、ブログデザインをいらってばかりいる。

とりあえず、アーカイブもphpでファイル操作して、JavaScriptで書き出してみたり、
色を変えてみたりとやっているが、ゴヂャゴチヤしてきた・・・

もう少し大胆なシンプルをテーマに考えてみよう。重くならない程度に。

今後の課題として、ラベルのURLを、例えばダメージヘア.htmlとなる日本語が
BLOGGERで
44OA44Oh44O844K444OY44Ki44O8.htmlって変換されるが
これを
%e3%83%80%e3%83%a1%e3%83%bc%e3%82%b8%e3%83%98%e3%82%a2%e3%83%bc.html
になるよう変換方式を変えてみる。

で、あとページ送りを日付順でリスト化して読み込むのと
タグリスト項目に件数をつけるのと、ページタイトルを読み込ませて記載内容をわかりやすくする。
手っ取り早いのは、サムネイルで表示か?