<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10japanesefull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
    <title>The blog of H.Fujimoto</title>
    <link rel="alternate" type="text/html" href="http://www.h-fj.com/blog/" />
    
    <id>tag:www.h-fj.com,2008-06-26:/blog//1</id>
    <updated>2012-02-04T00:30:38Z</updated>
    <subtitle>Personal Computer, Financial Planning, etc...</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 5.12</generator>

<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/atom-hfj" /><feedburner:info uri="atom-hfj" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
    <title>今月／来月の記事一覧を出力する(後編）</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/atom-hfj/~3/Kcsa05VQ6Rs/04-093038.php" />
    <id>tag:www.h-fj.com,2012:/blog//1.2807</id>

    <published>2012-02-04T00:30:38Z</published>
    <updated>2012-02-04T00:30:38Z</updated>

    <summary>Movable Typeで、ブログの今月の記事と来月の記事を表示する方法を紹介します。今日はその後編です。</summary>
    <author>
        <name>壱</name>
        <uri>http://www.h-fj.com/blog/</uri>
    </author>
    
        <category term="カスタマイズ・TIPS" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="movabletype" label="Movable Type" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype5" label="Movable Type 5" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mtos" label="MTOS" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="日付" label="日付" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.h-fj.com/blog/">
        &lt;p&gt;
昨日に続いて、今月／来月の記事一覧を出力する方法を紹介します。&lt;br /&gt;
今日は、今月または来月の記事がない場合に、「記事はありません」と出力できるようにする方法を取り上げます。&lt;br /&gt;

&lt;/p&gt;
        &lt;h2&gt;1.今月／来月の記事をいったん変数に代入する&lt;/h2&gt;

&lt;p&gt;
昨日のテンプレートでは、今月／来月の記事一覧を直接に出力します。&lt;br /&gt;
ただし、MTArchiveListタグは、記事がないアーカイブは一切出力しません。&lt;br /&gt;
今月（または来月）に記事がない場合、その月については、MTArchiveListタグのブロック内が処理されません。&lt;br /&gt;
結果として、今月（または来月）に記事がないと、その部分には何も出力されなくなってしまいます。
&lt;/p&gt;

&lt;p&gt;
そこで、今月／来月の記事を直接に出力せずに、いったんハッシュに代入します。&lt;br /&gt;
そして、後でハッシュの内容を確認し、記事があるかどうかを判断してから、出力するようにします。
&lt;/p&gt;

&lt;p&gt;
昨日の記事のMTEntriesタグのブロックをMTSetVarBlockタグで囲み、ハッシュに代入します。&lt;br /&gt;
ハッシュのキーとして、「201201」のような年月（変数this_monthやnext_monthの値）を使います。&lt;br /&gt;
そして、ハッシュの値として、出力する記事一覧を代入します。
&lt;/p&gt;

&lt;p&gt;
例えば、今月が2012年2月だとします。&lt;br /&gt;
この場合、今月と来月の両方に記事があれば、ハッシュの内容は以下のようになります。
&lt;/p&gt;

&lt;table&gt;
&lt;tr&gt;&lt;th&gt;キー&lt;/th&gt;&lt;th&gt;値&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;201202&lt;/td&gt;&lt;td&gt;2012年2月の記事一覧&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;201203&lt;/td&gt;&lt;td&gt;2012年3月の記事一覧&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;
一方、2012年2月に記事があって、3月に記事がない場合は、3月についてはMTArchiveタグのブロックが実行されません。&lt;br /&gt;
そのため、ハッシュの内容は以下のようになります。
&lt;/p&gt;

&lt;table&gt;
&lt;tr&gt;&lt;th&gt;キー&lt;/th&gt;&lt;th&gt;値&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;201202&lt;/td&gt;&lt;td&gt;2012年2月の記事一覧&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;
このようにしてハッシュを作った後、ハッシュに今月／来月の要素があるかどうかを条件判断します。&lt;br /&gt;
要素があれば（＝記事一覧が代入されていれば）、その記事一覧を出力します。&lt;br /&gt;
一方、要素がなければ、「記事はありません」と出力します。
&lt;/p&gt;

&lt;h2&gt;2.テンプレートを書き換える&lt;/h2&gt;

&lt;p&gt;
ここまでの話に基づいて、昨日紹介したテンプレートを書き換えると、以下のようになります。
&lt;/p&gt;

&lt;script type="text/javascript" src="http://www.h-fj.com/syntaxhighlighter/scripts/shCore.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://www.h-fj.com/syntaxhighlighter/scripts/shBrushXml.js "&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
SyntaxHighlighter.config.clipboardSwf = 'http://www.h-fj.com/syntaxhighlighter/scripts/clipboard.swf';
SyntaxHighlighter.all();
&lt;/script&gt;

&lt;pre class="brush : html"&gt;&amp;lt;$mt:Date format=&amp;quot;%Y%m&amp;quot; setvar=&amp;quot;this_month&amp;quot;$&amp;gt;
&amp;lt;$mt:GetVar name=&amp;quot;this_month&amp;quot; op=&amp;quot;++&amp;quot; setvar=&amp;quot;next_month&amp;quot;$&amp;gt;
&amp;lt;mt:If name=&amp;quot;next_month&amp;quot; like=&amp;quot;13$&amp;quot;&amp;gt;
  &amp;lt;$mt:Date format=&amp;quot;%Y&amp;quot; setvar=&amp;quot;next_year&amp;quot;$&amp;gt;
  &amp;lt;$mt:GetVar name=&amp;quot;next_year&amp;quot; op=&amp;quot;++&amp;quot; setvar=&amp;quot;next_month&amp;quot;$&amp;gt;
  &amp;lt;$mt:SetVar name=&amp;quot;next_month&amp;quot; append=&amp;quot;1&amp;quot; value=&amp;quot;01&amp;quot;$&amp;gt;
&amp;lt;/mt:If&amp;gt;

&amp;lt;mt:Blogs include_blogs=&amp;quot;2&amp;quot;&amp;gt;
  &amp;lt;mt:ArchiveList archive_type=&amp;quot;Monthly&amp;quot;&amp;gt;
    &amp;lt;$mt:ArchiveDate format=&amp;quot;%Y%m&amp;quot; setvar=&amp;quot;archive_month&amp;quot;$&amp;gt;
    &amp;lt;$mt:SetVar name=&amp;quot;flag&amp;quot; value=&amp;quot;0&amp;quot;$&amp;gt;
    &amp;lt;mt:If name=&amp;quot;archive_month&amp;quot; eq=&amp;quot;$this_month&amp;quot;&amp;gt;
      &amp;lt;$mt:SetVar name=&amp;quot;flag&amp;quot; value=&amp;quot;1&amp;quot;$&amp;gt;
    &amp;lt;mt:Else name=&amp;quot;archive_month&amp;quot; eq=&amp;quot;$next_month&amp;quot;&amp;gt;
      &amp;lt;$mt:SetVar name=&amp;quot;flag&amp;quot; value=&amp;quot;1&amp;quot;$&amp;gt;
    &amp;lt;/mt:If&amp;gt;
    &amp;lt;mt:If name=&amp;quot;flag&amp;quot;&amp;gt;
      &amp;lt;mt:SetVarBlock name=&amp;quot;entries&amp;quot; key=&amp;quot;$archive_month&amp;quot;&amp;gt;
      &amp;lt;h2&amp;gt;&amp;lt;$mt:ArchiveDate format=&amp;quot;%Y/%m&amp;quot;$&amp;gt;&amp;lt;/h2&amp;gt;
      &amp;lt;mt:Entries&amp;gt;
      &amp;lt;div&amp;gt;
        &amp;lt;h3&amp;gt;&amp;lt;$mt:EntryTitle$&amp;gt;&amp;lt;/h3&amp;gt;
        &amp;lt;$mt:EntryBody$&amp;gt;
      &amp;lt;/div&amp;gt;  
      &amp;lt;/mt:Entries&amp;gt;
      &amp;lt;/mt:SetVarBlock&amp;gt;
    &amp;lt;/mt:If&amp;gt;
  &amp;lt;/mt:ArchiveList&amp;gt;
&amp;lt;/mt:Blogs&amp;gt;

&amp;lt;mt:If name=&amp;quot;entries&amp;quot; key=&amp;quot;$next_month&amp;quot;&amp;gt;
  &amp;lt;$mt:GetVar name=&amp;quot;entries&amp;quot; key=&amp;quot;$next_month&amp;quot;&amp;gt;
&amp;lt;mt:Else&amp;gt;
  &amp;lt;h2&amp;gt;&amp;lt;$mt:Date ts=&amp;quot;$next_month&amp;quot; format=&amp;quot;%Y/%m&amp;quot;&amp;gt;&amp;lt;/h2&amp;gt;
  &amp;lt;div&amp;gt;&amp;lt;p&amp;gt;記事はありません。&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/mt:If&amp;gt;
&amp;lt;mt:If name=&amp;quot;entries&amp;quot; key=&amp;quot;$this_month&amp;quot;&amp;gt;
  &amp;lt;$mt:GetVar name=&amp;quot;entries&amp;quot; key=&amp;quot;$this_month&amp;quot;&amp;gt;
&amp;lt;mt:Else&amp;gt;
  &amp;lt;h2&amp;gt;&amp;lt;$mt:Date ts=&amp;quot;$this_month&amp;quot; format=&amp;quot;%Y/%m&amp;quot;&amp;gt;&amp;lt;/h2&amp;gt;
  &amp;lt;div&amp;gt;&amp;lt;p&amp;gt;記事はありません。&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/mt:If&amp;gt;&lt;/pre&gt;

&lt;p&gt;
昨日のリストと比べると、19／27行目のMTSetVarBlockタグと、32行目以降が追加になっています。
&lt;/p&gt;

&lt;p&gt;
19／27行目のMTSetVarBlockタグは、今月および来月の記事一覧を、「entries」という名前のハッシュに代入する働きをします。&lt;br /&gt;
ハッシュのキーとして、変数archive_monthの値を指定していますので、キーは「201201」などの年月の値になります。
&lt;/p&gt;

&lt;p&gt;
32～37行目は、来月に記事があるかどうかを判断して、出力を分ける部分です。&lt;br /&gt;
32行目のMTIfタグでは、ハッシュentriesの中で、キーが来月の月（変数next_month）になっている要素があるかどうかを判断しています。
&lt;/p&gt;

&lt;p&gt;
要素があれば、33行目によって、その値が出力されます。&lt;br /&gt;
ハッシュの値には、19～27行目のMTSetVarBlockタグによって、個々の月のブログ記事一覧が代入されていますので、結果として来月のブログ記事一覧が出力されます。
&lt;/p&gt;

&lt;p&gt;
一方、ハッシュに要素がない場合は、32行目のMTIfタグが成立せず、34行目のMTElseタグ以降によって、「記事はありません」と出力されます。
&lt;/p&gt;

&lt;p&gt;
38～43行目では、32～37行目と同様の考え方で、今月の記事があるかどうかを判断して出力を分けています。
&lt;/p&gt;

&lt;h2&gt;3.変数や条件判断は必須&lt;/h2&gt;

&lt;p class="pkg"&gt;&lt;a href="http://www.h-fj.com/blog/mt51bookvol2/"&gt;&lt;img src="http://www.h-fj.com/blog/mt51bookvol2/mt51book2.png" width="80" height="114" alt="Movable Type 5.1 Webサイト製作ガイドVolume 2" title=t="Movable Type 5.1 Webサイト製作ガイドVolume 2" class="left_float" /&gt;&lt;/a&gt;この例のように、手の込んだ処理をしようとすると、変数や条件判断を避けて通ることができません。&lt;br /&gt;
拙著「&lt;a href="http://www.h-fj.com/blog/mt51bookvol2/"&gt;Movable Type 5.1 Webサイト製作ガイドVolume 2&lt;/a&gt;」では、変数や条件判断について、かなり詳しく解説しています。&lt;br /&gt;
「変数や条件判断がよく分からない」という方は、ぜひ拙著をお読みください。
&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=Kcsa05VQ6Rs:-VB9ebbslLA:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=Kcsa05VQ6Rs:-VB9ebbslLA:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=Kcsa05VQ6Rs:-VB9ebbslLA:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?i=Kcsa05VQ6Rs:-VB9ebbslLA:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
<feedburner:origLink>http://www.h-fj.com/blog/archives/2012/02/04-093038.php</feedburner:origLink></entry>

<entry>
    <title>今月／来月の記事一覧を出力する(前編）</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/atom-hfj/~3/BkCHkLGFjI0/03-082141.php" />
    <id>tag:www.h-fj.com,2012:/blog//1.2805</id>

    <published>2012-02-02T23:21:41Z</published>
    <updated>2012-02-03T06:47:08Z</updated>

    <summary>Movable Typeで、ブログの今月の記事と来月の記事を表示する方法を紹介します。今日はその前編です。</summary>
    <author>
        <name>壱</name>
        <uri>http://www.h-fj.com/blog/</uri>
    </author>
    
        <category term="カスタマイズ・TIPS" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="movabletype" label="Movable Type" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype5" label="Movable Type 5" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mtos" label="MTOS" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="日付" label="日付" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.h-fj.com/blog/">
        &lt;p&gt;
MTQで以下のような質問が上がっていました。
&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;ウェブサイトテンプレートで、ブログの今月の記事と来月の記事を表示する方法がわからないです。&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;
すでに&lt;a href="http://linker.in/journal/2012/02/movable-type-54.php"&gt;まーしーさんが解答しています&lt;/a&gt;が、私も答えてみます。&lt;br /&gt;

&lt;/p&gt;
        &lt;h2&gt;1.今月を得る&lt;/h2&gt;

&lt;p&gt;
まず、今月を「201202」のような形で得て、変数this_monthに代入することから始めます。&lt;br /&gt;
後で今月かどうかを条件判断する際に、この変数を使います。
&lt;/p&gt;

&lt;p&gt;
現在（正確には、最後に再構築した時）は、MTDateタグで得ることができます。&lt;br /&gt;
このタグにformatモディファイアを指定して「yyyymm」の形に変換すると、今月を得ることができます。&lt;br /&gt;
その値を変数this_monthに代入します。&lt;br /&gt;
実際にテンプレートタグを書くと、以下のようになります。
&lt;/p&gt;

&lt;script type="text/javascript" src="http://www.h-fj.com/syntaxhighlighter/scripts/shCore.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://www.h-fj.com/syntaxhighlighter/scripts/shBrushXml.js "&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
SyntaxHighlighter.config.clipboardSwf = 'http://www.h-fj.com/syntaxhighlighter/scripts/clipboard.swf';
SyntaxHighlighter.all();
&lt;/script&gt;

&lt;pre class="brush : html"&gt;&amp;lt;$mt:Date format=&amp;quot;%Y%m&amp;quot; setvar=&amp;quot;this_month&amp;quot;$&amp;gt;&lt;/pre&gt;

&lt;h2&gt;2.来月を得る&lt;/h2&gt;

&lt;p&gt;
次に、変数this_monthの値に1を足し、来月を得て、変数next_monthに代入します。&lt;br /&gt;
後で来月かどうかを条件判断する際に、この変数を使います。
&lt;/p&gt;

&lt;p&gt;
ただ、今月が12月である場合、単に変数の値を1増やすだけだと、「201213」のように13月になってしまいます。&lt;br /&gt;
そこで、変数next_monthの値の最後が「13」になっている場合は、年を1つ増やし、月を「01」にします。
&lt;/p&gt;

&lt;p&gt;
この処理を書くと、以下のようになります。
&lt;/p&gt;

&lt;pre class="brush : html"&gt;&amp;lt;$mt:GetVar name=&amp;quot;this_month&amp;quot; op=&amp;quot;++&amp;quot; setvar=&amp;quot;next_month&amp;quot;$&amp;gt;
&amp;lt;mt:If name=&amp;quot;next_month&amp;quot; like=&amp;quot;13$&amp;quot;&amp;gt;
  &amp;lt;$mt:Date format=&amp;quot;%Y&amp;quot; setvar=&amp;quot;next_year&amp;quot;$&amp;gt;
  &amp;lt;$mt:GetVar name=&amp;quot;next_year&amp;quot; op=&amp;quot;++&amp;quot; setvar=&amp;quot;next_month&amp;quot;$&amp;gt;
  &amp;lt;$mt:SetVar name=&amp;quot;next_month&amp;quot; append=&amp;quot;1&amp;quot; value=&amp;quot;01&amp;quot;$&amp;gt;
&amp;lt;/mt:If&amp;gt;&lt;/pre&gt;

&lt;p&gt;
まず、1行目のMTGetVarタグで、変数this_monthの値に1を足し、変数next_monthに代入します。
&lt;/p&gt;

&lt;p&gt;
次に、2行目のMTIfタグで、変数next_monthの最後が「13」になっているかどうかを調べます。&lt;br /&gt;
likeモディファイアは、変数の値を正規表現で比較する働きをします。&lt;br /&gt;
「$」は「値の最後」を意味しますので、「13$」で「値の最後が13」という意味になります。
&lt;/p&gt;

&lt;p&gt;
MTIfタグの条件が成立した時には、3～5行目が実行されます。&lt;br /&gt;
まず、3行目のMTDateタグで、今年の年を取り出し、変数next_yearに代入します。&lt;br /&gt;
次に、4行目のMTGetVarタグで、変数next_yearの値に1を足し、変数next_monthに代入します。&lt;br /&gt;
そして、5行目のMTSetrVarタグで、変数next_monthの最後に「01」を連結します。
&lt;/p&gt;

&lt;h2&gt;3.月ごとに記事をまとめて出力する&lt;/h2&gt;

&lt;p&gt;
月ごとに記事をまとめて出力するには、MTArchiveListタグとMTEntriesタグを組み合わせて、以下のように書きます。
&lt;/p&gt;

&lt;pre class="brush : html"&gt;&amp;lt;mt:ArchiveList archive_type=&amp;quot;Monthly&amp;quot;&amp;gt;
  ・
  ・（各種の処理）
  ・
  &amp;lt;mt:Entries&amp;gt;
    ・
    ・（個々のブログ記事の内容を出力する処理)
    ・
  &amp;lt;/mt:Entries&amp;gt;
  ・
  ・（各種の処理）
  ・
&amp;lt;/mt:ArchiveList&amp;gt;&lt;/pre&gt;

&lt;p&gt;
また、ウェブサイト内のテンプレートで、特定のブログの記事を月ごとにまとめて出力するなら、上記の部分を&amp;lt;mt:Blogs include_blogs="ブログのID"&amp;gt;～&amp;lt;/mt:Blogs&amp;gt;のタグで囲みます。
&lt;/p&gt;

&lt;h2&gt;4.今月か来月を判断する&lt;/h2&gt;

&lt;p&gt;
今取り上げている例では、アーカイブの月が今月か来月の時だけ、MTEntriesタグの部分を出力するようにします。&lt;br /&gt;
したがって、「アーカイブの月が今月か来月」という条件判断（MTIfタグ）で、MTEntriesタグの部分を囲みます。
&lt;/p&gt;

&lt;p&gt;
MTIfタグでは、「2つの条件のどちらかを満たした時」という処理を、残念ながらスマートに書くことができません。&lt;br /&gt;
このような処理は、以下の形で書きます。
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;フラグ用の変数に0を代入します。&lt;/li&gt;
&lt;li&gt;1つ目の条件を判断し、条件を満たしていたら、フラグ用の変数の値を1にします。&lt;/li&gt;
&lt;li&gt;2つ目の条件を判断し、条件を満たしていたら、フラグ用の変数の値を1にします。&lt;/li&gt;
&lt;li&gt;2つの条件のどちらかを満たせば、上の2つの処理の結果、フラグ用変数の値が1になっています。そこで、「フラグ用変数の値が1」という条件で、処理を分けます。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
変数archive_monthに、アーカイブの月を代入するものとします。&lt;br /&gt;
この場合だと、以下のようにすることで、今月または来月のアーカイブの時だけ、ブログ記事の一覧を出力することができます。
&lt;/p&gt;

&lt;pre class="brush : html"&gt;&amp;lt;$mt:ArchiveDate format=&amp;quot;%Y%m&amp;quot; setvar=&amp;quot;archive_month&amp;quot;$&amp;gt;
&amp;lt;$mt:SetVar name=&amp;quot;flag&amp;quot; value=&amp;quot;0&amp;quot;$&amp;gt;
&amp;lt;mt:If name=&amp;quot;archive_month&amp;quot; eq=&amp;quot;$this_month&amp;quot;&amp;gt;
  &amp;lt;$mt:SetVar name=&amp;quot;flag&amp;quot; value=&amp;quot;1&amp;quot;$&amp;gt;
&amp;lt;mt:Else name=&amp;quot;archive_month&amp;quot; eq=&amp;quot;$next_month&amp;quot;&amp;gt;
  &amp;lt;$mt:SetVar name=&amp;quot;flag&amp;quot; value=&amp;quot;1&amp;quot;$&amp;gt;
&amp;lt;/mt:If&amp;gt;
&amp;lt;mt:If name=&amp;quot;flag&amp;quot;&amp;gt;
・
・（ブログ記事の一覧を出力する処理）
・
&amp;lt;/mt:If&amp;gt;&lt;/pre&gt;

&lt;p&gt;
1行目のMTArchiveDateタグで、アーカイブの年月を得て、formatモディファイアで「201201」のような形にして、変数archive_monthに代入します。&lt;br /&gt;
2行目では、MTSetVarタグを使って、フラグ用の変数（flag）の値を0にします。&lt;br /&gt;
3行目のMTIfタグで、変数archive_monthが、変数this_monthの値と等しければ、4行目のMTSetVarタグで変数flagを1にします。&lt;br /&gt;
また、5行目のMTElseタグで、変数archive_monthが、変数next_monthの値と等しければ、6行目のMTSetVarタグで変数flagを1にします。
&lt;/p&gt;

&lt;p&gt;
これで、変数archive_monthが、変数this_month／next_monthのどちらかと等しければ（＝アーカイブの月が今月か来月であれば）、変数flagの値が1になります。&lt;br /&gt;
そこで、7行目のMTIfタグで変数flagの値が1かどうかを判断し、その時（＝アーカイブの月が今月か来月）だけ、ブログ記事の一覧を出力するようにします。
&lt;/p&gt;

&lt;h2&gt;5.ひとまず完成&lt;/h2&gt;

&lt;p&gt;
ここまでの話から、完成したテンプレートは以下のようになります。&lt;br /&gt;
なお、ブログのIDが2番であると仮定しています（9行目の「include_blogs="2"」）
&lt;/p&gt;

&lt;pre class="brush : html"&gt;&amp;lt;$mt:Date format=&amp;quot;%Y%m&amp;quot; setvar=&amp;quot;this_month&amp;quot;$&amp;gt;
&amp;lt;$mt:GetVar name=&amp;quot;this_month&amp;quot; op=&amp;quot;++&amp;quot; setvar=&amp;quot;next_month&amp;quot;$&amp;gt;
&amp;lt;mt:If name=&amp;quot;next_month&amp;quot; like=&amp;quot;13$&amp;quot;&amp;gt;
  &amp;lt;$mt:Date format=&amp;quot;%Y&amp;quot; setvar=&amp;quot;next_year&amp;quot;$&amp;gt;
  &amp;lt;$mt:GetVar name=&amp;quot;next_year&amp;quot; op=&amp;quot;++&amp;quot; setvar=&amp;quot;next_month&amp;quot;$&amp;gt;
  &amp;lt;$mt:SetVar name=&amp;quot;next_month&amp;quot; append=&amp;quot;1&amp;quot; value=&amp;quot;01&amp;quot;$&amp;gt;
&amp;lt;/mt:If&amp;gt;

&amp;lt;mt:Blogs include_blogs=&amp;quot;2&amp;quot;&amp;gt;
&amp;lt;mt:ArchiveList archive_type=&amp;quot;Monthly&amp;quot;&amp;gt;
  &amp;lt;$mt:ArchiveDate format=&amp;quot;%Y%m&amp;quot; setvar=&amp;quot;archive_month&amp;quot;$&amp;gt;
  &amp;lt;$mt:SetVar name=&amp;quot;flag&amp;quot; value=&amp;quot;0&amp;quot;$&amp;gt;
  &amp;lt;mt:If name=&amp;quot;archive_month&amp;quot; eq=&amp;quot;$this_month&amp;quot;&amp;gt;
    &amp;lt;$mt:SetVar name=&amp;quot;flag&amp;quot; value=&amp;quot;1&amp;quot;$&amp;gt;
  &amp;lt;mt:Else name=&amp;quot;archive_month&amp;quot; eq=&amp;quot;$next_month&amp;quot;&amp;gt;
    &amp;lt;$mt:SetVar name=&amp;quot;flag&amp;quot; value=&amp;quot;1&amp;quot;$&amp;gt;
  &amp;lt;/mt:If&amp;gt;
  &amp;lt;mt:If name=&amp;quot;flag&amp;quot;&amp;gt;
    &amp;lt;h2&amp;gt;&amp;lt;$mt:ArchiveDate format=&amp;quot;%Y/%m&amp;quot;$&amp;gt;&amp;lt;/h2&amp;gt;
    &amp;lt;mt:Entries&amp;gt;
    &amp;lt;div&amp;gt;
      &amp;lt;h3&amp;gt;&amp;lt;$mt:EntryTitle$&amp;gt;&amp;lt;/h3&amp;gt;
      &amp;lt;$mt:EntryBody$&amp;gt;
    &amp;lt;/div&amp;gt;  
    &amp;lt;/mt:Entries&amp;gt;
  &amp;lt;/mt:If&amp;gt;
&amp;lt;/mt:ArchiveList&amp;gt;
&amp;lt;/mt:Blogs&amp;gt;&lt;/pre&gt;

&lt;h2&gt;6.問題点&lt;/h2&gt;

&lt;p&gt;
ここまででほぼ動作しますが、1つ問題点があります。
&lt;/p&gt;

&lt;p&gt;
MTArchiveListタグは、ブログ記事がないアーカイブは処理しません。&lt;br /&gt;
そのため、来月に記事がないと、来月の記事については一切処理が行わません。&lt;br /&gt;
結果として、来月に記事がなく、今月の記事だけがある時は、今月の記事だけが出力されます。
&lt;/p&gt;

&lt;p&gt;
同様に、今月に記事がなく、来月の記事だけがある場合は、来月の記事だけが出力されます。&lt;br /&gt;
さらに、今月／来月とも記事がないと、何も出力されません。
&lt;/p&gt;

&lt;p&gt;
質問された方は、記事がない場合は、「記事がありません」のように出力したいとのことでした。&lt;br /&gt;
この問題を解決する方法は、明日の記事で述べたいと思います。&lt;br /&gt;

&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=BkCHkLGFjI0:oqpfVd5EMsI:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=BkCHkLGFjI0:oqpfVd5EMsI:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=BkCHkLGFjI0:oqpfVd5EMsI:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?i=BkCHkLGFjI0:oqpfVd5EMsI:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
<feedburner:origLink>http://www.h-fj.com/blog/archives/2012/02/03-082141.php</feedburner:origLink></entry>

<entry>
    <title>AnotherCustomFieldsプラグイン一部修正</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/atom-hfj/~3/XdCFUPhOvrw/02-091419.php" />
    <id>tag:www.h-fj.com,2012:/blog//1.2803</id>

    <published>2012-02-02T00:14:19Z</published>
    <updated>2012-02-02T14:27:46Z</updated>

    <summary>MTOSでカスタムフィールド風の機能を実現するAnotherCustomFieldsプラグインに対し、不具合の指摘がありましたので、修正したバージョンを公開します。</summary>
    <author>
        <name>壱</name>
        <uri>http://www.h-fj.com/blog/</uri>
    </author>
    
        <category term="自作プラグイン" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="anothercustomfields" label="AnotherCustomFields" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype" label="Movable Type" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype51" label="Movable Type 5.1" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mtos" label="MTOS" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mtプラグイン" label="MTプラグイン" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="カスタムフィールド" label="カスタムフィールド" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.h-fj.com/blog/">
        &lt;p&gt;MTOSでカスタムフィールド風の機能を実現する&lt;a href="http://www.h-fj.com/blog/acfbook/"&gt;AnotherCustomFieldsプラグイン&lt;/a&gt;に対し、不具合の指摘がありました。&lt;br /&gt;
修正したバージョンを公開します。&lt;/p&gt;

&lt;p class="update"&gt;2012年2月2日　23時22分&lt;br /&gt;
CustomFieldsListingプラグインを組み合わせている方は、そちらも修正が必要になります。その点を追記しました。
&lt;/p&gt;
        &lt;h2&gt;不具合の内容&lt;/h2&gt;

&lt;p&gt;入力必須のフィールドを作り、かつそのフィールドを特定のブログだけに表示するようにしたとします。&lt;br /&gt;
この場合、このフィールドを表示しないブログでオブジェクトを保存しようとしたときに、「〇〇フィールドは入力必須です」のエラーメッセージが表示され、オブジェクトを保存することができません。&lt;/p&gt;

&lt;h2&gt;修正版のインストール&lt;/h2&gt;

&lt;p&gt;修正版のプラグインは、以下からダウンロードすることができます。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.h-fj.com/mt_plugin/AnotherCustomFields_1_03.zip"&gt;AnotherCustomFields_1_03.zip&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ダウンロードしたプラグインを解凍すると、「plugins」と「mt-static」のフォルダができます。&lt;br /&gt;
これらのフォルダを、Movable Typeのインストール先ディレクトリにアップロードします。&lt;/p&gt;

&lt;p&gt;また、CustomFieldsListingプラグインを組み合わせている方は、こちらもバージョンアップします。&lt;br /&gt;
以下からダウンロードすることができます。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.h-fj.com/mt_plugin/CustomFieldsListing_1_12.zip"&gt;CustomFieldsListing_1_12.zip&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ダウンロードしたプラグインを解凍すると、「plugins」と「mt-static」のフォルダができます。&lt;br /&gt;
これらのフォルダを、Movable Typeのインストール先ディレクトリにアップロードします。&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=XdCFUPhOvrw:4p-pS6FhV7w:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=XdCFUPhOvrw:4p-pS6FhV7w:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=XdCFUPhOvrw:4p-pS6FhV7w:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?i=XdCFUPhOvrw:4p-pS6FhV7w:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
<feedburner:origLink>http://www.h-fj.com/blog/archives/2012/02/02-091419.php</feedburner:origLink></entry>

<entry>
    <title>PHPUtilプラグイン（その1・概要とインストール）</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/atom-hfj/~3/yzCZQ53gpeI/01-104016.php" />
    <id>tag:www.h-fj.com,2012:/blog//1.2794</id>

    <published>2012-02-01T01:40:16Z</published>
    <updated>2012-02-01T14:44:41Z</updated>

    <summary>Movable Typeのテンプレート内でPHPを使いやすくするために、「PHPUtil」というプラグインを作りました。今日は、プラグインの概要と、インストール手順を解説します。</summary>
    <author>
        <name>壱</name>
        <uri>http://www.h-fj.com/blog/</uri>
    </author>
    
        <category term="自作プラグイン" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="movabletype" label="Movable Type" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype5" label="Movable Type 5" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype51" label="Movable Type 5.1" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="php" label="PHP" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.h-fj.com/blog/">
        &lt;p&gt;
Movable Typeのテンプレート内でPHPを使いやすくするために、「PHPUtil」というプラグインを作りました。&lt;br /&gt;
今日は、プラグインの概要と、インストール手順を解説します。
&lt;/p&gt;

&lt;p class="update"&gt;2012年2月1日 23時40分&lt;br /&gt;
不具合が見つかったので、修正してアップロードしなおしました。&lt;br /&gt;
上記日時までにダウンロードした方は、お手数ですがダウンロードしなおしてください。&lt;/p&gt;

        &lt;h2&gt;1.はじめに&lt;/h2&gt;

&lt;p&gt;
Movable Typeでは、テンプレートの中にPHP等のコードを入れることもできます。&lt;br /&gt;
例えば、テンプレート内に以下のようなコードを入れて、かつページがPHPとして処理されるようにすれば（拡張子を.phpにするなど）、その位置に現在の日時が出力されます。
&lt;/p&gt;

&lt;script type="text/javascript" src="http://www.h-fj.com/syntaxhighlighter/scripts/shCore.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://www.h-fj.com/syntaxhighlighter/scripts/shBrushPhp.js "&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://www.h-fj.com/syntaxhighlighter/scripts/shBrushXml.js "&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
SyntaxHighlighter.config.clipboardSwf = 'http://www.h-fj.com/syntaxhighlighter/scripts/clipboard.swf';
SyntaxHighlighter.all();
&lt;/script&gt;

&lt;pre class="brush : php;"&gt;&amp;lt;?php echo date('Y/m/d H:i:s'); ?&amp;gt;&lt;/pre&gt;

&lt;p&gt;
ただ、1つのテンプレートの中に、Movable TypeのテンプレートタグとPHPのコードとを混在させると、テンプレートがあまり読みやすくありません。&lt;br /&gt;
PHPUtilプラグインを使うと、この点を改善することができます。&lt;br /&gt;
Movable Typeのテンプレートタグの書き方で、PHPの基本的なコードを出力することができます。&lt;br /&gt;
前述の例だと、以下のように書き換えます。
&lt;/p&gt;

&lt;pre class="brush : html;"&gt;&amp;lt;$mt:PHPFunction name=&amp;quot;date&amp;quot; params=&amp;quot;Y/m/d H:i:s&amp;quot;$&amp;gt;&lt;/pre&gt;

&lt;h2&gt;2.PHPUtilプラグインの機能&lt;/h2&gt;

&lt;p&gt;
PHPUtilプラグインは、以下のような処理を、Movable TypeのテンプレートタグからPHPのコードに変換します。
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;変数の代入と出力（配列／ハッシュも含む）&lt;/li&gt;
&lt;li&gt;条件判断&lt;/li&gt;
&lt;li&gt;繰り返し&lt;/li&gt;
&lt;li&gt;日時関係の処理（表示と条件判断）&lt;/li&gt;
&lt;li&gt;他のファイルの組み込み&lt;/li&gt;
&lt;li&gt;関数の実行&lt;/li&gt;
&lt;li&gt;ユーザーエージェント判断（この機能のみDynamicMTMLのライブラリを流用）&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
複雑な処理を書くのには向いていませんが、基本的なPHPのコードなら、PHPUtilプラグインのテンプレートタグで出力することができます。&lt;br /&gt;
テンプレートの中に、部分的に動的な処理を入れたいような場合に使うと良いでしょう。
&lt;/p&gt;

&lt;p&gt;
また、テンプレートタグの書き方は、Movable Typeで同様の処理を行うテンプレートタグに極力合わせるようにしています。&lt;br /&gt;
例えば、変数に値を代入する処理は、「MTPHPSetVar」というテンプレートタグで行います。
&lt;/p&gt;

&lt;h2&gt;3.インストール&lt;/h2&gt;

&lt;p&gt;
PHPUtilプラグインは、以下からダウンロードします。
&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://www.h-fj.com/mt_plugin/PHPUtil_1_00b1.zip"&gt;PHPUtil_1_00b1.zip&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
ダウンロードしたファイルを回答すると、「plugins」というフォルダができます。&lt;br /&gt;
このフォルダを、Movable Typeのインストール先ディレクトリにアップロードします。
&lt;/p&gt;

&lt;p&gt;
なお、PHPUtilプラグインは、「&lt;a href="http://www.h-fj.com/blog/archives/2011/12/26-162840.php"&gt;静的テンプレートで設定した変数をDynamicMTMLで参照するプラグイン(DMSetVar)&lt;/a&gt;」を拡張して作っていますので、DMSetVarプラグインの機能を含んでいます。&lt;br /&gt;
DMSetVarプラグインをインストールしている方は、Movable Typeの「plugins」ディレクトリから、「DMSetVar」ディレクトリを削除してください。&lt;br /&gt;

&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=yzCZQ53gpeI:c7bLSdGQgvI:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=yzCZQ53gpeI:c7bLSdGQgvI:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=yzCZQ53gpeI:c7bLSdGQgvI:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?i=yzCZQ53gpeI:c7bLSdGQgvI:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
<feedburner:origLink>http://www.h-fj.com/blog/archives/2012/02/01-104016.php</feedburner:origLink></entry>

<entry>
    <title>「フリーランスのための青色申告ガイドブック」Pubooでも発売</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/atom-hfj/~3/Zl8SrzdIvmk/31-161520.php" />
    <id>tag:www.h-fj.com,2012:/blog//1.2802</id>

    <published>2012-01-31T07:15:20Z</published>
    <updated>2012-01-31T07:15:20Z</updated>

    <summary>先日発売した「フリーランスのための青色申告ガイドブック」を、電子書籍販売サイトの「ブクログのPuboo」でも販売します。
</summary>
    <author>
        <name>壱</name>
        <uri>http://www.h-fj.com/blog/</uri>
    </author>
    
        <category term="新刊・掲載" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="税金" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="フリーランス" label="フリーランス" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="確定申告" label="確定申告" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="青色申告" label="青色申告" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.h-fj.com/blog/">
        &lt;p class="pkg"&gt;&lt;a href="http://p.booklog.jp/book/43605"&gt;&lt;img alt="フリーランスのための青色申告ガイドブックの表示画像" title="フリーランスのための青色申告ガイドブック" src="http://www.h-fj.com/blog/aoirobook/aoirobook.png" width="120" height="177" class="left_float" style="border : 1px solid #666666" /&gt;&lt;/a&gt;先日発売した「フリーランスのための青色申告ガイドブック」を、電子書籍販売サイトの「&lt;a href="http://p.booklog.jp/"&gt;ブクログのPuboo&lt;/a&gt;」でも販売します。

        &lt;p&gt;Pubooには、自作のPDFファイルをそのまま販売する機能がありました。&lt;br /&gt;
この機能を使って販売することにしました。&lt;/p&gt;

&lt;p&gt;お値段は、当サイトでお求めいただく場合と同じく、1,500円（税込）です。&lt;br /&gt;
上で述べたように、PDFの内容も、&lt;a href="http://www.h-fj.com/blog/aoirobook/"&gt;当サイトでお求めいただく場合&lt;/a&gt;とまったく同じです。&lt;br /&gt;
ぜひよろしくお願いいたします。&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=Zl8SrzdIvmk:PLPhyuhs7qI:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=Zl8SrzdIvmk:PLPhyuhs7qI:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=Zl8SrzdIvmk:PLPhyuhs7qI:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?i=Zl8SrzdIvmk:PLPhyuhs7qI:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
<feedburner:origLink>http://www.h-fj.com/blog/archives/2012/01/31-161520.php</feedburner:origLink></entry>

<entry>
    <title>「ブクログのPuboo」テスト中</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/atom-hfj/~3/KbieKMvQ4oo/30-223714.php" />
    <id>tag:www.h-fj.com,2012:/blog//1.2801</id>

    <published>2012-01-30T13:37:14Z</published>
    <updated>2012-01-30T13:37:14Z</updated>

    <summary>電子書籍の販売元を広げるために、ブクログのPubooを試しています。</summary>
    <author>
        <name>壱</name>
        <uri>http://www.h-fj.com/blog/</uri>
    </author>
    
        <category term="電子出版" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="電子書籍" label="電子書籍" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.h-fj.com/blog/">
        &lt;p&gt;当ブログでは、「&lt;a href="http://www.h-fj.com/blog/mt51bookvol1/"&gt;Movable Type 5.1 Webサイト製作ガイドVolume 1&lt;/a&gt;」など、いくつかの電子書籍を販売しています。&lt;br /&gt;
ただ、当ブログだけだと、販売のチャネルがあまりにも狭すぎるという難点があります。&lt;br /&gt;
そこで、「&lt;a href="http://p.booklog.jp/"&gt;ブクログのPuboo&lt;/a&gt;」を試しています。&lt;br /&gt;
&lt;/p&gt;
        &lt;p&gt;ブクログのPubooは、&lt;a href="http://lolipop.jp/"&gt;lolipop&lt;/a&gt;等でおなじみの&lt;a href="http://www.paperboy.co.jp/"&gt;Paperboy&amp;Co.&lt;/a&gt;が提供する電子書籍販売サイトです。&lt;br /&gt;
自分で作成した文書を、電子書籍として値段をつけて販売することができます（無料で配布することもできます）。&lt;/p&gt;

&lt;p&gt;ブログのような投稿画面で、個々のページを作っていくことができます。&lt;br /&gt;
また、PDFや画像をインポートして、電子書籍化することもできます（ただし、PDFのインポートは有料のプロ版のみ）。&lt;/p&gt;

&lt;p&gt;当方ではPDFで電子書籍を販売しています。&lt;br /&gt;
以前だと、このPDFをPubooで扱えるようにするには、手間がかかりすぎて現実的ではありませんでした。&lt;br /&gt;
しかし、インポート機能ができたことで、当方の電子書籍をPubooで販売することができそうです。&lt;/p&gt;

&lt;p&gt;現在、「&lt;a href="http://www.h-fj.com/blog/aoirobook/"&gt;フリーランスのための青色申告ガイドブック&lt;/a&gt;」を、Pubooで販売することを目指して、テスト作業中です。&lt;br /&gt;
うまくいけば、Pubooでも販売したいと思います。&lt;br /&gt;
&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=KbieKMvQ4oo:zy3CH25JSVc:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=KbieKMvQ4oo:zy3CH25JSVc:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=KbieKMvQ4oo:zy3CH25JSVc:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?i=KbieKMvQ4oo:zy3CH25JSVc:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
<feedburner:origLink>http://www.h-fj.com/blog/archives/2012/01/30-223714.php</feedburner:origLink></entry>

<entry>
    <title>「デザインの学校 これからはじめるIllustrator＆Photoshopの本」</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/atom-hfj/~3/-piwiwF3Z1g/29-223106.php" />
    <id>tag:www.h-fj.com,2012:/blog//1.2800</id>

    <published>2012-01-29T13:31:06Z</published>
    <updated>2012-01-31T12:04:16Z</updated>

    <summary>crema（黒野明子）さんが、初めての単著である「デザインの学校 これからはじめるIllustrator＆Photoshopの本」を執筆されました。献本いただきましたので、ご紹介します。</summary>
    <author>
        <name>壱</name>
        <uri>http://www.h-fj.com/blog/</uri>
    </author>
    
        <category term="各種情報" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="illustrator" label="Illustrator" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="photoshop" label="Photoshop" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.h-fj.com/blog/">
        &lt;p class="pkg"&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/477414911X/hajimefujimos-22/ref=nosim/" name="amazletlink"&gt;&lt;img src="http://ecx.images-amazon.com/images/I/51SQBxUP%2BPL._SL160_.jpg" alt="デザインの学校 これからはじめるIllustrator&amp;Photoshopの本" class="left_float" style="border : 1px solid #999999" /&gt;&lt;/a&gt;いつもお世話になっている&lt;a href="http://linker.in/journal/author/crema/"&gt;crema（黒野明子）&lt;/a&gt;さんが、初めての単著である「&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/477414911X/hajimefujimos-22/ref=nosim/" name="amazletlink"&gt;デザインの学校 これからはじめるIllustrator＆Photoshopの本&lt;/a&gt;」を執筆されました。&lt;br /&gt;
献本いただきましたので、ご紹介します。&lt;/p&gt;

        &lt;p&gt;「デザインの学校」シリーズは、デザイン関係のソフトウェアを初めて使う人のために、基本操作を丁寧に説明した解説書です。&lt;br /&gt;
ビジネスソフトでの「できる」シリーズと似た体裁です。&lt;/p&gt;

&lt;p&gt;「デザインの学校 これからはじめるIllustrator＆Photoshopの本」は、デザイン系ソフトの中でもっともひろく利用されているIllustratorとPhotoshopについて、基本操作を解説した内容になっています。&lt;br /&gt;
「ロゴマークの作成」「名刺の作成」など、具体的な題材をテーマに、それを作る手順を丁寧に分かりやすく解説しています。&lt;br /&gt;
操作を1ステップずつ順番に解説していて、それぞれに画面が入っていますので、操作に戸惑うこともありません。&lt;br /&gt;
これからデザイン系を目指そうという方が、IllustratorとPhotoshopを学ぶのに最適です。&lt;/p&gt;

&lt;p&gt;なお、IllustratorとPhotoshopの30日間体験版が入ったDVDも付属しています。&lt;br /&gt;
Illustrator等のソフトを持っていない方も、とりあえず体験版で勉強を始めることができます。&lt;br /&gt;
また、練習用のサンプルファイルは、技術評論社のサイトからダウンロードすることができます。&lt;br /&gt;
&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=-piwiwF3Z1g:MyWc5KN2S4E:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=-piwiwF3Z1g:MyWc5KN2S4E:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=-piwiwF3Z1g:MyWc5KN2S4E:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?i=-piwiwF3Z1g:MyWc5KN2S4E:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
<feedburner:origLink>http://www.h-fj.com/blog/archives/2012/01/29-223106.php</feedburner:origLink></entry>

<entry>
    <title>MHL対応液晶ディスプレイが秋葉原で発売</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/atom-hfj/~3/oEfdr-Ye_S0/28-125411.php" />
    <id>tag:www.h-fj.com,2012:/blog//1.2799</id>

    <published>2012-01-28T03:54:11Z</published>
    <updated>2012-01-28T03:54:11Z</updated>

    <summary>スマートフォン等のための映像インターフェースの「MHL」に対応したサムスンの液晶ディスプレイが、秋葉原で発売されたということです。</summary>
    <author>
        <name>壱</name>
        <uri>http://www.h-fj.com/blog/</uri>
    </author>
    
        <category term="ハードウェア" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="モバイル" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="mhl" label="MHL" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ディスプレイ" label="ディスプレイ" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.h-fj.com/blog/">
        &lt;p&gt;スマートフォン等のための映像インターフェースの「&lt;a href="http://www.mhlconsortium.org/"&gt;MHL&lt;/a&gt;」に対応したサムスンの液晶ディスプレイが、秋葉原で発売されたということです。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://akiba-pc.watch.impress.co.jp/hotline/20120128/etc_samsung2.html"&gt;参考記事はこちら&lt;/a&gt;&lt;/p&gt;
        &lt;p&gt;スマートフォンやタブレットに保存している映像や動画を、大きな画面で見たいということもあります。&lt;br /&gt;
ただ、従来の多くのスマートフォン／タブレットでは、映像をディスプレイに出力する機能がありません。&lt;br /&gt;
そのため、映像等を大画面で見るには、スマートフォン／タブレットからパソコンに映像等を転送して、パソコンで見るという手順になり、面倒です。&lt;/p&gt;

&lt;p&gt;スマートフォン／タブレットをディスプレイに直接に接続することができれば、上記のような問題は解決します。&lt;br /&gt;
そこで、スマートフォン／タブレットの映像インターフェースとして、「MHL」（Mobile High-Difinition Link）が提唱されています。&lt;br /&gt;
MHL対応のスマートフォン／タブレットとディスプレイの組み合わせなら、ケーブル1本で接続することができ、映像等を簡単に大画面で見ることができます。&lt;br /&gt;
また、ディスプレイからの電力供給で、映像等を再生しつつ、スマートフォン等を充電することもできます。&lt;/p&gt;

&lt;p&gt;今のところ、MHL対応のディスプレイは、今回発売されたサムスンの製品ぐらいです。&lt;br /&gt;
また、MHLに対応したスマートフォンも、サムスンのGALAXYシリーズの一部ぐらいしかありません。&lt;br /&gt;
しかし、今後はMHL対応のスマートフォン／タブレットやディスプレイが増えると思われます。&lt;br /&gt;
これからディスプレイを買い替える際には、MHL対応もチェックした方が良いでしょう。&lt;br /&gt;
&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=oEfdr-Ye_S0:oNI0Bsx9a84:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=oEfdr-Ye_S0:oNI0Bsx9a84:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=oEfdr-Ye_S0:oNI0Bsx9a84:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?i=oEfdr-Ye_S0:oNI0Bsx9a84:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
<feedburner:origLink>http://www.h-fj.com/blog/archives/2012/01/28-125411.php</feedburner:origLink></entry>

<entry>
    <title>ブログ記事が属するカテゴリをツリー形式で出力するプラグイン(MT5.1x用)</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/atom-hfj/~3/-2B5DnUFjqk/27-085302.php" />
    <id>tag:www.h-fj.com,2012:/blog//1.2798</id>

    <published>2012-01-26T23:53:02Z</published>
    <updated>2012-01-26T23:54:36Z</updated>

    <summary>「ブログ記事が属するカテゴリをツリー形式で出力するプラグイン」（EntrySubCategories）のMovable Type 5.1x対応版を公開します。</summary>
    <author>
        <name>壱</name>
        <uri>http://www.h-fj.com/blog/</uri>
    </author>
    
        <category term="自作プラグイン" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="movabletype" label="Movable Type" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype5" label="Movable Type 5" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype51" label="Movable Type 5.1" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mtプラグイン" label="MTプラグイン" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="カテゴリ" label="カテゴリ" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.h-fj.com/blog/">
        &lt;p&gt;以前に作成した「ブログ記事が属するカテゴリをツリー形式で出力するプラグイン」（EntrySubCategories）が、Movable Type 5.12では動かないというご指摘をいただきました。&lt;br /&gt;
そこで、Movable Type 5.1xで動作するように修正しました。&lt;br /&gt;
Movable Type 5.1xのカテゴリの並べ替え機能にも対応しています。&lt;br /&gt;
&lt;/p&gt;
        &lt;h2&gt;1.インストール&lt;/h2&gt;

&lt;p&gt;プラグインは以下からダウンロードします。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.h-fj.com/mt_plugin/EntrySubCategories_1_10.zip"&gt;EntrySubCategories_1_10.zip&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ダウンロードしたZipファイルを解凍すると、「plugins」というフォルダができます。&lt;br /&gt;
このフォルダを、Movable Typeのインストール先ディレクトリにアップロードします。&lt;/p&gt;

&lt;h2&gt;2.テンプレートタグの書き方&lt;/h2&gt;

&lt;p&gt;テンプレートタグの書き方は、旧版とほぼ同じです。&lt;br /&gt;
以下の各記事を参照してください。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.h-fj.com/blog/archives/2009/06/30-104221.php"&gt;ブログ記事が属するカテゴリをツリー形式で出力するプラグイン(その1)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.h-fj.com/blog/archives/2009/07/01-092613.php"&gt;ブログ記事が属するカテゴリをツリー形式で出力するプラグイン(その2)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;また、新たに「sort_by」のモディファイアに対応しました。&lt;br /&gt;
sort_byモディファイアの使い方は、Movable Type 5.1xの&lt;a href="http://www.movabletype.jp/documentation/appendices/tags/subcategories.html"&gt;MTSubCategoriesタグ&lt;/a&gt;や&lt;a href="http://www.movabletype.jp/documentation/appendices/tags/toplevelcategories.html"&gt;MTTopLevelCategoriesタグ&lt;/a&gt;と同じです。&lt;br /&gt;
sort_byモディファイアを指定しなかった場合は、Movable Type 5.1xのカテゴリの並べ替え機能で並べた順に、カテゴリを出力します。&lt;/p&gt;

&lt;p&gt;なお、旧版との互換性を保つために、MTEntrySortedTopLevelCategoriesタグ／MTEntrySortedSubCategoriesタグを使うこともできます。&lt;br /&gt;
これらのタグを使った場合、MTEntryTopLevelCategoriesタグ／MTEntrySortedSubCategoriesタグで、sort_byモディファイアを指定しなかった時と同じ動作になります。&lt;br /&gt;
&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=-2B5DnUFjqk:ilM5emTjZD4:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=-2B5DnUFjqk:ilM5emTjZD4:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=-2B5DnUFjqk:ilM5emTjZD4:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?i=-2B5DnUFjqk:ilM5emTjZD4:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
<feedburner:origLink>http://www.h-fj.com/blog/archives/2012/01/27-085302.php</feedburner:origLink></entry>

<entry>
    <title>アイテムにつけられたタグを重複なく出力する</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/atom-hfj/~3/ZpW3I0SkhUM/26-090627.php" />
    <id>tag:www.h-fj.com,2012:/blog//1.2797</id>

    <published>2012-01-26T00:06:27Z</published>
    <updated>2012-01-26T03:03:24Z</updated>

    <summary>アイテムにつけられたタグを、重複なく出力する方法を紹介します。</summary>
    <author>
        <name>壱</name>
        <uri>http://www.h-fj.com/blog/</uri>
    </author>
    
        <category term="カスタマイズ・TIPS" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="movabletype" label="Movable Type" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype5" label="Movable Type 5" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="movabletype51" label="Movable Type 5.1" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="アイテム" label="アイテム" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ハッシュ" label="ハッシュ" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.h-fj.com/blog/">
        &lt;p&gt;
&lt;a href="http://communities.movabletype.jp/"&gt;MTQ&lt;/a&gt;に、「&lt;a href="http://communities.movabletype.jp/2012/01/post-529.html"&gt;アイテムに付けられたタグの一覧表示&lt;/a&gt;」という質問が上がっていました。&lt;br /&gt;
すべてのアイテムにつけられたタグを、重複しないように出力したいという内容です。&lt;br /&gt;
この質問に答えてみます。&lt;br /&gt;

&lt;/p&gt;
        &lt;h2&gt;1.問題点&lt;/h2&gt;

&lt;p&gt;
質問された方は、以下のようなテンプレートを組まれていました。
&lt;/p&gt;

&lt;script type="text/javascript" src="http://www.h-fj.com/syntaxhighlighter/scripts/shCore.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://www.h-fj.com/syntaxhighlighter/scripts/shBrushXml.js "&gt;&lt;/script&gt;
&lt;script type="text/javascript"&gt;
SyntaxHighlighter.config.clipboardSwf = 'http://www.h-fj.com/syntaxhighlighter/scripts/clipboard.swf';
SyntaxHighlighter.all();
&lt;/script&gt;

&lt;pre class="brush : html;"&gt;&amp;lt;mt:Assets&amp;gt;
&amp;lt;mt:AssetTags glue=&amp;quot; | &amp;quot;&amp;gt;
&amp;lt;$mt:TagName$&amp;gt;
&amp;lt;/mt:AssetTags&amp;gt;
&amp;lt;/mt:Assets&amp;gt;&lt;/pre&gt;

&lt;p&gt;
この書き方だと、アイテムを順に1つずつ読み込み、アイテムごとにつけられたタグを出力する形になります。&lt;br /&gt;
そのため、複数のアイテムに同じタグがつけられていると、それらが重複して出力されます。
&lt;/p&gt;

&lt;p&gt;
例えば、写真Aには「赤,きれい,花,ポップ」というタグがあり、写真Bには「緑,華やか,葉っぱ,ポップ」というタグがつけられているとします。&lt;br /&gt;
この状況で、上記のテンプレートでタグを出力すると、まず写真Aのタグが順に出力され、次に写真Bのタグが順に出力されます。&lt;br /&gt;
そのため、以下のように「ポップ」が重複します。
&lt;/p&gt;

&lt;pre&gt;
赤 | きれい | 花 | ポップ | 緑 | 華やか | ポップ | 葉っぱ
&lt;/pre&gt;

&lt;h2&gt;2.ハッシュで重複するデータを除く&lt;/h2&gt;

&lt;p&gt;
この例のように、たくさんのデータの中から、重複するものを取り除きたいということは、よくあります。&lt;br /&gt;
この処理は、ハッシュの使い道の中でも特に典型的なものです。
&lt;/p&gt;

&lt;p&gt;
たくさんあるデータから、重複するものを取り除くには、キーが個々のデータで、値が1になるようなハッシュを作ります。&lt;br /&gt;
そして、ハッシュを作り終わったら、そのハッシュのキーを出力します。
&lt;/p&gt;

&lt;p&gt;
上の例だと、写真Aのタグから、ハッシュは以下のような状況になります。
&lt;/p&gt;

&lt;table&gt;
&lt;col width="150" /&gt;
&lt;col width="100" /&gt;
&lt;tr&gt;&lt;th&gt;キー&lt;/th&gt;&lt;th&gt;値&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;赤&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;きれい&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;花&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ポップ&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;
次に、写真Bのタグを、上記のハッシュに追加していきます。&lt;br /&gt;
「緑」「華やか」「葉っぱ」まで追加すると、ハッシュは以下のようになります。
&lt;/p&gt;

&lt;table&gt;
&lt;col width="150" /&gt;
&lt;col width="100" /&gt;
&lt;tr&gt;&lt;th&gt;キー&lt;/th&gt;&lt;th&gt;値&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;赤&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;きれい&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;花&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ポップ&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;緑&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;華やか&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;葉っぱ&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;
そして、写真Aと写真Bで重複する「ポップ」のタグを、上記のハッシュに追加します。&lt;br /&gt;
この場合、キーが「ポップ」の要素はすでに存在していますので、その要素を上書きすることになります。&lt;br /&gt;
したがって、ハッシュの内容は上のままで変化しません。
&lt;/p&gt;

&lt;p&gt;
最後に、上記のハッシュから、キーだけを取り出して、出力します。&lt;br /&gt;
これで、重複する「ポップ」を1つにまとめて出力することができます。
&lt;/p&gt;

&lt;h2&gt;3.テンプレートの組み方&lt;/h2&gt;

&lt;p&gt;
ここまでの話に沿って、テンプレートを組むと、以下のようになります。
&lt;/p&gt;

&lt;pre class="brush : html"&gt;&amp;lt;mt:Assets&amp;gt;
  &amp;lt;mt:AssetTags&amp;gt;
    &amp;lt;$mt:TagName setvar=&amp;quot;tag_name&amp;quot;$&amp;gt;
    &amp;lt;$mt:SetVar name=&amp;quot;asset_tags&amp;quot; key=&amp;quot;$tag_name&amp;quot; value=&amp;quot;1&amp;quot;$&amp;gt;
  &amp;lt;/mt:AssetTags&amp;gt;
&amp;lt;/mt:Assets&amp;gt;
&amp;lt;mt:Loop name=&amp;quot;asset_tags&amp;quot; glue=&amp;quot; | &amp;quot;&amp;gt;
  &amp;lt;$mt:GetVar name=&amp;quot;__key__&amp;quot;$&amp;gt;
&amp;lt;/mt:Loop&amp;gt;&lt;/pre&gt;

&lt;p&gt;
前半のMTAssetsタグのブロックが、アイテムにつけられたタグをハッシュに格納する処理です。&lt;br /&gt;
1／6行目のMTAssetsタグですべてのアイテムを順に読み込み、そして2／5行目のMTAssetTagsタグでアイテムごとのタグを読み込みます。&lt;br /&gt;
3行目では、個々のタグの名前を、「tag_name」という変数に代入します。&lt;br /&gt;
そして、4行目では、「asset_tags」という名前のハッシュで、キーが変数tag_name（＝アイテムのタグ）になっている要素に、値として1を代入します。
&lt;/p&gt;

&lt;p&gt;
一方、後半のMTLoopタグのブロックが、タグの一覧を出力する部分です。&lt;br /&gt;
7／9行目のMTLoopタグで、ハッシュasset_tagsから要素を順に取り出します。&lt;br /&gt;
そして、8行目のMTGetVarタグで、取り出した要素のキー（__key__）を出力します。
&lt;/p&gt;

&lt;h2&gt;4.変数（配列／ハッシュも含む）は必須&lt;/h2&gt;

&lt;p class="pkg"&gt;&lt;a href="http://www.h-fj.com/blog/mt51bookvol2/"&gt;&lt;img src="http://www.h-fj.com/blog/mt51bookvol2/mt51book2.png" width="80" height="114" alt="Movable Type 5.1 Webサイト製作ガイドVolume 2" title=t="Movable Type 5.1 Webサイト製作ガイドVolume 2" class="left_float" /&gt;&lt;/a&gt;この例のように、手の込んだ処理をしようとすると、変数や、その応用である配列やハッシュを、避けて通ることができません。&lt;br /&gt;
拙著「&lt;a href="http://www.h-fj.com/blog/mt51bookvol2/"&gt;Movable Type 5.1 Webサイト製作ガイドVolume 2&lt;/a&gt;」では、変数および配列／ハッシュについて、かなり詳しく解説しています。&lt;br /&gt;
「変数や配列／ハッシュがよく分からない」という方は、ぜひ拙著をお読みください。
&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=ZpW3I0SkhUM:48ahlk2Cd4w:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=ZpW3I0SkhUM:48ahlk2Cd4w:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=ZpW3I0SkhUM:48ahlk2Cd4w:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?i=ZpW3I0SkhUM:48ahlk2Cd4w:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
<feedburner:origLink>http://www.h-fj.com/blog/archives/2012/01/26-090627.php</feedburner:origLink></entry>

<entry>
    <title>iPhoneでバイブレーションだけのアラームを使うには</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/atom-hfj/~3/IGpsv9rn0ls/25-104448.php" />
    <id>tag:www.h-fj.com,2012:/blog//1.2796</id>

    <published>2012-01-25T01:44:48Z</published>
    <updated>2012-01-25T01:44:48Z</updated>

    <summary>iPhone標準の時計アプリで、音を出さずにバイブレーションだけのアラームを設定する方法を調べてみました。</summary>
    <author>
        <name>壱</name>
        <uri>http://www.h-fj.com/blog/</uri>
    </author>
    
        <category term="モバイル" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="iphone" label="iPhone" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.h-fj.com/blog/">
        &lt;p&gt;iPhoneには時計のアプリが標準で入っていて、アラームの機能もついています。&lt;br /&gt;
指定の時刻に音を出すことができ、また音と同時にバイブレーションを行うこともできます。&lt;/p&gt;

&lt;p&gt;ところが、音を出さないようにする（サウンドを「なし」に設定する）と、バイブレーションもせずに、画面にアラームの表示が出るだけという動作になっています。&lt;br /&gt;
しかし、周囲になるべく迷惑を掛けたくない時など、音を出さずにバイブレーションだけでアラームするようにしたいことも、多々あると思います。&lt;br /&gt;
そこで、その方法を調べてみました。&lt;br /&gt;
&lt;/p&gt;
        &lt;p&gt;「iPhone バイブレーション アラーム」で検索してみると、非常にシンプルな方法が見つかりました。&lt;br /&gt;
「無音の着信音を作ってiPhoneに入れ、それをアラームのサウンドとして設定する」という方法です。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://d.hatena.ne.jp/AR30/20110505/1304604979"&gt;iPhoneで音を鳴らさずバイブレーションのみで無音アラームを設定する方法。（ブログ「はてなで泣いた」）&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;この記事では、設定の手順を丁寧に解説しています。&lt;br /&gt;
また、無音の着信音のデータも公開されています。&lt;/p&gt;

&lt;p&gt;それにしても、iPhone標準の時計アプリには、なぜバイブレーションだけのアラームの機能がないのでしょうか。&lt;br /&gt;
簡単にプログラムできることだと思いますので、ぜひ標準機能として装備して欲しいです。&lt;br /&gt;
&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=IGpsv9rn0ls:bL3AuFRpW8k:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=IGpsv9rn0ls:bL3AuFRpW8k:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=IGpsv9rn0ls:bL3AuFRpW8k:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?i=IGpsv9rn0ls:bL3AuFRpW8k:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
<feedburner:origLink>http://www.h-fj.com/blog/archives/2012/01/25-104448.php</feedburner:origLink></entry>

<entry>
    <title>拡張子が.htmlのページでPHPを動作させる</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/atom-hfj/~3/iNx_mIYA9is/24-171337.php" />
    <id>tag:www.h-fj.com,2012:/blog//1.2795</id>

    <published>2012-01-24T08:13:37Z</published>
    <updated>2012-01-24T14:38:42Z</updated>

    <summary>拡張子が.htmlのままで、PHPが動作するようにしたい場合があります。その方法を紹介します。</summary>
    <author>
        <name>壱</name>
        <uri>http://www.h-fj.com/blog/</uri>
    </author>
    
        <category term="インターネット" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="htaccess" label=".htaccess" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="html" label="HTML" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="php" label="PHP" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.h-fj.com/blog/">
        &lt;p&gt;一般的なレンタルサーバーでは、PHPを動作させるには、そのページの拡張子を「.php」にします。&lt;br /&gt;
ただ、既存のHTMLのページ（拡張子が.htmlのページ）をPHP化する場合、拡張子を変えるとURLが変わってしまうことになります。&lt;/p&gt;

&lt;p&gt;そこで、拡張子が.htmlのままで、PHPが動作するようにしたい場合がでてきます。&lt;br /&gt;
その方法をいくつか紹介します。&lt;br /&gt;
&lt;/p&gt;
        &lt;h2&gt;.htaccessファイルに「AddType」を記述する&lt;/h2&gt;

&lt;p&gt;1つ目の方法は、.htaccessファイルに「AddType」を記述する方法です。&lt;/p&gt;

&lt;h3&gt;基本的な書き方&lt;/h3&gt;

&lt;p&gt;モジュール版PHPが使われているサーバーなら、htmlファイルがあるディレクトリに、以下のような内容の.htaccessファイルを設置すると、拡張子が.htmlのファイルでもPHPが動作することが多いです。&lt;/p&gt;

&lt;pre&gt;
AddType application/x-httpd-php .html
&lt;/pre&gt;

&lt;h3&gt;特定のファイルのみ対象にする&lt;/h3&gt;

&lt;p&gt;すべてのHTMLファイルをPHPとして動作させると、PHPを含まない純粋なHTMLのページも、PHPで処理されます。&lt;br /&gt;
そのため、サーバーの負荷が無駄に上がるという問題が生じます。&lt;br /&gt;
そこで、実際にPHPのコードが含まれているファイルだけを、PHP化することも考えられます。&lt;/p&gt;

&lt;p&gt;ディレクトリ内の特定のHTMLファイルだけでPHPを動作させたい場合は、上記の行を「&amp;lt;Files "ファイル名"&amp;gt;」と「&amp;lt;/Files&amp;gt;」の行で囲みます。&lt;br /&gt;
例えば、「hoge.html」というファイルだけでPHPが動作するようにしたい場合は、.htaccessファイルを以下のように書きます。&lt;/p&gt;

&lt;pre&gt;
&amp;lt;Files "hoge.html"&amp;gt;
AddType application/x-httpd-php .html
&amp;lt;/Files&amp;gt;
&lt;/pre&gt;

&lt;p&gt;また、「&amp;lt;Files "・・・"&amp;gt;～&amp;lt;/Files&amp;gt;」の代わりに「&amp;lt;FilesMatch "・・・"&amp;gt;～&amp;lt;/FilesMatch&amp;gt;」を使って、特定するファイルを正規表現で指定することもできます。&lt;br /&gt;
例えば、.htaccessに以下のように書くと、ファイル名が「index○.html」（〇は0文字以上の任意の文字列）のようなページだけが、PHPとして動作するようになります。&lt;/p&gt;

&lt;pre&gt;
&amp;lt;FilesMatch "^index.*\.html$"&amp;gt;
AddType application/x-httpd-php .html
&amp;lt;/FilesMatch&amp;gt;
&lt;/pre&gt;

&lt;h2&gt;mod_rewriteでPHPにリダイレクトする&lt;/h2&gt;

&lt;p&gt;サーバーによっては、.htaccessにAddTypeを記述することが禁止されている場合があります。&lt;br /&gt;
この場合は、上記の方法は使えません。&lt;br /&gt;
ただ、.htaccessにmod_rewriteの記述を書くことができるサーバーなら、mod_rewriteを使って、.htmlから.phpにリダイレクトする方法があります。&lt;/p&gt;

&lt;h3&gt;基本的な手順&lt;/h3&gt;

&lt;p&gt;まず、拡張子が.htmlのページにアクセスされたときに、ファイル名が同じで拡張子が.phpのページにリダイレクトするように、.htaccessに記述します。&lt;br /&gt;
htmlファイルがあるディレクトリに、以下の内容の.htaccessファイルを設置します。&lt;/p&gt;

&lt;pre&gt;
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)\.html$ $1.php [L]
&lt;/pre&gt;

