お知らせ

Movable Type 5実践テクニック2010年3月26日

Movable Type 5実践テクニック」が発売されました。
実際的なWebサイト製作事例を通して、テーマと複数ブログ活用を中心に、Movable Type 5の実践的な使いこなし方を解説しています。
Movable Typeでサイト制作をされている皆様はぜひお買い求めください。

他にも多数書籍を執筆しています。
こちらもぜひご覧ください。

cronを使わずに(ほぼ)指定日投稿をする

| コメント(39) | トラックバック(35)

2006年8月13日
従来版をFlash Player 9に対応させました。

2006年8月11日
Flashを使わずに、JavaScriptから指定日投稿を実行するプラグインも公開しました。

Movable Type 3.1xには、エントリーの投稿を予約しておいて、指定した日に投稿する「指定日投稿」という機能があります。
ただ、Movable Typeのヘルプでは、指定日投稿は「cron」と組み合わせて使うという記述があります。

※cron=UNIXの機能の1つで、定期的に何らかの処理を行うもの

ところが、レンタルサーバーでは、cronを使うことができないところも少なくありません。
例えば、当方はロリポップを使っていますが、ロリポップではcronは使うことができません。
cronを使えないために、指定日投稿をあきらめたという方も、結構いらっしゃるのではないかと思います。

そこで、cronの代わりに、Blogの読者の方々がアクセスしてきたときに、指定日投稿を行うという仕組みを考えてみました。これなら、cronを使うことができなくてもOKです。

なお、動作原理上、指定日時ぴったりに投稿が行われることはほとんどなく、ある程度のタイムラグが生じます。
また、誰かがBlogにアクセスしてくれないと、投稿が行われないことになります。アクセス頻度の低いBlogや、アクセスが少ない時間帯(深夜など)では、なかなか投稿が行われないこともあり得ます。

利用手順は以下の通りです。

必要なファイルのダウンロードと解凍

まず、以下のリンクをクリックしてファイル一式をダウンロードし、そのファイルを解凍しててください。

period.zip

プラグインの継続的な開発やサポートのために、プラグインをご利用された方は、ドネーション(寄付)を行っていただけると幸いです。
ドネーションの方法は、こちらのページをご参照ください。

また、このプラグインの他にも、いくつかのプラグインを配布しています。
配布中のプラグインは、Movable Type Plugin Directoryのページをご参照ください。

Movable Typeのプラグイン開発等のドキュメント「Movable Type Developer's Guide Volume 1」も販売しています。
ご自分でプラグインを作ってみたい方に、ぜひお勧めしたい一冊です。
詳細は特設ページをご覧ください。

