予約投稿サポート

      Topics t0 c0 11_Wed    

古いテンプレをグチグチ弄くってる(私本来の姿)と FORUMの投稿が目に留まりまして。
どうやら FC2ブログにも遂に「予約投稿」機能がサポートされた模様であります。
( オフィシャルからの正式発表は未だなされてないようですが )  * 12日発表
早速 管理画面(記事の投稿・編集頁)を確認してみますと、確かにそれらしきものが。
従来 ○公開 ○下書き のみだった「エントリの状態」選択に以下が追加されています。
   (設定した時間に)○公開する ○非公開にする 段が違うように見えますが区切線は hr で4つのラジオボタンは全て editentry[property] 。
( どれか一つを選択 )

  SeesaaやShinobiさんでは既にサポートされていた機能ですが、「投稿時刻」の他に「(非)公開時刻」を別途設定する必要がなく、エントリのタイムスタンプ自体で on / off を制御するというのがシンプルで良い感じ ( 11月3日付の記事を2日に公開しても意味は無い訳だし)。
・・・これで、TOP頁先頭に「募集中!」とかの宣伝を出しておき、期限になったら「締切りました」 て記事に自動で切り替えたりすることも可能になった訳です。

予約モードで投稿すると管理画面の記事リストには記事の「状態」が「(非)公開待ち」であると表示されるのですが、設定時刻を過ぎると「公開」か「下書き」に表示が替わります。  過去記事を「予約公開」状態に変更してみると指定時刻を過ぎてるのに「公開予定」という表示になってblog上で表示されなくなる(暫くすると本来の性状に戻る)など、まだ若干不安定な部分もあるようですが 色々と便利&楽しい応用があると思われます。
 ( こういうのと組み合わせるとか・・ )

 

・・・これでまた私の記事が一つ用済みになっt  orz

Ash 改訂

      Template t0 c2 12_Thu    

  国内外の情勢は首相交代・中韓訪問・某国核実験等で風雲急を告げておりますが、私にとって十月は一年で最も「まったり」とした気分で過ごす時期であります。
初めて「共有」に登録したテンプレートのソースを眺めたりしながら越し方を振り返ったりしていた訳ですが、現在も派生製品をお使い下さっている方がいらっしゃると知り、夏頃に「旧作をverUPする」などと呟いていた事などを思い出しまして、ソースを(かなり大幅に)書き直してみました。
昨今UPされる(FC2の)共有テンプレートには非常に完成度が高いものも多く 「もう”公式”は不要なのでは?」 とすら思わされる程なのですが、こと1カラムについては一頃よりUPされる頻度が下がったようで 稀に見掛けてもデザインはともかく機能が簡略化されたものでありがちな印象が否めません。
「再びテンプレーターとして立つ時が来たのかもしれない」
黄金色の October World に佇み、そう思ったりもしている管理人なのでした。

 テンプレート Ash を改訂しました。
「無画像リキッド1カラム」 という根本的性質とオリジナルデザインの特徴は踏襲していますが、細部については多岐に渡る変更を行いました。  基本的なコンセプトは「オリジナルの機能を保ち(あるいは強化し)つつ(不要な要素を廃し)デザイン・ソースのシンプル化を図る」 というもので、具体的な改訂箇所は以下の通りです。

 
  1. 横型カレンダーを廃止。 モードインジケーターを搭載
  2. 各種MENU項目(ナビリスト群)を tag_area へ収納
  3. エントリヘッダのデザイン(構造)を刷新
  4. ( Preview・項目Chk・秘信参照等 )コメント機能の増強
  5. 個別・非個別・Menu頁 別にプラグインカテゴリを割当

改訂Ash使用法

      Template t0 c0 12_Thu    

 ここで改訂版Ashの使用法について少し。 説明無しでも通常に使用可能だと思われますが、「言われなければ気付かない」 かもしれないのが 『直行編集機能』です。
