MovableTypeの最近のブログ記事

sIMG_1653_d.jpg

インストールしただけじゃ使えないなんて・・・あんまりだよ

みんな思ってるでしょ?
「日時指定」って立派なチェックボックスあって、カレンダー呼び出したり出来てるのに
サーバー側でcronが使えなければ動かないなんて・・・ひどいッス。

しかもだ、cronの設定って結構めんどくさい。
最近はサーバー会社側がボタン一つで簡単にインストールできるサービスとか提供しているけれど
それなら予約投稿もできるようにしといて欲しいですよね。

まぁ、文句言っててもしょうがない。
とりあえずやってみました。

cronでrun-periodic-tasksを動かす

toolsの中にある「run-periodic-tasks」が一定間隔で動作すればいいらしい。
その為に「cron」というlinuxに自動実行させる為の仕組みを使うわけです。

■動作の流れ

cron⇒シェルスクリプト⇒run-periodic-tasks⇒予約投稿

ってな感じで動作します。
シェルスクリプトはコマンドをまとめてあるヤツです。

■cron設定の前にちょっと準備を。

シェルスクリプトを記述したファイルをつくります。
「MTの予約投稿だけできればOK」という方は別に書式とか覚えずに下記のように書いてください。

#!/bin/sh

cd /MTまでの絶対パス/
/usr/bin/perl ./tools/run-periodic-tasks

exit

で、書き終えたらmt.shなどの名前にして保存。
サーバー上の任意の場所へアップロード。一つ注意があってアスキーモードでアップロードしてください。

cronの設定方法は次の記事で。

2010_06_19.gif

まず項目を挙げてみます。

  1. いくつかのブログが認識されなかった。
  2. 手作業で記事やテンプレートの移行を行ったが、アイテムが認識されない(きっとブログIDが変わったから)
  3. 使用頻度の高いプラグイン「AssetHandler」が使えなくなった
  4. いくつかのウィジェットが使えなくなった
  5. FCKエディターが使えなくなり、かわりにCKエディターというものに切り替えた

ん~、結構痛いものがありますなぁ。
中でも5番目のFCKエディターはかなり痛いです。

現在CKエディターを使用していますが、今までコツコツをカスタマイズしたFCKエディターとはこれでサヨナラなんですかね?

悲しい・・・悲し過ぎます・・・。

移行作業はMT4はそのままにしてMT5を別ディレクトリにインストールし、
MT4とMT5のダッシュボードを両方立ち上げて行いました。

まあ、改めて一から順に愚痴っていきましょう。

1.いくつかのブログが認識されなかった

あれれ?とか思いました。
でもまあ、仕方ない。
もともとテンプレート類は別ファイルになっているし、手作業で移動しました。

MT4から記事をエクスポートしておき、MT5で新しいブログを作成したらそれにインポート。
でテンプレートを全部設定し直して完成。

2.手作業で記事やテンプレートの移行を行ったが、アイテムが認識されない(きっとブログIDが変わったから)

見出しの通りですね。
記事に使われている画像類はアドレスが正しければちゃんと表示はされていますけど、アイテムとしては認識されなくなってしまったんですよ。

で、ここで複数ファイルを一気に認識なんてプラグインで一発修正だ!と思っていたところ、

3.使用頻度の高いプラグイン「AssetHandler」が使えなくなった

おお!なんてこった!
マジですか!?

かなり困るんですけど!

取りあえずはどうしようもないのでこのまま放置。
一日も早くMT5に対応して欲しいところです。

その他のプラグインに関してはまだちゃんと確認してないものが多いのですが、いつも参考にさせて頂いている世界中の1%の人々へでMT5用プラグインの事にふれていましたのでご紹介しておきます。

http://www.dakiny.com/archives/movable-type/movable_type_5_plugin_directory/

4.いくつかのウィジェットが使えなくなった

ネットから拾って改造していたカレンダーのウィジェットが使えなくなりました。
そもそも拾い物なのでいつのバージョンの時に作られたのかが良く分からないのでしょうがないです。

後日、改めて作り直しますよ。。。

5.FCKエディターが使えなくなり、かわりにCKエディターというものに切り替えた

これはシンドイ!!

僕は「FCKeditor-1.2用カスタムキット Ver.2.2」が大好きだったのに使えなくなってしまうとは!
やむなくCKエディターに切り替えたものの、「ckeditor.js」いじればカスタマイズできるのかな?と思いきや、改行なしで書かれているじゃないですか!

