PowerCMS ブログ

2017年03月28日

PowerCMSを使用したURLを含む各項目のCSV出力について

報告書などを作成する際に、記事やウェブページのURLの一覧が必要な事があるかと思います。
MTタグを使用すれば、IDやタイトル、そしてURLなどの必要な情報を、CSV形式で保存することが可能です。
今回は簡単にですが、その方法を記載していきます。
また、この方法はMTタグに触ったことがない【Movable Type 初心者向け】の内容となります。

はじめに

以下の情報を抜き出します。

  • ページのID
  • ページのタイトル
  • ウェブページと記事のURL

注意

  • この方法は公開されているウェブページと記事のみを抜き出します。
    未公開のウェブページと記事については、抜き出すことはできません。
  • タイトルに【,(カンマ)】がある場合は、この方法を使用することはできません。

まずは、URLを抜き出したいブログのデザインのテンプレートを選択します。
左メニューのテンプレートをクリックすると、画面上部に【インデックステンプレートの作成】と表示がされますので、そこから作成することができます。

インデックステンプレートの説明

基本的な設定は以下の通りです。

タイトル なんでも構いません。(今回はHTMLの一覧としています。)
出力ファイル名 ○○.csvの表記ならなんでも構いません。(今回はhoge.csvとしています。)
エンコーディング このアーカイブをShift_JIS出力するにチェックを入れる。(チェックを入れることで、Shift_JISで出力されます。)
テンプレートの種類 カスタムインデックステンプレート(変更はしていません。)
公開 一度のみ、あるいは出力後インデックステンプレートを消す場合は【手動】
常に繰り返し使用する場合は【スタティック(既定)】
今回は【手動】とします。

インデックステンプレートの設定

ウェブページ

CSV一覧を抜き出すために必要なタグと簡単に意味を書いておきます。
より詳しい使い方や仕様については以下をご確認ください。
テンプレートタグリファレンス

<mt:Pages>~</mt:Pages> ウェブページの一覧を表示する。
このタグでID、タイトル、URLのリンクを囲みます。
<mt:PageID/>  ウェブページのID表示する。
<mt:PageTitle/> ウェブページのタイトル表示する。
<mt:EntryPermalink/> URLを表示する。

記事

<mt:Entries></mt:Entries> 記事を表示する
このタグでID、タイトル、URLのリンクを囲みます。
<mt:EntryID/> 記事のIDを表示する。
<mt:EntryTitle/> 記事のタイトルを表示する。
<mt:EntryPermalink/> URLを表示する。

ウェブページと記事のタグを【,】で区切り、用意したインデックスプレートに貼り付けます。

MTタグの記述方法について

PowerCMS設定では、デフォルトで10件のみ出力されます。
10件以外の出力を行う場合には、モディファイアを使用する必要があります。
lastn="N"
Nの部分に指定した数字を入れるとその数だけ抜き出します。(今回は最大値を100にしました)
ちなみに、lastn="0"とすると、全件という意味になります。

<mt:Pages lastn="100"><mt:PageID/>,<mt:PageTitle/>,<mt:EntryPermalink/>
</mt:Pages>
<mt:Entries lastn="100"><mt:EntryID/>,<mt:EntryTitle/>,<mt:EntryPermalink/>
</mt:Entries>

</mt:Pages>と</mt:Entries>の前を改行することで、ID→タイトル→URLで改行という意味になります。

上記のタグを作成したインデックステンプレートに記載し、一番下の保存と再構築のボタンを押します。

インデックステンプレート一覧のページに戻り、出力ファイル名のhoge.csvの右の丸いアイコン部分をクリックすると、出力データが画面上に表示、あるいは保存する項目がポップアップで表示されますので、ご自分の環境にCSV形式で保存してください。

インデックステンプレートの出力ファイルについて

保存したCSVデータをExcelで開くと以下のように表示されます。
csvファイルについて
1行目から4行目までがウェブページ【ID,ウェブページタイトル,ウェブページのURL,】
5行目が空欄で出力。
6列目からが記事【ID,記事のタイトル,記事のURL,・・・・・・】
100件で抜き出した場合は、100件分のウェブページ、空欄、100件分の記事がCSVデータとして出力されます。

なお、【このアーカイブをShift_JIS出力する】にチェックを入れていない場合には、そのままExcelで開くと文字化けをしている可能性がありますので、ご注意ください。

まとめ

MTタグをインデックステンプレートに追加することで、簡単にタイトル、URL、そしてIDを取り出すことができました。
私はインデックステンプレートを使用することが初めてだったのですが、この形式なら他の要素も取り出すことができそうなので更にMTタグを学んでみようと思いました。お役に立てれば幸いです。

カテゴリー
その他

ページの先頭へ