カテゴリ:
管理人より |
(2020.05.25 作成)
※AAはストリートファイターシリーズより火引弾
____ __
_,--´::::::::::::::::::::`'''―-、,__,-‐''´ ̄´
/::::::::::::::::::::::::::::::::::、,,、::::::::::::ヽ
:::::::::::::::::::::::::::::::ゝ `"`′ l
::::::::::::::::::::::/.:.:: \ l. ブログ開設当初からの夢だった
::::::::::::::::::7´.:.:: \ /〉
rー、⌒l::l.:.:.:: ヽニァゞ ヽ / / 「複数カテゴリ間の前後エントリー移動スクリプト」
fー、( l::l.:.:. '、 `〉
.て ミ.:.:.:.:.:.:.: ノ / を実装しました。
ゞ_ ノl.:.:.:.:.:.:.:.:.:.:.::: "` {
》 ヽ,...:.:.:.:.:.:.:.:.:,-‐'二ヽ /
ノ \.:..:.:.::.: l
-‐( ヽ、__´_/
`-_ 入 l
てvー ) 〈二二二ニ`ヽ、
',―--、 ‐-、,, ';;\ヽ
`-^ヽ ヽ;;;;;;;;`'‐-、..ヽ\
/彡´ /,イ⌒''<ニ厶
. /ィ {i.{ i{ `>彡
,彡 .|i.| ヽ }i:} }ニ}
彡 Ⅵ、 ノi/ |彡 もともと、やる模さんでスクリプトが公開されていたので
// -ヾゝ、 _..イノ |ニ|
. ,‐ ∨ ゝ.゚_ `'' イ。` 寸 それを使えばよかったのですが、どうにもスクリプトが動作してくれない。
/ ィ}! / } { ヽー' u }!
{ {i{. / ノ l \ .|__
やる模 前ページ・次ページリンク表示スクリプト | |i| u .{イ_ _ }! .l
| l_| __ /ハ |. それで別の方法がないかと長い間思案していましたが、
ヽ | / _ `\ {..ソ ./
ゝ| /´:::::::::::`ヽ、} ,'イ ./ . 結局FC2の共有プラグインとして公開されている「関連エントリーメーカー」を
_/ | / ::::::::::::::::::::::::| l__/
. .イ:/ .| ,:::::::::::::::::::::::::::::| |! |. 改変して自分流のスクリプトを作成しました。
. _/: :/ | {__ィ二二ヽ :::::::! | !、
イ/: :/ //l  ̄ ̄`ヽヽ、:| j |: :,
FC2ブログで関連エントリーを表示させるスクリプト: {: : { ///{ \i! .∧ |: : ハ
: |: : |////,\ }{ /.l |ii: : :}
: |: : |//////,>=--'ヽ.___.. ノ.l l |ii: : :|
: |: : |≧.、////////////////// .|リ : :l\
., || Ⅵ´ '´`寸ニミ、
/ ll 三ニ
./ ヾ、 .≦三ニ
{{ ヽ イ ヾ三ミ 先週から裏屋敷ブログのほうで試験運用していましたが、
ト、 .::::::l ./ _ィ.ソ::. <三ミハ
::::ゞ=、:| | ,,ィァ''´.::::::::::. <三ミ こちらでも実装してみます。
人::____}!‐‐i{´:::/ ::::::: Ⅵlミ
. { ノ 厂 } <===ァ..:::: .Ⅵヲー、. 個別ページ読み込み時の処理を増やしたので
( ( o }! `ーァ つ }!'.ィ7,.}
} .} (. o゚ ゝ ( .|! liiiト. |. もしかしたらブログが重くなったという感覚になるかもしれませんが、これが自分の限界です。
{ .ノ / `='¨ \ ) ) /|! {iii}.} l
u| / 、_,. ヽ { { ./ l! .)ソ / . 改善案・スクリプト不具合等ありましたら↓コメント欄までお願いいたします。
| /::::_::::ヽ } ノ }! i! 〈_//
. ゚ l :イ´― 、>、:. ( /u / /
. o| '´ _ ヽ >、) ) / lゝイ
l {::.. ⌒ ヾ. ヾl! 〃。 .ィ' /. |
|:::/ ヽ ''l / .l=、
.イハ ll ー' ( |i}:∧
. _/: : ::{ }{ } j.// ハj: :∧
..:≦: :/:: : : : :|ゝ __}{__./_ ,イ/// | : : :lト、
/: : : : / : : : : : |/////////U//////,′ ./: : : :|: : \
手順1
下記URLより、jkl-parsexml-0.22.zip をダウンロード
http://www.kawa.net/works/js/jkl/parsexml.html 手順2
jkl-parsexml-0.22 を解凍し、jkl-parsexml.js を「ファイルアップロード」でアップロードして以下を<head> ~ </head> 内にに追加
<script type="text/javascript" src="http://アップロードしたファイルのURL/jkl-parsexml.js"></script>
手順3
手順2で追加した箇所の下に以下のスクリプトを追加
このスクリプトは環境設定⇒記事の設定⇒記事(カテゴリ別) を「新しい順」にしている前提です。
※RSSから取得するリストも同じ順で記述されるため
<script type="text/javascript">
//配列ファイル定義
var cate_entrys_now = new Array();
var cate_entrys_mae = new Array();
var cate_entrys_ato = new Array();
var show_titles = 38; // 表示するカテゴリ内エントリーの数。
var idname = 'kanrendesu'; //カテゴリ内一覧表示部ID名
var now_entry =100;
//前&後エントリ設定
var prevP = 'yaru_page_p'; //前エントリ表示部
var nextP = 'yaru_page_n'; //次エントリ表示部
//設定エリア ここから
//関連カテゴリ設定
var yrmcategoryGroup= new Array;
yrmcategoryGroup[0] = new Array('00'); //ダミー
yrmcategoryGroup[1] = new Array('20','25'); //シオニー理不尽
yrmcategoryGroup[2] = new Array('17','19'); //できない子演じる
yrmcategoryGroup[3] = new Array('18'); //できない子刑事
yrmcategoryGroup[4] = new Array('10','11'); //キル夫独り
yrmcategoryGroup[5] = new Array('53'); //蒼星石独り善がり
yrmcategoryGroup[6] = new Array('41','32','42'); //英雄偽典
yrmcategoryGroup[7] = new Array('15','16','37'); //できない夫千夜
yrmcategoryGroup[8] = new Array('1','4','6','36','7','8','9','13','14','35','34'); //やらない夫独り戦隊
yrmcategoryGroup[9] = new Array('48'); //やらない夫独り戦隊EXTRA
//設定エリア ここまで
//ページ読み込み後に実行を定義
document.addEventListener('DOMContentLoaded', function() {
var url= '<%url>';
var catno= '<!--topentry--><%topentry_category_no><!--/topentry-->';
var grpos = 0;
var grpno = 0;
for(let i=0;i<yrmcategoryGroup.length;i++){
for(let j=0;j<yrmcategoryGroup[i].length;j++){
if(catno==yrmcategoryGroup[i][j]){
grpos= i;
grpno= j;
break;
}
}
if(grpos>0){
break;
}
}
<!--現カテゴリ一覧取得-->
var rssurl = url + '?xml&category=' + catno;
var xml0 = new JKL.ParseXML( rssurl );
var data0 = xml0.parse();
getRSS_now( data0 ) ;
<!--前カテゴリ情報取得-->
var catno1 = 0;
var x = 0;
if(0<grpno){
x = -1;
catno1=yrmcategoryGroup[grpos][grpno -1];
}else{
catno1=catno;
}
var rssurl1 = url + '?xml&category=' + catno1;
var xml1 = new JKL.ParseXML( rssurl1 );
var data1 = xml1.parse();
getRSS_mae( data1, x ) ;
<!--後カテゴリ情報取得-->
var catno2 = 0;
var y = 0;
var z = parseInt(yrmcategoryGroup[grpos].length) -1;
if( z != grpno){
y = 1;
catno2=yrmcategoryGroup[grpos][grpno +1];
}else{
catno2=catno;
}
var rssurl2 = url + '?xml&category=' + catno2;
var xml2 = new JKL.ParseXML( rssurl2 );
var data2 = xml2.parse();
getRSS_ato( data2, y ) ;
},false);
function getRSS_now( xml ){
if(xml["rdf:RDF"].item[1] == undefined){
cate_entrys_now[0] = new Array(xml["rdf:RDF"].item.link , xml["rdf:RDF"].item.title);
} else {
for(q in xml["rdf:RDF"].item){
// cate_entrys_now[q] = [0]url , [1]title
cate_entrys_now[q] = new Array(xml["rdf:RDF"].item[q].link , xml["rdf:RDF"].item[q].title);
}
}
<!--カテゴリ内一覧表示-->
var output_fc2_entry = '';
if(cate_entrys_now.length < show_titles){
for(k in cate_entrys_now){
if (cate_entrys_now[k][0] != '<!--topentry--><%topentry_link><!--/topentry-->'){
output_fc2_entry += '<li><a href="' + cate_entrys_now[k][0] + '">' + cate_entrys_now[k][1] + '</a></li>';
} else {
output_fc2_entry += '<li><b>' + cate_entrys_now[k][1] + '</b></li>';
now_entry = k;
}
}
}
var k_k_k = '<br/><ul>' + output_fc2_entry + '</ul><br/>';
document.getElementById(idname).innerHTML = k_k_k;
}
function getRSS_mae( xmla, mae_flag ){
if(xmla["rdf:RDF"].item[1] == undefined){
cate_entrys_mae[0] = new Array(xmla["rdf:RDF"].item.link , xmla["rdf:RDF"].item.title);
} else {
for(r in xmla["rdf:RDF"].item){
// cate_entrys_mae[r] = [0]url , [1]title
cate_entrys_mae[r] = new Array(xmla["rdf:RDF"].item[r].link , xmla["rdf:RDF"].item[r].title);
}
}
<!--前エントリ表示-->
var output_mae_entry ='';
var now_cate_length = parseInt(cate_entrys_now.length) -1;
var P_n = parseInt(now_entry) +1;
if(now_entry != now_cate_length){
output_mae_entry += '<a href="' + cate_entrys_now[P_n][0] + '">' + cate_entrys_now[P_n][1] + '</a>';
}else{
if(mae_flag != 0){
output_mae_entry += '<a href="' + cate_entrys_mae[0][0] + '">' + cate_entrys_mae[0][1] + '</a>';
}
}
document.getElementById(prevP).innerHTML = output_mae_entry;
}
function getRSS_ato( xmlb, ato_flag ){
if(xmlb["rdf:RDF"].item[1] == undefined){
cate_entrys_ato[0] = new Array(xmlb["rdf:RDF"].item.link , xmlb["rdf:RDF"].item.title);
} else {
for(s in xmlb["rdf:RDF"].item){
// cate_entrys_ato[s] = [0]url , [1]title
cate_entrys_ato[s] = new Array(xmlb["rdf:RDF"].item[s].link , xmlb["rdf:RDF"].item[s].title);
}
}
<!--後エントリ表示-->
var output_ato_entry = '';
var N_n = parseInt(now_entry) -1;
if(now_entry != 0){
output_ato_entry += '<a href="' + cate_entrys_now[N_n][0] + '">' + cate_entrys_now[N_n][1] + '</a>';
}else{
if(ato_flag != 0){
var ato_entry_n = parseInt(cate_entrys_ato.length) -1;
output_ato_entry += '<a href="' + cate_entrys_ato[ato_entry_n][0] + '">' + cate_entrys_ato[ato_entry_n][1] + '</a>';
}
}
document.getElementById(nextP).innerHTML = output_ato_entry;
}
</script>
手順4
//設定エリア ここから ~ //設定エリア ここまで を自分のブログ用に編集
長編作品等、記事が複数のカテゴリにまたがるグループを登録します。
カテゴリが1つでも登録してください。複数のカテゴリの設定は、以下の通りです。(当ブログの設定例です)
//設定エリア ここから
//関連カテゴリ設定
var yrmcategoryGroup= new Array;
yrmcategoryGroup[0] = new Array('00'); //ダミー
yrmcategoryGroup[1] = new Array('20','25'); //シオニー理不尽
yrmcategoryGroup[2] = new Array('17','19'); //できない子演じる
yrmcategoryGroup[3] = new Array('18'); //できない子刑事
yrmcategoryGroup[4] = new Array('10','11'); //キル夫独り
yrmcategoryGroup[5] = new Array('53'); //蒼星石独り善がり
yrmcategoryGroup[6] = new Array('41','32','42'); //英雄偽典
yrmcategoryGroup[7] = new Array('15','16','37'); //できない夫千夜
yrmcategoryGroup[8] = new Array('1','4','6','36','7','8','9','13','14','35','34'); //やらない夫独り戦隊
yrmcategoryGroup[9] = new Array('48'); //やらない夫独り戦隊EXTRA
//設定エリア ここまで
手順5
テンプレートに、前ページ、次ページを表示するエリアを追加
------貼付け位置 この下の行から------
<table class="pages">
<tr class="title">
<td align="center"><b>前 まえ</b></td>
<td> </td>
<td align="center"><b>次 つぎ</b></td>
</tr>
<tr>
<td class="pages"><span id="yaru_page_p" class="pages"> </span></td>
<td align="center">≪ ◆ ≫</td>
<td class="pages"><span id="yaru_page_n" class="pages"> </span></td>
</tr>
</table>
------貼付け位置 この上の行まで------
手順6
現在のカテゴリ一覧を表示するエリアを追加
------貼付け位置 この下の行から------
<div class="適当な名前">
<div class="適当な名前">
カテゴリ[ <!--topentry--><B><%topentry_category></B><!--/topentry--> ] 内一覧
</div><div class="適当な名前">
<div id="kanrendesu" style="border-width:thin; border-style:solid inset; border-color:#C2C2C2; overflow: auto; height: auto;" align="left";>
<br/><br/>
</div></div></div>
------貼付け位置 この上の行まで------
手順7
スタイルリスト編集欄に、以下の記述を追加
------貼付け位置 この下の行から------
TABLE.pages {
width:980px;
empty-cells: hide;
}
TR.title {
font-size:18px;
}
TD.pages {
width:45%;
vertical-align:top;
background-color:#FFFFFF;
border: 1px solid gray;
padding: 10px 10px 10px 10px;
font-size:15px;
}
SPAN.pages {
}
------貼付け位置 この上の行まで------
イ彡三三三三三三三三ミ、从从}__
/彡三三三三三三三三≧マ ゞ⌒ヾ
{彡三三三三三三三ヲ ̄ ゚, ,
|彡三三三三イ ̄ヽ彡 l ! }!
|彡三三三.// ハ|彡 l{ | リ
{彡三三三{ il「〉メ'' 、ゝ l ..イ´
.。≦}二!≦三三ニ| ゝУ{_ iッヾ _j! 以前はカテゴリ名をクリックして初めてカテゴリ一覧を表示していましたが、
厶ニУ .|辷三三≦ゝ.__ I ` フ i「
.ムニУ {辷三三ヲ 7 | |. 今回はページ読み込み後にスクリプトを実行するようにしました。
厶ニУ 八寸三ト , __ r _ |
. ムニУ /三三三| I ./、__ ,- ' . また、IEだと読み込みが相当遅くなるようです。
. {ニニ { /厶八Ⅳ´ ∧ lr、ヽ }
. |ニニ | ./ ______ ;;;;∧ ゚ヽ.イ Chrome・Edge・Firefoxでの閲覧を推奨します。
. |ニニ | /,.:<: : : : : : : : : :>: `: , 、 _)
. |ニニ |イ: : : : : : : : : : : : : : : : : : : >.. |
ィ|ニニ |: : : : : : : : : : : : : : : : : : : : : : : : > ノ
: |ニニ |: : : : : : : ≧≠≠≠≠:=:=:=:‐:―:-:≧=――- ,..,_
: 寸= !: : ̄: :  ̄: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :> ,
: : 寸=!: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : _;;≦ム
: : : ::寸: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :/ : : : ::人
.ィニニ 、
. / ニニニ ム
{ニニニニニ }
ゝ寸ニニⅣィ RSSファイルはJKL.ParseXML を使用して同期メソッドで取得します。
ゞ{ァ}ィ´!_
,.. ≦‐‐iニi― ≧, 計3回ファイルを取得するため、非同期だとスクリプトがうまく
. /: : : : : ,イァ'_: :__: : : :\
ィi{: : : _,,..- iニ{、 .l: l l: ハ: : }ト、. 動作しなかったので、あえて同期としています。
/゚::i{ : : {_ |ニ| >」 l」< イ : ::}i: :ヽ
/: : i{: : : < ̄ |ニ!| ニ ニ `.l : : }i: : : .',
. /: : : i{ : : : } Ⅵ| - - .| : : }! : : : i! カテゴリ内の記事数がRSSの最大記事数以下でないと正しく動作しません。
/7ァヘハ: : : ー‐ァ `}ト‐r ,‐‐': : : }! ,ォ__ |
}i:i:i:i:i:iハ:: : : _/ /ノ'「  ̄| : : ハ/i:i:i:i:i{ また、カテゴリ内の記事数は35前後が上限と考えたほうが良いです。
|i:i:i:i:i:i:i:}: :/ /i(::└ァ 、.┘: :/i:i:i:i:i:i:i:|
l ̄ ̄ヽ}: : \_/ .リ: : <__> : ::{:Ⅵゞ' ̄l. このブログでは37を上限としています。
} /ノ : : : : : : : : : : : : : : : : { ∨ l
. /l .{( : : : : : ノ____\: : : : ヽ.} l .ハ
/ .{ ハヽィ≦三三三三三≧.、ノ ハ ゝイ} テンプレートのバックアップを必ずとってから編集してください。
{ 「 〉厂  ̄ ̄Y ̄ ̄ ̄`ヽ_〈 i
゚, .// : : : : : : : .|: : : : : : : : : :}゚., | 設置は自己責任でお願いします。
` { { : : : : : : : : : : : : : : : : : : | ∨ .i
. } レ} : : : : : : : : |: : : : : : : : : :l j |
. | |/:: : : : : : : : :l!: : : : : : : : : l } !
, --- 、
./ : : Ⅵ::\ー、}ヽ
/: : : : : Ⅵ : : : } l!
l : : : : : : :`l!: : : |ト、j! ___イ`ー― 、_
|!:: : : : : : : {r―' <: : : : : : \____ヲ これでコメント欄へ改善希望を書き込んでくれた方も
|/ ̄ ̄ \::ヾ }:: : : : : : : {
./:: : : : : : : }/::\__ // : : : : : |. 満足していただけるかな??
__ノ¨丶 -=、イ_、: : : : : : ´ ̄\ : : : : :  ̄: : : : : : /
. / / \_ _ノー : : 寸ニ: :/: : : : : : ::l:: : : : : : : : : : : : :/ 何か問題ありそうなら↓コメント欄へお願いします。
/ { /i:ィー' ̄:ィ=、: : : : : : : 寸l: : : : : : : : : | : : : : : : : : : : /
. .ィ=、ヘ ,ィ∨:7: : : ,イl/`ヾヽ: : : : : : : 寸. : : : : : : }: : : : : : : : :/
. _<三ニ }_ィ〉'´ li/, - 、ヾ:{: : : :}ソ : : : : : : : Ⅵ: : : : : /: : : : : :> ゚
..´r ゞ<ニ=}ィ´ _ィ'//彡= }}: : ノ:: : : : : : : : : :}}__/ : :≧ ゚
j/ }j `ー' ィ⌒_,  ̄`彡ニ〉、: : : : : : : : : : : :/ ̄ ̄ ̄
i! xl l__ <彡/ /: : : ハ_: : : : ::}'
<. x _}!ァ! / : : /i:i:i:i:i:i:ヽ/
〈ゝヽ ./ィ=≠'、/i:i:i:i:i:>‐‐{
` ̄ {iトi:i:i/ .
ヽ{ィ⌒ ハ
/ }
__ ノ /´
,_ィニニ=ヽヽ /
て<三三ニ} }}ィ