今度のAshではエントリヘッダ部にロールオーバー効果を持たせています( Ash&Asgard_fold への布石 )が、記事タイトルの「個別参照リンク」と記事諸元リンク其々のロールオーバーが発生する領域の中間に「無反応」なエリアが若干存在するかと思われます(カテゴリ名が非常に長いblogですとみつからないかも)。 此処をクリックすると管理画面の当該記事編集頁へ直接移行します(御参考まで)
コメント部はプラグイン C-Preview / C-Checker 相当のプレビュー・入力チェック機能を持ち、
プラグインについてはTOPメニュー "OPTION” 選択でカテゴリ3を、 「個別参照」時は カテゴリ1 を、 「複数記事参照時」 にはカテゴリ2を其々使用可能です。(カテゴリ1,2は content のみ表示)

また、敢えて使わなければならないという類のものではありませんが、AshにはCSSに(クラス)設定を追加することで結構色々な表示制御を行える機能が付いています。

表示制御 ( 新着順表示時 )(CSS)設定方法
 任意記事を個別参照時以外非表示 該当記事 trackbackを拒否 
 3番カテゴリの記事をカテゴリモード以外で非表示 .c3 {display:none}
 3番エントリ個別参照時 過去方向ナビを非表示  .en3 {display:none}
 3番エントリ個別参照時 前後ナビ自体を非表示 .np3 {display:none}
 3番カテゴリ表示時 前後ナビを非表示 .nc3 {display:none}
 3番カテゴリの記事個別参照時 前後ナビ非表示 .cn3 {display:none}
 2005年9月のArchiveで前月リンクのみを非表示 .pre200509 {display:none}
 2000年代の月別Archiveで前後ナビを非表示 .na2000 {display:none}
 Archiveリスト中 2000年代の月別リンクを非表示  .n2000 {display:none}
 categoryリスト中カテゴリ hoge のリンクを非表示 .hoge {display:none}
 

 前後方向の月別参照リンクの表示制御としては 別法も存在しますが、それですと記事の無い月でナビが途絶えてしまいますので更新の途切れがちなblogですとやや難があるかと思われ(一応「一箇所での塞き止め」想定していますので)このような形としました

- ▼ -

Style Keeper 改訂

      Operation t0 c0 12_Thu    

  今回のテンプレ改訂作業では頁内ラベル付アドレスの参照が多く、現行のStyleKeeperではhashを含むアドレス変換に不具合があった為にこれを修正しました。 また、blogIDに”style”という文字列が含まれていても機能するようにもしてみました。
「全タイトル一覧」 モードにも対応 ( 10/15 )

参照

<script type="text/javascript"><!--
lc=""+self.frames.location; r=document.referrer.split('#')[0]; H="";
if ( r.indexOf("★USER-ID",0)>0 ) {
if ( r.indexOf("?style",0)>0 || r.indexOf("&style",0)>0) {
if ( lc.indexOf("&style",0)<0 && lc.indexOf("?style",0)<0 ) {
if ( lc.indexOf('#')>0) {p=lc.split('#'); lc=p[0]; H="#"+p[1]}
styl="&style"+ (r.split("style")[1]).split("&")[0]+H;
if ( location.search != "" ) {location.href=lc+styl}
else {
<!--index_area-->
location.href="<%url>?index"+styl;
<!--/index_area--><!--permanent_area-->
location.href="<%url>?no="+"<%pno>"+styl;
<!--/permanent_area--><!--date_area-->
location.href='<%url>?date='+'<%sub_title>'.slice(1)+styl;
<!--/date_area--><!--category_area-->
if (lc.indexOf('y-')>0) { k="" } else {
  k='&page='+((lc.split('/category')[1]).split('.')[0]).split('-')[1];
 }
location.href="<%url>?cat=<%cno>"+k+styl;
<!--/category_area--><!--titlelist_area-->
location.href='<%url>?all'+styl;
<!--/titlelist_area--><!--not_index_area-->
<!--not_permanent_area--><!--not_date_area--><!--not_category_area-->
location.href="<%url>?page="+(lc.split('page-')[1]).split('.')[0]+styl;
<!--/not_category_area--><!--/not_date_area--><!--/not_permanent_area-->
<!--/not_index_area-->
} } } }
//--></script>
 

 ★USER-ID は各blogのID文字列です。