&lt;p&gt;次に、そのディレクトリの中で、拡張子が.htmlのすべてのファイルで、拡張子を.phpに変更します。&lt;/p&gt;

&lt;h3&gt;特定のファイルのみ対象にする&lt;/h3&gt;

&lt;p&gt;そのディレクトリ内の特定のHTMLファイルだけでPHPを動作させたい場合は、.htaccessを以下のように書きます。&lt;/p&gt;

&lt;pre&gt;
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)\.html$ $1.php [L]
&lt;/pre&gt;

&lt;p&gt;そして、そのディレクトリの中で、PHPとして動作させたいHTMLファイルだけで、拡張子を.phpに変更します。&lt;br /&gt;
拡張子が.htmlのままのファイルは、通常のHTMLとして動作します（PHPの処理は行われません）。&lt;/p&gt;

&lt;h2&gt;サーバー固有の方法を使う&lt;/h2&gt;

&lt;p&gt;サーバーによっては、上記以外の方法で、HTMLのファイルをPHPとして動作させることができる場合があります。&lt;br /&gt;
例えば、&lt;a href="http://lolipop.jp/"&gt;lolipop&lt;/a&gt;だと、ディレクトリに以下のような.htaccessファイルを設置すると、そのディレクトリのHTMLのページがPHPとして動作するそうです。&lt;/p&gt;