こいつは誰かが便利なものを作ってくれるのを待つ感じですかね・・・。
自分じゃガッチリ開発とか出来ないので・・・。残念です。

とはいえCKエディター自体はスグレモノですよ!
そのまま使う分にはとてもいい感じで気に入っています。

移行時の不具合を突破すればMT5はスグレモノ!

これもまた世界中の1%の人々へで紹介されていますが、ブログテーマが簡単に作れるのは非常に便利です。

ここが便利だ!Movable Type 5.0 VOL.1 テーマってスゴイぞ!

実際やってみると確かに簡単。笑っちゃう程ですよ。
テーマをガンガンつくってガンガン保存しておけば後々仕事が楽になりますね~。

MT5用の参考書籍等はまだ一冊も買って無いんですけれど、さすがにそろそろ目を通さないといかんかな?と思っています。

0001.gif

 

MT5がリリースされてそこそこの時間が経過し、
あちらこちらでMT5でのサイト構築案件を見かけますね。

今現在自分の勤めている会社でMT5を導入する話はなく、僕は今後もしばらくMT4でサイト構築をしていくだろうと思われます。

しかし、やっぱり気になりますよねぇ、MT5。
何でもそうですが新しいバージョンとかが登場すれば触ってみたくなるのが人情ってもんでしょ?

てなわけでMT5を導入してみました。

災い転じて福となす?

正直、このブログにMT5を導入するのはかなり悩みました。
あんまりいい噂聞かないんで・・・。

しかし!使ってみたい欲望には勝てず、ガッチリバックアップをとってバージョンアップ開始!
作業にあたっては僕が勝手に師匠の一人だと思っている蒲生トシヒロさんの「世界中の1%の人々へ」の
Movable Type 5.0リリース:MT4.2xからMT5.0へのアップグレードは超簡単!」を参考にさせていただきました。

バージョンアップはサクサク進み、終了。
ダッシュボードを立ち上げ、今までのブログがどうなっているのかを確認・・・って、あれ?無いぞ!?

色々情報収集をしたのですが、よくわからず、カスタマイズしまくったブログ類が認識されておらず、デフォルトのテンプレートのものは認識している感じでした。

通常はらばこれは大変な事態で、いかにして解決するか奔走するところですが今回は放置することにしました。

MT4とMT5は当然別フォルダーに入っているわけなんですが、試しにバックアップ用だったMT4をキチンと使える状態に戻したところ、今まで通りに使えました。
 

取りあえずMT4が使えているのならばMT5への移行はじっくり様子を見ながら行えばいいので、色々と不具合等を検証してから切り替える余裕ができた感じです。

ウェブサイトの中にブログが入る?

一番大きい変化はこのウェブサイトとブログの関係ですよね。
この辺りの解説は蒲生 トシヒロさんのブログを参考にされた方が早いでしょう。

個人的にはサイト管理をより分かり易くできるだろうと思って喜んでます。
一つのサーバーに複数のサイトを置いてそれぞれがマルチブログ化していたりしてる際などは今までより管理し易そうですね。

管理画面はかなり変わったんですねぇ

自分的にはWordPressっぽいなぁ、などと思っています。
メニューも左カラムになったんですね。


まぁ、僕の場合は十中八九、オリジナルのカスタムメニューをつけてしまうので
サイト運営者にはカスタムメニューの使い方だけしか説明しないんですけどね。

取りあえず楽しみです

いじりまくるのはまた今度にするとして、新しいモノを目にするとワクワクするのは変わらないですね。
きっとまた色々なプラグインなんかも出てくるでしょうしね。

いい機会なんでMT5であたらしいサイトでも制作します。
その際のレポートはまた後日。。

2010_04_05_title_03.gif

以前MovableType(以下MT)の管理画面カスタマイズの記事を書きましたが、非常に中途半端なところで終わらせていたのでその続きを書く事にしました。

前回はalt-tmplにコードを追記するとどうなるか?的な記事でとどめていましたが、今回はもう一歩踏み込んで、より実用的なソースを紹介します。
前回の記事では「<div id="content-header"><div id="content-header-inner" class="inner pkg">の下にメニューを追加」と書きましたが、今回は<div id="content-header">直下に追加しています。

カスタムメニューは外部ファイル化が望ましい