ソース中より <!--index_area--> 〜 <!--/index_area--> 部分を削除し
全てを <!--not_index_area--> 〜 <!--/not_index_area--> で括れば初期頁復帰でdefaultテンプレートへ戻るようになります

- ▼ -

Asgard 改訂

      Template t0 c0 13_Fri    

 先日の Ash 改訂に続き、その姉妹テンプレートである Asgard を VerUP しました。
Asgard は Ash の(エントリ・要素表示制御の為の)特殊なブロック構造やタグオプション等を通常の形態に変更・省略したテンプレートであり、ソースは前者より(若干ですが)シンプル且つ軽量なものになっています。
「シングルカラムを使用したいがAsh の機能は不要」 「TB拒否を通常の形として運用したい」 という方々を対象として想定している製品です(そのような使途がより一般的であろう事は疑いありませんが)。

Ashの使用法」にあるような機能は全て省略されていますが、一部機能が必要であれば、Ashのテンプレート当該部ソースを移植する事により容易に実装可能です。
また、titlelistモードを備えていながらテンプレートの性質上 明示的な表示リンクを持たなかったAshに対し、Asgard はカテゴリリスト末尾に「全記事タイトル表示」リンクを搭載しています。

 また、Ash改訂の記事で言及し忘れましたが、Ash,Asgard 共にTOP頁が「最新の記事」となる(新着順表示の場合)為、recentリストが省略されています。  recentは両テンプレート共に「未来方向の」月別表示空リンクを表示させない為に使用されています* ので御使用の際はこの表示件数に御注意下さいますように。

 FORUMでこんな質問(要望)が。
「最新記事リスト(recent)」  の各記事がどのカテゴリに属してるのか判るようにしたい。
て件なんですが、これは結構あるかもしれません。
実際はrecentの変数にはカテゴリを表すものはありませんので無理っぽい訳ですが、カテゴリ別に色分けとかツリー化出来たら 「カッコイイだろうな」 とは誰しもが思う所ではないでしょうか。 (JUGEMみたいに複数人での運営が可能で「投稿者」別とかもできたら言う事なし?)

 変数が無いから絶対不可能かというとそうでもなくて(「手間」を掛けるのを厭わなければ)実現する方法はあります。 スクリプトを使う手もあるでしょうが、当店お馴染みのCSSによる方法を考えてみました。
( たぶん動くんじゃないでしょうか ⇒ 確認・OKみたいです )

【 設置法 】  CSSに以下を追加します

.n {display:none}
.c000,.c011,.c022, 〜 ,.c5959 {display:inline}
2行目はカテゴリの数だけクラスを書いて下さい

「最新記事リスト」を以下のようにします

<ul><!--recent--><li>
<a href="<%recent_link>">
<%recent_title> (
<span class="n c<%recent_second>0">カテゴリ名0</span>
<span class="n c<%recent_second>1">カテゴリ名1</span>
<span class="n c<%recent_second>2">カテゴリ名2</span>
 以下同様
) <%recent_month>/<%recent_day>
</a>
</li><!--/recent--></ul>
カテゴリ番号は表示順でなく cno に相当するものです
( カテゴリ表示順を並び替えても変更不要です )
 
 

【 使用法 】 記事投稿する際「保存時間」の『秒』をカテゴリ番号と同じに設定します。

 