&lt;pre&gt;
AddHandler php5.2-script html
&lt;/pre&gt;

    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=iNx_mIYA9is:b08ZtNNDWas:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=iNx_mIYA9is:b08ZtNNDWas:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=iNx_mIYA9is:b08ZtNNDWas:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?i=iNx_mIYA9is:b08ZtNNDWas:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
<feedburner:origLink>http://www.h-fj.com/blog/archives/2012/01/24-171337.php</feedburner:origLink></entry>

<entry>
    <title>Facebookアプリ(ページ)の登録手順(2012年1月20日版・その3)</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/atom-hfj/~3/UhAf2oHQtfA/23-084246.php" />
    <id>tag:www.h-fj.com,2012:/blog//1.2793</id>

    <published>2012-01-22T23:42:46Z</published>
    <updated>2012-01-22T23:42:46Z</updated>

    <summary>2012年1月20日時点での、Facebookページに独自タブを追加する際の登録手順を取り上げます。</summary>
    <author>
        <name>壱</name>
        <uri>http://www.h-fj.com/blog/</uri>
    </author>
    
        <category term="Facebookページ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="開発" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="facebook" label="Facebook" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="facebookアプリ" label="Facebookアプリ" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="facebookページ" label="Facebookページ" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.h-fj.com/blog/">
        &lt;p&gt;先日の記事の続きで、2012年1月20日時点でのFacebookアプリの登録手順を解説します。&lt;br /&gt;