メンテナンス性を考えれば当然外部ファイル化した方がいいですよね。特に条件分岐させて違うメニューを読込ませたりする時にメニュー毎に別ファイルにすると便利です。

考え方は前回にも紹介しましたが野田純生さんの「壊れにくいカスタマイズの為に」を参考にさせていただいています。

<div id="content-header">

<!--管理画面用カスタムテンプレートをインクルード-->
<mt:include name="include/edit_entry_extra.tmpl">

カスタムメニューは「edit_entry_extra.tmpl」という外部ファイルにしてインクルードしています。ファイルの置き場所は別にどこでもいいのですが「header.tmpl」と同じ場所にしました。
インクルードしたファイルの中身はこんな感じです。

<MTSetVarBlock name="blog_id"><$MTBlogID$></MTSetVarBlock>
<MTIf name="blog_id" eq="10">
<!--コーポレートサイトサンプル用メニュー-->
<div id="myMenu">
<ul>
<li><span class="myMenu_Head">トップページ</span><a href="mt.cgi?__mode=view&_type=entry&id=57&blog_id=10">リード文</a><a href="#">会社概要</a></li>
<li><span class="myMenu_Head">事業概要</span><a href="mt.cgi?__mode=view&_type=entry&id=60&blog_id=11">リード文</a><a href="#">事業紹介</a><a href="#">当社の強み</a></li>
<li><span class="myMenu_Head">会社情報</span><a href="#">リード文</a><a href="#">会社概要</a><a href="#">組織図</a></li>
<li><span class="myMenu_Head">業務実績</span><a href="#">リード文</a><a href="#">実績紹介</a></li>
<li><span class="myMenu_Head">採用情報</span><a href="#">リード文</a><a href="#">応募要項</a><a href="#">応募フォーム</a></li>
<li><span class="myMenu_Head">お問合せ</span><a href="#">リード文</a><a href="#">お問合せフォーム</a></li>
<li><span class="myMenu_Head">サイトマップ</span><a href="#">リード文</a></li>
</ul>
<a href="javascript:history.back();">一つ前のページへ戻る</a>
</div>
<MTElse>
<!--カスタムメニュー未設定状態です。-->
MyMenu
</MTElse>
</MTIf>

このメニューではMTIfを使ってブログ毎に違うメニューを表示させる仕掛けをしています。<$MTBlogID$>でブログIDを取得、IDが「10」ならメニューを表示、それ以外はメニューは表示されません。

この例では企業サイト用のメニューを想定して制作してみました。トップページと事業概要のリード文編集用のリンクだけ記入して後は#にしてしまっています。

トップページのリード文編集画面へのリンクをみると「entry&id=57&blog_id=10」となっています。「ブログID10、エントリーID57」を指定しています。事業概要のリード文は「entry&id=60&blog_id=11」ですので「ブログID11、エントリーID60」を指定しています。
マルチブログとしてサイトを制作している際でもID指定を間違えなければピンポイントで表示させたいページを指定出来るのでサイト運営者の負担を軽減させる事が出来ます。

もちろん、こういったブログ間を行き来するメニューを作成する場合は編集対象にしている各ブログの権限を状況に合わせて調整してください。

おまけとしてJavaScriptでhistory.backをつけています。個人的にこれを付けておくとサイト運用者に説明がし易かったりするので・・・。

さて、レイアウトを調整する為にCSSに追記です。管理画面のCSSは「mt-static/css/main.css」ですが、今回は「alt-tmpl/include」内に「mymenu.css」という外部CSSを置いて読込ませています。
やはりなるべくデフォルトのCSSに手を加えてしまうと後々面倒くさいので。CSSの内容は以下の通り。

#content-header {
    padding-top: 15px;
}
#myMenu {
    width:920px;
    text-align:left;
    padding-left:20px;
    font-size:12px;
    line-height:1.5em;
    color: #333333;
    margin-top: 0px;
    margin-right: auto;
    margin-left: auto;
    margin-bottom: 0px;
}
#myMenu li {
    background-color:#FFFFFF;
    border-bottom-width: 1px;
    border-bottom-style: solid;
    border-bottom-color: #CCCCCC;
}
#myMenu li a {
    padding-left: 1em;
}
.myMenu_Head {
    display:block;
    font-weight:bold;
    color:#FFFFFF;
    width:10em;
    float:left;
    background-color: #666666;
    padding-left: 0.5em;
}

