fc2ブログ

カテゴリー: FC2BLOG

投稿日
2008-11-09
カテゴリー
FC2BLOG
タグ
変数

前回から半年も経ってしまってスポンサー広告もすっかり板についてきた感じなんですが、ここでまさかの更新です。

さすがに久々なだけあって、親子カテゴリ、ブログ書籍化、アプリケーション、バトン等色々な機能が増えているFC2ブログですが、どうやらそれ以外にもアナウンスされていない新変数の追加があるようですね。

個人的に嬉しかったのが、<%comment_url+name>が使えるようになっていたこと。何の気なしに試してみたら機能していてびっくりしました。この変数については、みりばーるさんが3年も前に書いた、こんな変数があるといいなという妄想(リンク先の下のほうです)を参照してください。これは地味ですが便利ですよ。

それともうひとつ、なんと<!--page_area-->~<!--/page_area-->まで使えるではないですか(モバイル用ではこのエリア変数が既に存在していたようですが) 。この変数は、これまたみりばーるさんが3年以上前に書いた記事追記:リンク先が間違っていたのを修正しました。)で言及されていたほか、結構多くの方々から追加の要望があったものです。しかしどうやらこのpage_area、現時点で確認した限りではindex_areaも含むみたいなので、トップページと区別するためには<!--not_index_area-->~<!--/not_index_area-->で囲む必要がありそうです(あとで試してみます)。まあ<!--not_edit_area-->~<!--/not_edit_area-->がサポートされた時点で、エリア変数を入れ子にすることでpage_areaの代用とすることができるようになっていたわけですけど。とはいえpage_areaのサポートによってテンプレートのソースを簡潔にすることができるのは良いですね。

ただし上記で紹介した変数は公式には未アナウンス状態のようなので、今後どうなるかはわかりません。あと今回の記事はものすごく急いで書いたため色々間違っているかもしれませんがご勘弁を。というか、FC2浦島太郎状態の私が知らないだけでみんなとうの昔に知ってるとかだったらかなり恥ずかしいです。

あ、テンプレートは全然進んでないです……。

投稿日
2008-01-19
カテゴリー
FC2BLOG

追記:いつの間にか修正されたようで、現在では下記のフォーム部品は出現しません。一応記事はこのまま残しておきます。

新管理画面を使用している場合、クッキーを無効にしてブログを閲覧していると、フォーム(検索フォームとかコメントフォームとか)に謎のinput要素が現れます。type="hidden"になっているので気づきにくいですが、ソースは以下の通りです。

<input type="hidden" name="vcr" value="xxx..." />

value値は32桁くらいの英数で、リロードするたびに変化します。前回の記事のクエリと共通のようです。これ一体何なんでしょう。フォーラムにトピックがありますが、特に回答はなし。不具合ではなくこういう仕様ってことなんだと思いますが、どんな意味があるのか気になります。

あと困ったことに、件のinput要素はform直下に問答無用で挿入されます。DTDによっては、このような記述は誤りです(fieldsetとかpとかで囲む必要があります)。些細なことですが、これも気になる人は気になるはずです。

投稿日
2008-01-18
カテゴリー
FC2BLOG
タグ
不具合

追記:いつの間にか修正されていた模様です。一応記事はこのまま残しておきます。

ちょっと気になるFC2ブログの不具合(仕様?)ぽい現象。クッキー無効状態で閲覧していると、相対パスで指定したURLによくわからないクエリ文字列がつきます(追記:新管理画面に移行している場合のみ発生するようです)。結構前から続いている現象ですが、どうやらフォーラムには特に報告されていないようです(見落としてるだけかも)。

参考として、以下に絶対パスと相対パスそれぞれで指定したこのブログのトップページへのリンクを載せておきます。

クッキーが有効になっていれば、上記2つはどちらもトップページにリンクされているはずです。しかしクッキーが無効になっていると、下の相対パス指定のURLに「?vcr=xxx...」という感じのクエリがつきます。このため、クリックしてもindex_areaに飛ぶことはできません(ページエリアに移動します)。

簡単な解決方法は、相対パス指定をやめて、絶対パスにすること。まあ私のようにクッキーを頻繁に切る人はたぶん少ないので、あまり問題になることもないと思います。

投稿日
2008-01-17
カテゴリー
FC2BLOG
タグ
変数

今作っているテンプレートは、基本1カラムで、上部メニュー(グローバルナビゲーション)からアーカイブ等のページに移動する、というタイプのものです。ギョさんのtabboxや、みりばーるさんのchameleonに近い感じです(かなり見劣りはしますが……)。