今日は、Facebookページに独自タブを追加する際の登録手順を取り上げます。&lt;/p&gt;
        &lt;h2&gt;1.「Facebookページの独自タブ」について&lt;/h2&gt;

&lt;p&gt;Facebookページには、独自のタブを追加することができます。&lt;br /&gt;
このタブも、アプリケーションの一種として作るようになっています。&lt;/p&gt;

&lt;p&gt;Facebook上のアプリと同様に、HTML（またはHTMLを出力するPHP等）や、CSS、JavaScriptなどを使って、タブに対応するアプリ（Webページ）を作ります。&lt;br /&gt;
このWebページが、独自タブに対応するiframe内に表示される仕組みになっています。&lt;/p&gt;

&lt;p&gt;なお、2011年10月1日以降、独自タブ用のWebページは、SSLでアクセスできるようにする必要があります。&lt;br /&gt;
ただし、この記事を書いている時点では、SSLでないページも必要です（将来的にはSSLに一本化されると思われます）。&lt;/p&gt;

&lt;h2&gt;2.Facebookページの独自タブ用の設定&lt;/h2&gt;

&lt;p&gt;独自タブ用のアプリ（Webページ）を登録する場合は、アプリの設定のページで、「ウェブサイト」と「ページタブ」の2か所を設定します。&lt;/p&gt;