なお、「mt-period.cgi」の先頭にParlのパスを指定する行があります(#!/usr/local/bin/perl)。
これはお使いのサーバーに合わせて変更してください。

ファイルのアップロード

zipファイルを解凍すると、4つのファイルができます。以下のようにアップロードしてください。

ファイル名アップロード先パーミッション
mt-period.cgiMTのディレクトリ755
period.swfMTのディレクトリ644
period-last.txtMTのディレクトリ646
URLEncodeContainer.plpluginsディレクトリ644


「MTのディレクトリ」は、Movable Typeをインストールしたディレクトリ(mt-xxx.cgiやmt.cfgがあるディレクトリ)を指します。
また、「pluginsディレクトリ」は、MTのディレクトリの中にある「plugins」ディレクトリを指します。

Flashの表示

ご自分のBlogに、アップロードしたFlashを表示するためのHTMLを入れます。
表示先のテンプレートを開き、Flashを表示したい位置に以下を追加してください。

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
  codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,79,0"
  id="period" width="80" height="15">
  <param name="movie" value="<$MTCGIPath$>period.swf?url=<MTURLEncodeContainer><$MTCGIPath$></MTURLEncodeContainer>">
  <param name="bgcolor" value="#FFFFFF">
  <param name="quality" value="high">
  <param name="loop" value="false">
  <param name="menu" value="false">
  <param name="scale" value="exactfit">
  <param name="allowscriptaccess" value="always">
  <embed type="application/x-shockwave-flash"
   pluginspage="http://www.macromedia.com/go/getflashplayer"
   width="80" height="15"
   name="period" src="<$MTCGIPath$>period.swf?url=<MTURLEncodeContainer><$MTCGIPath$></MTURLEncodeContainer>"
   bgcolor="#FFFFFF" quality="high"
   loop="false" menu="false"
   scale="exactfit"
   swLiveConnect="true" allowScriptAccess="always"
  ></embed>
</object>

なお、上記のHTMLは、表示頻度の高いテンプレートに入れることをお勧めします。
一般的なBlogでは、メインインデックスと個別アーカイブの表示頻度が高いと思われますので、それらのテンプレートに入れると良いでしょう。

日時の指定

ここまでの作業を行うと、これ以後は指定日投稿を行うことができるようになります。
エントリーの入力の画面で「作成日時」の欄を未来の日時にし、その上の「投稿の状態」の欄を「指定日」にして、エントリーを保存します。

2005年5月18日追加

CGIの動作

このプログラムでは、Flashから「mt-period.cgi」というCGIを起動し、そのCGIから指定日投稿のプログラム(MTのrun-periodic-task)を実行するという仕組みをとっています。
ただ、run-periodic-taskは結構重い処理で、頻繁に実行するとサーバーに負荷がかかる恐れがあります。
そこで、直前に実行されてから10分以上経過していないときは、実行しないようにしています。

Flashの表示

Flashでは、このプログラムの動作状況を以下のように表示するようになっています。
表示内容
黄色の●に「Waiting」mt-period.cgiを実行して、その結果が返ってくるのを待っている状態。
緑色の●に「Worked」指定日投稿のプログラムが実行された状態。
青色の●に「Passed」直前に指定日投稿のプログラムを実行してから10分経過していないので、実行をパスした状態。

トラックバック(35)

トラックバックURL: http://www.h-fj.com/mt/mt-tb.cgi/151.

The blog of H.Fujimoto: cronを使わずに(ほぼ)指定日投稿をする: Fujimotoさんのブログに上のような記事が投稿されてい... 続きを読む

面白そうなプラグイン発見したので、導入してみました The blog of H.... 続きを読む

いつもお世話になってる The blog of H.Fujimoto さまで、こ... 続きを読む

なんだかんだ文句を言いながらもロリポを使い続けてるわけなんですが。(苦笑... 続きを読む

MovableTypeには指定日投稿機能というのがあるのですが、これにはcron... 続きを読む

このところ、ま〓たまた 新規投稿が まともにできなくなってました。まず100% ... 続きを読む

私の使っているblogシステムのMovabletypeの新機能として、「指定日投稿」っていうのがあるんです。要は投稿したい日付を書いて投稿すると、その日時になっ... 続きを読む

私の使っているblogシステムのMovabletypeの新機能として、「指定日投稿」っていうのがあるんです。要は投稿したい日付を書いて投稿すると、その日時になっ... 続きを読む

四苦八苦していた指定日投稿ですが、できるようになりましたよ!... 続きを読む

BlogPeople - ブログ情報ポータル経由で、我楽のBorderさんの所で、”MyblogList に更新が反映されない。”を読んで、初めて”ロリポで指定... 続きを読む

Movable Typeには予約指定日投稿機能が備わっています。 ですが、UNIXのシェルが使えないとこの機能は全然役に立つことが出来ません。 cronというコ... 続きを読む

とっても使いたい機能なのだが、かよべえがレンタルしているロリポップではこの機能を... 続きを読む

かよべえ倶楽部 - MT の指定日投稿 (2005年7月17日 15:04)

とっても使いたい機能なのだが、かよべえが... 続きを読む

これから、何かと記事が書けない日も出てくると思い、 記事の指定日投稿機能を追加致しましたわ。 じゃが、我が家のサーバにはMTで搭載されている指定日投稿が 扱えな... 続きを読む

さっき知った事なんですが、MovableTypeのエントリーを「指定日に投稿する」機能ってサーバに対して設定を行なわないと動かないんですね。 Movable T... 続きを読む

今回描いた残暑お見舞いのボツ絵はこんな感じ。 等身高くしようとして失敗。 バラン... 続きを読む

今日から正式にこちらのblogにて日記を書いていきます。 事前にやってたつもりで... 続きを読む

マイラーで行こう! - サイトテンプレート (2005年10月17日 04:02)

このブログのテンプレートを色々カスタマイズしているんですが、元々はこのサイトから... 続きを読む

2度ほど投稿日の指定をやってみましたが、うまくいきませんでした。 Movable Typeを調べてみると、この機能を使うには、サーバー側に"cron"の設... 続きを読む

半月ほどになるでしょうか? 借りているサーバーにて、Movable Typeの調... 続きを読む

エントリーは定期的に行おうと思い立ったのですが、 MT3.2では指定日投稿をする... 続きを読む

私の使っているロリポップレンタルサーバーでは、指定日投稿の設定ができないようだっ... 続きを読む

ubicast BloggerやBlogWriteに興味を持ったのは実は投稿が楽になるからというのではなく、ある機能に期待したからでした。それは、 続きを読む

RAISE THE WIND - 初詣 (2006年1月 2日 21:02)

新年、あけましておめでとうございます!! 今年もよろしくおねがいします。 続きを読む

愛しのS井さんのことではなく、Movable Typeのことで。 いわゆるひとつ... 続きを読む

最安値.com激安通販価格比較評価! - ロリポップでcronを使わずに指定日投稿 (2006年2月20日 20:22)

ロリポップでもcronを使わずに指定日投稿をしたいというアナタへ朗報です。これを使えば、ロリポップでもMovable Typeでほぼ指定日投稿が可能です。 続きを読む

このブログ MovableType(ムーバブル・タイプ)には、書きためておいた... 続きを読む

今のバージョンのMovable Typeには、エントリーを指定日に公開する機能が... 続きを読む

以前の記事「Xserverでcronを使って指定日投稿うまくできますか? 2」の... 続きを読む

超速!「稼ぎ」のウェブログ講座 - ロリポップでの「指定日投稿」 (2006年7月17日 17:03)

私は、このブログも含め、 ほぼ全てをロリポップで作成しています。 そのため、Mo... 続きを読む

お金儲けの話と方法 ネットビジネス 不動産投資や株式投資でも稼ぐ - MT(Movable Type)の指定日投稿 (2006年8月25日 23:36)

MTを使う利点の1つに、指定日投稿があります。 これはcronという定期的にコマ... 続きを読む

今更ながらロリポップ... 続きを読む

インド人シェフのブログ - ロリポブログの投稿予約 (2008年12月15日 01:09)

ロリポブログで投稿を予約、予約投稿をするには どうしたらいいのか? お店のブログは未来の日付で記事をエントリーすると すぐ公開はされず、その指定... 続きを読む

ムーバブルタイプを上手く使って、好みのブログを作成します。 今回は、投稿時の機能「日時指定」を使ってみましたが、上手く動作してくれませんでした。 その原因... 続きを読む

世界の株価チャートとリアルタイム情報 - ロリポップでcronライクな予約投稿をやってみる (2009年8月 2日 11:00)

このブログをはじめてまだそんなに日はたっていないのですが、Movabletype... 続きを読む

コメント(スレッド39件,コメント39件)

コメントはスレッド表示になっています。
また、スレッドの先頭のコメントに対する返信には、先頭に矢印を表示しています。

No.1 みよたん : (無題)

こんばんわです。
表示されるFlashの英語の意味教えていただけると助かります。

3種類ぐらい今の所見てますが。

No.2  : (無題)

>みよたんさん
こんにちは。ご利用ありがとうございます。

ご質問の件について、エントリーに書き加えておきました。

No.3 さえら : (無題)

指定日投稿、「ほぼ」でも できるなんて嬉しいです。
早速やってみようと思います。

No.4 さえら : (無題)

ヽ(^◇^*)/ ワーイ できました。
普通に新規投稿しようと思ったら 高確率で 500エラーになってしまうんですが
これ使うと、ちゃんと トラックバックもとばせてるし
いいですね。感激です♪

No.5 Border. : (無題)

こんちわー。
こりゃ、また、激しく便利なツールを・・・ありがとうございます。^^

今晩にでも試してみまーす。

No.6  : (無題)

>Borderさん
こんにちは。

「ほぼ指定日投稿」をご利用いただきありがとうございます。
そちらのBlogなら、うちよりアクセスが多いので、より指定日投稿に近くなると思います。

No.7 かづ : (無題)

こんにちは、はじめまして。
本日、このプラグインを導入させていただきました。
とっても、重宝しそうな予感大です。
cron設定できないので、半分諦めてた部分でしたのでとっても嬉しいです。

No.8 かづ : (無題)

run-periodic-tasksのパーミッションって、指定日投稿の動作に関係ありますか?
なにをどうやったら、動くようになったのか手順確認せずにやっていたら、最終的に動くようになりました。
私の設定ミスだっただけなのかもしれませんが、有り難うございます。
とっても重宝いたしております。

No.9 はぁは先生 : (無題)

こんばんは。
コメントありがとうございました。
いやロリポはcron使えなくて参っていたんです。
本当流石です。
ありがとうございました。

No.10 三宝寺法証 : (無題)

こんにちは。
便利な機能と思い、こちらのCGIを私のブログにも設置させて頂きました。
ですが、プラグインの方がエラーを起こしているようで、そのままでは稼動しませんでした。
Flash呼び出しURLを修正し、一応動くようになりました。
以下、エラーログです。

Plugin error: /省略/plugins/URLEncodeContainer.pl Can't locate object method "new" via package "MT::Plugin" at /省略/cgi-bin/weblog/plugins/URLEncodeContainer.pl line 9. Compilation failed in require at /省略/cgi-bin/weblog/lib/MT.pm line 297.

原因は何なのでしょうか?

No.11 三宝寺法証 : (無題)

度々済みません。
こちらのTBを参考にプラグイン内を修正したところ、エラーは発生しなくなりました。
これで、気兼ねなくほぼ投稿が出来ます。有り難う御座いました。

No.12 スマッシュ : (無題)

はじめまして。
いつも参考にさせて頂いています。

今回のツールもとってもありがたいです。
ありがとうございました。

No.13  : (無題)

>スマッシュさん
ご利用ありがとうございます。

ほぼ指定日投稿があれば、あらかじめエントリーを書き溜めておくことができるので、便利だと思います。
もっとも、現在ではサーバーをXREAに移転してcronを使えるようになったので、自分ではこのカスタマイズは不要になってしまいました(笑)。

No.14 ken : (無題)

こんにちは。初めまして。
ほぼ指定日投稿使わせてもらいました。
@niftyのラクーカンでも動きました。
ありがとうございます。

No.15  : (無題)

>kenさん
こんにちは。
ラクーカンでの動作報告をいただき、ありがとうございました。

No.16 Yu : (無題)

無事動作できました。
大変便利なツールをありがとうございますハート

ただ、補足として、プラグインフォルダの中に

「URLEncodeContainer というフォルダを作成した上で」その中に「URLEncodeContainer.pl」を入れてくださいと明示した方が分かりやすいと思います。

……あれ、フォルダの中に入れないと動きませんよね??

MT自体を触りたての私は、ちょっと迷いました嫌な感じ

フォルダを作成しないと、 working.... のまま動作しないようですので汗

No.17  : (無題)

>Yuさん
こんにちは。プラグインご利用ありがとうございます。

URLEncodeContainer.plは、pluginsディレクトリにアップロードすれば動くはずです。
当方ではそうしていますし、これまでにもYuさんのような指摘を受けたことはありませんでした。

No.18 Yu : (無題)

> URLEncodeContainer.plは、pluginsディレクトリにアップロードすれば

 どうやらそのようでした汗
現状ではフォルダの中に収まっていても問題なく動作するようです。

 わたしがよく理解していなかったものと思われます。
大変、失礼いたしました。

 今後のご活躍を、お祈り申し上げます。

No.19 ブロガ : (無題)

こんにちは、

激しく便利なので使わせて頂いています。

ありがとうございます。

指定日投稿した場合、PINGが打ててないようですので、

そのような方、お見えになりますか?

私だけでしょうか??

No.20  : (無題)

>ブロガさん
こんにちは。

他の方からは、PINGについての問い合わせはありません。

なお、このツールは、MT標準の指定日投稿を呼び出す処理をしているだけです。
PINGが打てないとすれば、MTの指定日投稿のプログラムに不具合があることになります。

No.21 ブロガ : (無題)

ping 打てました。すみません。

四苦八苦していましたが、初期設定ミスでした。

コメントありがとうございました。

No.22 tochika : (無題)

大変有益な記事ありがとうございます。
この記事を基にした記事を私のブログに書かせていただきました。

これからも本、ブログともに参考にさせていただきますので、よろしくお願いします♪

No.23 momo : (無題)

初めまして、momoと申します。
「ほぼ指定日投稿」について、ぜひ活用したいと思い、導入しようとしているのですが、以下の部分がよくわからないので躓いています。ご指導いただけましたらうれしいのですが・・・。

この部分です。
ご自分のBlogに、アップロードしたFlashを表示するためのHTMLを入れます。表示先のテンプレートを開き、Flashを表示したい位置に以下を追加してください。

と説明があるのですが、「Flashを表示したい位置」というのがわかりません。

メインページと個別アーカイブページのどこに追加すればよいでしょうか?

大変お手数をおかけいたしますが
ご指導よろしくお願いいたします。

No.24  : (無題)

>momoさん
こんにちは。

ご質問の件ですが、サイドバーの最後に追加すると邪魔にならなくて良いと思います。
メインページと個別アーカイブページのテンプレートの中でサイドバーの部分を探して、その最後にFlashのHTMLを追加します。

No.25 momo : (無題)

ご回答ありがとうございます。

FlashのHTMLはうまく追加できたのですが、
●(黄色)のまま変化がありませんし、
一気にすべて公開されてしまいます。
どこに問題があるのでしょう?

No.26  : (無題)

>momoさん
こんにちは。

まず、「●」が黄色のまま変化しないのは、mt-period.cgiが上手く動作していないことが原因だと思われます。mt-period.cgiや、period-last.txtのパーミッションを確認してみてください。

また、一気にすべて公開される原因としては、エントリーを投稿する際に、エントリーの日時を未来の日時にしていないことが考えられます。

No.27 momo : (無題)

こんにちは、momoです。
お返事ありがとうございます。

一気に公開されるのはご指摘の通り、エントリーの日時を未来の日時にしていなかったことが原因だと思います。

パーミッションを確認しましたがそれぞれ指定通りで間違いありませんでした。

一点気がかりなのが、次の箇所なんです。

なお、「mt-period.cgi」の先頭にParlのパスを指定する行があります(#!/usr/local/bin/perl)。
これはお使いのサーバーに合わせて変更してください。

というところなんですが、
ロリポの場合、【 Perlパス 】 /usr/bin/perl となっているので、この/usr/bin/perlを#!/usr/local/bin/perlの部分と置き換えるということでよいでしょうか?


お手数をおかけし恐縮ですが、
よろしくお願いいたします。

No.28  : (無題)

>momoさん
こんにちは。

「#!/usr/local/bin/perl」を「#!/usr/bin/perl」に書き換えてみてください。

No.29 momo : (無題)

こんばんわ、momoです。

うまくできました!
ほんとうにありがとうございました!(^^)

No.30 tacasi : (無題)

はじめまして。tacasiと申します。

「ほぼ指定日投稿」を導入して1か月になります。

質問なのですが、
最近、自分でアクセスしても、
指定日投稿がされていたり、されていなかったり、
動作が不安定になっていました。

よく見てみると、「●」が真っ黒でクリックすると、
「ムービーをロードできません」
と出ました。

最近変わったことといったら
FlashPlayerをver.9にしたことだけです。

FlashPlayer9が原因なのでしょうか。汗

No.31  : (無題)

>tacasiさん
こんにちは。ご利用ありがとうございます。

調べたわけではありませんが、Flash Playerをバージョンアップしてから動作が不安定ということは、そのことに原因がありそうです。
時間ができたら調べてみます。

No.32 ターヒ : (無題)

pingの送信ができません。
コメントは全て読み、検索もしたのですが、
解決できませんでした。

状況
・サーバーは、ロリポップです。
・通常の投稿では、PING送信ができています。
・指定日投稿によって、記事は投稿されています。
・ログ(システムの利用記録)に、記録は何も、されていません。


自己解決を目指しましたが、一週間たっても、分かりません。

解決のヒントをいただければ、大変うれしいです。

No.33  : (無題)

>ターヒさん
こんにちは。

このFlashは、MTの指定日投稿のプログラムを呼び出す処理をしているだけで、Flash自体がpingを送信しているのではありません。
ということで、pingが打てないとすると、MTの指定日投稿に何か問題があることになります。

No.34 ターヒ : (無題)

壱さん、こんにちは。
ターヒです。
アドバイスありがとうございます。

以前のコメント「19、20」にもありましたが、
「MTの指定日投稿に何か問題」しかないと捉えて、
また試してみたいと思います。

No.35 ターヒ : (無題)

カテゴリーへのトラックバックをはずすと、
ping送信できるようになりました。

ping送信がエラー(失敗)になってただけ、
以前の指定日投稿も、通常の投稿のように、
きちんとpingを送信されていました。

解決しました。ありがとうございました。

No.36 mmi : (無題)

30. tacasiさんと同様なのですが、Flashがロードできなくなっています。他にお困りの方いないのかな?
当方もFlashを最新にバージョンアップしたところロードできなくなりました。
ソースでFlashのバージョンを指定していますが、そこに何かあるんでしょうかね?ちょっと困っています。

No.37  : (無題)

>mmiさん
こんにちは。プラグインご利用ありがとうございます。

Flashを使わずに、JavaScriptで処理するものを作ってみましたので、後日アップします。

No.38 mmi : (無題)

動作しない原因が判明し何よりです。解析本当にありがとうございます。
ところで、Flash9に対応したとのことですが、period.zipの中の
period.swfは、2006/08/05のタイムスタンプのままのようで、こちらをアップロードしても現象は変わりませんでした。

No.39  : (無題)

>mmiさん
こんにちは。

アップロードのミスをご指摘いただき、ありがとうございました。
正しいものに差し替えましたのでご確認ください。

コメントする