【 解 説 】 recent_secopnd でカテゴリ番号を判別する訳です。 ( カテゴリ60件まで対応 )
「予約投稿」がサポートされて、ある記事が用済みになってしまったということもあって「投稿秒」の新しい使途を無理やり作ってみた感もなきにしもあらずですが、 上記質問への回答者も仰ってるように category にも category_no があればカテゴリモードでカテゴリリストの当該項目がフラッシュする、とかも可能になる訳ですのであっても悪くないような。
( 最近サポートされた top_entry_category_no も色々便利でしたから・・・ )

 
*もしcategory_noがあれば以下のように書けます(_countで確認)
<ul><!--recent--><li><a href="<%recent_link>">
<%recent_title> (
<!--category-->
<span class="n c<%recent_second><%category_no>"><%category_name></span>
<!--/category-->
) <%recent_month>/<%recent_day>
</a></li><!--/recent--></ul>

- ▼ -

recent にカテゴリ表示2

      Navigation t0 c1 15_Sun    

 前記事についてもう少し。
FORUMの回答でも書いたのですが、殆どの場合サイドバーに表示されると思われる recent リストに「カテゴリ名」まで表示させてしまうと、一行の文字数がかなり多くなってカラム内に収まらなくなる可能性があります。
それではかなり見苦しい事になってしまいかねません。  どうせ方法を示すのであるならば、より「実用的」なものであった方が望ましい訳で、もうちょっと工夫してみました。

SAMPLE

 

【 設置法 】  CSSに以下を追加します

.n {display:none}
.c000,.c011,.c022, 〜 ,.c5959 {display:inline}
li a em {display:none} 
li a:hover em {display:inline}
li a:hover i {display:none}
2行目はカテゴリの数だけクラスを書いて下さい

「最新記事リスト」を以下のようにします

<ul><!--recent--><li>
<a href="<%recent_link>">
<%recent_title> <em>(
<span class="n c<%recent_second>0">カテゴリ名0</span>
<span class="n c<%recent_second>1">カテゴリ名1</span>
<span class="n c<%recent_second>2">カテゴリ名2</span>
 以下同様
)</em><i><%recent_month>/<%recent_day></i>
</a>
</li><!--/recent--></ul>
カテゴリ番号は表示順でなく cno に相当するものです
 
 

【 解 説 】 上記のようにしますと、defaultでは通常の形のリスト(記事タイトルと投稿月日)として表示されますがマウスオンすると 投稿日の代わりに記事の 「カテゴリ名」が表示されるようになります。

- ▼ -

Ash(Asgard)_fold改訂

      Template t0 c0 22_Sun    

 先週は秋晴れが続きまして(日本の四季はどれも趣深いのですが)「良い季節だなあ」と。
そんな感慨に耽る穏やかな日曜。 ニッポン放送の流れるダイニングからお送りしております。

 Ash_fold 、及び Asgard_foldをリニューアルいたしました。

Ash、Asgard を改訂したからには当然こちらの改訂もしてました ・・と言いたい処ですが
実は これら _fold シリーズ二作品については「抹消」を真剣に考えた事もありまして。
( オリジナルの方に記事折り畳み(タイトルの目次化)機能を標準装備してしまおうか、と )
オリジナルには当初 「便利ナビ」状のタイトルindexを表示する機能を搭載していたのですが、初期の頁あたり記事表示件数が10だった頃はともかく30件にまで増えてからはinline表示ですとゴチャゴチャしてしまって探し辛いというのがあった為です。
しかし、日頃ナンバー抹消は「勿体無い」と感じ機会があればそう言及している身としてはやはり、 Ash / Asgard は「原器」としてオリジナルに近い状態で遺し、_fold シリーズは従来通り「発展形」として位置付ける事に致しました次第。

 改訂でちょっぴりモダンになった Ash / Asgard ですが _fold 系も折畳みメカを一新しました。