&lt;p&gt;「ウェブサイト」の部分の設定は、&lt;a href="http://www.h-fj.com/blog/archives/2012/01/21-152934.php"&gt;Facebook上のアプリの場合&lt;/a&gt;と同じです。&lt;br /&gt;
また、「ページタブ」の部分では、以下の各情報を設定します。&lt;/p&gt;

&lt;table&gt;
&lt;tr&gt;&lt;th&gt;項目&lt;/th&gt;&lt;th&gt;内容&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ページタブ名&lt;/td&gt;&lt;td&gt;独自タブに付ける名前を指定します。&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Page Tab URL&lt;/td&gt;&lt;td&gt;独自タブに対応するWebページ(非SSL用)のアドレスを指定します。&lt;br /&gt;なお、当記事執筆時点ではこの値を設定する必要があります（設定しないと、Facebookページにタブを追加しても、タブ一覧にそのタブが表示されません）。&lt;br /&gt;ただし、将来的にはこの設定はなくなると思われます。&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Secure Page Tab URL&lt;/td&gt;&lt;td&gt;独自タブに対応するWebページ(SSL用)のアドレスを指定します。&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;&lt;a href="http://www.h-fj.com/blog/pic/2012/01/fbapp20120120_7.png"&gt;&lt;img alt="Facebookページの独自タブ用の設定" title="Facebookページの独自タブ用の設定" src="http://www.h-fj.com/blog/assets_c/2012/01/fbapp20120120_7-thumb-320x380-2325.png" width="320" height="380" class="mt-image-none" style="" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ここまでの設定が終わったら、「変更を保存」のボタンをクリックして、設定を保存します。&lt;/p&gt;