で、メニューにタグエリアへのリンクを追加しようと思ったんですが、ちょっとした壁にぶち当たりました。カテゴリー別ならば最初にblog-category-0(必ず存在する)に飛べばいいし、月別ならばとりあえずblog-date-<%now_year><%now_month>に飛べばいいんですが(ちなみに今は月別とカテゴリー別をまとめて"Archives"として、最初にtitlelist_areaへ移動して全記事一覧を表示するようにしています。chameleonとほぼ同じです。)、タグエリアは最初に移動すべきページが指定できないのです(自分のブログだけで使うなら、任意のタグのURLを直接書き込めば済むのですが)。一応、<%url>?tagとだけ指定する(こうすると、該当記事無しの状態のタグエリアに移動する)という手もありますが、最初のページの記事領域が空白というのは、なんとなく抵抗があります(個人的に)。あるいは、いっそのことタグも"Archives"にまとめてしまうこともできますが、タグはアーカイブというよりは検索の性質を持っていると思うので(これも個人的に)、一緒にすべきではないような気がします。

そこで前回の記事の出番です。タグエリアへのリンクを以下のようにします。

<!--ctag-->
<a href="<%ctag_url>">Tags</a>
<!--not_edit_area--><!--/ctag--><!--ctag--><!--/not_edit_area-->
<!--/ctag-->

ここではctagを使用したので、設定回数の一番多いタグのページにリンクされます。rtagを使えば一番最近追加されたタグ、stagを使えばランダムで決定されたタグのページへリンクされます。

ちなみに、前々回の記事の手法を使って、

<!--ctag--><!--not_edit_area--><!--/ctag-->
<!--ctag-->
<a href="<%ctag_url>">Tags</a>
<!--not_edit_area--><!--/ctag--><!--ctag--><!--/not_edit_area-->
<!--/ctag-->
<!--ctag--><!--/not_edit_area--><!--/ctag-->

という具合にすれば、タグを全く使用していない場合に、タグエリアへのリンクをメニューから消すことができます。

まあしかし、やっぱり得体の知れない技なので、共有登録するテンプレートに使うのはちょっと躊躇われます……。

投稿日
2008-01-14
カテゴリー
FC2BLOG
タグ
変数

今回も、FC2ブログの独自変数を利用した小技についてです。前回の記事を踏まえたうえで読んでください。そうでないとわけがわからんかもしれません。

いわゆるリスト型変数(前回勝手に名付けた)は、その内容を繰り返して表示するものです。何回繰り返すかは、該当する値の数によります。たとえば<!--archive-->~<!--/archive-->は、記事が投稿された月の数だけその内容を繰り返します。

しかし今回紹介する方法を使えば、リスト型変数の1つ目の項目だけを表示することが可能となります。リスト型変数に分類される変数であれば、どの変数にも応用できます。つまり、たとえば<!--topentry-->~<!--/topentry-->にも使えるので、最新の記事だけを表示する(もちろん環境設定の記事の表示件数をいじらずに!)ということも可能になります。……これはもしかしたら小技じゃなく大技かもわからんね。

では、topentryを使用した場合を例にとって解説します。通常下記のようになっている部分に

<!--topentry-->
内容(<%topentry_body>等)
<!--/topentry-->

次のように強調部分を書き加えるだけです。(追記:FCafeのDanielさんにコメント欄で指摘を頂き、タグの挿入位置を修正しました。

<!--topentry-->
内容(<%topentry_body>等)
<!--not_edit_area--><!--/topentry--><!--topentry--><!--/not_edit_area-->
<!--/topentry-->

以上で完了。どういう仕組みなのかは謎ですが、これでtopentryの内容が最初の1つだけ出力されます。2つ目以降は出力されないので、もちろんソースにも全く現れません。

ここではnot_edit_areaを用いましたが、いわゆるフラグ型変数であれば他のものでも問題ないです。詳しくは前回の記事を参照してください。

他にどういう便利な使い方があるかなぁと考えてみました。そこで思い出したのが、FCafeさんの空リンク非表示 2という記事。もう3年近く前の記事ですが、今回紹介した手法を使えば、環境設定の「最新記事一覧」の表示件数を1件にすることなく同じことが実現できます。

やることはさっきの例と全く同じですが、一応書いておきます。リンク先の【方法】の項の一番下、head領域の部分の既述を以下のように書き換えるだけです。(追記:こちらもDanielさんのコメントの通り修正しました。

<style type="text/css">
        <!--recent-->
        .nxt<%recent_year><%recent_month> {display: none;}
        <!--not_edit_area--><!--/recent--><!--recent--><!--/not_edit_area-->
        <!--/recent-->
</style>

強調部分が追加されました。空リンクを非表示にしたいけど、最新記事一覧を犠牲にしたくない、という人にはおすすめです。(追記:別の方法があるので、Danielさんのコメントを参照してください。

今回紹介した小技、まだまだ使い道があると思います。Danielさんならもっとナイスな使い方を思いつきそうです。あとこの技のカラクリも解き明かしてくれそうな気が……というわけで時空を超えたトラバを送ってみました。

奥付