で、管理画面はこんな感じになります。

カスタムメニューの例

まぁ、あとはお好みで調整してください。

2010_03_28_title.jpg

このブログのメタタグの出力部分にミスを発見!
最後に公開されたエントリーの概要が全ページに指定されていました・・・。

アホですかいな・・・。

メモ代わりと修正の履歴としてソースを貼っておきます。

このブログは(2010/03の時点で)変数ブロックばっかり集中して書かれた「mtvar」という名前のモジュールを読込む様につくってあります。そのモジュールの内容をそのまま公開。

<MTIgnore><!--キーワード--></MTIgnore>
<MTRemoveBlank>
<MTSetVarBlock name="KeyWordsTxt">
<mtif name="pageName" eq="top"><meta name="Keywords" content="Web制作,MT,MovableType,HTML,CG,デザイン" /></mtif>
<MTIfArchiveType archive_type="Individual"><meta name="Keywords" content="<mt:If tag="CategoryDataCategory_keyword"><mt:CategoryDataCategory_keyword></mt:If>,<$MTEntryKeywords$>" /></MTIfArchiveType>
<MTIfArchiveType archive_type="Category"><meta name="Keywords" content="<mt:If tag="CategoryDataCategory_keyword"><mt:CategoryDataCategory_keyword></mt:If>" /></MTIfArchiveType>
<MTIfArchiveType archive_type="Monthly"><meta name="Keywords" content="Web制作,MT,MovableType,HTML,CG,デザイン,<MTEntries lastn="3" glue=","><$MTEntryKeywords$></MTEntries>" /></MTIfArchiveType>
</MTSetVarBlock>
<MTIgnore><!--概要--></MTIgnore>
<MTSetVarBlock name="DescriptionTxt">
<MTIfArchiveType archive_type="Individual"><meta name="Description" content="<$mtEntryExcerpt$>" /></MTIfArchiveType>
<MTIfArchiveType archive_type="Category"><meta name="Description" content="Soh-Web<$MTArchiveTitle$>のアーカイブです。<$MTCategoryDescription$>" /></MTIfArchiveType>
<MTIfArchiveType archive_type="Monthly"><meta name="Description" content="Soh-Web<$MTArchiveTitle$>のアーカイブです。<$MTBlogDescription$>" /></MTIfArchiveType>
<mtif name="pageName" eq="top"><meta name="Description" content="<$MTBlogDescription$>" /></mtif>
</MTSetVarBlock>
<MTIgnore><!--タイトル--></MTIgnore>
<MTSetVarBlock name="titleTxt"><title><mtif name="pageName" eq="top"><$MTBlogName$></mtif><mtif name="pageName" eq="search"><$MTBlogName$></mtif><MTIfArchiveType archive_type="Individual"><$MTEntryTitle$>&nbsp;|&nbsp;<$MTEntryCategory$>&nbsp;|&nbsp;<$MTBlogName$></MTIfArchiveType><MTIfArchiveType archive_type="Category"><$MTArchiveTitle$>&nbsp;|&nbsp;<$MTBlogName$></MTIfArchiveType><MTIfArchiveType archive_type="Monthly"><$MTArchiveTitle$>&nbsp;|&nbsp;<$MTBlogName$></MTIfArchiveType></title>
</MTSetVarBlock></MTRemoveBlank>

<MTRemoveBlank>はMTタグを使用すると出力時の余計な改行を削除してくれるというプラグイン「RemoveBlank」用のタグ。
こちらのブログを参考にさせていただきました。感謝です。

でも思ったほどには削除してくれなくて結局は書き終えたら自分で改行を詰めちゃってるので上記みたいなソースになっているわけです。

思うに一つのモジュールに詰め込み過ぎなんですよねぇ~。
でも今は修正が面倒くさいのでいずれ直そうかなと思っています。

さて、<mtif name="pageName" eq="top">なんて記述がありますが、これはトップページ用のテンプレートに

<$MTSetVar name="pageName" value="top"$>
<$mt:Include module="mtvar"$>

ってな記述になっているわけです。
これは後々インデックステンプレートを増やしていく計画がある為、その時に「pageName」という変数でmetaタグやらjavascriptやらcssやらの内容を変えていこうと考えているわけです。現在はmetaタグのみですけど。

しかし見づらいソースですなー。
改善しようっと。反省です。

1  2  3  4
2011年6月

ウェブページ