&lt;h2&gt;3.Facebookページに独自タブを追加する&lt;/h2&gt;

&lt;p&gt;次に、ここまでで登録した独自タブ用のアプリを、既存のFacebookページに追加します。&lt;/p&gt;

&lt;p&gt;まず、以下のようなアドレスに接続します。&lt;/p&gt;

&lt;p&gt;https://www.facebook.com/dialog/pagetab?app_id=アプリケーションのID&amp;next=タブのURL&lt;/p&gt;

&lt;p&gt;「アプリケーションのID」には、独自タブ用のアプリのIDを指定します。&lt;br /&gt;
IDは、アプリの設定のページの「App ID」の箇所に表示される16桁の数値です。&lt;br /&gt;
また、「タブのURL」の欄には、「Secure Page Tab URL」に入力したアドレスを指定します。&lt;/p&gt;

&lt;p&gt;上記のアドレスに接続すると、「ページタブを追加」というページが開きます。&lt;br /&gt;
このページで、独自タブを追加するFacebookページの名前を選び、「ページタブを追加」のボタンをクリックします。&lt;br /&gt;
複数のFacebookページを選ぶこともできます。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.h-fj.com/blog/pic/2012/01/fbapp20120120_8.png"&gt;&lt;img alt="Facebookページに独自タブのアプリを追加" title="Facebookページに独自タブのアプリを追加" src="http://www.h-fj.com/blog/assets_c/2012/01/fbapp20120120_8-thumb-320x161-2327.png" width="320" height="161" class="mt-image-none" style="" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;4.最低限の動作の確認&lt;/h2&gt;