従来は(複数記事表示時)「折り畳み(タイトルの目次化)」を行う際は記事タイトル左のアイコン(?)をクリックする必要がありましたが、オリジナルシリーズで記事ヘッダ部の構造が刷新された事に伴い、小題部バーの任意(リンクの乗っていない)部分クリックでOKとなっております。
更に今改訂では個別表示時にコメント・TB部を収納状態で表示する機能( Odin 相当 )を搭載。
さらにさらに ^^;、 Asgard_fold では『追記の折り畳み』*も実装しております。
 * スペース効率を考慮し 「シーソー折り畳み」 を採用してみました

  勿論 Ash_fold では Ashの全制御機能が利用可能です。

追記の折り畳み

      Entry t0 c0 23_Mon    

  _fold シリーズをリニュした訳ですが、書き直し作業中にふと気付いた事があります。
「・・オレって、『折り畳み』の記事ってあんまり書いてないよな?」
確認してみますと、当店の初代テンプレートを始め Valhalla(Valkyrie) や Float などでも多用した「記事折り畳み(タイトルの目次化)」 や、巷でよく見られる 「追記折り畳み」 については具体的な方法について書いた記事がありませんでした。
折り畳みについては既にsugさんが 万能スクリプトを発表されてますし、「追記」に関しては 前文(topentry_body)のみでこれを行う方法について(目的不明な記事を)書いてしまってましたので自分的には「終わって」た事になってたのでした。
しかし、テンプレ作業後はその収穫で暫く食い繋ぐのが定例の当店ですし、ネタ枯れの秋でもありますので、「選択肢は多い程良い」という金看板を掲げて 挑戦してみました 「畳みネタ」。
・・・まずは 『追記の折り畳み』 を一題。

  追記の折り畳みは個別参照頁に移動せずに「続き」が読める便利な機能です。 サポートされている共有テンプレートも少なくありませんが、ロードされる内容が倍増して頁表示が重くなってしまう懸念があるのと、「記事内容は個別頁で読む」 という当店のスタイルもあって今まで供出した共有テンプレートには搭載してませんでした。
しかし通常のblogでは当店のようにページモードでの表示件数をMAXに設定しているケースは殆ど無いであろうと思われ 今回の Asgard_fold では試みに実装してみた訳です。 ・・するとどうでしょう、実に様々な手法が在(り得)るのに気付いてちょっとしたマイブームになってしまったのでした。(あれこれ試しました)
 以下にお示しするのは その内 「ナチュラルバージョン」と呼称していたもので、テンプレート・出力ソースの双方でシンプルさを追求したもの。 頁中の記事部ソースに「スクリプト臭」が漂わないのがウリです。
( 何かの参考になれば幸いです )

【 設置法 】  記事領域の本体(文章)部分*を以下のようにします。
( * <div class="entry_body"> 等の内部  )

<%topentry_body>
<!--more--><br id="M" /><!--/more-->
<!--more_link--><div class="m" id="m<%topentry_no>"><!--/more_link-->
<%topentry_more>
<!--more_link-->
</div>
<a href="<%topentry_link>#M" class="mlk" id="l<%topentry_no>">▼</a>
<!--/more_link-->
クラス名やID接頭文字、リンク文言 等は一例です。お好みで設定されて下さい
 

テンプレート末尾(  </body> タグの手前)に以下のタグ(スクリプト)を貼ります。

<!--not_permanent_area-->
<script type="text/javascript"><!--
function mFold(){ 
if(document.getElementsByTagName){
 var A=document.getElementsByTagName('A');
 for(i=0;i<A.length;i++){ if(A[i].className=="mlk") {
  var N=A[i].href.split('entry-')[1].split('.')[0];
  A[i].href="javascript:MSW("+N+")";A[i].title="OPEN"
} } } }
mFold();

function MSW(N){
var A=document.getElementById("m"+N); 
var B=document.getElementById("l"+N);
if(B.title=="OPEN"){ 
A.style.display="block";B.innerHTML="▲";B.title="CLOSE";
} else { 
A.style.display="none"; B.innerHTML="▼";B.title="OPEN";
} }
//--></script>
<!--/not_permanent_area-->
 

CSSに以下を追加します

.m {display:none}
 

