/*@cc_on _d=document; eval('var document=_d');@*/ /*********************************************************** * feeds.js [ver 1.2.6] * /--- update log ---/ * ・ちょっとだけ機能まとめ、修正 - 2009.03.10 ver 1.2.6 * ・新着表示設定を追加[オプション機能] - 2009.03.09 ver 1.2.5 * ・キャッシュ対策の仕様変更 - 2008.11.06 ver 1.2.4 * ・ExciteBlogのPR広告を表示させないようカスタマイズ - 2008.7.24 ver 1.2.3 * ・追記・書き換えモードの選択を追加 - 2008.1.29 ver 1.2.2 * ・画像1枚の表示 - 2007.12.13 ver 1.2.1 *********************************************************** /********* * 記事の表示設定 */ var settings = { rss_atom : 'http://rss.exblog.jp/rss/exblog/nitto/index.xml' , // 取得するブログフィードのURL(必須) targetId : 'column_ul' , // フィード内容を表示させるHTMLタグのid属性(必須) MaxEntry : '4' , // エントリー表示の最大数(数値指定又は''…''の場合は全ての記事を取得) TitleMax : '', TextMax : '35' , // 本文の文字数(数値指定又は''…''の場合は全ての記事内容を取得) DataMax : '' , // 日付・タイトル・本文を含む全体の文字数を固定(数値指定又は''…''の場合は固定しない) isCRLF : 'NO' , // 記事の改行を有効にする(YES/NO) isCate : 'NO' , // カテゴリでフィードを取得する(YES/NO) isImage : 'NO' , // 記事内の画像1点を抜き出す(YES/NO) DF:{ Year : '/', // 年のフォーマット Month: '/', // 月のフォーマット Day : '' // 日のフォーマット }, DS:{ "year": 'YES', // 年を表示する(YES/NO) "month": 'YES', // 月を表示する(YES/NO) "day": 'YES' // 日を表示する(YES/NO) }, loading_image : 'images/loading.gif', // 読み込み中表示用画像へのパス loading_Alt : '読み込んでいます。' // 読み込み画像がない場合に表示される代替テキスト }; /********* カテゴリ表示を使用する場合カテゴリを指定する(複数指定可) 上部の"inCate"を"YES"にする(YESにしないと効きません) 例)複数のカテゴリを指定する場合は、下記のようにカテゴリを指定します。 var category = ["カテゴリ1","カテゴリ2","カテゴリ3"]; ※一番最後の指定の後ろには「,」は入れないで下さい。 ***********/ var category = []; function putHtml(DATE,TITLE,TEXT,URL,IMAGE,CATEGORY,WHATSNEW) { /********* 表示記事本文の設定 以下は記事から取得する内容 DATE : 日付 TITLE : タイトル TEXT : 記事本文 URL : 記事へのリンク+ WHATSNEW:新着表示 *********/ var tmpHtml = '
  • '+DATE+'  '+TITLE+' '+WHATSNEW+'
  • \n'; return tmpHtml; }; //========================================================== // オプション設定 //---------------------------------------------------------- var options = { //---------------------------------------------------------- // 新着表示設定 //---------------------------------------------------------- WhatsNew:{ show_options:'NO', // 新着表示を行う(YES/NO) add_type:'1' , // 新着表示を行う判断基準(0:本日-n日 1:新規n件) add_num:3 , // 何日前又は何件分に新着表示をつけるか source:'0' , // 新着表示の表示タイプ(0:text 1:image) src:'' , // 新着情報の表示タイプで画像を選んだ場合の画像パス text:'[New!]' // 新着情報の表示タイプで文字を選んだ場合の表示文字 } //---------------------------------------------------------- }; //========================================================== /* * 設定ここまで *********/ /*********************************************************** * @@ feed取得処理の開始 */ if( typeof(settings) != 'undefined') { var conteiner = document.getElementById(settings.targetId); var Loading; if(settings.loading_image != "") { Loading = document.createElement('img'); Loading.setAttribute('src',settings.loading_image); } else { Loading = document.createElement('p'); Loading.style.textAlign = 'center'; Loading.appendChild(document.createTextNode(settings.loading_Alt)); } conteiner.appendChild(Loading); conteiner.style.display = 'block'; google.load("feeds", "1"); } //========================================================== // オプション機能設定 //---------------------------------------------------------- options.WhatsNew.init = function (nCnt){ var sAddWhatsNew = {}; switch(this.add_type) { case '0': // 0 日付比較の場合、ミリ秒単位で比較する var tmpd = new Date(); var d = new Date(nCnt); var diffsec = tmpd.getTime() - (this.add_num * 86400000); // 本日(ミリ秒)-規定日(ミリ秒) tmpd.setTime(diffsec); // 差し引いた秒数をセット var sec = d.getTime(); // 記事の日付(ミリ秒)をセット if(tmpd.getTime() > sec) { // 比較して規定日以下ならこの処理は読み飛ばす return; } break; case '1': if(nCnt >= this.add_num) { return; } break; default: isNum = true; break; } if(this.show_options == 'YES'){ switch(this.source) { case '0': this.txt = this.text; break; case '1': this.img = ''; break; default: this.txt = ""; this.img = ""; return; break; } } else { } return this; }; //========================================================== function initialize() { var rnd = (new Date()).getTime(); if(settings.rss_atom.match(/\?/ig)) { rnd = '&' + rnd; } else { rnd = '?' + rnd; } var feed = new google.feeds.Feed(settings.rss_atom+rnd); // キャッシュ対策 フィード取得時にクエリ送信 var entrysMax = 100; feed.setNumEntries(entrysMax); // feed最大数の指定(MAX250まで) feed.load( function(result) { if (!result.error) { var isEntry,entryAllData,arrEntrys,sEnTitle,sEnURL,sEnText,sEnDate,nEntryNum,sHtmlPool,isTrimText; sHtmlPool = ''; entryAllData = result.feed.entries.length; getFeedCnt = 0; for (var nECnt = 0; nECnt < entryAllData; nECnt++) { isEntry = 'false'; arrEntrys = result.feed.entries[nECnt]; if(settings.isCate == 'YES') { for(var nCnt=0; nCnt/); if(sImage == null) { sImage = ''; } else { sImage = '' + sImage; // 文字列にObj扱いのsImageを変更 sImage = sImage.match(/(\w+):\/\/([\w.]+)\/(\S*)/); sImage = sImage[0].replace(/\W$/,""); sImage = ''+sEnTitle+'' } } if(typeof(sImage) == 'undefined') { sImage = ''; } sEnText = sEnText.replace(/()|(
    )/gi,"\n"); sEnText = sEnText.replace(/(<.*?>)|(\r\n)|(\r)/gi,""); if (settings.isCRLF == 'YES') { sEnText = sEnText.replace(/\n/gi,"
    "); sEnText = sEnText.replace(/[
    ]{2,}/gi,"
    "); } else { sEnText = sEnText.replace(/\n/gi,""); } if (settings.TextMax != '') { if (sEnText.length > parseInt(settings.TextMax)) { sEnText = sEnText.substring(0,parseInt(settings.TextMax)); isTrimText = 'true'; } } var dateObj = new Date(arrEntrys.publishedDate); var nYear = dateObj.getFullYear(); var nMonth = dateObj.getMonth() + 1; var nDay = dateObj.getDate(); nMonth = nMonth + ''; nDay = nDay + ''; if(nDay.length == 1) { nDay = '0' + nDay; } if(nMonth.length == 1) { nMonth = '0' + nMonth; } sEnDate = ""; if(settings.DS.year == 'YES') { sEnDate = nYear + settings.DF.Year; } if(settings.DS.month == 'YES') { sEnDate = sEnDate + nMonth + settings.DF.Month; } if(settings.DS.month == 'YES') { sEnDate = sEnDate + nDay + settings.DF.Day; } if(settings.TitleMax != "" && parseInt(settings.TitleMax) > 0) { if(sEnTitle.length > parseInt(settings.TitleMax)) { var tmpLen = sEnTitle.length - parseInt(settings.TitleMax) + 2; sEnTitle = sEnTitle.substring(0,sEnTitle.length - parseInt(tmpLen)); sEnTitle = sEnTitle + '…'; } } if(settings.DataMax != "" && parseInt(settings.DataMax) > 0) { var tmpDateLen = sEnDate.length; var tmpTitleLen = sEnTitle.length; var tmpTextLen = sEnText.length; var TotalLen = tmpDateLen + tmpTitleLen + tmpTextLen; if(TotalLen > parseInt(settings.DataMax)) { patchLen = TotalLen - parseInt(settings.DataMax); sEnText = sEnText.substring(0,sEnText.length - parseInt(patchLen)); isTrimText = 'true'; } } if(isTrimText == 'true') { sEnText = sEnText + '…'; } //========================================================== // オプション関連の処理をここで実行 //---------------------------------------------------------- if(options.WhatsNew.add_type == '0') { var opNum = arrEntrys.publishedDate; } else { var opNum = getFeedCnt; } whatsnew_true = false; var whatsnew = options.WhatsNew.init(opNum); if(typeof(whatsnew) != 'undefined') { if(typeof(whatsnew.img) != 'undefined') { sWhatsNew = whatsnew.img; whatsnew_true = true; } if(typeof(whatsnew.txt) != 'undefined') { sWhatsNew = whatsnew.txt; whatsnew_true = true; } } if(whatsnew_true === false) { sWhatsNew = ""; } //========================================================== sHtmlPool += putHtml(sEnDate,sEnTitle,sEnText,sEnURL,sImage,arrEntrys.categories,sWhatsNew); getFeedCnt = getFeedCnt + 1; } } conteiner.removeChild(Loading); conteiner.innerHTML += sHtmlPool; conteiner.style.display = 'block'; } }); } google.setOnLoadCallback(initialize);