&lt;p&gt;次に、独自タブの最低限の動作を確認します。&lt;/p&gt;

&lt;p&gt;「Page Tab URL」と「Secure Page Tab URL」に対応する位置に、HTML（またはPHPやCGI等）のファイルをアップロードします。&lt;br /&gt;
そして、独自タブを追加したFacebookページにアクセスします。&lt;br /&gt;
正しく追加できていれば、Facebookページの左端のタブ一覧に、独自タブの名前が表示されます。&lt;br /&gt;
このタブ名をクリックして、タブの中身（＝タブに対応するWebページ）が表示されることを確認します。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.h-fj.com/blog/pic/2012/01/fbapp20120120_9.png"&gt;&lt;img alt="Facebookページに独自タブが追加された" src="http://www.h-fj.com/blog/assets_c/2012/01/fbapp20120120_9-thumb-320x329-2329.png" width="320" height="329" class="mt-image-none" style="" /&gt;&lt;/a&gt;&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=UhAf2oHQtfA:r3AogAy-Uko:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=UhAf2oHQtfA:r3AogAy-Uko:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=UhAf2oHQtfA:r3AogAy-Uko:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?i=UhAf2oHQtfA:r3AogAy-Uko:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
<feedburner:origLink>http://www.h-fj.com/blog/archives/2012/01/23-084246.php</feedburner:origLink></entry>