【 解 説 】 頁末のスクリプトが「追記リンク」のアドレスをjavascript実行命令に書き換えます。
また、同時に追記リンクのtitleもSW用の内容に設定します。
リンク(SW)クリック時に実行される関数は「追記」部分の表示・非表示の切り替えと共に自己の文言・title内容の切り替えも行う、という仕組みです。
この方法の特徴は以下の通りです。

  • 記事部分のソースにスクリプトタグや onclick="〜" 等が混ざらない
  • (not_)permanent_area タグ( モード別書き分け )が不要
  • script OFF 環境では通常の追記リンクとして機能します
  • SW(追記リンク)の性状は .mlk により設定可能

- ▼ -

追記のシーソー折り畳み

      Entry t0 c0 23_Mon    

 便利な事は便利な 「追記折り畳み」 ですが、気になる事もあります。 前記事で触れた問題もそうですが、何より「個別参照モード」の意義が薄れる、というのがあるんじゃないかと。
「普通頁で全文読めるなら個別頁は comment&trackback_area だけでイイじゃん」
て考えも浮かんでおかしくない。 いや、comment_list があるから個別頁はTB専用?
・・・というのはちょっと寂しいじゃありませんか。( 特に個別参照頁重視の当店としては )

 そこで 今回 Asgard_fold に採用した 「シーソー( She's So Cute の略《嘘)折り畳み」 。
文字通り前文( topentry_body )と追記( topentry_more ) を交互に切替表示するというもの。
お急ぎの方にもロード待ちやスクロールの手間なく「それなりに」記事を読んで貰えますし、お時間のある方には個別頁でじっくり通読していただこう(ついでにコメントとかもして貰えるんじゃないか)という寸法です。

【 設置法 】  記事領域の本体(文章)部分*を以下のようにします。
( * <div class="entry_body"> 等の内部  )

<!--more_link--><div id="A<%topentry_no>"><!--/more_link-->
<%topentry_body>
<!--more--><br id="More"><!--/more-->
<!--more_link-->
</div><div class="m" id="B<%topentry_no>">
<!--/more_link-->
<%topentry_more>
<!--more_link-->
</div>
<a href="<%topentry_link>#More" class="mlk" id="C<%topentry_no>">▼</a>
<!--/more_link-->
クラス名やID接頭文字、リンク文言 等は一例です。お好みで設定されて下さい
 

テンプレート末尾(  </body> タグの手前)に以下のタグ(スクリプト)を貼ります。

<!--not_permanent_area-->
<script type="text/javascript"><!--
function mFold(){ 
if(document.getElementsByTagName){
 var A=document.getElementsByTagName('A');
 for(i=0;i<A.length;i++){ if(A[i].className=="mlk") {
  var N=A[i].href.split('entry-')[1].split('.')[0];
  A[i].href="javascript:msw("+N+")";A[i].title="OPEN"
} } } }
mFold();

function msw(N){
var A=document.getElementById("A"+N); 
var B=document.getElementById("B"+N); 
var C=document.getElementById("C"+N);
if(C.title=="OPEN"){ 
 A.style.display="none";  B.style.display="block";
 C.innerHTML="▲";  C.title="CLOSE";
} else { 
 A.style.display="block";  B.style.display="none";
 C.innerHTML="▼";  C.title="OPEN";
} }
//--></script>
<!--/not_permanent_area-->
 

CSSに以下を追加します

.m {display:none}
 

【 解 説 】 前記事のスクリプトを拡張し、追記表示時に前文を隠すようにしました。
( 追記収納時は前文を再表示します )
追記があると個別表示頁以外で more_link により topentry_body をID付きDIVで囲む以外殆ど同じです。 ( 前記事のスクリプトの特徴もそのまま受け継がれています )
実際に Asgard_fold に実装したスクリプトとはこれと異なります( Asgard はモード別にソースが分かれてますので)が、後から考えたこちらの方がスッキリしてるような感じもして複雑な気分。

- ▼ -