<entry>
    <title>SSDファームウェア更新終了</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/atom-hfj/~3/E5Q1f1QjmDA/22-105437.php" />
    <id>tag:www.h-fj.com,2012:/blog//1.2792</id>

    <published>2012-01-22T01:54:37Z</published>
    <updated>2012-01-22T01:54:37Z</updated>

    <summary>本日（2012年1月22日）、当ブログのサーバーで、SSDのファームウェアを更新しました。</summary>
    <author>
        <name>壱</name>
        <uri>http://www.h-fj.com/blog/</uri>
    </author>
    
        <category term="お知らせ" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="ssd" label="SSD" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="サーバー" label="サーバー" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.h-fj.com/blog/">
        &lt;p&gt;本日（2012年1月22日）、当ブログのサーバーで、SSD（Crucialのm4）のファームウェアを更新しました。&lt;br /&gt;
更新中はサイトを停止して、ご迷惑をおかけいたしました。&lt;br /&gt;
&lt;/p&gt;
        &lt;p&gt;最初は、アップグレードのプログラムが、SSDを見つけられないトラブルが起こりました。&lt;br /&gt;
SSDを接続していたSATAインターフェースが、Intelのものではなかったことが原因です。&lt;br /&gt;
マザーボードのIntelのSATAインターフェースにSSDをつなぎ変えると、アップグレードを無事行うことができました。&lt;br /&gt;
&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=E5Q1f1QjmDA:P0lS3khFZ2I:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=E5Q1f1QjmDA:P0lS3khFZ2I:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=E5Q1f1QjmDA:P0lS3khFZ2I:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?i=E5Q1f1QjmDA:P0lS3khFZ2I:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
<feedburner:origLink>http://www.h-fj.com/blog/archives/2012/01/22-105437.php</feedburner:origLink></entry>

<entry>
    <title>Facebookアプリ(ページ)の登録手順(2012年1月20日版・その2)</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/atom-hfj/~3/mCkXv1rVZCk/21-152934.php" />
    <id>tag:www.h-fj.com,2012:/blog//1.2791</id>

    <published>2012-01-21T06:29:34Z</published>
    <updated>2012-01-21T06:29:34Z</updated>

    <summary>2012年1月20日時点でのFacebookアプリの登録手順を解説します。今日は、「Facebook上のアプリ」を作る際の登録手順を取り上げます。</summary>
    <author>
        <name>壱</name>
        <uri>http://www.h-fj.com/blog/</uri>
    </author>
    
        <category term="Facebookページ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="開発" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="facebook" label="Facebook" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="facebookアプリ" label="Facebookアプリ" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="facebookページ" label="Facebookページ" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.h-fj.com/blog/">
        &lt;p&gt;昨日の続きで、2012年1月20日時点でのFacebookアプリの登録手順を解説します。&lt;br /&gt;
今日は、「Facebook上のアプリ」を作る際の登録手順を取り上げます。&lt;br /&gt;
&lt;/p&gt;
        &lt;h2&gt;1.「Facebook上のアプリ」について&lt;/h2&gt;

&lt;p&gt;Facebookアプリにはいくつかの形態があります。&lt;br /&gt;
その1つが、「Facebook上のアプリ」です。&lt;br /&gt;
Facebook上のアプリは、Facebookのサイトの上で動作しているかのように見えるアプリケーションです。&lt;/p&gt;

&lt;h2&gt;2.ドメインの設定&lt;/h2&gt;

&lt;p&gt;Facebookアプリ（およびFacebookページ）は、一般のWebページと同じく、HTMLやCSS等を組み合わせて作ります。&lt;br /&gt;
そのHTMLなどのファイルは、自分で管理しているWebサーバーに設置します。&lt;/p&gt;

&lt;p&gt;そのHTML等があるドメイン（またはサブドメイン）名を、Facebookアプリの設定画面の「基本データ」部分の「アプリのドメイン」の欄に入力します。&lt;br /&gt;
なお、ドメイン名を入力した場合、そのサブドメインすべてが有効になります。&lt;br /&gt;
例えば「hoge.com」とだけ入力した場合、「www.hoge.com」や「app.hoge.com」も有効になります。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.h-fj.com/blog/pic/2012/01/fbapp20120120_5.png"&gt;&lt;img alt="ドメインの設定" title="ドメインの設定" src="http://www.h-fj.com/blog/assets_c/2012/01/fbapp20120120_5-thumb-320x158-2321.png" width="320" height="158" class="mt-image-none" style="" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;3.Facebook上のアプリとして動作させる&lt;/h2&gt;

&lt;p&gt;アプリケーションの動作形態は、アプリの設定のページの「アプリをFacebookに結合する方法を選択してください」の部分で指定します。&lt;br /&gt;
自分のアプリケーションをFacebook上のアプリとして動作させたい場合、「アプリをFacebookに結合する方法を選択してください」の中の「ウェブサイト」と「Facebook上のアプリ」の箇所をを設定します。&lt;/p&gt;

&lt;p&gt;「ウェブサイト」の箇所では、ご自分のウェブサイトのアドレスを入力します。&lt;br /&gt;
また、「Facebook上のアプリ」の箇所では、「セキュリティで保護されたキャンバスのURL」の欄に、アプリに対応するWebページのアドレスを入力します。&lt;/p&gt;

&lt;p&gt;なお、アプリに対応するWebページには、SSLで接続されます。&lt;br /&gt;
したがって、「セキュリティで保護されたキャンバスのURL」の欄には、https://～のアドレスを指定する必要があります。&lt;/p&gt;

&lt;p&gt;また、アドレスの最後には「/」を付けます。&lt;br /&gt;
例えば、アプリに対応するWebページのアドレスが「https://www.hoge.com/sampleapp_a/index.php」の場合、「セキュリティで保護されたキャンバスのURL」の欄には、「https://www.hoge.com/sampleapp_a/index.php/」と入力します。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.h-fj.com/blog/pic/2012/01/fbapp20120120_6.png"&gt;&lt;img alt="「サイトURL」と「セキュリティで保護されたキャンバスのURL」の設定" title="「サイトURL」と「セキュリティで保護されたキャンバスのURL」の設定" src="http://www.h-fj.com/blog/assets_c/2012/01/fbapp20120120_6-thumb-320x347-2323.png" width="320" height="347" class="mt-image-none" style="" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;4.最低限の動作の確認&lt;/h2&gt;

&lt;p&gt;ここまでの設定が終わったら、「変更を保存」のボタンをクリックして、設定を保存します。&lt;br /&gt;
次に、サーバー上で「セキュリティで保護されたキャンバスのURL」に対応する場所に、HTML（またはPHPやCGI等）のファイルをアップロードします。&lt;br /&gt;
そして、「https://apps.facebook.com/名前空間名」のアドレスにアクセスして、アップロードしたページが表示されることを確認します。&lt;/p&gt;

&lt;p&gt;上の設定画面で取り上げた状況だと、「https://www.hoge.com/sampleapp_a/index.php」に、アプリに対応するWebページをアップロードします。&lt;br /&gt;
そして、「https://apps.facebook.com/fjsampleapp_a」にアクセスして、ページが表示されることを確認します。&lt;/p&gt;
    &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=mCkXv1rVZCk:05FWN2sU4h8:spdCosxkSQE"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=spdCosxkSQE" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=mCkXv1rVZCk:05FWN2sU4h8:OAQBO0PjnPA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?d=OAQBO0PjnPA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/atom-hfj?a=mCkXv1rVZCk:05FWN2sU4h8:s9VDnicYSUo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/atom-hfj?i=mCkXv1rVZCk:05FWN2sU4h8:s9VDnicYSUo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>
<feedburner:origLink>http://www.h-fj.com/blog/archives/2012/01/21-152934.php</feedburner:origLink></entry>

</feed>

